📄 mc_display.ls
字号:
1345 ; 180 *pStr = (u8)(Nbre1Tmp + (u8)0x30);
1347 0199 7b06 ld a,(OFST+0,sp)
1348 019b 1e07 ldw x,(OFST+1,sp)
1349 019d ab30 add a,#48
1350 019f f7 ld (x),a
1351 ; 182 pStr++;
1353 01a0 5c incw x
1354 ; 183 *pStr = 0; // End of string
1356 ; 185 }
1359 01a1 5b08 addw sp,#8
1360 01a3 7f clr (x)
1361 01a4 81 ret
1400 ; 187 void display_setpoint_blink(void)
1400 ; 188 {
1401 switch .text
1402 01a5 _display_setpoint_blink:
1404 01a5 88 push a
1405 00000001 OFST: set 1
1408 ; 191 if (g_pUserInterface == 0) return;
1410 01a6 be05 ldw x,L5_g_pUserInterface
1411 01a8 2602 jrne L166
1415 01aa 84 pop a
1416 01ab 81 ret
1417 01ac L166:
1418 ; 192 if (g_pUserInterface->bStatus == UI_LOCKED) return;
1420 01ac f6 ld a,(x)
1421 01ad 4a dec a
1422 01ae 2602 jrne L366
1426 01b0 84 pop a
1427 01b1 81 ret
1428 01b2 L366:
1429 ; 193 if (g_pdevice == 0) return;
1431 01b2 be07 ldw x,L7_g_pdevice
1432 01b4 2602 jrne L566
1436 01b6 84 pop a
1437 01b7 81 ret
1438 01b8 L566:
1439 ; 194 if (g_pSelTab == 0) return;
1441 01b8 be09 ldw x,L11_g_pSelTab
1442 01ba 2602 jrne L766
1446 01bc 84 pop a
1447 01bd 81 ret
1448 01be L766:
1449 ; 195 for (i=0;i<g_pSelTab->bFieldsNumber;i++)
1451 01be 0f01 clr (OFST+0,sp)
1453 01c0 205a jra L576
1454 01c2 L176:
1455 ; 197 if (g_pUserInterface->bField_Focus_Selection == i)
1457 01c2 be05 ldw x,L5_g_pUserInterface
1458 01c4 e604 ld a,(4,x)
1459 01c6 1101 cp a,(OFST+0,sp)
1460 01c8 2650 jrne L107
1461 ; 199 if (g_pUserInterface->bField_Edit != i)
1463 01ca e605 ld a,(5,x)
1464 01cc 1101 cp a,(OFST+0,sp)
1465 01ce 274a jreq L107
1466 ; 201 if (bBlinkState == 0)
1468 01d0 b604 ld a,L3_bBlinkState
1469 01d2 261c jrne L507
1470 ; 203 bBlinkState = 1;
1472 01d4 35010004 mov L3_bBlinkState,#1
1473 ; 205 g_pdevice->mems.m8[DISPLAYLINE_ADDR]=(u8)(i+1);
1475 01d8 7b01 ld a,(OFST+0,sp)
1476 01da be07 ldw x,L7_g_pdevice
1477 01dc ee09 ldw x,(9,x)
1478 01de 4c inc a
1479 01df e71e ld (30,x),a
1480 ; 206 g_pdevice->mems.m8[DISPLAYPOS_ADDR]=8;
1482 01e1 be07 ldw x,L7_g_pdevice
1483 01e3 ee09 ldw x,(9,x)
1484 01e5 a608 ld a,#8
1485 01e7 e71f ld (31,x),a
1486 ; 207 g_pdevice->mems.m8[DISPLAYCH_ADDR]=16;
1488 01e9 be07 ldw x,L7_g_pdevice
1489 01eb 48 sll a
1490 01ec ee09 ldw x,(9,x)
1491 ; 208 g_pdevice->ios.out8(VDEV_OUT8_DISPLAY_PRINTCH,0);
1494 01ee 2019 jp LC001
1495 01f0 L507:
1496 ; 213 bBlinkState = 0;
1498 01f0 3f04 clr L3_bBlinkState
1499 ; 215 g_pdevice->mems.m8[DISPLAYLINE_ADDR]=(u8)(i+1);
1501 01f2 7b01 ld a,(OFST+0,sp)
1502 01f4 be07 ldw x,L7_g_pdevice
1503 01f6 ee09 ldw x,(9,x)
1504 01f8 4c inc a
1505 01f9 e71e ld (30,x),a
1506 ; 216 g_pdevice->mems.m8[DISPLAYPOS_ADDR]=8;
1508 01fb be07 ldw x,L7_g_pdevice
1509 01fd ee09 ldw x,(9,x)
1510 01ff a608 ld a,#8
1511 0201 e71f ld (31,x),a
1512 ; 217 g_pdevice->mems.m8[DISPLAYCH_ADDR]=' ';
1514 0203 be07 ldw x,L7_g_pdevice
1515 0205 a620 ld a,#32
1516 0207 ee09 ldw x,(9,x)
1517 ; 218 g_pdevice->ios.out8(VDEV_OUT8_DISPLAY_PRINTCH,0);
1520 0209 LC001:
1521 0209 e720 ld (32,x),a
1523 020b 4b00 push #0
1524 020d ae0003 ldw x,#3
1525 0210 89 pushw x
1526 0211 5f clrw x
1527 0212 89 pushw x
1528 0213 be07 ldw x,L7_g_pdevice
1529 0215 ee1b ldw x,(27,x)
1530 0217 fd call (x)
1531 0218 5b05 addw sp,#5
1532 021a L107:
1533 ; 195 for (i=0;i<g_pSelTab->bFieldsNumber;i++)
1535 021a 0c01 inc (OFST+0,sp)
1536 021c L576:
1539 021c 92c609 ld a,[L11_g_pSelTab.w]
1540 021f 1101 cp a,(OFST+0,sp)
1541 0221 229f jrugt L176
1542 ; 224 }
1545 0223 84 pop a
1546 0224 81 ret
1687 ; 226 void display_create(pvdev_device_t pdevice, PUserInterface_t pUserInterface)
1687 ; 227 {
1688 switch .text
1689 0225 _display_create:
1691 0225 89 pushw x
1692 0226 520f subw sp,#15
1693 0000000f OFST: set 15
1696 ; 230 u8 selTab = pUserInterface->bSelected_Tab;
1698 0228 1e14 ldw x,(OFST+5,sp)
1699 022a e601 ld a,(1,x)
1700 022c 6b06 ld (OFST-9,sp),a
1701 ; 231 PTab_t pSelTab = &(pUserInterface->pTab[selTab]);
1703 022e 97 ld xl,a
1704 022f a603 ld a,#3
1705 0231 1614 ldw y,(OFST+5,sp)
1706 0233 42 mul x,a
1707 0234 90ee07 ldw y,(7,y)
1708 0237 90bf00 ldw c_x,y
1709 023a 72bb0000 addw x,c_x
1710 023e 1f0d ldw (OFST-2,sp),x
1711 ; 232 g_pSelTab = pSelTab;
1713 0240 bf09 ldw L11_g_pSelTab,x
1714 ; 234 display_clsscr(pdevice);
1716 0242 1e10 ldw x,(OFST+1,sp)
1717 0244 cd001b call _display_clsscr
1719 ; 236 for (i=0;i<pSelTab->bFieldsNumber;i++)
1721 0247 0f0f clr (OFST+0,sp)
1723 0249 cc04d3 jra L5201
1724 024c L1201:
1725 ; 238 ValSize_t Size = pSelTab->pField[i].Size;
1727 024c 7b0f ld a,(OFST+0,sp)
1728 024e 97 ld xl,a
1729 024f a609 ld a,#9
1730 0251 160d ldw y,(OFST-2,sp)
1731 0253 42 mul x,a
1732 0254 90ee01 ldw y,(1,y)
1733 0257 90bf00 ldw c_x,y
1734 025a 72bb0000 addw x,c_x
1735 025e e604 ld a,(4,x)
1736 0260 6b05 ld (OFST-10,sp),a
1737 ; 241 display_setcurrpos((display_index_t)1,(display_index_t)(i+1));
1739 0262 7b0f ld a,(OFST+0,sp)
1740 0264 4c inc a
1741 0265 97 ld xl,a
1742 0266 a601 ld a,#1
1743 0268 95 ld xh,a
1744 0269 cd0050 call _display_setcurrpos
1746 ; 242 display_printstr(pdevice,pSelTab->pField[i].Label);
1748 026c 7b0f ld a,(OFST+0,sp)
1749 026e 97 ld xl,a
1750 026f a609 ld a,#9
1751 0271 160d ldw y,(OFST-2,sp)
1752 0273 42 mul x,a
1753 0274 90ee01 ldw y,(1,y)
1754 0277 90bf00 ldw c_x,y
1755 027a 72bb0000 addw x,c_x
1756 027e fe ldw x,(x)
1757 027f 89 pushw x
1758 0280 1e12 ldw x,(OFST+3,sp)
1759 0282 cd008e call _display_printstr
1761 0285 85 popw x
1762 ; 244 if (Size != TYPE_TXT)
1764 0286 7b05 ld a,(OFST-10,sp)
1765 0288 a105 cp a,#5
1766 028a 2738 jreq L1301
1767 ; 247 display_setcurrpos((display_index_t)9,(display_index_t)(i+1));
1769 028c 7b0f ld a,(OFST+0,sp)
1770 028e 4c inc a
1771 028f 97 ld xl,a
1772 0290 a609 ld a,#9
1773 0292 95 ld xh,a
1774 0293 cd0050 call _display_setcurrpos
1776 ; 249 if (pSelTab->pField[i].Type != EDIT)
1778 0296 7b0f ld a,(OFST+0,sp)
1779 0298 97 ld xl,a
1780 0299 a609 ld a,#9
1781 029b 160d ldw y,(OFST-2,sp)
1782 029d 42 mul x,a
1783 029e 90ee01 ldw y,(1,y)
1784 02a1 90bf00 ldw c_x,y
1785 02a4 72bb0000 addw x,c_x
1786 02a8 e603 ld a,(3,x)
1787 02aa 2704 jreq L3301
1788 ; 251 display_printchar(pdevice,' '); // Read Only
1790 02ac 4b20 push #32
1793 02ae 200e jp LC002
1794 02b0 L3301:
1795 ; 255 if (pUserInterface->bField_Edit == i)
1797 02b0 1e14 ldw x,(OFST+5,sp)
1798 02b2 e605 ld a,(5,x)
1799 02b4 110f cp a,(OFST+0,sp)
1800 02b6 2604 jrne L7301
1801 ; 257 display_printchar(pdevice,18); // Edit mode
1803 02b8 4b12 push #18
1806 02ba 2002 jp LC002
1807 02bc L7301:
1808 ; 261 display_printchar(pdevice,16); // Field Editable
1810 02bc 4b10 push #16
1812 02be LC002:
1813 02be 1e11 ldw x,(OFST+2,sp)
1814 02c0 cd006f call _display_printchar
1815 02c3 84 pop a
1816 02c4 L1301:
1817 ; 266 switch (Size)
1819 02c4 7b05 ld a,(OFST-10,sp)
1821 ; 342 display_printstr(pdevice,"OFF");
1822 02c6 271a jreq L117
1823 02c8 a002 sub a,#2
1824 02ca 275c jreq L517
1825 02cc 4a dec a
1826 02cd 2603cc0383 jreq L717
1827 02d2 4a dec a
1828 02d3 2603cc03de jreq L127
1829 02d8 a002 sub a,#2
1830 02da 2603cc045f jreq L327
1831 02df cc04a2 jra L5401
1832 02e2 L117:
1833 ; 268 case TYPE_U8:
1833 ; 269 display_setcurrpos((display_index_t)11,(display_index_t)(i+1));
1835 02e2 7b0f ld a,(OFST+0,sp)
1836 02e4 4c inc a
1837 02e5 97 ld xl,a
1838 02e6 a60b ld a,#11
1839 02e8 95 ld xh,a
1840 02e9 cd0050 call _display_setcurrpos
1842 ; 270 display_printchar(pdevice,' ');
1844 02ec 4b20 push #32
1845 02ee 1e11 ldw x,(OFST+2,sp)
1846 02f0 cd006f call _display_printchar
1848 02f3 84 pop a
1849 ; 271 display_setcurrpos((display_index_t)12,(display_index_t)(i+1));
1851 02f4 7b0f ld a,(OFST+0,sp)
1852 02f6 4c inc a
1853 02f7 97 ld xl,a
1854 02f8 a60c ld a,#12
1855 02fa 95 ld xh,a
1856 02fb cd0050 call _display_setcurrpos
1858 ; 272 APP_sPrintDec(Out,((PFN_getu8_t)pSelTab->pField[i].pGetValue)(),3);
1860 02fe 4b03 push #3
1861 0300 7b10 ld a,(OFST+1,sp)
1862 0302 97 ld xl,a
1863 0303 a609 ld a,#9
1864 0305 160e ldw y,(OFST-1,sp)
1865 0307 42 mul x,a
1866 0308 90ee01 ldw y,(1,y)
1867 030b 90bf00 ldw c_x,y
1868 030e 72bb0000 addw x,c_x
1869 0312 ee05 ldw x,(5,x)
1870 0314 fd call (x)
1872 0315 5f clrw x
1873 0316 97 ld xl,a
1874 0317 89 pushw x
1875 0318 96 ldw x,sp
1876 0319 1c000a addw x,#OFST-5
1877 031c cd00f0 call _APP_sPrintDec
1879 031f 5b03 addw sp,#3
1880 ; 273 display_printstr(pdevice,Out);
1882 0321 96 ldw x,sp
1883 0322 1c0007 addw x,#OFST-8
1885 ; 274 break;
1887 0325 cc049b jp LC003
1888 ; 275 case TYPE_S8:
1888 ; 276 break;
1890 0328 L517:
1891 ; 279 s16 wVal=((PFN_gets16_t)pSelTab->pField[i].pGetValue)();
1893 0328 7b0f ld a,(OFST+0,sp)
1894 032a 97 ld xl,a
1895 032b a609 ld a,#9
1896 032d 160d ldw y,(OFST-2,sp)
1897 032f 42 mul x,a
1898 0330 90ee01 ldw y,(1,y)
1899 0333 90bf00 ldw c_x,y
1900 0336 72bb0000 addw x,c_x
1901 033a ee05 ldw x,(5,x)
1902 033c fd call (x)
1904 033d 1f03 ldw (OFST-12,sp),x
1905 ; 281 display_setcurrpos((display_index_t)10,(display_index_t)(i+1));
1907 033f 7b0f ld a,(OFST+0,sp)
1908 0341 4c inc a
1909 0342 97 ld xl,a
1910 0343 a60a ld a,#10
1911 0345 95 ld xh,a
1912 0346 cd0050 call _display_setcurrpos
1914 ; 282 if (wVal < 0)
1916 0349 1e03 ldw x,(OFST-12,sp)
1917 034b 2a0f jrpl L7401
1918 ; 284 display_printchar(pdevice,'-');
1920 034d 4b2d push #45
1921 034f 1e11 ldw x,(OFST+2,sp)
1922 0351 cd006f call _display_printchar
1924 0354 84 pop a
1925 ; 285 wVal = -wVal;
1927 0355 1e03 ldw x,(OFST-12,sp)
1928 0357 50 negw x
1929 0358 1f03 ldw (OFST-12,sp),x
1931 035a 2008 jra L1501
1932 035c L7401:
1933 ; 289 display_printchar(pdevice,' ');
1935 035c 4b20 push #32
1936 035e 1e11 ldw x,(OFST+2,sp)
1937 0360 cd006f call _display_printchar
1939 0363 84 pop a
1940 0364 L1501:
1941 ; 291 display_setcurrpos((display_index_t)11,(display_index_t)(i+1));
1943 0364 7b0f ld a,(OFST+0,sp)
1944 0366 4c inc a
1945 0367 97 ld xl,a
1946 0368 a60b ld a,#11
1947 036a 95 ld xh,a
1948 036b cd0050 call _display_setcurrpos
1950 ; 292 APP_sPrintDec(Out,wVal,4);
1952 036e 4b04 push #4
1953 0370 1e04 ldw x,(OFST-11,sp)
1954 0372 89 pushw x
1955 0373 96 ldw x,sp
1956 0374 1c000a addw x,#OFST-5
1957 0377 cd00f0 call _APP_sPrintDec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -