📄 pcm1.asl
字号:
+ 1 ;================================================================;
+ 2 ; PCM Speech Subroutine
+ 3 ;================================================================;
+B 00 01
+ 4 .area pcmvari(data)
+ 5
0000 6 M_sphptr:: .ds 3
0003 7 M_stopbit:: .ds 1
0004 8 M_pcmdata:: .ds 1
+ 9
+B 00 02
+ 10 .area pcmlibrary(code)
+ 11
0000 12 .Pcm_Play::
0000 F1 02 13 lda M_sphptr+2
0002 FC 54 14 sta r_tpp
0004 F1 01 15 lda M_sphptr+1
0006 FC 02 16 sta r_tph
0008 F1 00 17 lda M_sphptr
000A FC 01 18 sta r_tpl
000C 1F 19 inca
000D FD 00 20 sta M_sphptr
000F F3 00 21 lda #00h
0011 99 01 22 addc M_sphptr+1
0013 FD 01 23 sta M_sphptr+1
0015 F3 00 24 lda #00h
0017 99 02 25 addc M_sphptr+2
0019 FD 02 26 sta M_sphptr+2
+ 27
001B 28 loop_rom_ready:
001B F0 22 29 lda r_op1 ;if data rom grand than 64k
001D CB 80 30 anda #10000000b ;program must detect OP1[7]
001F 06 00 1B 31 brz loop_rom_ready ;or add 5us delay in program
+ 32
0022 F8 33 ldv
0023 EB FF 34 xora #0xFF
0025 06 00 2D 35 brz 10$
0028 EB FF 36 xora #0xFF
002A FD 04 37 sta M_pcmdata
002C 24 38 ret
+ 39 10$:
002D F3 FF 40 lda #0xFF
002F FD 03 41 sta M_stopbit
0031 24 42 ret
+ 43
+ 44
+ 45
+
+Symbol Table
+
+ 2 .Pcm_Play 0000 GR
+ 1 M_pcmdata 0004 GR
+ 1 M_sphptr 0000 GR
+ 1 M_stopbit 0003 GR
+ 2 loop_rom_ready 001B R
+
+
+Area Table
+
+ 0 . size 0 flags 0
+ 1 pcmvari size 5 flags 2
+ 2 pcmlibrary size 32 flags 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -