📄 2802d510.src
字号:
LD P3,A
LD P8,A ;P8 OUTUP LOW LEAVE
BITR IRQ2
bitr irq4
bits ie4
bitr nousedail_fg
noreset_int1
LD EA,#00H
LD I_DIALCOUNT,EA
LD O_DIALCOUNT,EA
LD EA,OUT_POINT
LD IN_POINT,EA
BITR STORE_FG
BITR MEMORY_FG
bitr rmute
BITR MUTE
BITR HFO
BITR DP
ld ea,#00h
ld key_value,ea
IN_STOP bitr spk_key_fg
BITR m_DIAL_FG ;BU NENG FUCK FUCK !!!
bitr irq0
BITR IRQ2
bitr irq4
bits ie0
bits ie2
bits ie4
bitr is0
bitr is1
bits ime
STOP ;IDLE DURING STOP & ONHOOK STOP
NOP
NOP
NOP ;OSCILLATION STABILIZE
NOP
NOP
NOP
NOP ;OSCILLATION STABILIZE
NOP
JPS MAIN
IN_STOP1 BTST HOLD2_FG
JPS IN_STOP2
IN_STOP3 BTST INUSE_1
JPS noreset_int1
JPS IN_STOP
IN_STOP2 BTST HOLD1_FG
JPS IN_STOP
IN_STOP4 BTST INUSE_2
JPS noreset_int1
JPS IN_STOP
;///// qpj debug add jun/27/2002
IN_STOP_fuck:
LD EA,#00H
LD I_DIALCOUNT,EA
LD O_DIALCOUNT,EA
LD EA,OUT_POINT
LD IN_POINT,EA
BITR STORE_FG
BITR MEMORY_FG
; bitr rmute
; BITR MUTE
ld ea,#00h
ld key_value,ea
bitr spk_key_fg
bitr nousedail_fg
bitr inuse_1
bitr inuse1_fg
bits inuse_2
bitr hold2_fg
bitr line2add
bits inuse2_fg
jps IN_STOP
;///// qpj debug add jun/27/2002
;==================INT2==INTERRUPT==KEYPAD==SCAN===========================
INT2:
PUSH HL
PUSH WX
PUSH YZ
PUSH EA
PUSH SB
BITR IS0
BITR IS1
btsf spk_key_fg
jps spk_pro
call onhook_scan ;qpj debug add
btst onhook_state
jps set_scan1
L_fuckfuck:
ld ea,#0ffh
ld pmg3,ea
call time0
call time0
call time0
call time0
jps set_scan
set_scan1:
btsf hfo ;spk_key_fg pm.pm.
jps L_fuckfuck ;qpj debug add !!!
bits pulldown
ld a,#0h ; set p7
ld pumod2,a
ld ea,#00h
ld pmg3,ea
ld a,#0h
ld p7,a
ld ea,#0ffh
ld pmg1,ea
bits p2.0
bits p2.1
bits p2.2
CALL TIME0
CALL TIME0
btst p7.3
jps set_scan2
di
bitr irq0
ld ea,#0ffh
LD PMG3,EA
bitr p6.1
bitr p6.3
call time0
call time0
jps set_scanb
set_scan2 ld ea,#7fh
ld pmg4,ea
bits p8.0
bits p8.1
bitr p2.0
bitr p2.1
bits p2.2
bits p2.3
bits p3.0
bits p3.1
bits p3.2
bits p3.3
call time0
call time0
btst p7.1
jps set_scan3
ld ea,#0ffh
ld pmg3,ea
bitr p6.1
bitr p6.3
jps set_scanb
set_scan3
bits p2.0
bits p2.1
bitr p8.0
bitr p8.1
call time0
call time0
btst p7.0
jps over_int2
ld ea,#0ffh
ld pmg3,ea
bitr p6.1
bitr p6.3
call time0
jps set_scanb
over_int2
bitr pulldown
bits nousedail_fg
ld a,#2h ; set p7
ld pumod2,a
ld a,#0h
ld key_count,a
jps over_int2a
set_scanb bitr pulldown
call p9_mode
ld a,#8h
ld pumod2,a
test_routine ld a,#4h
ld p9,a
;call time20
;ld a,#0h
;ld p9,a
;call time20
;jp test_routine
set_scan
LD A,#0001B
LD IMOD2,A
LD EA,#00H
LD KEY_VALUE,EA
LD KEY_COUNT,A
LD EA,#0FFH
LD PMG2,EA ;SET P4,P5 TO OUTPUT MODE
LD EA,#00H ;SET P2,P3 TO INPUT MODE
LD PMG1,EA
LD EA,#01111100B ;SET P8.0,P8.1 TO INPUT MODE
LD PMG4,EA
LD EA,#0F8H
LD PUMOD1,EA
LD A,#0eH
LD PUMOD2,A
LD E,#3H ;SCAN_KEY FINISH
RCF
LD A,#1111B
LD SCAN_WORD,A
SCAN_KEY LD A,SCAN_WORD
RRC A
LD SCAN_WORD,A
LD P7,A ;P7.3/P7.2/P7.1/P7.0 TO LOGIC "0"
SCAN_P2 LD A,P2
CPSE A,#0FH
CALL TEST_P7
JPS SCAN_P3
TEST_P7 BTST P7.3
CALL READ_KEY01
BTST P7.2
CALL READ_KEY02
BTST P7.1
CALL READ_KEY03
BTST P7.0
CALL READ_KEY04
RET
SCAN_P3 LD A,P3
CPSE A,#0FH
CALL TEST_P7
JPS SCAN_P80
SCAN_P80 BTSF P8.0
JPS SCAN_P81
CALL TEST_P7
SCAN_P81 BTST P8.1
CALL TEST_P7
SCF
DECS E
JPS SCAN_KEY
LD A,KEY_COUNT
CPSE A,#0H
JPS AWARD
RETURE:
ld ea,key_value
LD WX,#03H
CPSE EA,WX ;if equal skip
JPS re_start01
call p_spk
call onhook_scan
re_start01 LD A,#0001B
LD IMOD2,A ;KS4-KS7(P7) FALLING EDGE SELECT
ld ea,key_value
LD WX,#03H
CPSE EA,WX
nop ;JPS bbbb
call p6_mode
jps aaaa
bbbb LD EA,#00H
LD PMG3,EA ;P7 INPUT MODE /P6 0UTPUT MODE
LD A,#0eH
LD PUMOD2,A ;ENABLE P7 P6 P8 P9 PULL-UP RESISTORS
aaaa LD EA,#0F8H
LD PUMOD1,EA ;ENABLE P2 P3 P4 P5 PULL-UP RESISTORS
;DISABLE P1 PULL_UP RESISTOR
LD EA,#0FFH
LD PMG1,EA ;ENABLE P2,P3 TO OUTPUT MODE
LD PMG2,EA ;ENABLE P4,P5 TO OUTPUT MODE
LD EA,#01111111B
LD PMG4,EA ;ENABLE P8,P9 TO OUTPUT MODE
LD A,#0H
LD P2,A ;P2,P3, OUTPUT LOW LEAVE
LD P3,A
LD P8,A ;P8 OUTUP LOW LEAVE
BITR IRQ2
over_int2a
POP SB
POP EA
POP YZ
POP WX
POP HL
ei
RET
;------------------------------------------------------
spk_pro
bitr spk_key_fg
ld ea,#03h
ld key_value,ea
jps reture
AWARD LD A,KEY_COUNT
CPSE A,#1H
JPS RETURE
LD EA,KEY_VALUE
LD WX,#11H
CPSE EA,WX ;AWARD STORE KEY_VALUE
JPS IS_2 ;(1/2/3/4/5/6/7/8/9/0/*/#)
JPS STORE_IN ;&(FLASH/PALUSE)
IS_2 ; LD EA,KEY_VALUE
LD WX,#12H
CPSE EA,WX
JPS IS_3
JPS STORE_IN
IS_3 ; LD EA,KEY_VALUE
LD WX,#13H
CPSE EA,WX
JPS IS_4
JPS STORE_IN
IS_4 ; LD EA,KEY_VALUE
LD WX,#14H
CPSE EA,WX
JPS IS_5
JPS STORE_IN
IS_5 ; LD EA,KEY_VALUE
LD WX,#15H
CPSE EA,WX
JPS IS_6
JPS STORE_IN
IS_6 ; LD EA,KEY_VALUE
LD WX,#16H
CPSE EA,WX
JPS IS_7
JPS STORE_IN
IS_7 ; LD EA,KEY_VALUE
LD WX,#17H
CPSE EA,WX
JPS IS_8
JPS STORE_IN
IS_8 ; LD EA,KEY_VALUE
LD WX,#18H
CPSE EA,WX
JPS IS_9
JPS STORE_IN
IS_9 ; LD EA,KEY_VALUE
LD WX,#19H
CPSE EA,WX
JPS IS_0
JPS STORE_IN
IS_0 ; LD EA,KEY_VALUE
LD WX,#1AH
CPSE EA,WX
JPS IS_M
JPS STORE_IN
IS_M ; LD EA,KEY_VALUE ;M---*
LD WX,#21H
CPSE EA,WX
JPS IS_J ;J---#
JPS STORE_IN
IS_J ; LD EA,KEY_VALUE
LD WX,#22H
CPSE EA,WX
JPS IS_FLASH
JPS STORE_IN
IS_FLASH ; LD EA,KEY_VALUE
LD WX,#09H
CPSE EA,WX
JPS IS_PAUSE
JPS STORE_IN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -