📄 m_jcode.asl
字号:
+ 184 ; function : dummy_loop()
+ 185 ;
+ 186 ;------------------------------------------
0073 187 dummy_loop:
0073 02 00 76 188 br dummy_loop0
0076 189 dummy_loop0:
0076 02 00 79 190 br dummy_loop1
0079 191 dummy_loop1:
0079 24 192 ret
+ 193
+ 194 ;------------------------------------------------------
+ 195 ;
+ 196 ; function : turn on voc and play_head
+ 197 ;
+ 198 ;------------------------------------------------------
007A 199 on_voc_head:
007A F3 00 200 lda #00h
007C FC 34 201 sta r_pwmc
007E F3 06 202 lda #06h
0080 FC 48 203 sta r_voc ;on pwm, d/a
0082 F3 87 204 lda #87h
0084 FC 34 205 sta r_pwmc
0086 20 00 1F 206 call play_head
0089 F3 F7 207 lda #0f7h
008B FC 34 208 sta r_pwmc
008D 24 209 ret
+ 210
+ 211 ;------------------------------------------------------
+ 212 ;
+ 213 ; function : turn off voc and play_tail
+ 214 ;
+ 215 ;------------------------------------------------------
008E 216 off_voc_tail:
008E F3 87 217 lda #087h
0090 FC 34 218 sta r_pwmc
0092 20 00 48 219 call play_tail
0095 F3 00 220 lda #00H
0097 FC 48 221 sta r_voc
0099 F3 80 222 lda #080h
009B FC 34 223 sta r_pwmc
009D 24 224 ret
+ 225
+ 226 ;-----------------------------------------------------------------------------
+ 227 ;
+ 228 ; main program
+ 229 ;
+ 230 ;-----------------------------------------------------------------------------
009E 231 main:
009E F3 00 232 lda #0
00A0 FC 28 233 sta r_pp
00A2 FC 21 234 sta r_dp
00A4 235 clr_loop:
00A4 F3 00 236 lda #0
00A6 FE 237 sta i
00A7 F0 21 238 lda r_dp
00A9 A7 7F 239 cmpe #07fh
00AB 06 00 B2 240 brz clr_end
00AE 18 241 incdp
00AF 02 00 A4 242 br clr_loop
00B2 243 clr_end:
+ 244 ;setup i/o port
00B2 F3 FF 245 lda #0ffh ;set port c and port d be high (i/p).
00B4 FC 31 246 sta r_prtc
00B6 FC 32 247 sta r_prtd
00B8 F3 7F 248 lda #07fh ;set sp to 7fh
00BA FC 18 249 sta r_sp
+ 250 ;---------------------------------------------------------------------------
+ 251 ;
+ 252 ; demo mode
+ 253 ;
+ 254 ;---------------------------------------------------------------------------
00BC 255 demo_d80:
00BC F0 32 256 lda r_prtd
00BE A7 FF 257 cmpe #0ffh
00C0 06 00 BC 258 brz demo_d80
00C3 259 play_voice:
00C3 F3 FF 260 lda #0ffh
00C5 FD 05 261 sta b_talk_end
+ 262
00C7 20 00 7A 263 call on_voc_head ;on voc and play head
+ 264
+ 265 ;setup the speech pointer
00CA F3 FE 266 lda #<v1
00CC FD 02 267 sta speechlow
00CE F3 00 268 lda #>v1
00D0 FD 03 269 sta speechhigh
00D2 F3 00 270 lda #00h
00D4 FD 04 271 sta speechtpp
00D6 20 00 00 272 call .tc_int ;initialize the jcode1 algorithm RAM
+ 273
+ 274 ;setup tc2 counter for 8khz
00D9 F3 01 275 lda #>t8ksample
00DB FC 14 276 sta r_t2h
00DD F3 4C 277 lda #<t8ksample
00DF FC 12 278 sta r_t2l
+ 279
00E1 F3 18 280 lda #00011000b ;normal, fast clock, enable INT,
+ 281 ;use TC2, use TC1 , z=0, c=0
00E3 FC 22 282 sta r_op1
+ 283
00E5 F3 02 284 lda #00000010b ;enable tc2
00E7 FC 04 285 sta r_ier
+ 286
+ 287 ;loop until voice end
00E9 288 demo_voice_loop:
00E9 F1 05 289 lda b_talk_end ;00=>play, 0ffh=>stop
00EB A7 00 290 cmpe #0
00ED 06 00 E9 291 brz demo_voice_loop
+ 292
+ 293 ;voice end
00F0 F3 00 294 lda #00000000b ;off TC2, off TC1 , z=0, c=0
00F2 FC 22 295 sta r_op1
+ 296
00F4 F3 00 297 lda #00000000b ;disable tc2
00F6 FC 04 298 sta r_ier
+ 299
00F8 20 00 8E 300 call off_voc_tail ;off voc and play tail
00FB 02 00 BC 301 br demo_d80
+ 302
+ 303 ;------------------------------------
+ 304 ;
+ 305 ; END OF PROGRAM
+ 306 ;
+ 307 ;------------------------------------
+ 308
00FE 309 v1:
+ 310 .include "8khvo.inc"
+ 311
+ 312
+
+Symbol Table
+
+ 2 .STARTUP 0012 GR
+ .tc_int **** GX
+ .tc_play **** GX
+ 1 acc 0000 R
+ 1 b_talk_end 0005 GR
+ 1 b_talk_high 0010 GR
+ 0 clr_end 00B2 R
+ 0 clr_loop 00A4 R
+ 0 demo_d80 00BC R
+ 0 demo_voice_loop 00E9 R
+ 0 dummy_loop 0073 R
+ 0 dummy_loop0 0076 R
+ 0 dummy_loop1 0079 R
+ 0 int1 0002 R
+ 0 int2 0003 R
+ 1 j 000F GR
+ 1 k 000E GR
+ 0 main 009E R
+ 1 mirr_flag 0001 R
+ 0 off_voc_tail 008E R
+ 0 on_voc_head 007A R
+ 1 p_voice 000B GR
+ pcm_end_code = 00FF
+ 0 play_head 001F R
+ 0 play_head_ed 0047 R
+ 0 play_head_l0 0021 R
+ 0 play_tail 0048 R
+ 0 play_voice 00C3 R
+ 1 q_index 000C GR
+ 1 s_data 000D GR
+ silence_level = 0040
+ 1 speechhigh 0003 GR
+ 1 speechlow 0002 GR
+ 1 speechtpp 0004 GR
+ t8ksample = 014C
+ 0 tc1 0000 R
+ 0 tc2 0004 R
+ 0 tc2_ret 0018 R
+ 0 ttrap1 0001 R
+ 0 v1 00FE R
+ 1 v_int_tph 0008 GR
+ 1 v_int_tpl 0007 GR
+ 1 v_talk_data 0009 GR
+ 1 voice 0006 GR
+ 1 x 000A GR
+
+
+Area Table
+
+ 0 CODE size 4E06 flags 0
+ 1 DATA size 11 flags 1C
+ 2 RCODE size 12 flags C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -