📄 main.s
字号:
asr A
asr A
asr A
asr A
and A,3
mov [__r0],A
and [__r0],1
cmp [__r0],1
jnz L94
.dbline 410
; }
.dbline 411
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [__r0],A
tst [__r0],4
jz L96
.dbline 412
; }
.dbline 414
; }
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
asr A
asr A
asr A
asr A
and A,15
mov [__r0],A
mov A,[X-5]
mov [__r3],A
mov A,[X-6]
mov REG[0xd5],A
mov A,[__r0]
mvi [__r3],A
.dbline 416
; }
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
and A,15
mov [X+1],A
.dbline 417
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+2
adc [__r0],>_FirstKeyArray+2
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [X+0],A
.dbline 418
; }
xjmp L97
L96:
.dbline 420
; }
; }
mov REG[0xd0],>__r0
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray
adc [__r0],>_FirstKeyArray
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
xjmp L69
L97:
.dbline 422
; }
; }
L94:
.dbline 424
; }
; }
mov REG[0xd0],>_KeyProStatus
mov A,[_KeyProStatus]
mov REG[0xd0],>__r0
asr A
asr A
asr A
asr A
and A,15
mov [__r0],A
and [__r0],1
cmp [__r0],1
jnz L102
.dbline 425
; }
.dbline 426
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [__r0],A
tst [__r0],1
jz L104
.dbline 427
; }
.dbline 429
; }
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
asr A
asr A
asr A
asr A
and A,15
mov [__r0],A
mov A,[X-5]
mov [__r3],A
mov A,[X-6]
mov REG[0xd5],A
mov A,[__r0]
mvi [__r3],A
.dbline 431
; }
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+1
adc [__r0],>_FirstKeyArray+1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
and A,15
mov [X+1],A
.dbline 432
; }
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray+2
adc [__r0],>_FirstKeyArray+2
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [X+0],A
.dbline 433
; }
xjmp L105
L104:
.dbline 435
; }
; }
mov REG[0xd0],>__r0
mov A,[X-4]
mov [__r1],A
mov A,0
push A
mov A,[__r1]
push A
mov A,0
push A
mov A,3
push A
xcall __mul16
add SP,-4
mov A,[__rX]
mov [__r1],A
mov A,[__rY]
mov [__r0],A
add [__r1],<_FirstKeyArray
adc [__r0],>_FirstKeyArray
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
xjmp L69
L105:
.dbline 437
; }
; }
L102:
.dbline 440
; }
; }
; }
mov A,[X+1]
mov [X+3],A
mov [X+2],0
cmp [X+2],0
jnz X22
cmp [X+3],1
jz L113
X22:
cmp [X+2],0
jnz X23
cmp [X+3],4
jz L115
X23:
mov A,[X+3]
sub A,1
mov A,[X+2]
xor A,-128
sbb A,(0 ^ 0x80)
jc L110
X24:
L119:
cmp [X+2],0
jnz X25
cmp [X+3],8
jz L117
X25:
xjmp L110
X18:
.dbline 441
; }
L113:
.dbline 443
; }
; }
mov REG[0xd0],>__r0
mov A,[X+0]
mov [__r1],A
mov [__r0],0
add [__r1],<_ArrowKeyArray-1
adc [__r0],>_ArrowKeyArray-1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [X+0],A
.dbline 444
; }
xjmp L111
L115:
.dbline 446
; }
; }
mov REG[0xd0],>__r0
mov A,[X+0]
mov [__r1],A
mov [__r0],0
add [__r1],<_NumKeyArray-1
adc [__r0],>_NumKeyArray-1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [X+0],A
.dbline 447
; }
xjmp L111
L117:
.dbline 449
; }
; }
mov REG[0xd0],>__r0
mov A,[X+0]
mov [__r1],A
mov [__r0],0
add [__r1],<_ShiftKeyArray-1
adc [__r0],>_ShiftKeyArray-1
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [X+0],A
.dbline 450
; }
L110:
L111:
.dbline 452
; }
; }
mov A,[X+0]
mov REG[0xd0],>__r0
.dbline -2
L69:
add SP,-4
pop X
.dbline 0 ; func end
ret
.dbsym l TabIndex 1 c
.dbsym l ChrIndex 0 c
.dbsym l AppendKeycode -6 pc
.dbsym l RealKeyNum -4 c
.dbend
.dbfunc e KeyPressMain _KeyPressMain fc
; GetKeys -> X+1
; RealKeyNum -> X+0
_KeyPressMain::
.dbline -1
push X
mov X,SP
add SP,2
.dbline 460
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 467
; }
; }
; }
; }
; }
; }
; }
xcall _ScanAllKey
mov REG[0xd0],>__r0
mov [X+1],A
.dbline 468
; }
mov A,2
cmp A,[X+1]
jnc L121
X26:
.dbline 469
; }
mov REG[0xd0],>__r0
mov A,0
xjmp L120
L121:
.dbline 478
; }
; }
; }
; }
; }
; }
; }
; }
; }
xcall _CalcRealKeyNum
mov REG[0xd0],>__r0
mov [X+0],A
.dbline 479
; }
cmp [X+0],0
jnz L123
.dbline 480
; }
mov A,0
xjmp L120
L123:
.dbline 482
; }
; }
dec [X+0]
.dbline 488
; }
; }
; }
; }
; }
; }
mov A,>_USB_KeyAct
push A
mov A,<_USB_KeyAct
push A
mov A,[X+0]
push A
xcall _SearchKeyTab
add SP,-3
mov REG[0xd0],>_USB_KeyAct
mov [_USB_KeyAct+1],A
.dbline 490
; }
; }
cmp [_USB_KeyAct+1],0
jz L126
.dbline 491
; }
.dbline 494
; }
; }
; }
mov A,-96
cmp A,[_USB_KeyAct+1]
jnc L129
X27:
.dbline 495
; }
.dbline 496
; }
mov REG[0xd0],>_USB_KeyAct
mov A,[_USB_KeyAct+1]
push A
xcall _ChangeKeyStatus
add SP,-1
.dbline 497
; }
mov A,0
push A
mov A,50
push A
xcall _BeepDelayXXms
.dbline 498
; }
mov A,1
push A
mov A,-12
push A
xcall _delay_ms
add SP,-4
.dbline 499
; }
mov REG[0xd0],>__r0
mov A,0
xjmp L120
L129:
.dbline 502
; }
; }
; }
mov REG[0xd0],>__r0
mov A,1
xjmp L120
L126:
.dbline 504
; }
; }
mov REG[0xd0],>__r0
mov A,0
.dbline -2
L120:
add SP,-2
pop X
.dbline 0 ; func end
ret
.dbsym l GetKeys 1 c
.dbsym l RealKeyNum 0 c
.dbend
.area data(ram, con, rel)
.dbfile ./CSD_KeyProcess.c
_abKeyboardData::
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.dbfile ./main.c
.dbsym e abKeyboardData _abKeyboardData A[8:8]c
.area data(ram, con, rel)
.dbfile ./main.c
.area text(rom, con, rel)
.dbfile ./main.c
.dbfunc e main _main fV
_main::
.dbline -1
.dbline 43
.dbline 44
or F, 01h
.dbline 46
push X
xcall _Beep_Start
.dbline 46
mov A,0
xcall _Beep_Switch
.dbline 48
xcall _LED_ShiftCAP_Start
.dbline 48
mov A,0
xcall _LED_ShiftCAP_Switch
.dbline 50
xcall _CSD_1_Start
.dbline 51
xcall _CSD_1_InitializeBaselines
.dbline 52
xcall _CSD_1_SetDefaultFingerThresholds
.dbline 54
mov X,3
mov A,0
xcall _USBFS_1_Start
pop X
L134:
.dbline 56
L135:
.dbline 56
push X
xcall _USBFS_1_bGetConfiguration
mov REG[0xd0],>__r0
pop X
cmp A,0
jz L134
.dbline 58
push X
mov A,0
push A
push A
mov A,8
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
mov A,1
push A
xcall _USBFS_1_LoadInEP
add SP,-6
pop X
.dbline 61
mov A,0
push A
mov A,8
push A
mov A,0
push A
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
xcall _memsetLMM
add SP,-6
.dbline 62
mov REG[0xd0],>_KB_empty_cnt
mov [_KB_empty_cnt+1],0
mov [_KB_empty_cnt],0
.dbline 62
mov REG[0xd0],>_KB_save
mov [_KB_save],0
.dbline 62
mov REG[0xd0],>_KeyPressMainFlg
mov [_KeyPressMainFlg],0
xjmp L138
L137:
.dbline 64
.dbline 65
mov A,0
push A
mov A,5
push A
mov A,0
push A
push A
mov A,>_ScanArrayImage
push A
mov A,<_ScanArrayImage
push A
xcall _memsetLMM
add SP,-6
.dbline 66
xcall _KeyPressMain
mov REG[0xd0],>_KeyPressMainFlg
mov [_KeyPressMainFlg],A
L140:
.dbline 67
L141:
.dbline 67
push X
mov A,1
xcall _USBFS_1_bGetEPAckState
pop X
cmp A,0
jz L140
.dbline 70
mov REG[0xd0],>_KeyPressMainFlg
cmp [_KeyPressMainFlg],1
jnz L143
.dbline 71
.dbline 72
mov REG[0xd0],>_USB_KeyAct
mov A,[_USB_KeyAct+1]
mov REG[0xd0],>_KB_save
cmp A,[_KB_save]
jnz L145
mov REG[0xd0],>_KB_empty_cnt
mov A,[_KB_empty_cnt+1]
sub A,1
mov A,[_KB_empty_cnt]
xor A,-128
sbb A,(0 ^ 0x80)
jnc L145
X29:
.dbline 73
xjmp L138
L145:
.dbline 75
.dbline 76
mov REG[0xd0],>_KB_empty_cnt
mov [_KB_empty_cnt+1],0
mov [_KB_empty_cnt],0
.dbline 76
mov REG[0xd0],>_USB_KeyAct
mov A,[_USB_KeyAct+1]
mov REG[0xd0],>_KB_save
mov [_KB_save],A
.dbline 77
.dbline 79
mov A,0
push A
mov A,50
push A
xcall _BeepDelayXXms
.dbline 80
mov A,0
push A
mov A,8
push A
mov A,0
push A
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
xcall _memsetLMM
add SP,-8
.dbline 81
mov REG[0xd0],>_USB_KeyAct
mov A,[_USB_KeyAct]
mov REG[0xd0],>_abKeyboardData
mov [_abKeyboardData],A
.dbline 82
mov REG[0xd0],>_USB_KeyAct
mov A,[_USB_KeyAct+1]
mov REG[0xd0],>_abKeyboardData
mov [_abKeyboardData+2],A
.dbline 83
push X
mov A,1
push A
mov A,0
push A
mov A,8
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
mov A,1
push A
xcall _USBFS_1_LoadInEP
add SP,-6
pop X
.dbline 84
mov A,0
push A
mov A,8
push A
mov A,0
push A
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
xcall _memsetLMM
add SP,-6
L151:
.dbline 85
L152:
.dbline 85
push X
mov A,1
xcall _USBFS_1_bGetEPAckState
mov REG[0xd0],>__r0
pop X
cmp A,0
jz L151
.dbline 86
push X
mov A,1
push A
mov A,0
push A
mov A,8
push A
mov A,>_abKeyboardData
push A
mov A,<_abKeyboardData
push A
mov A,1
push A
xcall _USBFS_1_LoadInEP
add SP,-6
pop X
.dbline 87
xjmp L144
L143:
.dbline 88
.dbline 89
mov REG[0xd0],>_KB_empty_cnt
inc [_KB_empty_cnt+1]
adc [_KB_empty_cnt],0
.dbline 90
L144:
.dbline 91
L138:
.dbline 63
xjmp L137
X28:
.dbline -2
.dbline 92
L133:
.dbline 0 ; func end
jmp .
.dbend
.area data(ram, con, rel)
.dbfile ./main.c
_KeyPressMainFlg::
.byte 0
.dbsym e KeyPressMainFlg _KeyPressMainFlg c
.area data(ram, con, rel)
.dbfile ./main.c
_KB_save::
.byte 0
.dbsym e KB_save _KB_save c
.area data(ram, con, rel)
.dbfile ./main.c
_KB_empty_cnt::
.byte 0,0
.dbsym e KB_empty_cnt _KB_empty_cnt I
.area data(ram, con, rel)
.dbfile ./main.c
_KeyErrCnt::
.byte 0
.dbfile ./CSD_KeyProcess.c
.dbsym e KeyErrCnt _KeyErrCnt c
.area data(ram, con, rel)
.dbfile ./CSD_KeyProcess.c
_USB_KeyAct::
.byte 0,0
.dbsym e USB_KeyAct _USB_KeyAct A[2:2]c
.area data(ram, con, rel)
.dbfile ./CSD_KeyProcess.c
_KeyProStatus::
.byte 0
.dbsym e KeyProStatus _KeyProStatus X
.area data(ram, con, rel)
.dbfile ./CSD_KeyProcess.c
_ScanArrayImage::
.byte 0,0,0,0,0
.dbsym e ScanArrayImage _ScanArrayImage A[5:5]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -