📄 test56.asm
字号:
mov p2 a
mov a mrx_3
mov p2s a
mov a #1111b
mov p2s a
page0
mov a p6
mov tr45_48 a
endif
ifdef mrx_4
mov a #0001b
mov p3 a
mov a mrx_4
mov p3s a
mov a #1111b
mov p3s a
mov a p6
mov tr49_52 a
mov a mrx_4
caje #1110b @@update_over
mov a #0010b
mov p3 a
mov a mrx_4
mov p3s a
mov a #1111b
mov p3s a
mov a p6
mov tr53_56 a
mov a mrx_2
caje #1100b @@update_over
mov a #0100b
mov p3 a
mov a mrx_4
mov p3s a
mov a #1111b
mov p3s a
mov a p6
mov tr57_60 a
mov a mrx_4
caje #1000b @@update_over
mov a #1000b
mov p3 a
mov a mrx_4
mov p3s a
mov a #1111b
mov p3s a
mov a p6
mov tr61_64 a
endif
;;******************************************************
@@update_over:
ifdef @_key_type_@
mov a keyp2
caje #0 @f
mov a p2
and a keyp2
mov MTR2 a
@@:
mov a keyp3
caje #0 @f
mov a p3
and a keyp3
mov MTR3 a
@@:
mov a keyp6
caje #0 @f
mov a p6
and a keyp6
mov MTR6 a
@@:
endif
mov a #0000b
mov p2 a
ifdef mrx_2
mov a #0000b
mov p3 a
endif
;;******************************************************
rstc
jmp @@Update_Key_Bk
;;******************************************************
@@update_key:
mov a p1
and a keyp1
mov tr1_4 a
mov a p2
and a keyp2
mov tr5_8 a
mov a p3
and a keyp3
mov tr9_12 a
mov a p6
and a keyp6
mov tr13_16 a
rstc
jmp @@Update_Key_Bk
;;********************************************************
;;********************************************************
scankey:
page3
mov a #1000b ;check key bounce flag
and a debocr
caje #1000b @@Check_Debounce
@@Check_bounce_back:
mov a mrx
caje #1111b @@key0_ ;; direct key
ifdef mrx_2 ;; scan 2st block
page2
mov a skblock
caje #0001b @@Scan_block2
ifdef mrx_3 ;; scan 3st block
;page2
;mov a skblock
caje #0010b @@Scan_block3
ifdef mrx_4 ;; scan 4st block
;page2
;mov a skblock
caje #0011b @@Scan_block4
endif
endif
endif
ifdef @_key_type_@
page2
mov a skblock
caje #0100b @@Mixkey
endif
page3
mov a keyid
caje #0010b @@scan1
caje #0100b @@scan2
caje #1000b @@scan3
@@scan0:
page3
mov keyid #0001b ;keyid: scan loop
jmp @@trig_scan
@@scan0_back:
page1
mov a p1
xor a tr1_4
jmp @@trig_chk
@@scan1:
page3
mov keyid #0010b ;keyid: scan loop
jmp @@trig_scan
@@scan1_back:
page1
mov a p1
xor a tr5_8
jmp @@trig_chk
@@scan2:
page3
mov keyid #1000b
mov a mrx
caje #1100b @@clr_debounce
mov keyid #0100b ;keyid: scan loop
jmp @@trig_scan
@@scan2_back:
page1
mov a p1
xor a tr9_12
jmp @@trig_chk
@@scan3:
page3
mov keyid #1000b
mov a mrx
caje #1000b @@clr_debounce
jmp @@trig_scan
@@scan3_back:
page1
mov a p1
xor a tr13_16
jmp @@trig_chk
;;-----------------------------------------------------------------
ifdef mrx_2
@@Scan_block2:
page3
mov a keyid
caje #0010b @@scan5
caje #0100b @@scan6
caje #1000b @@scan7
@@scan4:
page3
mov keyid #0001b ;keyid: scan loop
jmp @@trig_scan_2
@@scan4_back:
page1
mov a p1
xor a tr17_20
jmp @@trig_chk
@@scan5:
page3
mov keyid #1000b ;;if (key#<21)
mov a mrx_2 ;;then skip the rest key
caje #1110b @@clr_debounce ;;
mov keyid #0010b ;keyid: scan loop
jmp @@trig_scan_2
@@scan5_back:
page1
mov a p1
xor a tr21_24
jmp @@trig_chk
@@scan6:
page3
mov keyid #1000b ;;if (key#<25)
mov a mrx_2 ;;then skip the rest key
caje #1100b @@clr_debounce ;;
mov keyid #0100b ;keyid: scan loop
jmp @@trig_scan_2
@@scan6_back:
page1
mov a p1
xor a tr25_28
jmp @@trig_chk
@@scan7:
page3
mov keyid #1000b ;;if (key#<29)
mov a mrx_2 ;;then skip the rest key
caje #1000b @@clr_debounce ;;
jmp @@trig_scan_2
@@scan7_back:
page1
mov a p1
xor a tr29_32
jmp @@trig_chk
endif
;;***************************************************************
;;-----------------------------------------------------------------
ifdef mrx_3
@@Scan_block3:
page3
mov a keyid
caje #0010b @@scan9
caje #0100b @@scan10
caje #1000b @@scan11
@@scan8:
page3
mov keyid #0001b ;keyid: scan loop
jmp @@trig_scan_3
@@scan8_back:
page1
mov a p6
xor a tr33_36
jmp @@trig_chk
@@scan9:
page3
mov keyid #1000b ;;if (key#<21)
mov a mrx_3 ;;then skip the rest key
caje #1110b @@clr_debounce ;;
mov keyid #0010b ;keyid: scan loop
jmp @@trig_scan_3
@@scan9_back:
page1
mov a p6
xor a tr37_40
jmp @@trig_chk
@@scan10:
page3
mov keyid #1000b ;;if (key#<25)
mov a mrx_3 ;;then skip the rest key
caje #1100b @@clr_debounce ;;
mov keyid #0100b ;keyid: scan loop
jmp @@trig_scan_3
@@scan10_back:
page1
mov a p6
xor a tr41_44
jmp @@trig_chk
@@scan11:
page3
mov keyid #1000b ;;if (key#<29)
mov a mrx_3 ;;then skip the rest key
caje #1000b @@clr_debounce ;;
jmp @@trig_scan_3
@@scan11_back:
page0
mov a p6
xor a tr45_48
jmp @@trig_chk
endif
;;***************************************************************
;;-----------------------------------------------------------------
ifdef mrx_4
@@Scan_block4:
page3
mov a keyid
caje #0010b @@scan13
caje #0100b @@scan14
caje #1000b @@scan15
@@scan12:
page3
mov keyid #0001b ;keyid: scan loop
jmp @@trig_scan_4
@@scan12_back:
page0
mov a p6
xor a tr49_52
jmp @@trig_chk
@@scan13:
page3
mov keyid #1000b ;;if (key#<21)
mov a mrx_4 ;;then skip the rest key
caje #1110b @@clr_debounce ;;
mov keyid #0010b ;keyid: scan loop
jmp @@trig_scan_4
@@scan13_back:
page0
mov a p6
xor a tr53_56
jmp @@trig_chk
@@scan14:
page3
mov keyid #1000b ;;if (key#<25)
mov a mrx_4 ;;then skip the rest key
caje #1100b @@clr_debounce ;;
mov keyid #0100b ;keyid: scan loop
jmp @@trig_scan_4
@@scan14_back:
page0
mov a p6
xor a tr57_60
jmp @@trig_chk
@@scan15:
page3
mov keyid #1000b ;;if (key#<29)
mov a mrx_4 ;;then skip the rest key
caje #1000b @@clr_debounce ;;
jmp @@trig_scan_4
@@scan15_back:
page0
mov a p6
xor a tr61_64
jmp @@trig_chk
endif
;;******************************
;;------ mixkey ---------------
;;******************************
ifdef @_key_type_@
@@Mixkey:
page3
mov a keyid
caje #0011b @@MKEYP3_
caje #0110b @@MKEYP6_
@@MKEYP2_:
mov a p2
mov keyid a
mov a keyp2
and a keyid
mov keyid #0101b
page1
xor a Mtr2
jmp @@trig_chk
@@Mkeyp3_:
mov a p3
mov keyid a
mov a keyp3
and a keyid
mov keyid #0011b
page1
xor a Mtr3
jmp @@trig_chk
@@Mkeyp6_:
mov a p6
mov keyid a
mov a keyp6
and a keyid
mov keyid #0110b
page1
xor a Mtr6
jmp @@trig_chk
endif
;;********************************************
;;------ direct key ------------------------
;;********************************************
@@key0_:
page3
mov a keyid
caje #0010b @@key1_
caje #0100b @@key2_
caje #1000b @@key3_
mov a p1
mov keyid a
mov a keyp1
and a keyid
mov keyid #0001b
page1
xor a tr1_4
jmp @@trig_chk
@@key1_:
mov a p2
mov keyid a
mov a keyp2
and a keyid
mov keyid #0010b
page1
xor a tr5_8
jmp @@trig_chk
@@key2_:
mov a p3
mov keyid a
mov a keyp3
and a keyid
mov keyid #0100b
page1
xor a tr9_12
jmp @@trig_chk
@@key3_:
mov a p6
mov keyid a
mov a keyp6
and a keyid
mov keyid #1000b
page1
xor a tr13_16
jmp @@trig_chk
;;************************************************************
@@trig_scan:
ifdef mrx_2
page6
mov a p3state ;;clear P3
mov p3 a ;;
endif
page6
mov a p2state
page3
or a keyid
mov p2 a
mov a mrx
mov p2s a
mov a #1111b
mov p2s a
mov a keyid
caje #0001b @@scan0_back
caje #0010b @@scan1_back
caje #0100b @@scan2_back
jmp @@scan3_back
;;*******************************************************************
;;*************************************************
ifdef mrx_2
@@trig_scan_2:
page6
mov a p2state ;;clear P2
mov p2 a ;;
mov a p3state
page3
or a keyid
mov p3 a
mov a mrx_2
mov p3s a
mov a #1111b
mov p3s a
mov a keyid
caje #0001b @@scan4_back
caje #0010b @@scan5_back
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -