📄 2802d510.src
字号:
IS_PAUSE ; LD EA,KEY_VALUE
LD WX,#07H
CPSE EA,WX
JPS RETURE
JPS STORE_IN
;--------------------------------------------------------------------------
STORE_IN
BTST DP
JPS RETURE
LD EA,I_DIALCOUNT
LD WX,EA
INCS WX
LD EA,WX
LD I_DIALCOUNT,EA
LD EA,I_DIALCOUNT
LD WX,#01H
CPSE EA,WX
JPS IS_33D
LD EA,#3FH ;
LD OUT_POINT,EA ;
JPS KEY_STORE0
IS_33D LD EA,I_DIALCOUNT
LD WX,#21H ;33 DIGITES
CPSE EA,WX
JPS is_34d
LD WX,#09H
LD EA,KEY_VALUE
CPSE EA,WX
jps key_33d
jps is_34d
key_33d ld EA,#20h
LD I_DIALCOUNT,EA
BITS OVERFLOW
BTST STORE_FG
JPS ADJOURN
CALL KEY_TONE
JPS RETURE
KEY_STORE0
BTSF STORE_FG
CALL STORE_TONE
BTSF STORE_FG ;
JPS KEY_STORE ;
LD WX,#07H
LD EA,KEY_VALUE
CPSE EA,WX
JPS KEY_STORE
LD EA,#3FH ;SET OUT_POINT TO 40H-1H=3FH
LD OUT_POINT,EA
BTSF OVERFLOW
JPS NOREDIAL
JPS RETURE
NOREDIAL CALL KEY_TONE
LD EA,IN_POINT
LD OUT_POINT,EA
JPS RETURE
KEY_STORE BITR OVERFLOW
LD EA,#I_DIALBUF
LD HL,EA
LD EA,KEY_VALUE
CALL V_INVERT
LD @HL,A
LD EA,HL
LD IN_POINT,EA
JPS RETURE
is_34d LD EA,I_DIALCOUNT
LD WX,#22H ;34 DIGITES
CPSE EA,WX
jps key_store1
LD EA,KEY_VALUE
LD WX,#07H
CPSE EA,WX
JPS nopause_34d
jps key_store1
nopause_34d bits ADJOURN_fg
call adjourn
call adjourn
bitr adjourn_fg
jps key_store1
KEY_STORE1
BTSF STORE_FG
CALL STORE_TONE
LD EA,IN_POINT
LD YZ,EA
INCS YZ
LD EA,YZ
LD HL,EA
LD EA,KEY_VALUE
LD WX,#07H
BTST STORE_FG
CPSE EA,WX
JPS V_STORE
DECS HL
LD A,@HL
CPSE A,#1110B
JPS GO_STORE
DECS HL
LD EA,HL
LD IN_POINT,EA
LD EA,#3FH ;SET OUT_POINT TO 40H-1H=3FH
LD OUT_POINT,EA
LD EA,I_DIALCOUNT
DECS EA
DECS EA
LD I_DIALCOUNT,EA
BTST OVERFLOW
JPS RETURE
;LD EA,IN_POINT
;LD OUT_POINT,EA
;CALL KEY_TONE
JPS RETURE
GO_STORE LD EA,HL
LD YZ,EA
INCS YZ
LD EA,YZ
LD HL,EA
V_STORE CALL V_INVERT
LD @HL,A
LD EA,HL
LD IN_POINT,EA
JPS RETURE
ADJOURN LD EA,#I_DIALBUF
LD HL,EA
LD WX,#1FH
STORE_LOOP INCS HL
LD A,@HL
DECS HL
LD @HL,A
INCS HL
DECS WX
JPS STORE_LOOP
LD EA,OUT_POINT
DECS EA
LD OUT_POINT,EA
LD EA,I_DIALCOUNT
DECS EA
LD I_DIALCOUNT,EA
LD EA,IN_POINT
DECS EA
LD IN_POINT,EA
btst adjourn_fg
JPS KEY_STORE1
ret
;-------------------------------------------------------------------------
V_INVERT LD EA,KEY_VALUE ;NUMBER DIAL_VALUE
LD WX,#11H ; 1 0001
CPSE EA,WX ; 2 0010
JPS V_COMPARE2 ; 3 0011
LD A,#1H ; 4 0100
RET ; 5 0101
V_COMPARE2 LD WX,#12H ; 6 0110
CPSE EA,WX ; 7 0111
JPS V_COMPARE3 ; 8 1000
LD A,#2H ; 9 1001
RET ; 0 1010
V_COMPARE3 LD WX,#13H ; * 1011
CPSE EA,WX ; # 1100
JPS V_COMPARE4 ;PALUSE 1101
LD A,#3H ;FLASHE 1110
RET
V_COMPARE4 LD WX,#14H
CPSE EA,WX
JPS V_COMPARE5
LD A,#4H
RET
V_COMPARE5 LD WX,#15H
CPSE EA,WX
JPS V_COMPARE6
LD A,#5H
RET
V_COMPARE6 LD WX,#16H
CPSE EA,WX
JPS V_COMPARE7
LD A,#6H
RET
V_COMPARE7 LD WX,#17H
CPSE EA,WX
JPS V_COMPARE8
LD A,#7H
RET
V_COMPARE8 LD WX,#18H
CPSE EA,WX
JPS V_COMPARE9
LD A,#8H
RET
V_COMPARE9 LD WX,#19H
CPSE EA,WX
JPS V_COMPARE0
LD A,#9H
RET
V_COMPARE0 LD WX,#1AH
CPSE EA,WX
JPS V_COMPARE_M
LD A,#1010B
RET
V_COMPARE_M LD WX,#21H
CPSE EA,WX
JPS V_COMPARE_J
LD A,#1011B
RET
V_COMPARE_J LD WX,#22H
CPSE EA,WX
JPS V_COMPARE_P
CALL FLASHSET
LD A,#1100B
RET
V_COMPARE_P LD WX,#07H
CPSE EA,WX
JPS V_COMPARE_F
LD A,#1101B
RET
V_COMPARE_F LD WX,#09H
CPSE EA,WX
JPS COUNT
LD A,#1110B
RET
;------------------------------------------------------------------------
READ_KEY01 PUSH EA
LD EA,#01H
BTST P2.0 ;LINE1 KEY
CALL INKEY_COUNT
LD EA,#02H ;LINE2 KEY
BTST P2.1
CALL INKEY_COUNT
LD EA,#03H ;SPK KEY
BTST P2.2
CALL INKEY_COUNT
LD EA,#04H ;CONF KEY
BTST P2.3
CALL INKEY_COUNT
LD EA,#05H ;MUTE KEY
BTST P3.0
CALL INKEY_COUNT
LD EA,#06H ;HOLD KEY
BTST P3.1
CALL INKEY_COUNT
LD EA,#07H ;RD/PA KEY
BTST P3.2
CALL INKEY_COUNT
LD EA,#08H ;STORE KEY
BTST P3.3
CALL INKEY_COUNT
LD EA,#09H ;FLASH KEY
BTST P8.0
CALL INKEY_COUNT
LD EA,#0AH ;VOL KEY
BTST P8.1
CALL INKEY_COUNT
POP EA
RET
READ_KEY02 PUSH EA
LD EA,#11H
BTST P2.0
CALL INKEY_COUNT ;1 KEY
LD EA,#12H
BTST P2.1
CALL INKEY_COUNT ;2 KEY
LD EA,#13H
BTST P2.2
CALL INKEY_COUNT ;3 KEY
LD EA,#14H
BTST P2.3
CALL INKEY_COUNT ;4 KEY
LD EA,#15H
BTST P3.0
CALL INKEY_COUNT ;5 KEY
LD EA,#16H
BTST P3.1
CALL INKEY_COUNT ;6 KEY
LD EA,#17H
BTST P3.2
CALL INKEY_COUNT ;7 KEY
LD EA,#18H
BTST P3.3
CALL INKEY_COUNT ;8 KEY
LD EA,#19H
BTST P8.0
CALL INKEY_COUNT ;9 KEY
LD EA,#1AH
BTST P8.1
CALL INKEY_COUNT ;0 KEY
POP EA
RET
READ_KEY03 PUSH EA
LD EA,#21H
BTST P2.0
CALL INKEY_COUNT ;* KEY
LD EA,#22H
BTST P2.1
CALL INKEY_COUNT ;# KEY
LD EA,#23H
BTST P2.2
CALL INKEY_COUNT ;M1 KEY
LD EA,#24H
BTST P2.3
CALL INKEY_COUNT ;M2 KEY
LD EA,#25H
BTST P3.0
CALL INKEY_COUNT ;M3 KEY
LD EA,#26H
BTST P3.1
CALL INKEY_COUNT ;M4 KEY
LD EA,#27H
BTST P3.2
CALL INKEY_COUNT ;M5 KEY
LD EA,#28H
BTST P3.3
CALL INKEY_COUNT ;M6 KEY
LD EA,#29H
BTST P8.0
CALL INKEY_COUNT ;M7 KEY
LD EA,#2AH
BTST P8.1
CALL INKEY_COUNT ;M8 KEY
POP EA
RET
READ_KEY04 PUSH EA
LD EA,#31H
BTST P2.0
CALL INKEY_COUNT ;M9 KEY
LD EA,#32H
BTST P2.1
CALL INKEY_COUNT ;M10 KEY
LD EA,#33H
BTST P2.2
CALL INKEY_COUNT ;M11 KEY
LD EA,#34H
BTST P2.3
CALL INKEY_COUNT ;M12 KEY
LD EA,#35H
BTST P3.0
CALL INKEY_COUNT ;M13 KEY
LD EA,#36H
BTST P3.1
CALL INKEY_COUNT ;M14 KEY
LD EA,#37H
BTST P3.2
CALL INKEY_COUNT ;M15 KEY
LD EA,#38H
BTST P3.3
CALL INKEY_COUNT ;MSG KEY
LD EA,#39H
BTST P8.0
CALL INKEY_COUNT ;UP KEY
LD EA,#3AH
BTST P8.1
CALL INKEY_COUNT ;DOWN KEY
POP EA
RET
INKEY_COUNT INCS KEY_COUNT
LD KEY_VALUE,EA
RET
;===================CHECK==KEY==FUNCTION====================================
KEY_FUNCTION
LD EA,KEY_VALUE
LD WX,#01H
CPSE EA,WX
JPS AWARD1
bitr irq0
JPS P_LINE1 ;LINE1
AWARD1 LD WX,#02H
CPSE EA,WX
JPS AWARD3 ;2
bitr irq0
JP P_LINE2 ;LINE2
;AWARD2 LD WX,#03H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -