⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.s

📁 cypresscy74294ic键盘和鼠标原码
💻 S
📖 第 1 页 / 共 3 页
字号:
	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 + -