📄 main.lis
字号:
034D 18 pop A
034E 5300 mov [__r6],A
0350 18 pop A
0351 5300 mov [__r5],A
0353 18 pop A
0354 5300 mov [__r4],A
0356 18 pop A
0357 5300 mov [__r3],A
0359 18 pop A
035A 5300 mov [__r2],A
035C 18 pop A
035D 5300 mov [__r1],A
035F 18 pop A
0360 5300 mov [__r0],A
0362 18 pop A
0363 60D5 mov REG[213],A
0365 18 pop A
0366 60D4 mov REG[212],A
0368 18 pop A
0369 60D3 mov REG[211],A
036B 18 pop A
036C 60D0 mov REG[208],A
036E 18 pop A
036F .dbline 0 ; func end
036F 7E reti
0370 .dbend
0370 .dbfunc e Timer16 _Timer16 fV
0370 _Timer16::
0370 .dbline -1
0370 71C0 or F,-64
0372 08 push A
0373 5DD0 mov A,REG[0xd0]
0375 08 push A
0376 5DD3 mov A,REG[0xd3]
0378 08 push A
0379 5DD4 mov A,REG[0xd4]
037B 08 push A
037C 5DD5 mov A,REG[0xd5]
037E 08 push A
037F 62D000 mov REG[0xd0],>__r0
0382 5100 mov A,[__r0]
0384 08 push A
0385 5100 mov A,[__r1]
0387 08 push A
0388 5100 mov A,[__r2]
038A 08 push A
038B 5100 mov A,[__r3]
038D 08 push A
038E 5100 mov A,[__r4]
0390 08 push A
0391 5100 mov A,[__r5]
0393 08 push A
0394 5100 mov A,[__r6]
0396 08 push A
0397 5100 mov A,[__r7]
0399 08 push A
039A 5100 mov A,[__r8]
039C 08 push A
039D 5100 mov A,[__r9]
039F 08 push A
03A0 5100 mov A,[__r10]
03A2 08 push A
03A3 5100 mov A,[__r11]
03A5 08 push A
03A6 5100 mov A,[__rX]
03A8 08 push A
03A9 5100 mov A,[__rY]
03AB 08 push A
03AC 5100 mov A,[__rZ]
03AE 08 push A
03AF .dbline 131
03AF .dbline 132
03AF 9D57 xcall _Display_Key
03B1 .dbline 133
03B1 62D000 mov REG[0xd0],>_times
03B4 550005 mov [_times],5
03B7 62D000 mov REG[0xd0],>__r0
03BA 550005 mov [__r0],5
03BD 3C0000 cmp [__r0],0
03C0 A007 jz L33
03C2 .dbline 134
03C2 62D000 mov REG[0xd0],>_times
03C5 550000 mov [_times],0
03C8 L33:
03C8 .dbline -2
03C8 .dbline 136
03C8 ;
03C8 ; void Timer16()
03C8 ; {
03C8 ; Display_Key() ;
03C8 ; if( times = 5 )
03C8 ; times = 0 ;
03C8 ;
03C8 ; }
03C8 L32:
03C8 62D000 mov REG[0xD0],>__r0
03CB 18 pop A
03CC 5300 mov [__rZ],A
03CE 18 pop A
03CF 5300 mov [__rY],A
03D1 18 pop A
03D2 5300 mov [__rX],A
03D4 18 pop A
03D5 5300 mov [__r11],A
03D7 18 pop A
03D8 5300 mov [__r10],A
03DA 18 pop A
03DB 5300 mov [__r9],A
03DD 18 pop A
03DE 5300 mov [__r8],A
03E0 18 pop A
03E1 5300 mov [__r7],A
03E3 18 pop A
03E4 5300 mov [__r6],A
03E6 18 pop A
03E7 5300 mov [__r5],A
03E9 18 pop A
03EA 5300 mov [__r4],A
03EC 18 pop A
03ED 5300 mov [__r3],A
03EF 18 pop A
03F0 5300 mov [__r2],A
03F2 18 pop A
03F3 5300 mov [__r1],A
03F5 18 pop A
03F6 5300 mov [__r0],A
03F8 18 pop A
03F9 60D5 mov REG[213],A
03FB 18 pop A
03FC 60D4 mov REG[212],A
03FE 18 pop A
03FF 60D3 mov REG[211],A
0401 18 pop A
0402 60D0 mov REG[208],A
0404 18 pop A
0405 .dbline 0 ; func end
0405 7E reti
0406 .dbend
0406 .dbfunc e Keyscan _Keyscan fV
0406 _Keyscan::
0406 .dbline -1
0406 71C0 or F,-64
0408 08 push A
0409 5DD0 mov A,REG[0xd0]
040B 08 push A
040C 5DD3 mov A,REG[0xd3]
040E 08 push A
040F 5DD4 mov A,REG[0xd4]
0411 08 push A
0412 5DD5 mov A,REG[0xd5]
0414 08 push A
0415 62D000 mov REG[0xd0],>__r0
0418 5100 mov A,[__r0]
041A 08 push A
041B 5100 mov A,[__r1]
041D 08 push A
041E 5100 mov A,[__r2]
0420 08 push A
0421 5100 mov A,[__r3]
0423 08 push A
0424 5100 mov A,[__r4]
0426 08 push A
0427 5100 mov A,[__r5]
0429 08 push A
042A 5100 mov A,[__r6]
042C 08 push A
042D 5100 mov A,[__r7]
042F 08 push A
0430 5100 mov A,[__r8]
0432 08 push A
0433 5100 mov A,[__r9]
0435 08 push A
0436 5100 mov A,[__r10]
0438 08 push A
0439 5100 mov A,[__r11]
043B 08 push A
043C 5100 mov A,[__rX]
043E 08 push A
043F 5100 mov A,[__rY]
0441 08 push A
0442 5100 mov A,[__rZ]
0444 08 push A
0445 10 push X
0446 4F mov X,SP
0447 3802 add SP,2
0449 .dbline 139
0449 ;
0449 ; void Keyscan()
0449 ; {
0449 .dbline 140
0449 ; PRT5DR = 0b11111110 ;
0449 6214FE mov REG[0x14],-2
044C .dbline 141
044C ; temp = PRT5DR & 0xF0 ;
044C 5D14 mov A,REG[0x14]
044E 21F0 and A,-16
0450 62D000 mov REG[0xd0],>_temp
0453 5300 mov [_temp],A
0455 .dbline 142
0455 ; if( temp != 0xF0 )
0455 3C00F0 cmp [_temp],-16
0458 A068 jz L36
045A .dbline 143
045A ; {
045A .dbline 144
045A ; switch(temp)
045A 5100 mov A,[_temp]
045C 5401 mov [X+1],A
045E 560000 mov [X+0],0
0461 5201 mov A,[X+1]
0463 11B0 sub A,-80
0465 62D000 mov REG[0xd0],>__r0
0468 5300 mov [__rY],A
046A 5200 mov A,[X+0]
046C 3180 xor A,-128
046E 1980 sbb A,(0 ^ 0x80)
0470 2A00 or A,[__rY]
0472 A040 jz L43
0474 D00D jnc L46
0476 X22:
0476 L45:
0476 3D0000 cmp [X+0],0
0479 B006 jnz X23
047B 3D0170 cmp [X+1],112
047E A03C jz L44
0480 X23:
0480 8040 xjmp L38
0482 L46:
0482 5201 mov A,[X+1]
0484 11D0 sub A,-48
0486 62D000 mov REG[0xd0],>__r0
0489 5300 mov [__rY],A
048B 5200 mov A,[X+0]
048D 3180 xor A,-128
048F 1980 sbb A,(0 ^ 0x80)
0491 C02F jc L38
0493 2A00 or A,[__rY]
0495 A015 jz L42
0497 X24:
0497 L47:
0497 3D0000 cmp [X+0],0
049A B006 jnz X25
049C 3D01E0 cmp [X+1],-32
049F A003 jz L41
04A1 X25:
04A1 801F xjmp L38
04A3 X18:
04A3 .dbline 145
04A3 ; {
04A3 L41:
04A3 .dbline 147
04A3 ; case 0b11100000 :
04A3 ; key = 0 ; break ;
04A3 62D000 mov REG[0xd0],>_key
04A6 550000 mov [_key],0
04A9 .dbline 147
04A9 8017 xjmp L39
04AB L42:
04AB .dbline 149
04AB ; case 0b11010000 :
04AB ; key = 1 ; break ;
04AB 62D000 mov REG[0xd0],>_key
04AE 550001 mov [_key],1
04B1 .dbline 149
04B1 800F xjmp L39
04B3 L43:
04B3 .dbline 151
04B3 ; case 0b10110000 :
04B3 ; key = 4 ; break ;
04B3 62D000 mov REG[0xd0],>_key
04B6 550004 mov [_key],4
04B9 .dbline 151
04B9 8007 xjmp L39
04BB L44:
04BB .dbline 153
04BB ; case 0b01110000 :
04BB ; key = 7 ; break ;
04BB 62D000 mov REG[0xd0],>_key
04BE 550007 mov [_key],7
04C1 .dbline 153
04C1 L38:
04C1 L39:
04C1 .dbline 155
04C1 ; }
04C1 ; }
04C1 L36:
04C1 .dbline 157
04C1 ;
04C1 ; PRT5DR = 0b11111101 ;
04C1 6214FD mov REG[0x14],-3
04C4 .dbline 158
04C4 ; temp = PRT5DR & 0xF0 ;
04C4 5D14 mov A,REG[0x14]
04C6 21F0 and A,-16
04C8 62D000 mov REG[0xd0],>_temp
04CB 5300 mov [_temp],A
04CD .dbline 159
04CD ; if( temp != 0xF0 )
04CD 3C00F0 cmp [_temp],-16
04D0 A068 jz L48
04D2 .dbline 160
04D2 ; {
04D2 .dbline 161
04D2 ; switch(temp)
04D2 5100 mov A,[_temp]
04D4 5401 mov [X+1],A
04D6 560000 mov [X+0],0
04D9 5201 mov A,[X+1]
04DB 11B0 sub A,-80
04DD 62D000 mov REG[0xd0],>__r0
04E0 5300 mov [__rY],A
04E2 5200 mov A,[X+0]
04E4 3180 xor A,-128
04E6 1980 sbb A,(0 ^ 0x80)
04E8 2A00 or A,[__rY]
04EA A040 jz L55
04EC D00D jnc L58
04EE X26:
04EE L57:
04EE 3D0000 cmp [X+0],0
04F1 B006 jnz X27
04F3 3D0170 cmp [X+1],112
04F6 A03C jz L56
04F8 X27:
04F8 8040 xjmp L50
04FA L58:
04FA 5201 mov A,[X+1]
04FC 11D0 sub A,-48
04FE 62D000 mov REG[0xd0],>__r0
0501 5300 mov [__rY],A
0503 5200 mov A,[X+0]
0505 3180 xor A,-128
0507 1980 sbb A,(0 ^ 0x80)
0509 C02F jc L50
050B 2A00 or A,[__rY]
050D A015 jz L54
050F X28:
050F L59:
050F 3D0000 cmp [X+0],0
0512 B006 jnz X29
0514 3D01E0 cmp [X+1],-32
0517 A003 jz L53
0519 X29:
0519 801F xjmp L50
051B X19:
051B .dbline 162
051B ; {
051B L53:
051B .dbline 164
051B ; case 0b11100000 :
051B ; key = 10 ; break ;
051B 62D000 mov REG[0xd0],>_key
051E 55000A mov [_key],10
0521 .dbline 164
0521 8017 xjmp L51
0523 L54:
0523 .dbline 166
0523 ; case 0b11010000 :
0523 ; key = 2 ; break ;
0523 62D000 mov REG[0xd0],>_key
0526 550002 mov [_key],2
0529 .dbline 166
0529 800F xjmp L51
052B L55:
052B .dbline 168
052B ; case 0b10110000 :
052B ; key = 5 ; break ;
052B 62D000 mov REG[0xd0],>_key
052E 550005 mov [_key],5
0531 .dbline 168
0531 8007 xjmp L51
0533 L56:
0533 .dbline 170
0533 ; case 0b01110000 :
0533 ; key = 8 ; break ;
0533 62D000 mov REG[0xd0],>_key
0536 550008 mov [_key],8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -