RSNDS.S82 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. ******************
  2. *
  3. *
  4. * ROBOTRON 22-AUGUST-83
  5. * 24-AUGUST-83 4:00
  6. *
  7. * RSOUNDS.S SOUND ROUTINES AND DATA
  8. *
  9. ******************
  10. * ORIGINALLY: ALIEN;TUNES.S - SOUND DRIVER
  11. * THERE ARE 3 EXTERNAL ROUTINES IN THIS PACKAGE:
  12. * DOTUNE STARTS A TUNE, THE NUMBER OF THE TUNE IS IN THE ACCUMULATOR
  13. * KILLTUNE KILLS A TUNE, THE NUMBER OF THE TUNE IS IN THE ACCUMULATOR
  14. * CLEARTUN CLEARS OUT ALL TUNES, INCLUDING BACKED UP TUNES
  15. * NOTE THAT THESE ALL PRESERVE X AND Y REGISTERS.
  16. * IN ADDITION, THERE IS A ROUTINE CALLED 'TUNER' WHICH SHOULD BE CALLED ONCE
  17. * PER FRAME (PREFERABLY AT ABOUT THE SAME TIME EACH FRAME). NOTE THAT IT
  18. * CAN BE CALLED LESS FREQUENTLY (SAY ONCE PER TWO FRAMES) IF THE DURATION
  19. * DATA IS HALVED AND YOU ARE WILLING TO LIVE WITH THE DECREASED DURATION
  20. * RESOLUTION.
  21. * A BRIEF DESCRIPTION OF THE DRIVER. THIS IS A PRIORITY BASED TUNE DRIVER
  22. * WITH TWO BACK-UP CHANNELS. WHENEVER A DOTUNE IS EXECUTED, A CLEAR CHANNEL
  23. * IS LOOKED FOR. IF IT IS NOT AVAILABLE, PRIORITIES ARE CHECKED TO SEE IF
  24. * THE NEW TUNE SHOULD PREEMPT A LOWER PRIORITY TUNE. WHICHEVER TUNE LOSES
  25. * IS STORED IN ONE OF THE BACK-UP CHANNELS AND RESTARTED WHENEVER A CHANNEL
  26. * FREES ITSELF. IF MORE THAN ONE IS BACKED UP, THE HIGHER PRIORITY ONE IS
  27. * RESTARTED. CONCEPTUALLY THERE ARE 4 SOUND CHANNELS, OF WHICH CHANNELS 0
  28. * AND 1 ARE ACTIVE AND CHANNELS 2 AND 3 ARE INACTIVE. THERE ARE PROVISIONS
  29. * FOR INFINITE TUNES AND TUNES WHICH INVOKE OTHER TUNES WHEN THEY ARE FINISHED.
  30. * LET'S START WITH THE DATA. NOTE THAT I HAVE LEFT A SELECTION OF TUNES
  31. * AND SOUND EFFECTS FROM MS PAC-MAN IN HERE TO SHOW HOW THE DATA IS ORGANIZED.
  32. * THERE ARE 5 TABLES WHICH CONTROL THE TUNES. THESE ARE INDEXED BY THE TUNE
  33. * TUMBER. THESE ARE:
  34. * TBASE LOW BYTE OF BASE ADDRESS OF TUNE DATA
  35. * TBASE1 HI BYTE
  36. * TCTLOFF OFFSET INTO TUNE DATA WHERE CTL DATA STARTS
  37. * TVOLOFF OFFSET INTO TUNE DATA WHERE VOLUME DATA STARTS
  38. * TPRIOR PRIORITY OF THIS TUNE (FROM 0 TO $7F, 0 IS LOWEST)
  39. * THESE TABLES TELL WHERE TO FIND AND HOW TO INTERPRET THE 'TUNE DATA' FOR
  40. * EACH TUNE. THE TUNE DATA IS ORGANIZED AS FOLLOWS:
  41. * FREQUENCY INFORMATION: THIS IS A SET OF PAIRS 'FREQ,DUR' WHERE
  42. * FREQ IS THE VALUE TO STUFF INTO AUDF0 AND DUR IS THE NUMBER
  43. * OF FRAMES TO LEAVE IT THERE. THE TUNE IS TERMINATED WHEN
  44. * A NEGATIVE FREQ IS ENCOUNTERED (THERE ARE ONLY 5 SIGNIFICANT
  45. * BITS OF FREQ, SO THIS DOES NOT LIMIT THE TUNES). THERE ARE
  46. * THE FOLLOWING WAYS TO TERMINATE A TUNE:
  47. * $FF - THE TUNE IS OVER
  48. * $FE - REPEAT THE TUNE (MAKES THE TUNE INFINITE)
  49. * $FD,TUNENUM - IMMEDIATELY START TUNENUM
  50. * CONTROL INFORMATION: THIS IS A SET OF PAIRS 'CTL,DUR' WHERE CTL IS
  51. * THE VALUE TO STUFF INTO AUDC0 AND DUR IS THE NUMBER OF FRAMES
  52. * TO LEAVE IT THERE. A DUR OF '$00' WILL MAKE THE CTL LAST THE
  53. * ENTIRE TUNE.
  54. * VOLUME INFORMATION: THIS IS A SET OF PAIRS 'VOL,DUR' WHERE VOL IS
  55. * THE VALUE TO STUFF INTO AUDV0 AND DUR IS THE NUMBER OF FRAMES
  56. * TO LEAVE IT THERE. AGAIN, A DUR OF '$00' WILL KEEP THE VOL
  57. * FOR THE ENTIRE TUNE.
  58. * NOTE THAT THE TUNE DATA FOR A SINGLE TUNE CANNOT BE LARGER THAN A PAGE.
  59. * BREAK THE TUNE INTO TWO PARTS WITH ONE STARTING THE OTHER IF YOU NEED A
  60. * LARGER TUNE. TAKE A LOOK AT THE EXAMPLES AT THE END OF THIS FILE IF THIS
  61. * DESCRIPTION DOESN'T MAKE SENSE, THERE ARE EXAMPLES OF INFINITE TUNES AND
  62. * TUNES CALLING EACH OTHER. NOTE THAT AN INFINITE TUNE CAN BE STOPPED BY
  63. * A KILLTUN OR A CLEARTUN.
  64. * AND NOW TO THE VARIABLES NEEDED. COPY OUT THESE VARIABLES (CHANGING THE
  65. * LOCATIONS AS NEEDED):
  66. *
  67. * ALL VARIABLES USED ARE IN RMAIN.S
  68. *
  69. * NOTE THAT SOUNDZP CAN PROBABLY BE PUT THE SAME PLACE AS YOUR LOADER TEMP
  70. * VARIABLES.
  71. * THE ONLY VARIABLES HERE THAT YOU MIGHT WISH TO LOOK AT FROM 'OUTSIDE' ARE
  72. * TUNON AND TUNINDEX. TUNON IS 1 IF A CHANNEL IS USED, 0 IF IT IS FREE.
  73. * TUNINDEX IS THE TUNE NUMBER OF A USED CHANNEL, 0 IF THE CHANNEL IS FREE.
  74. * NOTE THAT IF TUNON IS 0, A ZERO VOLUME IS FORCED INTO THE APPROPRIATE VOLUME
  75. * REGISTER, SO SIMPLY ZEROING THE TUNE DATA WILL SHUT THE TIA UP (OF COURSE,
  76. * CLEARTUN ALSO DOES THIS).
  77. * THE SIZE OF THIS CODE IS ABOUT $200 BYTES. NOTE THAT THE TUNE DATA WILL
  78. * PROBABLY RUN MUCH LARGER.
  79. * THIS ROUTINE ENTERS A TUNE INTO ONE OF THE SOUND CHANNELS IF IT CAN
  80. * INPUT: TUNE NUMBER IN A
  81. * X AND Y ARE PRESERVED
  82. DOTUNE STA TUNNUM ;SAVE IT
  83. TXA ;STACK REGISTERS
  84. PHA
  85. TYA
  86. PHA
  87. LDX TUNNUM ;FIND PRIORITY OF NEW TUNE
  88. LDA TPRIOR,X
  89. STA TUNTEMP0
  90. JSR GETCHANL ;GET A CHANNEL
  91. CPX #$00 ;SEE IF WE GOT ONE
  92. BMI DTOUT
  93. LDA TUNNUM
  94. JSR BEGINTUN ;START THE TUNE
  95. DTOUT PLA ;UNSTACK REGISTERS
  96. TAY
  97. PLA
  98. TAX
  99. RTS
  100. * THIS ROUTINE TRIES TO GET A CHANNEL TO PUT A TUNE INTO. THIS IS DONE BY
  101. * GIVING AN OPEN CHANNEL IF AVAILABLE OR BUMPING SOMEONE IF NONE ARE OPEN.
  102. * IF THE PRIORITY IS TO LOW TO GET ANYTHING, FF IS RETURNED.
  103. * INPUT: PRIORITY OF REQUESTOR IN TUNTEMP0
  104. * OUTPUT:CHANNEL IN X, $FF IF NO CHANNEL AVAILABLE
  105. * USES: X, Y
  106. GETCHANL LDX #$01 ;FIRST - SEE IF OPEN ACTIVE CHANNEL
  107. GCLOOP0 LDA TUNON,X ;SEE IF CHANNEL OPEN
  108. BNE GCNEXT0
  109. RTS ;GOT IT - EASY
  110. GCNEXT0 DEX
  111. BPL GCLOOP0
  112. LDX #$00 ;NOW, TRY TO BUMP ACTIVE CHANNEL
  113. LDA TUNPRIOR ;GET INDEX OF LOWER PRIORITY ACTIVE CNL
  114. CMP TUNPRIOR+1
  115. BMI GCJMP0
  116. INX
  117. GCJMP0 LDA TUNPRIOR,X ;SEE IF OUR PRIORITY HIGHER
  118. CMP TUNTEMP0
  119. BPL GCNONE ;NO CHANNELS AVAILABLE
  120. JMP ENDTUNE
  121. ;HERE I DELETED STUFF TO HANDLE BACKUP CHANNELS
  122. GCNONE LDX #$FF ;NO CHANNELS AVAILABLE
  123. RTS
  124. * ROUTINE TO KILL A PARTICULAR TUNE - IF IT IS RUNNING
  125. * INPUT: TUNE NUMBER IN A
  126. * X AND Y ARE PRESERVED
  127. KILLTUNE STA TUNNUM ;SAVE IT
  128. TXA ;STACK REGISTERS
  129. PHA
  130. TYA
  131. PHA
  132. LDX #$01 ;CHECK ALL CHANNELS
  133. KTLOOP LDA TUNON,X ;SEE IF CHANNEL ON
  134. BEQ KTNEXT
  135. LDA TUNINDEX,X ;SEE IF HAS TUNE TO BE KILLED
  136. CMP TUNNUM
  137. BNE KTNEXT
  138. JSR ENDTUNE ;ERASE IT
  139. KTNEXT DEX
  140. BPL KTLOOP
  141. PLA ;UNSTACK REGISTERS
  142. TAY
  143. PLA
  144. TAX
  145. RTS
  146. * THIS ROUTINE ERASES ALL TUNES
  147. * X AND Y ARE PRESERVED
  148. CLEARTUN TXA ;STACK REGISTERS
  149. PHA
  150. TYA
  151. PHA
  152. LDX #$01
  153. CTLOOP JSR ENDTUNE ;ERASE CURRENT TUNE
  154. DEX
  155. BPL CTLOOP
  156. PLA ;UNSTACK REGISTERS
  157. TAY
  158. PLA
  159. TAX
  160. RTS
  161. * THIS ROUTINE IS CALLED EVERY VBLANK TO TAKE CARE OF TUNES
  162. * REGISTERS ARE NOT SAVED
  163. TUNER LDX #$01 ;TWO TUNES CHANNELS, START WITH SECOND
  164. TUNLOOP LDA TUNON,X
  165. BNE TUNBODY
  166. STA AUDV0,X ;CHANNEL OFF - MAKE SURE VOLUME OFF
  167. JMP TUNNEXT
  168. TUNBODY LDA TUNBASE,X ;GET ADDRESS OF TUNE
  169. STA SOUNDZP
  170. LDA TUNBASE1,X
  171. STA SOUNDZP+1
  172. DEC FREQTIME,X ;DO FREQUENCY
  173. BNE TUNCTL
  174. JSR TNXTFREQ ;TIME FOR NEXT FREQUENCY
  175. TUNCTL LDA CTLTIME,X ;DO CONTROL
  176. BEQ TUNVOL ;IS CTL CONSTANT? (STARTS AT 0)
  177. DEC CTLTIME,X
  178. BNE TUNVOL
  179. JSR TNXTCTL ;TIME FOR NEXT CTL
  180. TUNVOL LDA VOLTIME,X ;DO VOLUME
  181. BEQ TUNNEXT ;IS VOLUME CONSTANT? (STARTS AT 0)
  182. DEC VOLTIME,X
  183. BNE TUNNEXT
  184. JSR TNXTVOL ;TIME FOR NEXT VOLUME
  185. TUNNEXT DEX ;DONE WITH THAT TUNE, IS THERE ANOTHER?
  186. BPL TUNLOOP
  187. RTS ;ALL DONE
  188. * ROUTINES TO GET NEXT FREQUENCY, CTL, OR VOLUME
  189. * THIS ROUTINE GETS NEXT FREQUENCY
  190. TNXTFREQ LDY FREQOFF,X ;GET INDEX INTO TABLE
  191. LDA (SOUNDZP),Y ;GET FREQUENCY
  192. BMI TNFENDT ;IS THIS THE END OF THE TUNE?
  193. STA AUDF0,X
  194. INY
  195. LDA (SOUNDZP),Y ;GET DURATION
  196. STA FREQTIME,X
  197. INY
  198. TYA
  199. STA FREQOFF,X
  200. RTS
  201. TNFENDT CMP #$FF ;SEE IF TUNE OVER
  202. BEQ TNFEOVER
  203. CMP #$FE ;SEE IF TUNE REPEATS
  204. BEQ TNFEREPT
  205. INY ;ANOTHER TUNE COMING
  206. LDA (SOUNDZP),Y ;FIND OUT WHICH TUNE
  207. JSR BEGINTUN ;START TUNE
  208. JMP TNFEOUT
  209. TNFEREPT LDA TUNINDEX,X ;TUNE REPEATS - RESTART IT
  210. JSR BEGINTUN ;START TUNE
  211. JMP TNFEOUT
  212. TNFEOVER JSR ENDTUNE ;TUNE FINISHED
  213. TNFEOUT PLA ;END OF TUNE
  214. PLA ;GET RID OF WHERE WE ARE RTS'ING TO
  215. JMP TUNLOOP ;UPDATE THIS CHANNEL
  216. * THIS ROUTINE GETS NEXT CONTROL BYTE
  217. TNXTCTL LDY CTLOFF,X ;GET INDEX INTO TABLE
  218. LDA (SOUNDZP),Y ;GET FREQUENCY
  219. STA AUDC0,X
  220. INY
  221. LDA (SOUNDZP),Y ;GET DURATION
  222. STA CTLTIME,X
  223. INY
  224. TYA
  225. STA CTLOFF,X
  226. RTS
  227. * THIS ROUTINE GETS NEXT VOLUME BYTE
  228. TNXTVOL LDY VOLOFF,X ;GET INDEX INTO TABLE
  229. LDA (SOUNDZP),Y ;GET FREQUENCY
  230. STA AUDV0,X
  231. INY
  232. LDA (SOUNDZP),Y ;GET DURATION
  233. STA VOLTIME,X
  234. INY
  235. TYA
  236. STA VOLOFF,X
  237. RTS
  238. * THIS ROUTINE CLEARS OUT A TUNE CHANNEL
  239. * INPUT: X IS CHANNEL
  240. ENDTUNE LDA #$00
  241. STA TUNON,X ;INDICATE CHANNEL CLEAR
  242. STA TUNINDEX,X ;CLEAR TUNE INDEX
  243. ;HERE WAS BACKUP CHANNEL STUFF
  244. ETOUT RTS
  245. * THIS ROUTINE STARTS A TUNE IN A CHANNEL
  246. * INPUT: X IS CHANNEL, A IS TUNE
  247. * USES: Y
  248. BEGINTUN TAY ;PUT TUNE IN Y
  249. STA TUNINDEX,X ;SET THE TUNE INDEX
  250. LDA TBASE,Y ;SET THE BASE ADDRESS FOR TUNE
  251. STA TUNBASE,X
  252. LDA TBASE1,Y
  253. STA TUNBASE1,X
  254. LDA #$00 ;FREQUENCY IS AT START OF TUNE
  255. STA FREQOFF,X
  256. LDA TCTLOFF,Y ;SET CONTROL OFFSET
  257. STA CTLOFF,X
  258. LDA TVOLOFF,Y ;SET VOLUME OFFSET
  259. STA VOLOFF,X
  260. LDA TPRIOR,Y ;SET PRIORITY
  261. STA TUNPRIOR,X
  262. LDA #$01 ;SET FREQ, CTL, AND VOL TO BE SET
  263. STA FREQTIME,X ; NEXT VBLANK (TICK DOWN TO 0 EACH)
  264. STA CTLTIME,X
  265. STA VOLTIME,X
  266. STA TUNON,X ;AND TURN THE TUNE ON!
  267. RTS
  268. * THIS ROUTINE MOVES A TUNE FROM ONE CHANNEL TO ANOTHER
  269. * INPUT: Y IS FROM CHANNEL, X IS TO CHANNEL
  270. ; THIS ROUTINE IS NO LONGER NECESSARY
  271. * DATA FOR TUNES
  272. * TUNE TABLES, BASE ADDRESSES FOR TUNES AND THE OFFSETS WITHIN THE TUNES WHERE
  273. * THE CTL AND VOL INFORMATION START
  274. TBASE DB L(TMCS),L(TFPICK),L(TCREDIE),L(TSKULL0),L(TSKULL1),L(TEXTRA)
  275. DB L(TRACKA),L(TRACKB),L(TMCDIE)
  276. TBASE1 DB H(TMCS),H(TFPICK),H(TCREDIE),H(TSKULL0),H(TSKULL1),H(TEXTRA)
  277. DB H(TRACKA),H(TRACKB),H(TMCDIE)
  278. TCTLOFF DB 021,023,015,017,017,009,078,111,009
  279. TVOLOFF DB 023,039,019,019,019,011,206,159,011
  280. TPRIOR DB 005,020,006,015,015,025,018,018,022
  281. * TUNE 0 - MUTANT CLONE SHOOTING
  282. SMCS EQU 0 ;TUNE 0
  283. TMCS DB $02,$01,$03,$01,$04,$01,$05,$01,$06,$01 ;FREQ
  284. DB $07,$01,$08,$01,$09,$01,$0A,$01,$0B,$01,$FF
  285. DB $06,$00 ;CTL
  286. DB $09,$00 ;VOL
  287. * TUNE 1 - FAMILY PICKUP SOUND
  288. SFPICK EQU 1
  289. TFPICK DB $15,$09,$0D,$03,$15,$03,$14,$03,$0C,$03
  290. DB $15,$03,$13,$03,$0B,$03,$15,$03,$12,$03
  291. DB $0A,$03,$FF
  292. DB $06,$06,$0D,$06,$06,$03,$0D,$06,$06,$03
  293. DB $0D,$06,$06,$03,$0D,$06
  294. DB $09,$00
  295. * TUNE 2 - GENERIC EXPLOSION
  296. SCREDIE EQU 2
  297. TCREDIE DB $02,$03,$03,$03,$04,$03,$05,$03,$06,$03
  298. DB $15,$03,$19,$03,$FF
  299. DB $08,$0F,$02,$06
  300. DB $09,$03,$07,$03,$06,$03,$05,$03,$04,$03
  301. DB $06,$03,$03,$03
  302. * TUNE 3 - SKULL AND CROSSBONES SCREAM CHANNEL 0
  303. SSKULL0 EQU 3
  304. TSKULL0 DB $0C,$04,$0D,$04,$0E,$04,$0F,$04,$10,$04
  305. DB $11,$04,$12,$04,$13,$04,$FF
  306. DB $04,$00
  307. DB $09,$00
  308. * TUNE 4 - SKULL AND CROSSBONES SCREAM CHANNEL 1
  309. SSKULL1 EQU 4
  310. TSKULL1 DB $1F,$04,$1E,$04,$1D,$04,$1C,$04,$1B,$04
  311. DB $1A,$04,$19,$04,$18,$04,$FF
  312. DB $04,$00
  313. DB $02,$04,$03,$04,$04,$04,$05,$04,$06,$04
  314. DB $05,$04,$04,$04,$03,$04,$FF
  315. * TUNE 5 - EXTRA MAN
  316. SEXTRA EQU 5
  317. TEXTRA DB $03,$02,$04,$02,$05,$02,$06,$02,$FF
  318. DB $0F,$00
  319. DB $09,$00
  320. * TUNE 6 - BETWEEN RACK SOUND PART A
  321. SRACKA EQU 6
  322. TRACKA DB $1F,$04,$1D,$04,$1B,$04,$1A,$04,$18,$04 ;FREQ
  323. DB $17,$04,$16,$04,$14,$04,$13,$04,$12,$04
  324. DB $11,$04,$10,$04,$0F,$04,$0E,$04,$0D,$04
  325. DB $0C,$04,$0B,$04,$0A,$04,$09,$02,$1F,$02
  326. DB $08,$02,$1D,$02,$07,$02,$1B,$02,$06,$02
  327. DB $1A,$02,$05,$02,$18,$02,$04,$02,$17,$02
  328. DB $15,$04,$14,$04,$13,$04,$12,$04,$11,$04
  329. DB $10,$04,$0F,$04,$0E,$04,$FD,$07
  330. DB $06,$02,$0D,$02,$06,$02,$0D,$02 ;CTL
  331. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  332. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  333. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  334. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  335. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  336. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  337. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  338. DB $06,$02,$0D,$02,$06,$02,$0D,$02
  339. DB $06,$02,$04,$02,$06,$02,$04,$02
  340. DB $06,$02,$04,$02,$06,$02,$04,$02
  341. DB $06,$02,$04,$02,$06,$02,$04,$02
  342. DB $0D,$02,$04,$02,$0D,$02,$04,$02
  343. DB $0D,$02,$04,$02,$0D,$02,$04,$02
  344. DB $0D,$02,$04,$02,$0D,$02,$04,$02
  345. DB $0D,$02,$04,$02,$0D,$02,$04,$02
  346. DB $09,$00 ;VOL
  347. * TUNE 7 - BETWEEN RACK SOUND PART B
  348. SRACKB EQU 7
  349. TRACKB DB $0D,$04,$09,$02 ;FREQ
  350. DB $13,$02,$18,$02,$1D,$02,$0B,$02,$0F,$02
  351. DB $10,$02,$16,$02,$0A,$02,$12,$02,$15,$02
  352. DB $1D,$02,$0D,$02,$0E,$02,$09,$02,$13,$02
  353. DB $18,$02,$1D,$02,$0B,$02,$0F,$02,$10,$02
  354. DB $16,$02,$0A,$02,$12,$02,$15,$02,$1D,$02
  355. DB $0D,$02,$0E,$02,$09,$02,$13,$02,$18,$02
  356. DB $1D,$02,$0B,$02,$0F,$02,$10,$02,$16,$02
  357. DB $0A,$02,$12,$02,$15,$02,$1D,$02,$0D,$02
  358. DB $0E,$02,$09,$02,$13,$02,$18,$02,$1D,$02
  359. DB $0B,$02,$0F,$02,$10,$02,$16,$02,$0A,$02
  360. DB $12,$02,$15,$02,$1D,$02,$FF
  361. DB $0D,$02,$04,$04,$0D,$06,$06,$04 ;CTL
  362. DB $04,$06,$0D,$06,$06,$04,$04,$02
  363. DB $0D,$06,$06,$04,$04,$06,$0D,$06
  364. DB $06,$04,$04,$02,$0D,$06,$06,$04
  365. DB $04,$06,$0D,$06,$06,$04,$04,$02
  366. DB $0D,$06,$06,$04,$04,$06,$0D,$06
  367. DB $09,$00 ;VOL
  368. * TUNE 8 - MC DEATH SOUND
  369. SMCDIE EQU 8
  370. TMCDIE DB $0A,$04,$0C,$04,$0F,$04,$1F,$80,$FF
  371. DB $08,$00
  372. DB $09,$0C,$0F,$10,$0A,$10,$09,$10,$07,$10
  373. DB $05,$10,$04,$10,$03,$0C,$02,$0C,$01,$0C
  374. ***********
  375. * TEMPORARY EQUIVALENCES FOR ROBOTRON
  376. ***********
  377. *SSKULL EQU SPACDTH
  378. *SFPICK EQU SANIM10
  379. *SMCS EQU SMUNCH
  380. *SCREDIE EQU SFRTBNC
  381. *SMCDIE EQU SENERGA
  382. * TUNE # -
  383. ;S EQU #
  384. ;T DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  385. ; DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  386. ; DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  387. *********** END OF RSOUNDS.S *************
  388. EJE