⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test56.asm

📁 4channel 语音播放程序 26个字母播放. 4x12 小扫描按键
💻 ASM
📖 第 1 页 / 共 5 页
字号:
@@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 + -