📄 test56.asm
字号:
@@speech_start:
page3
mov a spF
caje #0 @f ;;s1
call4 @@HEAD
@@:
mov a spF
xor a #1111b
mov temp3 a
mov a next
and a temp3
mov next a
mov a spF
mov temp3 a
call4 @@Load_Volume
ret1
;;*********** initialize speech playing ok ************************
@@bk_speech_start:
page3
mov a bspF
caje #0 @f ;s1
call4 @@HEAD
@@:
mov a bspF
xor a #1111b
mov temp3 a
mov a next
and a temp3
mov next a
mov a bspF
mov temp3 a
call4 @@Load_Volume
ret2
;;*********** delay routine start ************************
@@delay_start:
page3
mov a en_ret
and a #1100b
mov en_ret a
jmp @@scankey1
;;*********** background delay routine start *************
@@bk_delay_start:
page3
mov a en_ret
and a #0011b
mov en_ret a
jmp @@scankey1
;;*********** initialize speech playing ok ************************
@@speech_under:
page3
mov a temp3
mov temp4 a
caje #0 @f ;;s1
call4 @@HEAD
@@:
page3
mov a mpF
and a #0001b
caje #0 @f ;;s1
call4 @@off_melody
@@:
page3
mov a mpF
and a #0010b
caje #0 @f ;;s1
call4 @@off_melody
@@:
_@@spud_h_ok:
page3
mov a temp4 ;; Load_volume
mov temp3 a
call4 @@Load_Volume ;;
page3
mov a temp3
xor a #1111b
mov temp3 a
mov a next
and a temp3
mov next a
mov a spF
and a temp3
mov spF a
mov a bspF
and a temp3
mov bspF a
mov temp3 #1100b
caje #0 @f ;;s1
mov temp3 #1000b
; nop
@@:
mov a en_ret ;; clear f-voice-ret
and a temp3 ;; clear f-melody-ret
mov en_ret a ;; if (b-voice is occupied)
;; then clear b-voice-ret
mov a mpF
and a #0011b
caje #0 @f ;;s1
ret1
; nop
@@:
mov a en_ret ;; if no bk-melody, then
and a #0111b ;; clear b-melody-ret
mov en_ret a ;;
ret1 ;;
;;************* force path_back stop ok***********
@@stop_pb:
page3
mov a bspF
mov temp3 a
call4 @@off_channel
page3
mov bspF #0000b
mov a call_b1 ;; if (call_b1.1 ==0 ) --> no back-
and a #0010b ;; melody
cajne #0010b @f ;;sn1
call4 @@off_melody ;;
@@:
page2
mov p_delay1 #0000b
page3
mov call_b1 #0000b
mov a en_ret ;;disable B V/M ret
and a #0011b ;;1.8
mov en_ret a ;;
ret2
;;************* force all stop ************************
@@stop:
page3
mov a play ;;under-ground
or a spF ;;fore-ground
or a bspF ;;back-ground
mov temp3 a
call4 @@off_channel
page3
mov spF #0000b
mov bspF #0000b
call4 @@off_melody
_@@stop_ok:
page2
mov delay8m #0000b
mov s_delay1 #0000b
mov p_delay1 #0000b
page3
mov call_b1 #0000b
mov en_ret #0000b
ret1
;;************** force background output stop *****************
@@stop_o1:
page2
mov s_delay1 #0000b
ret3
@@stop_o2:
page2
mov s_delay1 #0000b
ret3
;;************* force melody stop ************************
@@stop_melody:
call4 @@off_melody
page3
mov a call_b1
and a #0010b
caje #0010b _@@spmd_over_bk
mov a en_ret
and a #0010b
caje #0 @@melody_back1
xor a en_ret ;; clear melody-ret flag
mov en_ret a ;;
ret1
_@@spmd_over_bk:
mov a call_b1 ;; clear bk-melody flag.
and a #1101b ;;
mov call_b1 a ;;
mov a en_ret
and a #1000b
caje #0 @@melody_back1
xor a en_ret ;; clear bk-melody-ret flag
mov en_ret a ;;
ret2
;;***********************************************************************
@@head:
page3
mov a mpF
and a #1100b
cajne #1100b @f ;sn1
ret4
; nop
@@:
mov a next
and a #0000b
mov next a
mov a #0
mov envh1 a
mov envl1 a
mov envh2 a
mov envl2 a
mov envh3 a
mov envl3 a
mov envh4 a
mov envl4 a
mov a mode2 ;enable OPA
or a #0100b
mov mode2 a
play1 sn0#xo.wav
play2 sil#XO.wav
play3 sn0#xo.wav
play4 sil#xo.wav
_@@headL_00:
mov a play ;change play flag check
and a #0101b
caje #0000b @f ;;s1
jmp _@@headL_00
@@:
mov a #1100b
or a mpF
mov mpF a
mov a mode2
or a #1000b
mov mode2 a
ret4
;;*************************************************************
@@tail:
page3
mov a mpF
and a #1100b
caje #1100b @f ;;s1
ret4
; nop
@@:
mov a next
and a #0000b
mov next a
mov a #3
mov rh1 a
mov a #9
mov rl1 a
mov a #3
mov rh2 a
mov a #9
mov rl2 a
mov a #3
mov rh3 a
mov a #9
mov rl3 a
mov a #3
mov rh4 a
mov a #9
mov rl4 a
mov a #0
mov envh1 a
mov envl1 a
mov envh2 a
mov envl2 a
mov envh3 a
mov envl3 a
mov envh4 a
mov envl4 a
;mov a #15
;mov vol a
voldown
mov a mode2
and a #0111b
mov mode2 a
play1 sn1#XO.wav
play2 sil#XO.wav
play3 sil#XO.wav
play4 sil#XO.wav
@@wait_tL:
rstc
mov a play
and a #0101b ;change play flag check
caje #0000b @f ;;s1
jmp @@wait_tL
@@:
page2
mov a vol_pp
mov vol a
page3
mov a mpF ;;clear head
and a #0011b ;;99.1.11
mov mpF a ;;
mov spf #0000b
mov bspf #0000b
mov a mode2
and a #0011b
mov mode2 a
_@@tail_clear:
mov a spF
caje #0 @f ;;s1
jmp _@@tail_clear_bk
@@:
mov a en_ret
and a #1110b
mov en_ret a
_@@tail_clear_bk:
mov a bspF
caje #0 @f ;;s1
nop
ret4
@@:
mov a en_ret
and a #1011b
mov en_ret a
ret4
;;*************************************************************
@@off_channel:
page3
mov a temp3
and a #0001b
cajne #0001b @f ;sn1
play1 sil#XO.wav
@@:
mov a temp3
and a #0010b
cajne #0010b @f ;sn1
play2 sil#XO.wav
@@:
mov a temp3
and a #0100b
cajne #0100b @f ;sn1
play3 sil#XO.wav
@@:
mov a temp3
and a #1000b
cajne #1000b @f ;sn1
play4 sil#XO.wav
@@:
ret4
;;*************************************************************
@@off_melody:
page3
mov a spF
or a bspF
mov temp3 a
mov a #0
mov next a
mov a mpF ;; if no head, then no...
and a #0100b ;;
caje #0 _@@ofmd_right ;;
mov a mpF ;;
and a #0001b ;;
caje #0 _@@ofmd_right ;;
mov a temp3
and a #0001b
caje #0001b @f ;;s1
play1 sil#XO.wav
@@:
mov a temp3
and a #0010b
caje #0010b @f ;;s1
play2 sil#XO.wav
@@:
_@@ofmd_right:
mov a mpF ;; if no head, then no...
and a #1000b ;;
caje #0 _@@ofmd_over ;;
mov a mpF ;;
and a #0010b ;;
caje #0 _@@ofmd_over ;;
mov a temp3
and a #0100b
caje #0100b @f ;;s1
play3 sil#XO.wav
@@:
mov a temp3
and a #1000b
caje #1000b @f ;;s1
play4 sil#XO.wav
@@:
_@@ofmd_over:
mov a mpF
and a #1100b
mov mpF a
page1
mov pause #0
ret4
;;*************************************************************
@@load_volume:
page3
mov a temp3
page7
mov temp1 a
and a #0001b
caje #0 _@@ldvm_02
page4
mov a vol1_h
shra
shra
mov envh1 a
page5
mov a v_vol1
mov envl1 a
_@@ldvm_02:
page7
mov a temp1
and a #0010b
caje #0 _@@ldvm_03
page4
mov a vol2_h
shra
shra
mov envh2 a
page5
mov a v_vol2
mov envl2 a
_@@ldvm_03:
page7
mov a temp1
and a #0100b
caje #0 _@@ldvm_04
page4
mov a vol3_h
shra
shra
mov envh3 a
page5
mov a v_vol3
mov envl3 a
_@@ldvm_04:
page7
mov a temp1
and a #1000b
caje #0 _@@ldvm_ok
page4
mov a vol4_h
shra
shra
mov envh4 a
page5
mov a v_vol4
mov envl4 a
_@@ldvm_ok:
ret4
;;################ End of __melody_load_rhythm #########################
@@Left_Mdy:
page3
mov a mpF
and a #1100b
or a #0001b
mov mpF a
ret4
;;***********************************************************************
@@Right_Mdy:
page3
mov a mpF
and a #1100b
or a #0010b
mov mpF a
ret4
;;***********************************************************************
@@4ch_Mdy:
page3
mov a mpF
and a #1100b
or a #0011b
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -