📄 tesk500.asm
字号:
mov tr1_4 a
mov a p2
mov scanid a
mov a keyp2
and a scanid
mov tr5_8 a
mov a p3
mov scanid a
;;;; If IR occur ....disable p33 , p32
PAGE1
MOV TEMP0,#1111B
ifdef IR_Transmit
ifdef IR_Receive
;;; IR_Bidirection
PAGE1
MOV TEMP0,#0011B
else
;;;; IR_TRANSMIT
PAGE1
MOV TEMP0,#0111B
endif
elseifdef IR_Receive
;;;;; IR_RECEIVE
PAGE1
MOV TEMP0,#0111B
endif
mov a keyp3
AND A TEMP0
page0
and a scanid
mov tr9_12 a
mov a p6
mov scanid a
mov a keyp6
and a scanid
mov tr13_16 a
jmp @@_init
;******* check speech playing routine ok*************************
@@chk_s_play:
page0
mov a #0001b
and a v_state
caje #0000b @@no_v1_1
jmp @@with_v1
@@no_v1_1:
mov a #1111b
xor a p3_fva
and a p3state
mov p3state a
mov p3 a
jmp @@no_v1
@@with_v1:
page6
mov a fra1
mov temp1 #0100b
and a temp1
page0
caje #0100b @@no_v1_fsh
jmp @@v1_fsh
@@no_v1_fsh:
mov a #1111b
xor a p3_fva
and a p3state
mov p3state a
mov p3 a
jmp @@fv1_ok
@@v1_fsh:
page0
mov a p3_fva
or a p3state
mov p3state a
mov p3 a
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@fv1_ok:
page0
cjp1 @@no_v1 ;voice is playing
PLAY1 sil#xo.wav
mov a #1110b
and a v_state
mov v_state a
page0
MOV A #0010B
AND a DOUBLE_F
caje #0000b @@not_dubble_play1
page0
mov a #0010b
and a v_state
caje #0010b @@with_v2
page0
MOV A,#0101B
AND A,DOUBLE_F
MOV DOUBLE_F,A
@@not_dubble_play1:
PAGE0
mov a #0100b
and a v_state
caje #0000b @@fv1_ok_ret1
mov a #1011b
and a v_state
mov v_state a
PAGE2
mov a #0100b
and a enter_b
caje #0000b @@fv1_ok_ret2
mov a #1011b
and a enter_b
mov enter_b a
jmp @@scankey1
@@fv1_ok_ret2:
@@chk_p_delay1_ret2 @@no_v1 ;add in 04/10/2003 for ret2 problem
; page3 ;mark in 04/10/2003
; ret2 ;mark in 04/10/2003
@@fv1_ok_ret1:
PAGE2
mov a #0100b
and a enter_b
caje #0000b @@fv1_ok_ret11
mov a #1011b
and a enter_b
mov enter_b a
jmp @@scankey1
@@fv1_ok_ret11:
@@chk_delay8m_ret1 @@no_v1 ;add in 04/10/2003 for ret1 problem
; page3 ;mark in 04/10/2003
; ret1 ;mark in 04/10/2003
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@no_v1:
page0
mov a #0010b
and a v_state
caje #0010b @@with_v2
mov a #1111b
xor a p3_fvb
and a p3state
mov p3state a
mov p3 a
jmp @@no_s_play
@@with_v2:
mov a fra1
mov m15 #1000b
and a m15
caje #1000b @@no_v2_fsh
jmp @@v2_fsh
@@no_v2_fsh:
mov a #1111b
xor a p3_fvb
and a p3state
mov p3state a
mov p3 a
jmp @@fv2_ok
@@v2_fsh:
mov a p3_fvb
or a p3state
mov p3state a
mov p3 a
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@fv2_ok:
cjp2 @@no_s_play ;voice is playing
PLAY2 sil#xo.wav
mov a #1101b
and a v_state
mov v_state a
page0
MOV A #0010B
AND a DOUBLE_F
caje #0000b @@not_dubble_play2
page0
mov a #0001b
and a v_state
caje #0001b @@scankey1
page0
MOV A,#0101B
AND A,DOUBLE_F
MOV DOUBLE_F,A
;;;;;; mov DOUBLE_F #0000b
@@not_dubble_play2:
PAGE0
mov a #1000b
and a v_state
caje #0000b @@fv2_ok_ret1
mov a , #0111b
and a , v_state
mov v_state,a
PAGE2
mov a #1000b
and a enter_b
caje #0000b @@fv2_ok_ret2
mov a #0111b
and a enter_b
mov enter_b a
jmp @@scankey1
@@fv2_ok_ret2:
@@chk_p_delay1_ret2 @@no_s_play ;add in 04/10/2003 for ret2 problem
; page3 ;mark in 04/10/2003
; ret2 ;mark in 04/10/2003
@@fv2_ok_ret1:
PAGE2
mov a #1000b
and a enter_b
caje #0000b @@fv2_ok_ret11
mov a #0111b
and a enter_b
mov enter_b a
jmp @@scankey1
@@fv2_ok_ret11:
@@chk_delay8m_ret1 @@no_s_play ;add in 04/10/2003 for ret1 problem
; page3 ;mark in 04/10/2003
; ret1 ;mark in 04/10/2003
@@no_s_play:
page0
jmp @@chk_s_play_back
;*******delay routine ok *****************************************
;******* wavemark timer routine ok *****************************************
ifdef @_event_@
@@delaye:
page6
mov a e_delay8m
inca
mov e_delay8m a
caje #0000b @@e01_sec
jmp @@Check_4ms
@@e01_sec:
mov a e_delay01
inca
mov e_delay01 a
caje #0000b @@e_delay_ok
jmp @@Check_4ms
@@e_delay_ok:
page6
rcode
mov eventmark a ;load mark
rcode
mov e_delay8m a ;load event timer
rcode
mov e_delay01 a ;load event timer
jmp @@check_4ms
endif
;*******delay routine ok *****************************************
@@delay:
page1
mov a delay8m
inca
mov delay8m a
caje #0000b @@01_sec
mov a #1110b
and a m12
mov m12 a
jmp @@Check_Delay_s
@@01_sec:
mov delay8m #0100b
mov a delay01
inca
mov delay01 a
caje #0000b @@1sec
mov a #1110b
and a m12
mov m12 a
jmp @@Check_Delay_s
@@1sec:
mov delay01 #0110b
mov a delay1s
inca
mov delay1s a
caje #0000b @@delay_ok
mov a #1110b
and a m12
mov m12 a
jmp @@Check_Delay_s
@@delay_ok:
mov delay8m #0000b
PAGE1
mov a #1110b
and a m12
mov m12 a
page3
ret1
;*******delay routine ok *****************************************
@@delay1:
page1
mov a s_delay1
inca
mov s_delay1 a
caje #0000b @@s01_sec
mov a #1101b
and a m12
mov m12 a
jmp @@Check_Delay_p
@@s01_sec:
mov s_delay1 #0100b
mov a s_delay2
inca
mov s_delay2 a
caje #0000b @@s1sec
mov a #1101b
and a m12
mov m12 a
jmp @@Check_Delay_p
@@s1sec:
mov s_delay2 #0110b
mov a s_delay3
inca
mov s_delay3 a
caje #0000b @@s_delay_ok
mov a #1101b
and a m12
mov m12 a
jmp @@Check_Delay_p
@@s_delay_ok:
mov s_delay1 #0000b
PAGE1
mov a #1101b
and a m12
mov m12 a
page3
ret3
;*******delay routine ok *****************************************
@@delayp:
page2
mov a p_delay1
inca
mov p_delay1 a
caje #0000b @@p01_sec
page1
mov a #1011b
and a m12
mov m12 a
jmp @@Check_Delay_OK
@@p01_sec:
page2
mov p_delay1 #0100b
mov a p_delay2
inca
mov p_delay2 a
caje #0000b @@p1sec
page1
mov a #1011b
and a m12
mov m12 a
jmp @@Check_Delay_OK
@@p1sec:
page2
mov p_delay2 #0110b
mov a p_delay3
inca
mov p_delay3 a
caje #0000b @@p_delay_ok
page1
mov a #1011b
and a m12
mov m12 a
jmp @@Check_Delay_OK
@@p_delay_ok:
page2
mov p_delay1 #0000b
page1
mov a #1011b
and a m12
mov m12 a
page3
ret2
;*******timer routine ok**********************************
;*************** WaveMark Routine ***************
ifdef @_event_@
@@LOAD_EVENT_DATA:
page6
mov a #0001b
and a eventflag
caje #0000b @@no_event ;check event function enable
rcode
mov eventmark a ;load mark
rcode
mov e_delay8m a ;load event timer
rcode
mov e_delay01 a ;load event timer
ret1
@@no_event:
mov e_delay8m #0
mov e_delay01 #0
ret1
endif
;*************** WaveMark Routine END ***************
@@ChkRandReg:
page2
mov a Rand0Max
caje #0 @@ChkRand1
mov a Rand0
caje Rand0Max @@RstRand0
inca
mov Rand0 a
jmp @@ChkRandReg_Back
@@RstRand0:
mov Rand0 #0
@@ChkRand1:
mov a Rand1Max
caje #0 @@ChkRand2
mov a Rand1
caje Rand1Max @@RstRand1
inca
mov Rand1 a
jmp @@ChkRandReg_Back
@@RstRand1:
mov Rand1 #0
@@ChkRand2:
mov a Rand2Max
caje #0 @@ChkRandReg_Back
mov a Rand2
caje Rand2Max @@RstRand2
inca
mov Rand2 a
jmp @@ChkRandReg_Back
@@RstRand2:
mov Rand2 #0
jmp @@ChkRandReg_Back
;=============================================================
@@timer_ok:
; ##########################################################
; For IR function
; IR_TRANSMIT.... Disable P3.3
; IR_RECEIVE .... Disable P3.3
; IR_Bidirection .... Disable P3.2 and P3.3
; ##########################################################
ifdef IR_Transmit
ifdef IR_Receive
PAGE2
MOV A,#0011B
AND A,P3_GO1
MOV P3_GO1,A
MOV A,#1100B
OR A,P3_GO2
MOV P3_GO2,A
else
PAGE2
MOV A,#0111B
AND A,P3_GO1
MOV P3_GO1,A
MOV A,#1000B
OR A,P3_GO2
MOV P3_GO2,A
endif
elseifdef IR_Receive
PAGE2
MOV A,#0111B
AND A,P3_GO1
MOV P3_GO1,A
MOV A,#1000B
OR A,P3_GO2
MOV P3_GO2,A
endif
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
page0
mov a p3_fva
page2
or a p3_fv1
mov p3_fv1 #0000b
and a p3_go2
page0
mov p3_fva a
mov a p3_fvb
page2
or a p3_fv2
mov p3_fv2 #0000b
and a p3_go2
page0
mov p3_fvb a
@@toggle_1_back:
ifndef mrx_3
page2
mov a p2_go2
caje #1111b @@updateP3
;;;; For Drive & Sink function ;;;;;;;;;;;
MOV A,#1111B
XOR A,P2_GO2
PAGE7
OR A ,P2S_STATE
;DIRECT KEY MASK 2002/6/12
MOV P2S_STATE ,A
MOV A ,KEYP2
OR A ,P2S_STATE
MOV P2S,A
MOV P2S_STATE,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
page0
mov a p2state
page2
and a p2_go2
or a p2_go1
page0
mov p2state a
mov p2 a
;;;; For Drive & Sink function ;;;;;;;;;;;
PAGE2
MOV A,P2_GO2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -