📄 main.lis
字号:
0004 ; {
0004 ; INT last, min, max;
0004 ; BYTE gain, swing, flags;
0004 ; } TPULSE_STATE;
0004 ;
0004 ; static INT temp;
0004 ; static TPULSE_STATE pulse;
0004 ;
0004 ; BYTE *strfrm(WORD value, WORD max_val, BYTE *dest)
0004 ; {
0004 .dbline 63
0004 ; BYTE *ps = dest;
0004 52F8 mov A,[X-8]
0006 5401 mov [X+1],A
0008 52F7 mov A,[X-9]
000A 5400 mov [X+0],A
000C .dbline 64
000C ; if (value > max_val) value = max_val;
000C 52FB mov A,[X-5]
000E 3BF9 cmp A,[X-7]
0010 B007 jnz X1
0012 52FC mov A,[X-4]
0014 3BFA cmp A,[X-6]
0016 A00B jz L4
0018 X1:
0018 C009 jc L4
001A X0:
001A .dbline 64
001A 52FA mov A,[X-6]
001C 54FC mov [X-4],A
001E 52F9 mov A,[X-7]
0020 54FB mov [X-5],A
0022 L4:
0022 .dbline 65
0022 ; itoa(dest, value,10);
0022 5000 mov A,0
0024 08 push A
0025 500A mov A,10
0027 08 push A
0028 52FB mov A,[X-5]
002A 08 push A
002B 52FC mov A,[X-4]
002D 08 push A
002E 52F7 mov A,[X-9]
0030 08 push A
0031 52F8 mov A,[X-8]
0033 08 push A
0034 7C0000 xcall _itoa
0037 38FA add SP,-6
0039 8006 xjmp L7
003B L6:
003B .dbline 67
003B 7701 inc [X+1]
003D 0F0000 adc [X+0],0
0040 L7:
0040 .dbline 67
0040 ;
0040 ; while (*ps) ps++;
0040 5201 mov A,[X+1]
0042 5300 mov [__r1],A
0044 3E00 mvi A,[__r1]
0046 BFF4 jnz L6
0048 8019 xjmp L10
004A L9:
004A .dbline 68
004A 5201 mov A,[X+1]
004C 5300 mov [__r1],A
004E 5200 mov A,[X+0]
0050 5300 mov [__r0],A
0052 5100 mov A,[__r1]
0054 0101 add A,1
0056 5401 mov [X+1],A
0058 5100 mov A,[__r0]
005A 0900 adc A,0
005C 5400 mov [X+0],A
005E 5020 mov A,32
0060 3F00 mvi [__r1],A
0062 L10:
0062 .dbline 68
0062 ; while (ps < (dest + CONV_BUFFER_LENGHT - 1)) *ps++ = ' ';
0062 52F8 mov A,[X-8]
0064 0104 add A,4
0066 5300 mov [__r1],A
0068 52F7 mov A,[X-9]
006A 0900 adc A,0
006C 5300 mov [__r0],A
006E 5200 mov A,[X+0]
0070 3A00 cmp A,[__r0]
0072 B007 jnz X3
0074 5201 mov A,[X+1]
0076 3A00 cmp A,[__r1]
0078 A003 jz X2
007A X3:
007A CFCF jc L9
007C X2:
007C .dbline 69
007C ; *ps = 0;
007C 5201 mov A,[X+1]
007E 5300 mov [__r1],A
0080 5000 mov A,0
0082 3F00 mvi [__r1],A
0084 .dbline 71
0084 ;
0084 ; return dest;
0084 52F8 mov A,[X-8]
0086 5300 mov [__r1],A
0088 52F7 mov A,[X-9]
008A 5300 mov [__r0],A
008C .dbline -2
008C L3:
008C 38FE add SP,-2
008E 20 pop X
008F .dbline 0 ; func end
008F 7F ret
0090 .dbsym l ps 0 pc
0090 .dbsym l dest -9 pc
0090 .dbsym l max_val -7 i
0090 .dbsym l value -5 i
0090 .dbend
0090 .dbfunc e LCDUpdate _LCDUpdate fV
0090 ; buffer -> X+0
0090 ; params -> X-5
0090 _LCDUpdate::
0090 .dbline -1
0090 10 push X
0091 4F mov X,SP
0092 3805 add SP,5
0094 .dbline 75
0094 ; }
0094 ;
0094 ; void LCDUpdate(TPULSE_STATE *params)
0094 ; {
0094 .dbline 79
0094 ; BYTE buffer[CONV_BUFFER_LENGHT];
0094 ;
0094 ;
0094 ; if (CHECKBIT(params->flags, FLAG_INIT_BIT))
0094 52FC mov A,[X-4]
0096 0108 add A,8
0098 5300 mov [__r1],A
009A 52FB mov A,[X-5]
009C 0900 adc A,0
009E 3E00 mvi A,[__r1]
00A0 5300 mov [__r0],A
00A2 470002 tst [__r0],2
00A5 A09F jz L13
00A7 .dbline 80
00A7 ; {
00A7 .dbline 81
00A7 ; LcdInit();
00A7 7C0000 xcall _LcdInit
00AA .dbline 83
00AA ;
00AA ; LcdGoto(0, POS_LAST_ROW); LcdCStr(INFO_LAST_TEXT);
00AA 5000 mov A,0
00AC 08 push A
00AD 08 push A
00AE 7C0000 xcall _LcdGoto
00B1 38FE add SP,-2
00B3 .dbline 83
00B3 5000 mov A,>L15
00B5 08 push A
00B6 5000 mov A,<L15
00B8 08 push A
00B9 7C0000 xcall _LcdCStr
00BC .dbline 84
00BC ; LcdGoto(0, POS_MIN_ROW); LcdCStr(INFO_MIN_TEXT);
00BC 5001 mov A,1
00BE 08 push A
00BF 5000 mov A,0
00C1 08 push A
00C2 7C0000 xcall _LcdGoto
00C5 38FC add SP,-4
00C7 .dbline 84
00C7 50FA mov A,>L16
00C9 08 push A
00CA 50FA mov A,<L16
00CC 08 push A
00CD 7C0000 xcall _LcdCStr
00D0 .dbline 85
00D0 ; LcdGoto(0, POS_MAX_ROW); LcdCStr(INFO_MAX_TEXT);
00D0 5002 mov A,2
00D2 08 push A
00D3 5000 mov A,0
00D5 08 push A
00D6 7C0000 xcall _LcdGoto
00D9 38FC add SP,-4
00DB .dbline 85
00DB 50F4 mov A,>L17
00DD 08 push A
00DE 50F4 mov A,<L17
00E0 08 push A
00E1 7C0000 xcall _LcdCStr
00E4 .dbline 86
00E4 ; LcdGoto(0, POS_MODE_ROW); LcdCStr(INFO_MODE_TEXT);
00E4 5003 mov A,3
00E6 08 push A
00E7 5000 mov A,0
00E9 08 push A
00EA 7C0000 xcall _LcdGoto
00ED 38FC add SP,-4
00EF .dbline 86
00EF 50EE mov A,>L18
00F1 08 push A
00F2 50EE mov A,<L18
00F4 08 push A
00F5 7C0000 xcall _LcdCStr
00F8 .dbline 87
00F8 ; LcdGoto(0, POS_GAIN_ROW); LcdCStr(INFO_GAIN_TEXT);
00F8 5004 mov A,4
00FA 08 push A
00FB 5000 mov A,0
00FD 08 push A
00FE 7C0000 xcall _LcdGoto
0101 38FC add SP,-4
0103 .dbline 87
0103 50E8 mov A,>L19
0105 08 push A
0106 50E8 mov A,<L19
0108 08 push A
0109 7C0000 xcall _LcdCStr
010C .dbline 88
010C ; LcdGoto(0, POS_STATUS_ROW); LcdCStr(INFO_STATUS_TEXT);
010C 5005 mov A,5
010E 08 push A
010F 5000 mov A,0
0111 08 push A
0112 7C0000 xcall _LcdGoto
0115 38FC add SP,-4
0117 .dbline 88
0117 50E2 mov A,>L20
0119 08 push A
011A 50E2 mov A,<L20
011C 08 push A
011D 7C0000 xcall _LcdCStr
0120 .dbline 90
0120 ;
0120 ; LcdVBargraph(POS_BARGRAPH, POS_BARGRAPH_START, POS_BARGRAPH_STOP, 0);
0120 5000 mov A,0
0122 08 push A
0123 5005 mov A,5
0125 08 push A
0126 5000 mov A,0
0128 08 push A
0129 504B mov A,75
012B 08 push A
012C 7C0000 xcall _LcdVBargraph
012F 38FA add SP,-6
0131 .dbline 92
0131 ;
0131 ; CLEARBIT(params->flags, FLAG_INIT_BIT);
0131 52FC mov A,[X-4]
0133 0108 add A,8
0135 5300 mov [__r1],A
0137 52FB mov A,[X-5]
0139 0900 adc A,0
013B 5300 mov [__r0],A
013D 3E00 mvi A,[__r1]
013F 7A00 dec [__r1]
0141 21FD and A,-3
0143 3F00 mvi [__r1],A
0145 .dbline 93
0145 ; }
0145 L13:
0145 .dbline 95
0145 ;
0145 ; LcdGoto(POS_DATA_COL, POS_LAST_ROW);
0145 5000 mov A,0
0147 08 push A
0148 5023 mov A,35
014A 08 push A
014B 7C0000 xcall _LcdGoto
014E 38FE add SP,-2
0150 .dbline 96
0150 52FC mov A,[X-4]
0152 5300 mov [__r1],A
0154 3E00 mvi A,[__r1]
0156 5300 mov [__r0],A
0158 3E00 mvi A,[__r1]
015A 3C0000 cmp [__r0],0
015D B005 jnz X4
015F 3900 cmp A,0
0161 A02C jz L21
0163 X4:
0163 .dbline 96
0163 5100 mov A,[__r0]
0165 08 push A
0166 10 push X
0167 5003 mov A,3
0169 08 push A
016A 50E7 mov A,-25
016C 08 push A
016D 52FC mov A,[X-4]
016F 5300 mov [__r1],A
0171 3E00 mvi A,[__r1]
0173 5300 mov [__r0],A
0175 3E00 mvi A,[__r1]
0177 5300 mov [__r1],A
0179 5100 mov A,[__r0]
017B 08 push A
017C 5100 mov A,[__r1]
017E 08 push A
017F 9E7F xcall _strfrm
0181 5100 mov A,[__r0]
0183 08 push A
0184 5100 mov A,[__r1]
0186 08 push A
0187 7C0000 xcall _LcdStr
018A 38F8 add SP,-8
018C 800C xjmp L22
018E L21:
018E .dbline 96
018E ; if (params->last) LcdStr(strfrm(params->last, MAX_VALUE, buffer)); else LcdCStr(INFO_BLANK_NUMBER);
018E 50DD mov A,>L23
0190 08 push A
0191 50DD mov A,<L23
0193 08 push A
0194 7C0000 xcall _LcdCStr
0197 38FE add SP,-2
0199 L22:
0199 .dbline 98
0199 ;
0199 ; LcdGoto(POS_DATA_COL, POS_MIN_ROW);
0199 5001 mov A,1
019B 08 push A
019C 5023 mov A,35
019E 08 push A
019F 7C0000 xcall _LcdGoto
01A2 38FE add SP,-2
01A4 .dbline 99
01A4 52FC mov A,[X-4]
01A6 0102 add A,2
01A8 5300 mov [__r1],A
01AA 52FB mov A,[X-5]
01AC 0900 adc A,0
01AE 3E00 mvi A,[__r1]
01B0 5300 mov [__r0],A
01B2 3E00 mvi A,[__r1]
01B4 3C0000 cmp [__r0],0
01B7 B005 jnz X5
01B9 3900 cmp A,0
01BB A032 jz L24
01BD X5:
01BD .dbline 99
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -