📄 nesp.src
字号:
;
;function: shock-proof mode off
;procedure: SOFT_MUTE-------
; WAIT 23.2MS----- step 1.
; STOP_ENCODE_DECODE(8001H,wait 1ms, CLEAR_WR_RD_ADR)-----
; CLV_1X |
; SET_THROUGH_MODE |step 2
; SOFT_UNMUTE---------------------------------------------
;
Espoff:: ld by_esp_task,#n_esp_off10
and by_flag4,#~b4_svo_B ;loop_lnk
call Svomute
call esp_mute_cmd
ld r13,#00000001b ;stop encoding and decoding
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
; CALL Clvstop
call Cda1x
ret
;
;function: shock-proof mode on
;procedure: CLV_2X --
; SOFT_MUTE(8320H) | step 1,wait servo stable
; CLEAR_WR_RD_ADR(8051H)--
; START_ENCODE(8081H)-----
; START_DECODE(80A1H) | step 2
; goto ESP_ENCODE_STEP---------
;
Espon:: ld by_esp_task,#n_esp_on10
call Svomute
espon2: call esp_mute_cmd
espon3: call Cda2x
; ldw rr12,#15
; call Adjsvotime
call hold_cnnt_time
call svotime_2_esptime
tm by_flag1,#b1_pbt_loop | b1_pbt_scan2
jr nz,espoexit
ldw rr12,#-15
call Adjsvotime
ret
;
;move servo play time to esp play time
;
svotime_2_esptime:
ld by_esp_min2,by_svo_min_play
ld by_esp_sec2,by_svo_sec_play
ld by_esp_frm2,by_svo_frm_play
ld by_esp_trk2,by_svo_trk_play
ret
;
;move esp play time to servo play time
;
esptime_2_svotime::
ld by_svo_min_play,by_esp_min2
ld by_svo_sec_play,by_esp_sec2
ld by_svo_frm_play,by_esp_frm2
ld by_svo_trk_play,by_esp_trk2
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: restart a encode & decode procedure
; SOFT_MUTE
; WAIT 23.2MS
; STOP_ENCODE_DECODE(8001H)
; INIT_INPUT_BUFFER(8000H,8001H)
; goto ESP_ON
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Esprestartpause::
or by_esp_flag, #b_esp_pause
jr esp_next1
Esprestart::
esp_next: and by_esp_flag,#~b_esp_pause
esp_next1: ld by_esp_task,#n_esp_skip10
and by_esp_flag,#~b_esp_disc_over
ld r13,#10100101b ;stop connect
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
; call Delay1ms
; call Delay1ms
jr espon2
.if 1
Espscan:: and by_esp_flag,#~b_esp_pause
and by_esp_flag,#~b_esp_disc_over
; call esp_mute_cmd
; call reset_wr_rd_ptr ;esp_rev mask, 20030107
; call hold_cnnt_time ;esp_rev mask, 20030107
; call svotime_2_esptime ;esp_rev mask, 20030107
ld r13,#00100001b ;esp_rev ;stop encode, connect
call esp_cmd_80h ;esp_rev ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
; call Delay1ms
; call Init5907inputbuf
; ld r13,#10100001b ;start encode, decode
; call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
; call esp_unmute
; jr espscan1 ;loop_lnk
; tm by_flag1,#b1_pbt_scan | b1_pbt_scan2
; jr nz,espscan1
;loop
ld by_esp_task,#n_esp_on20
clr by_esp_timer
jp espon1 ;3
espscan1: ld by_esp_task,#n_esp_chk
and by_svo_flag8,#~b8_svo_skip_err
or by_time_flag,#b_esp_100ms
espsexit: ret
.endif
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: pause key
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Esppause:: or by_esp_flag,#b_esp_pause
cp by_esp_task,#n_esp_chk
jr ult,rete10
ld r13,#10000001b ;stop decoding
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
ld by_esp_task,#n_esp_pause10
jr esp_mute_cmd
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: pause release key
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Esppauserls:: and by_esp_flag,#~b_esp_pause
ld r13,#10100001b ;start decoding
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
call esp_unmute
rete10: ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: stop key
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Espstop:: call esptime_2_svotime
ld by_esp_task,#n_esp_stop10
and by_esp_flag,#~b_esp_pause
esp_mute_cmd:: ld r13,#01000000b ;mute
call esp_cmd_83h
ld by_esp_timer,#12 ;延时24ms
or by_esp_flag,#b_esp_mute
ret
;================================================================
;esp on/off
;================================================================
;
;
;
esp_off_10: cp by_esp_timer,#0
jp ne,rete05
call reset_wr_rd_ptr ;noise_esp_off
; call Svomute
call Delay1ms
call Init5907inputbuf ;noise_esp_off
; call esp_through_mode
call esptime_2_svotime
; call Cda1x
call ClrQstatus
; call Init5907inputbuf ;noise_esp_off
call esp_through_mode
call esp_unmute
clr by_esp_flag2
clr by_esp_flag3
clr by_esp_task
tm by_flag1,#b1_pbt_scan2
jr z,espoff0
SYS_UNMUTE
espoff0 or by_svo_flag8,#b8_svo_skip_err
and by_svo_flag8,#~b8_svo_dataerr
tm by_esp_flag,#b_esp_pause
jp z,Playtime
and by_esp_flag,#~b_esp_pause
ld by_svo_utl,#n_svoutl_pause
ret
;
;
;
esp_on_10: ;call Loopspec
cp by_esp_timer,#0
jr ne,rete05
ld r13,#00000001b ;stop decoding
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
ld tmr_100ms_esp,#150 ;15s
ld by_esp_task,#n_esp_on20
call Delay1ms ;jxd_021223
call reset_wr_rd_ptr
call Delay1ms ;jxd_021223
call Init5907inputbuf ;jxd_021223
; LD R13,#0
; CALL esp_cmd_80h
cp by_svo_utl,#n_svoutl_pause
jr ne,espon1
or by_esp_flag,#b_esp_pause
espon1: ;ld by_esp_min2,by_svo_min_play
;ld by_esp_sec2,by_svo_sec_play
;ld by_esp_frm2,by_svo_frm_play
;ld by_esp_trk2,by_svo_trk_play
call ClrQstatus
call Playtime
and by_svo_flag8,#~b8_svo_dataerr
or by_svo_flag8,#b8_svo_skip_err
espon5 call esp_skip_reset
esprevrst: and by_esp_flag,#~b_esp_rev
clr by_esp_rev
clr by_esp_rtime
clr by_esp_rtime+1
ret
esp_skip_reset: and by_esp_flag,#~b_esp_skip
; and by_svo_flag8,#~b8_svo_skip_stat
; clr by_esp_jmp_cnt
ld r13,#by_esp_sbuf
ld pp,#10h
esp_skip_rst1: clr @r13
inc r13
clr @r13
inc r13
cp r13,#by_esp_sbuf+20
jr ne,esp_skip_rst1
clr pp
rete05: ret
;
;
;
esp_on_20: ;call Loopspec
;cp by_esp_timer,#0
;jr ne,rete05
; LD R13,#1
; call esp_cmd_80h
; call svotime_2_esptime
cp by_svo_utl,#n_svoutl_play ;seek ok
jr eq,espon23
tm by_svo_flag8,#b8_svo_dataerr
jr z,rete05
and by_svo_flag8,#~b8_svo_dataerr
inc by_esp_jmp_cnt
cp by_esp_jmp_cnt,#2
jr ult,rete05
clr by_esp_jmp_cnt
jr espon24
espon23: ;tm by_esp_flag,#b_esp_lnkwait
;jr nz,espon25
;or by_esp_flag,#b_esp_lnkwait
;ld by_esp_timer,#14
;ret
espon25 ;cp by_esp_timer,#0
;jr eq,espon26
;ret
espon26 ;and by_esp_flag,#~b_esp_lnkwait
call chklnktime
jr nc,espon22
espon24: call esp_chk_jc1 ;by_esp_min1+37f
ld by_svo_min_play,by_esp_min1
ld by_svo_sec_play,by_esp_sec1
ld by_svo_frm_play,by_esp_frm1
jp Playtime
espon22: tm by_flag1,#b1_pbt_loop | b1_pbt_scan2
jr nz,espon21
cp r4,#2 ;10
jr ule,espon21
tm by_svo_flag10,#b10_svo_fwd
jp nz,Playtime
ret
espon21: and by_svo_flag8,#~b8_svo_dataerr
; LD R13,#1
; call esp_cmd_80h
ld r13,#10000001b ;start encode, decode
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
call hold_cnnt_time
; call esprefresh
; call esp_unmute ;tmp
ld tmr_mute_2ms,#7
ld by_esp_task,#n_esp_chk
and by_svo_flag8,#~b8_svo_skip_err
ret
Loopspec tm by_flag1,#b1_pbt_loop
jr z,rete05
tm by_flag4,#b4_loop_key
jr nz,rete05
jp esprefresh
;==========================================================================
esp_stop_10: cp by_esp_timer,#0
jp ne,rete05
ld r13,#00000001b
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
call Delay1ms
call reset_wr_rd_ptr
ld by_esp_task,#n_esp_stop20
ret
;==========================================================================
esp_skip_10: cp by_esp_timer,#0
jr ne,rete09
; call reset_wr_rd_ptr
; call Delay1ms
; call Init5907inputbuf
; LD R13,#0
; CALL esp_cmd_80h
ld by_esp_task,#n_esp_on10
ret
esp_skip_20: ret
;
;
;
Init5907inputbuf:
LD R13,#0
CALL esp_cmd_80h
LD R13,#1
jr esp_cmd_80h
;==========================================================================
esp_pause_10: cp by_esp_timer,#0
jr ne,rete09
ld by_esp_task,#n_esp_chk
rete09: ret
;==========================================================================
esp_unmute: ld r13,#00000000b ;unmute
and by_esp_flag,#~b_esp_mute
esp_cmd_83h: ld r12,#83h
jr esp_write_command
;
;
;
esp_through_mode:
ld r13,#00000001b
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
call Delay1ms
ld r13,#00000000b
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
ret
;
;
;
reset_wr_rd_ptr:
ld r13,#01010001b
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
ld r13,#01010001b
call esp_cmd_80h ;en,wacl,de,racl,dcn2,dcn1,waqv,sys
ret
;
;en,wacl,de,racl,dcn2,dcn1,waqv,sys
;
esp_cmd_80h: tm by_esp_flag,#b_esp_pause
jr z,esp_cmd_8011
and r13,#11011111b ;stop decode
esp_cmd_8011: ld r12,#80h
jr esp_write_command
;==========================================================================
; communication with 5907
;==========================================================================
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: send a command and data to 5907
;input: r12=commond, r13=data
;output:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
esp_write_command:
call esp_wr_8bit
ld r13,r12
esp_wr_cmd1: call esp_wr_8bit
sb0
and port_esp_ymld,#~pin_ymld
nop
nop
or port_esp_ymld,#pin_ymld ;get command run
ret
;
;function: send one byte to 5907
;input: r13=data
;output:
;
esp_wr_8bit: sb0
ld r2,#8h
esp_wr_lp: rl r13
and port_esp_ymclk,#~pin_ymclk
nop
ldb port_esp_ymdata.ymdata,r13
nop
or port_esp_ymclk,#pin_ymclk
djnz r2,esp_wr_lp
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: send a command to 5907, then read one byte from 5907
;input:r13=commond,
;output:r13=data read
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
esp_read1_command:
call esp_wr_cmd1
jr esp_rd_8bit
;
;function: read one byte from 5907
;input:
;output: r13=data read
;
esp_rd_8bit: sb0
ld r2,#8h
esp_rd_lp: and port_esp_ymclk,#~pin_ymclk
nop
nop
rl r13
or port_esp_ymclk,#pin_ymclk
ldb r13,port_esp_zsense.zsense
djnz r2,esp_rd_lp
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;function: send a command to 5907, then read two bytes from 5907
;input:r13=commond
;output:rr12=data
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
esp_read2_command:
call esp_read1_command
push r13
call esp_rd_8bit
pop r12
ret
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -