📄 sound_tab.asl
字号:
+ 1 ;****************************************************************;
+ 2 ; Sound Play Set Library
+ 3 ;
+ 4 ; Written by: lixy
+ 5 ; Date: 2004-02-16
+ 6 ;****************************************************************;
+ 7
+ 8 ;================================================================;
+ 9 ;Constant Area
+ 10 ;================================================================;
0006 11 c_voc equ #06h ;R_VOC: bit2:PWM, bit1:DA, bit0:OP
+ 12 ;enable PWM and DA
00F7 13 c_pwmc equ #0f7h ;R_PWMC: bit7:COM/DATA, bit6-bit4:PWM OP DRIVER
+ 14 ; bit3-bit1:PCK SELECTION, bit0:PWM ENABLE
+ 15 ;set PWM enable
+ 16 ;c_cry_times equ #2
+ 17 ;c_snd_intvl_h equ #050h ;the interval of the mouse sound play
+ 18 ;c_snd_intvl_l equ #02h
+ 19
0010 20 c_dly_r_f equ #10h ;the sound rise and fall delay constant
+ 21
+ 22 ;================================================================;
+ 23 ;Sound Data Area
+ 24 ;================================================================;
+ 25 ; .area sound_var(data)
+ 26
+ 27 ;flg_cry_for_key_press:: .ds 1
+ 28 ;m_cry_times:: .ds 1
+ 29 ;cnt_snd_intvl:: .ds 2 ;the counter of the mouse sound play interval
+ 30
+ 31 ;temp_pwmc:: .ds 1 ;pwmc temporary variable
+ 32 ;temp_dly_r_f:: .ds 1 ;sound rise and fall delay temp variable
+ 33
+ 34 ;================================================================;
+ 35 ;Sound Code Library
+ 36 ;================================================================;
+B 00 01
+ 37 .area sound_lib(code)
+ 38
+ 39 ;sound::
+ 40
+ 41 ;//04-03-19// add the sound output from vo
+ 42 ; lda r_voc
+ 43 ; cmpe #00h
+ 44 ; brz next_cry
+ 45 ; call tail
+ 46 ; lda #00h
+ 47 ; sta r_voc ;close PWM and D/A
+ 48 ;next_cry:
+ 49 ;end add //04-03-19//
+ 50
+ 51 ;sound_play_set:
+ 52 ; call select_sound
+ 53 ; call play_initial
+ 54 ; br sound_end
+ 55
+ 56
+ 57
+ 58 ;----------------------------------------------------------------;
+ 59 ;Select Sound0 (for free run) Subroutine
+ 60 ;----------------------------------------------------------------;
0000 61 select_sound_normal::
0000 F3 00 62 lda #00h
0002 FD 02 63 sta M_sphptr+2
0004 F3 00 64 lda #>(sound_tab)
0006 FD 01 65 sta M_sphptr+1
0008 F3 10 66 lda #<(sound_tab)
000A FD 00 67 sta M_sphptr
000C 20 28 1E 68 call play_initial
000F 24 69 ret
0010 70 sound_tab::
+ 71 .include "normal.inc"
+ 72 ;//04-03-23// add the sound played in the course
+ 73 ;of stop which is caused by pressing the key.
+ 74 ;----------------------------------------------------------------;
+ 75 ;Select Sound1 (for key pressed or barrier) Subroutine
+ 76 ;----------------------------------------------------------------;
032B 77 select_sound_barrier::
+ 78 ; lda #00h
+ 79 ; sta M_sphptr+2
+ 80 ; lda #>(sound_tab_1)
+ 81 ; sta M_sphptr+1
+ 82 ; lda #<(sound_tab_1)
+ 83 ; sta M_sphptr
+ 84 ; call play_initial
032B 24 85 ret
032C 86 sound_tab_1::
+ 87 ; .include "barrier.inc"
+ 88 ;end add //04-03-23//
+ 89 ;----------------------------------------------------------------;
+ 90 ;Select Sound2 (for Gameover) Subroutine
+ 91 ;----------------------------------------------------------------;
032C 92 select_sound_gameover::
032C F3 00 93 lda #00h
032E FD 02 94 sta M_sphptr+2
0330 F3 03 95 lda #>(sound_tab_2)
0332 FD 01 96 sta M_sphptr+1
0334 F3 3C 97 lda #<(sound_tab_2)
0336 FD 00 98 sta M_sphptr
0338 20 28 1E 99 call play_initial
033B 24 100 ret
033C 101 sound_tab_2::
+ 102 .include "gameover.inc"
+ 103 ;end add //04-07-1//
+ 104 ;----------------------------------------------------------------;
+ 105 ;Select Sound3 (for fail) Subroutine
+ 106 ;----------------------------------------------------------------;
0713 107 select_sound_fail::
0713 F3 00 108 lda #00h
0715 FD 02 109 sta M_sphptr+2
0717 F3 07 110 lda #>(sound_tab_3)
0719 FD 01 111 sta M_sphptr+1
071B F3 23 112 lda #<(sound_tab_3)
071D FD 00 113 sta M_sphptr
071F 20 28 1E 114 call play_initial
0722 24 115 ret
0723 116 sound_tab_3::
+ 117 .include "fail.inc"
+ 118 ;end add //04-07-2//
+ 119 ;----------------------------------------------------------------;
+ 120 ;Play Initial Subroutine
+ 121 ;----------------------------------------------------------------;
281E 122 play_initial:
281E F3 06 123 lda #c_voc
2820 FC 48 124 sta r_voc
2822 F3 F7 125 lda #c_pwmc
2824 FC 34 126 sta r_pwmc
+ 127 ;call header
2826 F3 00 128 lda #00h
2828 FD 00 129 sta M_stopbit
282A 24 130 ret
+
+Symbol Table
+
+ M_sphptr **** GX
+ M_stopbit **** GX
+ c_dly_r_f = 0010
+ c_pwmc = 00F7
+ c_voc = 0006
+ 1 play_initial 281E R
+ 1 select_sound_barrier 032B GR
+ 1 select_sound_fail 0713 GR
+ 1 select_sound_gameover 032C GR
+ 1 select_sound_normal 0000 GR
+ 1 sound_tab 0010 GR
+ 1 sound_tab_1 032C GR
+ 1 sound_tab_2 033C GR
+ 1 sound_tab_3 0723 GR
+
+
+Area Table
+
+ 0 . size 0 flags 0
+ 1 sound_lib size 282B flags 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -