home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: DPaint Amiga / Lowe_DPaintAmiga.adf / jagnew.s < prev    next >
Encoding:
Text File  |  1978-10-17  |  40.6 KB  |  2,359 lines

  1.  
  2.     ;    DRIVER AND MUSIC REMAIN COPYRIGHT D.LOWE 
  3.  
  4.     ;         F15II INGAME TUNES and FX
  5.  
  6.  
  7.     ; ADRIAN,
  8.     ; The fx are not prioritised in this version as I'm not
  9.     ; sure you will need it with all four channels running fx.
  10.     ; If you do let me know.The engine always go to channel 4.
  11.     ; THe simplest way to change the pitch to simulate the speed
  12.     ; variations is to write directly to the period value location
  13.     ; for channel 4 in the hardware registers ($dff0d0+6..word)
  14.     ; once the engine fx has been triggered.
  15.     ; Its probaly best if you do this as you can then  decide the pitch 
  16.     ; variation yourself.
  17.     ; 
  18.     ; I think I have commented everything you need to know
  19.     ; to get it running but dont hesitate to ring if something
  20.     ; is unclear.
  21.  
  22. ;dff0d0+6
  23.     ;        DAVE LOWE.....0723  870648
  24.  
  25.  
  26. ;        **************************
  27.  
  28.     section issA,code_c    ;must be in low memory for dma access
  29.                 ;DEVPAC PSEUDO OP ..CAN BE DELETED
  30.  
  31.  
  32. ;*****************************************
  33.  
  34.         ;  ALL EQUs
  35.  
  36. a00  equ  508*2
  37. bb00  equ  480*2
  38. b00  equ  453*2
  39.  
  40. c01  equ  428*2
  41. db01  equ  404*2
  42. d01 equ  381*2
  43. eb01  equ  360*2
  44. e01  equ  339*2
  45. f01  equ  320*2
  46. gb01  equ  302*2
  47. g01  equ  285*2
  48. ab01 equ 269*2
  49. a01  equ  508
  50. bb01  equ  480
  51. b01  equ  453
  52.  
  53. c02  equ  428
  54. db02  equ  404
  55. d02  equ  381
  56. eb02  equ  360
  57. e02  equ  339
  58. f02  equ  320
  59. gb02  equ  302
  60. g02  equ  285
  61. ab02 equ 269
  62. a02  equ  254
  63. bb02  equ  240
  64. b02  equ  226
  65.  
  66. c03  equ  214
  67. db03  equ  202
  68. d03  equ  190
  69. eb03  equ  180
  70. e03  equ  170
  71. f03  equ  160
  72. gb03  equ  151
  73. g03  equ  143
  74. ab03 equ 135
  75. a03  equ  127
  76.  
  77. bb03  equ  480*2
  78. b03  equ  453*2
  79.  
  80. c04  equ  428*2
  81. db04  equ  404*2
  82. d04 equ  381*2
  83. eb04  equ  360*2
  84. e04  equ  339*2
  85. f04  equ  320*2
  86. gb04  equ  302*2
  87. g04  equ  285*2
  88. ab04 equ 269*2
  89. a04  equ  508
  90. bb04  equ  480
  91. b04  equ  453
  92.  
  93. c05  equ  428
  94. db05  equ  404
  95. d05  equ  381
  96. eb05  equ  360
  97. e05  equ  339
  98. f05  equ  320
  99. gb05  equ  302
  100. g05  equ  285
  101. ab05 equ 269
  102. a05  equ  254
  103. bb05  equ  240
  104. b05  equ  226
  105.  
  106. c06  equ  214
  107. db06  equ  202
  108. d06  equ  190
  109. eb06  equ  180
  110. e06  equ  170
  111. f06  equ  160
  112. gb06  equ  151
  113. g06  equ  143
  114. ab06 equ 135
  115. a06  equ  127
  116. bb06  equ  480*2
  117. b06  equ  453*2
  118.  
  119. c07  equ  428*2
  120. db07  equ  404*2
  121. d07 equ  381*2
  122. eb07  equ  360*2
  123. e07  equ  339*2
  124. f07  equ  320*2
  125. gb07  equ  302*2
  126. g07  equ  285*2
  127. ab07 equ 269*2
  128. a07  equ  508
  129. bb07  equ  480
  130. b07  equ  453
  131.  
  132. c08  equ  428
  133. db08  equ  404
  134. d08  equ  381
  135. eb08  equ  360
  136. e08  equ  339
  137. f08  equ  320
  138. gb08  equ  302
  139. g08  equ  285
  140. ab08 equ 269
  141. a08  equ  254
  142. bb08  equ  240
  143. b08  equ  226
  144.  
  145.  
  146. v equ 0
  147.  
  148. no_loop equ 0
  149. loop equ 0
  150. chann1reg   equ $dff0a0    
  151. chann2reg   equ $dff0b0
  152. chann3reg   equ $dff0c0
  153. chann4reg   equ $dff0d0
  154. dmacon     equ $dff096
  155. int_bf_int   equ   $dff01e
  156. int_bf_w    equ   $dff09a
  157. vhposr     equ   $dff006
  158. in_line    equ   0
  159. new_snd    equ   4
  160. end_song     equ   1
  161. end_patt    equ   8
  162. new_env    equ   12
  163. pbend     equ   16
  164.  
  165. cr  equ   16
  166. tq1 equ 7
  167. tq2 equ 6
  168. tq equ 8
  169. q equ cr/2
  170. sq equ q/2
  171.  
  172. hi: equ 223
  173. lo:  equ 446
  174.  
  175. r22    equ 134
  176. r20    equ 179        ;correctum
  177. r19    equ 150
  178. r18    equ 178
  179. r17    equ 200
  180. r16:    equ 227        ;correctum
  181. r15:    equ 249
  182. r13:    equ 305
  183. r12:    equ 333
  184. r11:    equ 361
  185. r10:    equ 389
  186. r9:    equ 419
  187. r8:    equ 446
  188. r7:    equ 446+112
  189. r6:    equ 446+223
  190. r5:    equ 446+223+112
  191. r4:    equ 446*2
  192. r3:    equ 446*3
  193. r2:    equ 446*4
  194. r1:    equ 446*8
  195.  
  196.  
  197. filter: equ $bfe001
  198. filter_on equ 44
  199. filter_off equ 48
  200.  
  201. modon     equ   20
  202. pboff     equ   24
  203. modoff     equ   28
  204. rest     equ 32
  205. end_fxp  equ 36
  206. end_fx3  equ 36
  207. end_fx4  equ 40
  208. acc    equ 52
  209. repeat    equ 56
  210. down      equ   1
  211. up       equ   2
  212.  
  213. ;***************************************************************
  214.  
  215.  
  216.  ;    THIS IS THE CONTROL SECTION FOR TESTING AS A STAND ALONE PRG. 
  217.  
  218.     ;       AND CAN BE DELETED WHEN NOT REQUIRED
  219.  
  220.  
  221.     jsr select_new_song
  222.  
  223. testloop:
  224.     jsr delay    ;wait for scan line  at 50hz on pal
  225.  
  226.     jsr driver
  227.  
  228.         bra testloop
  229.  
  230.  
  231. delay:
  232.     tst.w fxtimer
  233.     bne no_test
  234.     clr.l d0
  235.     move.b $bfe001,d0
  236.     btst #6,d0
  237.     bne no_test1
  238.     move.w #10,fxtimer
  239.     bra testfx4
  240. no_test
  241.     subq #1,fxtimer
  242. no_test1
  243.     clr.l d0
  244.         move.w vhposr,d0
  245.         andi.w #%1111111100000000,d0
  246.         cmpi.w #%1111111100000000,d0
  247.  
  248.     bne no_test1
  249.     rts
  250.  
  251. testfx4:  
  252.  
  253.     ;jsr    kill_chip
  254.     ;move.w #1,int_disable
  255.     clr.l d0
  256.     move.b $bfe001,d0
  257.     btst #6,d0
  258.     beq testfx4
  259.  
  260.     move.l song_buffer,d0
  261.     addq.l #1,d0
  262.     cmp.l    #6,d0
  263.     bne nores
  264.     move.l #1,d0
  265. nores    move.l d0,song_buffer
  266.     jsr    select_new_song
  267.  
  268.  
  269.     ;move.l fx_last,d0
  270.     ;move.l d0,fx_kill
  271.  
  272.     ;jsr kill_loopfx        ;only one fx at a time
  273.  
  274.  
  275. no_k
  276.         move.l fx_no,fx_number
  277.     move.l fx_no,fx_last
  278.     addq.l #1,fx_no
  279.     move.l    max_fx,d0
  280.         cmp.l fx_no,d0
  281.     bne noreset
  282.     move.l #1,fx_no    
  283. noreset: 
  284.     jsr set_up_fx
  285.     bra no_test    
  286.  
  287. fxtc:          dc.w 10
  288. fx_no:         dc.l  1
  289. fx_last        dc.l  0
  290.  
  291.  
  292. ;        END OF CONTROL (DELETABLE) SECTION
  293.  
  294. ;**********************************************************
  295.  
  296. ; --------------------------------------------------------------
  297.  
  298. ;    MAIN VARIABLES TO BE ACCESSED BY PROGRAMMER DURING RUNTIME
  299.  
  300.  
  301. fx_number:     dc.l 0 ;     number of fx required here...see list
  302. fx_kill        dc.l 0 ;     number of fx to kill/only needed for looped fx
  303.  
  304. song_buffer     dc.l 1 ;     number of piece of music required here ie.1 to 5
  305.  
  306. music_disable:  dc.w 1 ;     1 = disable music
  307. fx_disable:     dc.w 0 ;     1 = disable fx  (currently disabled)
  308.  
  309. ;    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  310.  
  311. ;  THESE VARIABLES ARE USED INTERNALLY BY THE DRIVER
  312. fxr1         dc.l 0  
  313. fxr2         dc.l 0  
  314. fxr3         dc.l 0  
  315. fxr4         dc.l 0  
  316. fxc1        dc.l 0
  317. fxc2          dc.l 0
  318. fxc3        dc.l 0
  319. fxc4          dc.l 0
  320. fx1_flag    dc.w 0
  321. fx2_flag    dc.w 0
  322. fx3_flag    dc.w 0
  323. fx4_flag    dc.w 0
  324. fxtimer        dc.w 0
  325. gen        dc.w 0
  326. int_disable    dc.w 0
  327. altpf         dc.w 0
  328. kill_flag    dc.w 0
  329. ;  *******************************************************
  330.  
  331. ;  CALL THIS SUBROUTINE TO SET UP THE REQIURED FX
  332. ;  on entry it requires the fx number to be in "fx_number"(see above)
  333. ;  
  334.  
  335. set_up_fx
  336.     movem.l d5/a2,-(a7)    ;save used registers
  337.     move.l #1,d0
  338.     cmp fx_number,d0
  339.     bne check3        ;engine to 4
  340.  
  341.     tst.l fxc4
  342.     bne check3
  343. use4:    
  344.     move.w #%0000000000001000,d5
  345.     lea chann4reg,a2
  346.     jsr end_fx4p
  347.     move.l fx_number,fxr4
  348.     move.l fx_number,fxc4
  349.     move.l #0,fx_number
  350.     bra no_fx
  351. check3:    tst.l fxc3
  352.     bne check2
  353. use3:
  354.     move.w #%0000000000000100,d5
  355.     lea chann3reg,a2
  356.     jsr end_fx3p
  357.     move.l fx_number,fxr3
  358.     move.l fx_number,fxc3
  359.     move.l #0,fx_number
  360.     bra no_fx
  361. check2:    tst.l fxc2
  362.     bne check1
  363. use2:
  364.     move.w #%0000000000000010,d5
  365.     lea chann2reg,a2
  366.     jsr end_fx2p
  367.     move.l fx_number,fxr2
  368.     move.l fx_number,fxc2
  369.     move.l #0,fx_number
  370.     bra no_fx
  371. check1:    tst.l fxc1
  372.     bne use3
  373. use1:
  374.     move.w #%0000000000000001,d5
  375.     lea chann1reg,a2
  376.     jsr end_fx1p
  377.     move.l fx_number,fxr1
  378.     move.l fx_number,fxc1
  379.     move.l #0,fx_number
  380. no_fx
  381.     movem.l (a7)+,d5/a2    ;restore registers
  382.     rts
  383.  
  384. ;*************************************************
  385. ;          CALL HERE TO KILL ANY LOOPED FX...
  386. ;       after putting the number of the fx you want to kill
  387. ;            into fx_kill
  388.  
  389. kill_loopfx
  390.  
  391.     movem.l d5/a2,-(a7)    ;save used registers
  392.     move.l fx_kill,d5
  393.     cmp.l fxc1,d5
  394.     bne k2
  395.     move.w #%0000000000000001,d5
  396.     lea chann1reg,a2
  397.     jsr end_fx1p
  398.     bra error
  399. k2    cmp.l fxc2,d5
  400.     bne k3
  401.     move.w #%0000000000000010,d5
  402.     lea chann2reg,a2
  403.     jsr end_fx2p
  404.     bra error
  405. k3    cmp.l fxc3,d5
  406.     bne k4
  407.     move.w #%0000000000000100,d5
  408.     lea chann3reg,a2
  409.     jsr end_fx3p
  410.     bra error
  411. k4    cmp.l fxc4,d5
  412.     bne error
  413.     move.w #%0000000000001000,d5
  414.     lea chann2reg,a2
  415.     jsr end_fx4p
  416. error
  417.     clr.l fx_kill
  418.     movem.l (a7)+,d5/a2    ;restore registers
  419.     rts
  420. ;*************************************************
  421.  
  422.     ; CALL HERE TO KILL ANY SOUND for whatever reason
  423.  
  424. kill_chip:
  425.     move.w #%0000000000001111,dmacon
  426.     move.l rest_data,chann1reg
  427.     move.l rest_data,chann2reg
  428.     move.l rest_data,chann3reg
  429.     move.l rest_data,chann4reg
  430.     move.w #16,chann1reg+4    
  431.     move.w #16,chann2reg+4    
  432.     move.w #16,chann3reg+4    
  433.     move.w #16,chann4reg+4    
  434.     move.w #0,chann1reg+8
  435.     move.w #0,chann2reg+8
  436.     move.w #0,chann3reg+8
  437.     move.w #0,chann4reg+8
  438.     move.w #1,chann1reg+6
  439.     move.w #1,chann2reg+6
  440.     move.w #1,chann3reg+6
  441.     move.w #1,chann4reg+6
  442.     move.l #0,fxr1
  443.     move.l #0,fxr2
  444.     move.l #0,fxr3
  445.     move.l #0,fxr4
  446.     move.w #0,fx1_flag
  447.     move.w #0,fx2_flag
  448.     move.w #0,fx3_flag
  449.     move.w #0,fx4_flag
  450.     move.l #0,fxc1
  451.     move.l #0,fxc2
  452.     move.l #0,fxc3
  453.     move.l #0,fxc4
  454.     rts
  455. ;****************************************
  456.  
  457. ;  CALL HERE TO SELECT WHICH PIECE OF MUSIC TO PLAY
  458. ;  AFTER PLACING NUMBER (1 to 3) IN "SONG_BUFFER"..see above
  459. ;  a call to this routine will initiliase the driver/kill any sound etc.      
  460. ;  make sure this routine has been called before running the interrupt
  461. ;  driven section....see below
  462.  
  463. select_new_song:
  464.  
  465.     move.w #1,int_disable
  466.     movem.l d0/d1/a0/a1,-(a7)    ;save used registers
  467.     move.w music_disable,gen
  468.     move.w #1,music_disable
  469.         jsr kill_chip           
  470.     clr.l d0
  471.         move.w #204,d0
  472.         lea gvars,a0
  473. clloop: clr.w (a0)+        
  474.         dbra  d0,clloop
  475.     tst.l song_buffer
  476.     beq no_song
  477.         move.l song_buffer,d1
  478.     add.l d1,d1
  479.      add.l d1,d1
  480.      add.l d1,d1
  481.      add.l d1,d1
  482.         LEA  SONG_TABLE-16,A1
  483.         add.l d1,a1      
  484.         MOVE.L (A1)+,WSONG1    
  485.         move.l (a1)+,wsong2    
  486.         move.l (a1)+,wsong3
  487.     move.l (a1),wsong4
  488.         MOVE.L #pstart,PATTR1
  489.         MOVE.L #pstart,PATTR2
  490.         MOVE.L #pstart,PATTR3
  491.     move.l #pstart,pattr4
  492.         move.l #sstart,songr1
  493.         MOVE.L #sstart,SONGR2
  494.         MOVE.L #sstart,SONGR3
  495.     move.l #sstart,songr4
  496. no_song
  497.     move.w #1,ch1vars
  498.     move.w #2,ch2vars
  499.     move.w #3,ch3vars
  500.     move.w #4,ch4vars
  501.     move.w #6,ch4fxvars
  502.     move.w #5,ch3fxvars
  503.     move.w #7,ch2fxvars
  504.     move.w #8,ch1fxvars
  505.     move.w gen,music_disable
  506.     clr.w int_disable
  507.     movem.l (a7)+,d0/d1/a0/a1    ;restore registers
  508.         rts
  509.  
  510. ;**************************************************
  511.  
  512. ;  CALL HERE ON A 50hz INTERRUPT DURING RUNTIME
  513. ;  TO PLAY FX AND TUNES
  514.  
  515. driver:  
  516.     tst.w int_disable
  517.     beq process_data
  518.     rts        
  519. process_data
  520.     movem.l d0-d6/a0-a6,-(a7)    ;save used registers
  521.  
  522.  
  523. ch1:
  524.     tst.w fx_disable
  525.     bne test_music1
  526.     tst.l fxr1
  527.     bne   ch1j1
  528.     tst.l fxc1
  529.     beq test_music1
  530.     bra ch1j3
  531. ch1j2    jsr run_dummy1
  532.     jsr run_fx1
  533.     bra ch2
  534. ch1j1
  535.     jsr set_up1
  536. ch1j3    tst.w music_disable    
  537.     beq ch1j2
  538.     jsr run_fx1
  539.     bra ch2
  540. test_music1
  541.     tst.w music_disable
  542.     bne ch2
  543.     jsr run_music1
  544.     bra ch2
  545.     ;***********************
  546.  
  547.     ; channel 1 subroutines
  548.  
  549. run_dummy1    
  550.      lea ch1vars,a0
  551.      lea dummy_reg,a2 
  552.      move.w #0,d5 
  553.      jsr sect1    
  554.     rts
  555.  
  556. set_up1    
  557.          move.l fxr1,d0
  558.          add d0,d0
  559.          add d0,d0
  560.          lea  fxjump_table-4,A1
  561.      add.l d0,a1
  562.          move.l (a1),currfx1
  563.       clr.l fxr1
  564.      clr.w fxintc1
  565.       rts
  566.   
  567.      
  568. run_fx1
  569.     lea ch1fxvars,a0
  570.        lea chann1reg,a2
  571.       move.w #%0000000000000001,d5 
  572.      move.w #%1000001000000001,d1 
  573.      jsr sect1
  574.     rts
  575.  
  576. run_music1
  577.     lea ch1vars,a0
  578.        lea chann1reg,a2
  579.       move.w #%0000000000000001,d5 
  580.       move.w #%1000001000000001,d1 
  581.       jsr sect1     
  582.     rts
  583.  
  584.     ;  **************************
  585. ch2
  586.     tst.w fx_disable
  587.     bne test_music2
  588.     tst.l fxr2
  589.     bne   ch2j1
  590.     tst.l fxc2
  591.     beq test_music2
  592.     bra ch2j3
  593. ch2j2    jsr run_dummy2
  594.     jsr run_fx2
  595.     bra ch3
  596. ch2j1
  597.     jsr set_up2
  598. ch2j3    tst.w music_disable    
  599.     beq ch2j2
  600.     jsr run_fx2
  601.     bra ch3
  602.  
  603. test_music2
  604.     tst.w music_disable
  605.     bne ch3
  606.     jsr run_music2
  607.     bra ch3
  608.     ;***********************
  609.     ; channel 2 subroutines
  610. run_dummy2    
  611.      lea ch2vars,a0
  612.      lea dummy_reg,a2 
  613.      move.w #0,d5 
  614.      jsr sect1    
  615.     rts
  616.  
  617. set_up2    
  618.          move.l fxr2,d0
  619.          add d0,d0
  620.          add d0,d0
  621.          lea  fxjump_table-4,A1
  622.      add.l d0,a1
  623.          move.l (a1),currfx2
  624.       clr.l fxr2
  625.      clr.w fxintc2
  626.       rts
  627.   
  628.      
  629. run_fx2
  630.     lea ch2fxvars,a0
  631.        lea chann2reg,a2
  632.       move.w #%0000000000000010,d5 
  633.      move.w #%1000001000000010,d1 
  634.      jsr sect1
  635.     rts
  636.  
  637. run_music2
  638.     lea ch2vars,a0
  639.        lea chann2reg,a2
  640.       move.w #%0000000000000010,d5 
  641.       move.w #%1000001000000010,d1 
  642.       jsr sect1     
  643.     rts
  644.  
  645.     ;  **************************
  646.  
  647. ch3:
  648.     tst.w fx_disable
  649.     bne test_music3
  650.     tst.l fxr3
  651.     bne   ch3j1
  652.     tst.l fxc3
  653.     beq test_music3
  654.     bra ch3j3
  655. ch3j2    jsr run_dummy3
  656.     jsr run_fx3
  657.     bra ch4
  658. ch3j1
  659.     jsr set_up3
  660. ch3j3    tst.w music_disable    
  661.     beq ch3j2
  662.     jsr run_fx3
  663.     bra ch4
  664.  
  665. test_music3
  666.     tst.w music_disable
  667.     bne ch4
  668.     jsr run_music3
  669.     bra ch4
  670.  
  671.     ;***********************
  672.  
  673.     ; channel 3 subroutines
  674.  
  675. run_dummy3    
  676.      lea ch3vars,a0
  677.      lea dummy_reg,a2 
  678.      move.w #0,d5 
  679.      jsr sect1    
  680.     rts
  681.  
  682. set_up3    
  683.          move.l fxr3,d0
  684.          add d0,d0
  685.          add d0,d0
  686.          lea  fxjump_table-4,A1
  687.      add.l d0,a1
  688.          move.l (a1),currfx3
  689.       clr.l fxr3
  690.      clr.w fxintc3
  691.       rts
  692.   
  693.      
  694. run_fx3
  695.     lea ch3fxvars,a0
  696.        lea chann3reg,a2
  697.       move.w #%0000000000000100,d5 
  698.      move.w #%1000001000000100,d1 
  699.      jsr sect1
  700.     rts
  701.  
  702. run_music3
  703.     lea ch3vars,a0
  704.        lea chann3reg,a2
  705.       move.w #%0000000000000100,d5 
  706.       move.w #%1000001000000100,d1 
  707.       jsr sect1     
  708.     rts
  709.  
  710.     ;  **************************
  711.  
  712. ch4:
  713.     tst.w fx_disable
  714.     bne test_music4
  715.     tst.l fxr4
  716.     bne   ch4j1
  717.     tst.l fxc4
  718.     beq test_music4
  719.     bra ch4j3
  720. ch4j2    jsr run_dummy4
  721.     jsr run_fx4
  722.     bra no4
  723. ch4j1
  724.     jsr set_up4
  725. ch4j3    tst.w music_disable    
  726.     beq ch4j2
  727.     jsr run_fx4
  728.     bra no4
  729.  
  730. test_music4
  731.     tst.w music_disable
  732.     bne no4
  733.     jsr run_music4
  734. no4    
  735.     movem.l (a7)+,d0-d6/a0-a6    ;restore registers
  736.     rts
  737.  
  738.     ;***********************
  739.  
  740.     ; channel 4 subroutines
  741.  
  742. run_dummy4    
  743.      lea ch4vars,a0
  744.      lea dummy_reg,a2 
  745.      move.w #0,d5 
  746.      jsr sect1    
  747.     rts
  748.  
  749. set_up4    
  750.          move.l fxr4,d0
  751.          add d0,d0
  752.          add d0,d0
  753.          lea  fxjump_table-4,A1
  754.      add.l d0,a1
  755.          move.l (a1),currfx4
  756.       clr.l fxr4
  757.      clr.w fxintc4
  758.       rts
  759.   
  760.      
  761. run_fx4
  762.     lea ch4fxvars,a0
  763.        lea chann4reg,a2
  764.       move.w #%0000000000001000,d5 
  765.      move.w #%1000001000001000,d1 
  766.      jsr sect1
  767.     rts
  768.  
  769. run_music4
  770.     lea ch4vars,a0
  771.        lea chann4reg,a2
  772.       move.w #%0000000000001000,d5 
  773.       move.w #%1000001000001000,d1 
  774.       jsr sect1     
  775.     rts
  776.     ;  **************************
  777.  
  778. sect1: tst.w 0(a0)
  779.     bne s1j1
  780.     rts
  781.  
  782. s1j1:    tst.w 2(a0)
  783.         beq sect3       
  784.         cmpi.w #1,2(a0)
  785.         beq sect4
  786.  
  787.         cmpi.w #3,4(a0)    
  788.         beq part2       
  789.     
  790. mode_switch:  subq.w #1,2(a0)     
  791.  
  792. check_effects: clr.w altpf      
  793.         move.w 6(a0),d2    
  794.         tst.w 8(a0)      
  795.         beq check_mod
  796.         tst.w 14(a0)      
  797.         beq cont_bend
  798.         subq.w #1,14(a0)
  799.         bra check_mod
  800. cont_bend:   addq.w #1,altpf    
  801.         move.w 10(a0),d3    
  802.         move.w 12(a0),d4    
  803.         cmpi.w #1,8(a0)
  804.         beq pbup
  805.     
  806.         sub.w d3,d2
  807.         cmp.w d2,d4
  808.         bcs check_mod
  809.         bra fbend
  810.  
  811. pbup:     add.w d3,d2
  812.         cmp.w d2,d4
  813.         bcc check_mod
  814. fbend:     move.w d4,d2
  815.         clr.w 8(a0)      
  816. check_mod:   tst.w 16(a0)
  817.         beq send_alt_pitch
  818.    
  819.  
  820.     tst.w  58(a0)
  821.     beq st_ok
  822.     subq.w #1,58(a0)
  823.     bra send_alt_pitch
  824. st_ok:
  825.         tst.w 50(a0)
  826.         beq cont_mod
  827.         subq #1,50(a0)
  828.         bra send_alt_pitch
  829. cont_mod:    move.w 52(a0),50(a0)  
  830.         addq #1,altpf
  831.         cmpi #3,16(a0)
  832.         bcc addmod
  833.     
  834.         move.w 56(a0),d3 
  835.         sub.w d3,d2
  836.         addq.w #1,16(a0)  
  837.         bra send_alt_pitch
  838. addmod:
  839.  
  840.         move.w 54(a0),d3 
  841.         add.w d3,d2
  842.         addq.w #1,16(a0)
  843.         cmpi.w #5,16(a0)
  844.        bne send_alt_pitch
  845.         move.w #1,16(a0)  
  846.  
  847. send_alt_pitch: tst.w altpf
  848.         beq send_env
  849.         move.w d2,6(a0)  
  850.         move.w d2,6(a2)  
  851.  
  852. send_env: 
  853.  
  854.     cmpi #6,(a0)
  855.     beq norm_env    
  856.     cmpi #5,(a0)
  857.     bne do_env_check
  858.  
  859.     tst.w fx4_flag
  860.     beq norm_env
  861.     bra low_vol
  862.  
  863. do_env_check:
  864.     move.w fx3_flag,d0
  865.     or.w fx4_flag,d0
  866.     cmpi.w  #0,d0
  867.     beq norm_env
  868. low_vol:    
  869.     move.l 18(a0),a1    
  870.         cmpi.w #255,(a1)
  871.         beq evj1
  872.     move.w (a1)+,d0
  873. evj2:    sub.w  62(a0),d0
  874.     bcc no_over
  875.     move.w 0,d0
  876. no_over:
  877.         move.w d0,8(a2) 
  878.     bra fint        
  879.  
  880. evj1:   subq.l #2,a1
  881.     move.w (a1)+,d0
  882.     bra evj2
  883.  
  884. norm_env:
  885.     move.l 18(a0),a1    
  886.         cmpi.w #255,(a1)
  887.         beq env_finished
  888.     cmpi.w #1,66(a0)    
  889.     bne    no_acc 
  890.  
  891.     clr.l d0
  892.     move.w (a1)+,d0
  893.     add.w 64(a0),d0    
  894.     move.w d0,8(a2)    
  895.     move.l a1,18(a0)
  896.     rts        
  897.  
  898. no_acc:
  899. resu:   move.w (a1)+,8(a2)   
  900. fint:   move.l a1,18(a0)    
  901.     rts
  902.  
  903. env_finished:
  904.      subq.l #2,a1    
  905.      bra resu
  906.  
  907.  
  908. one_shot_note: move.w #3,4(a0)     
  909.         move.l 38(a0),(a2)
  910.         move.w 42(a0),4(a2)
  911.         move.w d1,dmacon     
  912.         bra send_env
  913.  
  914.  
  915. part2:                         
  916.         move.l 44(a0),(a2)
  917.         move.w 48(a0),4(a2)
  918.         subq.w #1,2(a0)      
  919.         move.w #1,4(a0)
  920.         bra check_effects
  921.  
  922. sect3:
  923.     move.w 0,66(a0)    
  924.  
  925.     move.l 22(a0),a1  
  926. control_ret: move.w (a1)+,d0  
  927.     cmpi.w #100,d0   
  928.     bls sect5   
  929.   
  930. acc_note:
  931.     move.w d0,6(a0)  
  932.     move.w d0,6(a2)  
  933.     move.w (a1)+,2(a0) 
  934.     subq.w #1,2(a0)  
  935.     move.l a1,22(a0)  
  936.     move.l 34(a0),18(a0) 
  937.     move.w 60(a0),58(a0) 
  938.  
  939.  
  940.     tst.w 16(a0)
  941.     beq no_mod_res
  942.     move.w #1,16(a0)
  943. no_mod_res:
  944.     cmpi.w #0,4(a0)
  945.     beq do_loop
  946.     bra one_shot_note    
  947.  
  948.  
  949. do_loop:    move.w d1,dmacon   
  950.         bra send_env
  951.  
  952. do_rest:
  953.     move.w (a1)+,2(a0) 
  954.     subq.w #1,2(a0)  
  955.     move.l a1,22(a0)  
  956.     move.l  #rest_env,18(a0)
  957.  
  958.         move.w #0,8(a2)
  959.         bra send_env
  960.    
  961. sect4:
  962.         cmpi.w #0,4(a0)
  963.         beq noof
  964.         move.w d5,dmacon   
  965. noof:     subq.w #1,2(a0)
  966.         bra check_effects
  967.    
  968. sect5:     move.l #jump_table,a3
  969.         move.l (a3,d0),a4
  970.         jmp (a4)
  971.  
  972. jump_table: 
  973.     dc.l  in_line_data
  974.         dc.l  nsound
  975.         dc.l  patt_end
  976.         dc.l  get_env
  977.         dc.l  check_pbend
  978.         dc.l  do_mod
  979.         dc.l  bend_off
  980.         dc.l  mod_off
  981.         dc.l  do_rest
  982.         dc.l  end_fx
  983.         dc.l  end_fx
  984.     dc.l  s_f_on
  985.     dc.l  s_f_off
  986.     dc.l  set_acc
  987.     dc.l  rept
  988.  
  989. in_line_data:
  990.  
  991.         nop
  992.         rts
  993.  
  994. rept:
  995.     move.l (a1),a1
  996.     bra control_ret
  997.  
  998. s_f_on: 
  999.     bclr #1,filter
  1000.     bra control_ret
  1001. s_f_off:
  1002.     bset #1,filter
  1003.     bra control_ret
  1004.  
  1005. nsound:    move.l (a1)+,a3     
  1006.         cmpi.w #0,(a3)
  1007.         bne one_shot_sound
  1008.         move.w (a3)+,4(a0)    
  1009.         move.l (a3)+,(a2)     
  1010.         move.w (a3),4(a2)    
  1011.         jmp control_ret
  1012.  
  1013. one_shot_sound:
  1014.         move.w (a3)+,4(a0)
  1015.         move.l (a3)+,38(a0)   
  1016.         move.l (a3)+,42(a0)
  1017.         move.l (a3),46(a0)
  1018.         jmp control_ret
  1019.  
  1020. patt_end:
  1021.  
  1022.         move.l 26(a0),a1    
  1023.         cmpi.l #0,(a1)     
  1024.         beq song_control
  1025.         addq.l #4,26(a0)    
  1026.         move.l (a1),a1     
  1027.         jmp control_ret
  1028. get_env: 
  1029.        move.l (a1)+,a4 
  1030.     move.l (a4)+,62(a0)    
  1031.     
  1032.     move.l  a4,34(a0)    
  1033.     
  1034.         bra control_ret
  1035.  
  1036. check_pbend:
  1037.      move.l (a1)+,8(a0)
  1038.         move.l (a1)+,12(a0)
  1039.         bra control_ret
  1040.  
  1041. do_mod:    move.w #1,16(a0)  
  1042.         move.l (a1)+,50(a0)
  1043.         move.l (a1)+,54(a0)
  1044.         move.l (a1)+,58(a0)
  1045.         bra control_ret
  1046.  
  1047. bend_off:   clr.w 8(a0)
  1048.         bra control_ret
  1049.  
  1050. mod_off:    clr.w 16(a0)
  1051.         bra control_ret
  1052.  
  1053.  
  1054. end_fx:    
  1055.     cmpi.w #6,(a0)
  1056.     beq end_fx4p
  1057.     cmpi.w #5,(a0)
  1058.     beq end_fx3p
  1059.     cmpi.w #7,(a0)
  1060.     beq end_fx2p
  1061.  
  1062. end_fx1p:
  1063.         move.w d5,dmacon   
  1064.     move.w  #1,chann1reg+6
  1065.     move.w #0,8(a2)
  1066.     move.l #0,fxc1
  1067.     rts
  1068.  
  1069. end_fx2p:
  1070.     move.w d5,dmacon 
  1071.     move.w  #1,chann2reg+6
  1072.         move.w #0,8(a2) 
  1073.     move.l #0,fxc2
  1074.         rts
  1075.  
  1076.  
  1077. end_fx3p:
  1078.         move.w d5,dmacon   
  1079.     move.w  #1,chann3reg+6
  1080.     move.w #0,8(a2)
  1081.     move.l #0,fxc3
  1082.     rts
  1083.  
  1084. end_fx4p:
  1085.     move.w d5,dmacon 
  1086.     move.w  #1,chann4reg+6
  1087.         move.w #0,8(a2) 
  1088.     move.l #0,fxc4
  1089.         rts
  1090.  
  1091. set_acc: move.w #1,66(a0) 
  1092.     bra control_ret
  1093.  
  1094. song_control:
  1095.         addq.l #4,a1
  1096.         move.l 30(a0),26(a0)
  1097.         move.l 26(a0),a1
  1098.         addq.l #4,26(a0)
  1099.         move.l (a1),a1
  1100.         jmp control_ret
  1101.  
  1102.  
  1103.     ;"""""""""""""""""""""""""""""""""""""""""""""""""
  1104.  
  1105.     ;;; DATA
  1106.  
  1107. song_table:
  1108.         dc.l s1,s2,s3,s4
  1109.         dc.l s5,s6,s7,s8
  1110.  
  1111. ;************************************************************
  1112. gvars:
  1113. ch1vars     
  1114.     dc.w 0     
  1115.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1116. pattr1: dc.l 0    
  1117. songr1: dc.l 0    
  1118. wsong1: dc.l 0   
  1119.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1120.  
  1121. ch2vars     
  1122.     dc.w 0     
  1123.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1124. pattr2: dc.l 0    
  1125. songr2: dc.l 0    
  1126. wsong2: dc.l 0    
  1127.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1128.  
  1129. ch3vars 
  1130.     dc.w 0     
  1131.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1132. pattr3: dc.l 0    
  1133. songr3: dc.l 0    
  1134. wsong3: dc.l 0    
  1135.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1136.  
  1137. ch4vars 
  1138.     dc.w 0     
  1139.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1140. pattr4: dc.l 0    
  1141. songr4: dc.l 0    
  1142. wsong4: dc.l 0    
  1143.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1144.  
  1145.  
  1146. ch1fxvars 
  1147.     dc.w 0     
  1148. fxintc1:
  1149.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1150. currfx1:
  1151.     dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
  1152.  
  1153. ch2fxvars 
  1154.     dc.w 0     
  1155. fxintc2:
  1156.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1157. currfx2:
  1158.     dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
  1159.  
  1160.  
  1161. ch3fxvars
  1162.     dc.w 0     
  1163. fxintc3:
  1164.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1165. currfx3:
  1166.     dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
  1167.  
  1168. ch4fxvars 
  1169.     dc.w 0     
  1170. fxintc4:
  1171.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1172. currfx4:
  1173.     dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
  1174. ;************************************************************
  1175.  
  1176. dummy_reg dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1177.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1178.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1179.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1180. ;************************************************************
  1181.  
  1182.  
  1183.  
  1184. ;       fx patterns here
  1185.  
  1186. fxjump_table:  
  1187.  
  1188.          dc.l gun
  1189.          dc.l gun2
  1190.          dc.l gun3
  1191.          dc.l gun4
  1192.     dc.l explosion
  1193.     dc.l explosion2
  1194.     dc.l explosion3
  1195.     dc.l explosion4
  1196.     dc.l explosion5
  1197.  
  1198. max_fx    dc.l    10
  1199.  
  1200.  
  1201. ;______________________________________________________________________
  1202.  
  1203. ;   The 1/50 counter in these patterns is dependent on the length
  1204. ;   of the sample in bytes and the replay speed.if altering the
  1205. ;   replay speed calculate the counter using length/rate*50
  1206. ;   ie the piston sample is 2647 bytes at r6(6000)..hence interrupt
  1207. ;   counter for 1 shot play = 22
  1208.  
  1209.  
  1210.  
  1211. gun
  1212.                         dc.w  new_env
  1213.                         dc.l  gunenv
  1214.             dc.w    new_snd
  1215.             dc.l    gun1
  1216.             dc.w    r12,25
  1217.                            dc.w    end_fxp
  1218. gun2
  1219.                         dc.w  new_env
  1220.                         dc.l  gunenv
  1221.             dc.w    new_snd
  1222.             dc.l    gun1
  1223.             dc.w    r12,7,r12,7,r12,7,r12,7
  1224.             dc.w    r12,7,r12,7,r12,7,r12,7
  1225.  
  1226.  
  1227.                            dc.w    end_fxp
  1228. gun3
  1229.                         dc.w  new_env
  1230.                         dc.l  gunenv
  1231.             dc.w    new_snd
  1232.             dc.l    gun1
  1233.             dc.w    r4,37
  1234.                            dc.w    end_fxp
  1235. gun4
  1236.                         dc.w  new_env
  1237.                         dc.l  gunenv
  1238.             dc.w    new_snd
  1239.             dc.l    explosi8
  1240.  
  1241.             dc.w    220,20
  1242.                            dc.w    end_fxp
  1243.  
  1244. gunenv            dc.w 0,64,64,255
  1245.  
  1246. ;------------------------
  1247.  
  1248. explosion
  1249.                         dc.w  new_env
  1250.                         dc.l  explosionenv
  1251.             dc.w    new_snd
  1252.             dc.l    explosi8
  1253.             dc.w    r8,31
  1254.                            dc.w    end_fxp
  1255. explosion2
  1256.                         dc.w  new_env
  1257.                         dc.l  explosionenv
  1258.             dc.w    new_snd
  1259.             dc.l    explosi8
  1260.             dc.w    r4,61
  1261.                            dc.w    end_fxp
  1262. explosion3
  1263.                         dc.w  new_env
  1264.                         dc.l  explosionenv
  1265.             dc.w    new_snd
  1266.             dc.l    explosi8
  1267.             dc.w    r16,15
  1268.                            dc.w    end_fxp
  1269. explosion4
  1270.                         dc.w  new_env
  1271.                         dc.l  explosionenv
  1272.             dc.w    new_snd
  1273.             dc.l    explosi8
  1274.             dc.w    r2,123
  1275.                            dc.w    end_fxp
  1276.  
  1277. explosion5
  1278.                         dc.w  new_env
  1279.                         dc.l  explosionenv
  1280.             dc.w    new_snd
  1281.             dc.l    explosi8
  1282.             dc.w    r12,13,r4,7,r8,6,r5,3,r2,100
  1283.                            dc.w    end_fxp
  1284.  
  1285.  
  1286.  
  1287.  
  1288. explosionenv        dc.w 0,64,64,255
  1289.  
  1290.  
  1291. ;*******************************************************************
  1292.  
  1293. sstart: dc.l 0,end_song
  1294.  
  1295. pstart: dc.w end_patt
  1296.  
  1297.  
  1298. ;----------------------------------
  1299.  
  1300.  
  1301. ;;;;;;;;;;;;;;;;;;;;;    JAGGED  Music Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1302.  
  1303. s1:
  1304.     dc.l    p10,p10,p10,p10,p10,p10,p10,p10,p10,p10,p10
  1305.     dc.l    p10,p10,p10,p10
  1306.     dc.l    p9,p9,p9,p9,p9,p9,p9,p9,p12,p13
  1307.     dc.l    p10,p10,p10,p10,p10,p10,p10
  1308.     dc.l    p10,p10,p10,p11
  1309.     dc.l    p9,p9,p9,p9,p9,p9,p9,p9,p12,p13
  1310.       dc.l     0,end_song
  1311.  
  1312. s2:
  1313.     dc.l    p1,p1,p1,p1,p1,p1,p2,p2,p1,p1,p2,p2
  1314.     dc.l    p3,p3,p3,p4,p5,p6,p6,p6,p6
  1315.     dc.l    p7,p7,p7,p7,p6,p6,p6,p6
  1316.     dc.l    p7,p7,p7,p7,p8
  1317.     dc.l    p1,p1,p2,p2,p1,p1,p2,p2
  1318.     dc.l    p3,p3,p3,p4,p5,p6,p6,p6,p6
  1319.     dc.l    p7,p7,p7,p7,p6,p6,p6,p6
  1320.     dc.l    p7,p7,p7,p7,p8
  1321.         DC.L     0,end_song
  1322.  
  1323. s3:
  1324.     dc.l    pr,pr,pr,pr,p20,p20a,p21,p22
  1325.     dc.l    p20,p20a,p21,p22
  1326.     dc.l     0,end_song
  1327.  
  1328. s4:
  1329.     dc.l    phat,phat,phat,phat
  1330.     dc.l     0,end_song
  1331.  
  1332.  
  1333.  
  1334. pcr:
  1335.       dc.w rest,cr
  1336.       dc.w end_patt
  1337. pr:
  1338.       dc.w rest,cr*4
  1339.       dc.w end_patt
  1340. pra:
  1341.     dc.w rest,q*7
  1342.     dc.w end_patt
  1343. pqr:
  1344.       dc.w rest,q
  1345.       dc.w end_patt
  1346.  
  1347. p1:
  1348.       dc.w new_env
  1349.       dc.l bas_env
  1350.     dc.w    new_snd
  1351.     dc.l    bas
  1352.       dc.w a01,q,c02,q,E02,q,a01,q
  1353.       dc.w g02,q,a01,q,E02,q,g02,q
  1354.       dc.w end_patt
  1355.  
  1356.  
  1357. p2:
  1358.       dc.w new_env
  1359.       dc.l bas_env
  1360.     dc.w    new_snd
  1361.     dc.l    bas
  1362.       dc.w f01,q,a01,q,c02,q,f01,q
  1363.       dc.w d02,q,f01,q,c02,q,f01,q
  1364.       dc.w end_patt
  1365.  
  1366.  
  1367.  
  1368. p3:
  1369.       dc.w new_env
  1370.       dc.l bas_env
  1371.     dc.w    new_snd
  1372.     dc.l    bas
  1373.       dc.w g01,q,g02,q,g01,q,g02,q
  1374.       dc.w end_patt
  1375.  
  1376.  
  1377. p4:
  1378.       dc.w new_env
  1379.       dc.l bas_env
  1380.     dc.w    new_snd
  1381.     dc.l    bas
  1382.       dc.w f01,q,f02,q,f01,q,f02,q
  1383.       dc.w end_patt
  1384.  
  1385.  
  1386.  
  1387. p5:
  1388.       dc.w new_env
  1389.       dc.l bas_env
  1390.     dc.w    new_snd
  1391.     dc.l    bas
  1392.       dc.w e01,q,gb01,q,ab01,q,ab01,q
  1393.       dc.w b01,q,db02,q,d02,q,e02,q
  1394.       dc.w end_patt
  1395.  
  1396.  
  1397. p6:
  1398.       dc.w new_env
  1399.       dc.l bas_env
  1400.     dc.w    new_snd
  1401.     dc.l    bas
  1402.       dc.w a02,sq,a02,sq,db03,sq,db03,sq
  1403.       dc.w a02,sq,a02,sq,E03,sq,e03,sq
  1404.       dc.w end_patt
  1405.  
  1406.  
  1407. p7:
  1408.     dc.w new_env
  1409.       dc.l bas_env
  1410.     dc.w    new_snd
  1411.     dc.l    bas
  1412.       dc.w e02,sq,e02,sq,ab02,sq,ab02,sq
  1413.       dc.w e02,sq,e02,sq,b02,sq,b02,sq
  1414.       dc.w end_patt
  1415.  
  1416.  
  1417. p8:
  1418.     dc.w new_env
  1419.       dc.l org_env
  1420.     dc.w    new_snd
  1421.     dc.l    org
  1422.       dc.w d06,q,d05,sq,rest,sq,d05,q,d06,q
  1423.       dc.w d06,sq,rest,sq,d05,q,d05,q,d06,sq
  1424.     dc.w rest,sq,d05,sq,rest,sq,d05,sq*5,rest,sq
  1425.     dc.w e05,sq*7,rest,sq
  1426.       dc.w end_patt
  1427.  
  1428.  
  1429.               
  1430.  
  1431. p9:     
  1432.       dc.w new_env
  1433.       dc.l kik_env
  1434.     dc.w    new_snd
  1435.     dc.l    kik
  1436.       dc.w r16,cr
  1437.       dc.w new_env
  1438.       dc.l snr_env
  1439.     dc.w    new_snd
  1440.     dc.l    snr
  1441.       dc.w r16,cr
  1442.       dc.w new_env
  1443.       dc.l kik_env
  1444.     dc.w    new_snd
  1445.     dc.l    kik
  1446.       dc.w r16,cr
  1447.       dc.w new_env
  1448.       dc.l snr_env
  1449.     dc.w    new_snd
  1450.     dc.l    snr
  1451.       dc.w r16,cr
  1452.       dc.w end_patt
  1453.  
  1454. phat:
  1455.       dc.w new_env
  1456.       dc.l hat_env
  1457.     dc.w    new_snd
  1458.     dc.l    hat
  1459.       dc.w r16,sQ,r16,sQ,r16,sQ,r16,sq
  1460.       dc.w end_patt
  1461.  
  1462.  
  1463. p10:     
  1464.       dc.w new_env
  1465.       dc.l kik_env
  1466.     dc.w    new_snd
  1467.     dc.l    kik
  1468.       dc.w r16,cr*2
  1469.       dc.w new_env
  1470.       dc.l kik_env
  1471.     dc.w    new_snd
  1472.     dc.l    kik
  1473.       dc.w r16,cr
  1474.       dc.w new_env
  1475.       dc.l snr_env
  1476.     dc.w    new_snd
  1477.     dc.l    snr
  1478.       dc.w r16,cr
  1479.       dc.w end_patt
  1480.  
  1481. ptest:     
  1482.       dc.w new_env
  1483.       dc.l kik_env
  1484.     dc.w    new_snd
  1485.     dc.l    kik
  1486.       dc.w r10,cr,r10,cr
  1487.       dc.w new_env
  1488.       dc.l snr_env
  1489.     dc.w    new_snd
  1490.     dc.l    snr
  1491.       dc.w r8,cr*2
  1492.       dc.w end_patt
  1493.  
  1494.  
  1495. p11:     
  1496.       dc.w new_env
  1497.       dc.l kik_env
  1498.     dc.w    new_snd
  1499.     dc.l    kik
  1500.       dc.w r16,sQ
  1501.       dc.w new_env
  1502.       dc.l hat_env
  1503.     dc.w    new_snd
  1504.     dc.l    hat
  1505.       dc.w r16,sQ,r16,sQ,r16,sQ,r16,sq
  1506.       dc.w r16,sQ,r16,sQ,r16,sQ
  1507.       dc.w new_env
  1508.       dc.l kik_env
  1509.     dc.w    new_snd
  1510.     dc.l    kik
  1511.       dc.w r16,sQ
  1512.       dc.w new_env
  1513.       dc.l hat_env
  1514.     dc.w    new_snd
  1515.     dc.l    hat
  1516.       dc.w r16,sQ,r16,sQ,r16,sQ
  1517.       dc.w new_env
  1518.       dc.l snr_env
  1519.     dc.w    new_snd
  1520.     dc.l    snr
  1521.       dc.w r16,sQ
  1522.       dc.w new_env
  1523.       dc.l hat_env
  1524.     dc.w    new_snd
  1525.     dc.l    hat
  1526.       dc.w r16,sQ,r13,sQ,r10,sq
  1527.       dc.w end_patt
  1528.      
  1529. p12:
  1530.       dc.w new_env
  1531.       dc.l snr_env
  1532.     dc.w    new_snd
  1533.     dc.l    snr
  1534.       dc.w r17,q,r17,q,r17,q,r17,q
  1535.       dc.w r17,q,r17,q,r17,q,r17,q
  1536.       dc.w end_patt
  1537.  
  1538.      
  1539. p13:
  1540.       dc.w new_env
  1541.       dc.l kik_env
  1542.     dc.w    new_snd
  1543.     dc.l    kik
  1544.       dc.w r16,cr
  1545.       dc.w r16,cr
  1546.       dc.w r16,cr
  1547.       dc.w r16,cr
  1548.       dc.w end_patt
  1549. p20:
  1550.       dc.w new_env
  1551.       dc.l org_env
  1552.     dc.w    new_snd
  1553.     dc.l    org
  1554. ;      dc.w modon,1,1
  1555. ;      dc.w 3,3,8
  1556.       dc.w c06,q,d06,q,e06,q,d06,q
  1557.     dc.w c06,cr*2
  1558.       dc.w c06,q,d06,q,e06,q,f06,q,e06,q
  1559.       dc.w d06,q,c06,q,rest,q,a05,q,b05,q,c06,q,b05,q
  1560.     dc.w a05,cr*3
  1561.       dc.w a05,q,b05,q,c06,q,b05,q,a05,cr
  1562.       dc.w end_patt
  1563.  
  1564. p20a:
  1565.       dc.w new_env
  1566.       dc.l org_env
  1567.     dc.w    new_snd
  1568.     dc.l    org
  1569. ;      dc.w modon,1,1
  1570. ;      dc.w 3,3,8
  1571.       dc.w c06,sq,c06,sq,d06,sq,c06,sq,e06,sq,c06,sq,d06,sq,g06,sq
  1572.     dc.w c06,cr*2
  1573.       dc.w c06,q,d06,q,e06,q,f06,q,e06,q
  1574.       dc.w d06,q,c06,q,rest,q,a05,q,b05,q,c06,q,b05,q
  1575.     dc.w a05,cr*3
  1576.       dc.w a05,q,b05,q,c06,q,b05,q,a05,cr
  1577.       dc.w end_patt
  1578.  
  1579.  
  1580.  
  1581. p21:
  1582.       dc.w new_env
  1583.       dc.l org_env
  1584.     dc.w    new_snd
  1585.     dc.l    org
  1586. ;      dc.w modon,1,1
  1587. ;      dc.w 3,3,8
  1588.       dc.w c06,q,b05,q,a05,q,b05,q,e06,q
  1589.       dc.w d06,q,c06,q,d06,q,g06,q,f06,q
  1590.       dc.w e06,q,f06,q,a06,q,g06,q,f06,q,g06,q,g06,cr+q
  1591. ;    dc.w pbend,up,20
  1592. ;      dc.w e06,0
  1593.       dc.w e06,cr*2+q
  1594.       dc.w end_patt
  1595.  
  1596.  
  1597.  
  1598.  
  1599. p22:
  1600.       dc.w new_env
  1601.       dc.l org_env
  1602.     dc.w    new_snd
  1603.     dc.l    org
  1604. ;      dc.w modon,1,1
  1605. ;      dc.w 3,3,8
  1606.       dc.w a05,cr,a05,q,b05,q
  1607.     dc.w a05,cr*3
  1608.       dc.w a05,q,b05,q,db06,q,b05,q,a05,cr
  1609.       dc.w b05,cr,b05,q,db06,q
  1610.     dc.w b05,cr*3
  1611.       dc.w a05,q,b05,q,db05,q,b05,q,a05,cr
  1612.         dc.w a05,q,rest,q,a05,q,b05,q
  1613.     dc.w a05,cr*3
  1614.       dc.w a05,q,b05,q,db06,q,b05,q,a05,cr
  1615.         dc.w b05,q,b05,q,b05,q,db06,q,b05,q,b05,q,b05,q
  1616.     dc.w db06,q,b05,q,b05,q,b05,q,db06,q,d06,q,db06,q
  1617.     dc.w b05,q,rest,q,c06,q,b05,q,a05,q,c06,q,b05,q,a05,q
  1618.     dc.w c06,q,b05,q,a05,q,c06,cr+q
  1619.     dc.w e05,cr*2
  1620.       dc.w end_patt
  1621. ;****************************************************************
  1622.  
  1623.  
  1624. ;CR      set 16
  1625. ;tcr1     set 9
  1626. ;tcr2     set 8
  1627. ;Q       set 8
  1628. ;tq1      set 4
  1629. ;tq2      set 5
  1630. ;tsq     set 3
  1631. ;tsq2     set 2
  1632. ;SQ      set 4
  1633. ;m       set 254
  1634. ;rest     set $fd00
  1635. ;dcr      set cr+q
  1636. ;dq      set q+sq
  1637. ;dsq      set sq+(sq/2)
  1638. ;sb      set cr*4
  1639. ;min      set cr*2
  1640. ;dm      set min+cr
  1641.  
  1642.  
  1643. pcr16:
  1644.       dc.w rest,cr
  1645.       dc.w end_patt
  1646. pr16:
  1647.       dc.w rest,cr*4
  1648.       dc.w end_patt
  1649. pqr16:
  1650.       dc.w rest,q
  1651.       dc.w end_patt
  1652.  
  1653.  
  1654.  
  1655. s5:
  1656.   dc.l pr16,pr16,pr16,pr16,pr16,pr16,p111b
  1657.   dc.l P7b,P7b,P7b,P7b
  1658.  
  1659.   dc.l p7b,p7b,p7b,p7b
  1660.   dc.l p7b,p7b,p7b,p7b
  1661.   dc.l p7b,p7b,p7b,p7b
  1662.   dc.l P7ab,P7ab,P7ab,P7ab
  1663.   dc.l p7ab,p7ab,p7ab,p7ab,p7cb
  1664.   dc.l p7b,p7b,p7b,p7b
  1665.   dc.l p7b,p7b,p7b,p7b
  1666.   dc.l pr16,pr16,pr16,pr16
  1667.   dc.l p13ab,p13ab,p13ab,p13ab
  1668.   dc.l p7b,p7b,p7b,p7bb,p7bb
  1669.   dc.l P7ab,P7ab,P7ab,P7ab
  1670.   dc.l p7ab,p7ab,p7ab,p7ab,p7cb
  1671.   dc.l p7b,p7b,p7b,p7b
  1672.   dc.l p7b,p7b,p7b,p7b,p22b
  1673.   dc.l pr16,pr16,pr16,pr16
  1674.  dc.l 0,end_song
  1675.  
  1676. s6:
  1677.   dc.l p14b,p14b,p14b,p14b,p14b,p14b,p14b,p14b
  1678.   dc.l p1b,p1b,p2b,p2b
  1679.   dc.l p3b,p3b,p4b,p5b
  1680.   dc.l p1b,p1b,p2b,p2b
  1681.   dc.l p3b,p3b,p4b,p5b
  1682.   dc.l p3b,p3b,p2b,p2b
  1683.   dc.l p3b,p3b,p2b,p9b,p9b
  1684.   dc.l p1b,p1b,p2b,p2b
  1685.   dc.l p3b,p3b,p4b,p5b
  1686.   dc.l p11b,p11b,p11b,p12b
  1687.   dc.l p14b,p11b,p14b,p11b
  1688.   dc.l p14b,p11b,p14b,pr16,pr16
  1689.   dc.l p3b,p3b,p2b,p2b
  1690.   dc.l p3b,p3b,p2b,p9b,p9b
  1691.   dc.l p1b,p1b,p2b,p2b
  1692.   dc.l p3b,p3b,p4b,p5b,p20b
  1693.   dc.l pr16,pr16,pr16,pr16
  1694.  dc.l 0,end_song
  1695.  
  1696. s7:
  1697.   dc.l p222b,p222b,p222b,p222b,p222b,p222b,p222b,p222b
  1698.   dc.l p6b,p6b,p8b,p10b
  1699.   dc.l p13b,p13b,p13b,p13b
  1700.   dc.l p17b,p8b,p10b,p21b
  1701.   dc.l pr16,pr16,pr16,pr16
  1702.   dc.l 0,end_song
  1703.  
  1704. s8:
  1705.   dc.l p22b,p22b,p22b,p22b
  1706.   dc.l 0,end_song
  1707.  
  1708. p1b:
  1709.   dc.w new_env
  1710.   dc.l bas_env
  1711.     dc.w    new_snd
  1712.     dc.l    bas
  1713.   dc.w D02,q,D02,q,D03,q,D02,q
  1714.   dc.w D02,q,C03,q,D02,q,A02,q
  1715.   dc.w end_patt
  1716. p2b:
  1717.   dc.w new_env
  1718.   dc.l bas_env
  1719.     dc.w    new_snd
  1720.     dc.l    bas
  1721.   dc.w C02,q,C02,q,C03,q,C02,q
  1722.   dc.w C02,q,Bb02,q,C02,q,G02,q
  1723.   dc.w end_patt
  1724. p3b:
  1725.   dc.w new_env
  1726.   dc.l bas_env
  1727.     dc.w    new_snd
  1728.     dc.l    bas
  1729.   dc.w Bb01,q,Bb01,q,Bb02,q,Bb01,q
  1730.   dc.w Bb01,q,A02,q,Bb01,q,F02,q
  1731.   dc.w end_patt
  1732. p4b:
  1733.   dc.w new_env
  1734.   dc.l bas_env
  1735.     dc.w    new_snd
  1736.     dc.l    bas
  1737.   dc.w F02,q,F02,q,F03,q,F03,q
  1738.   dc.w F02,q,Eb03,q,F02,q,C03,q
  1739.   dc.w end_patt
  1740. p5b:
  1741.   dc.w new_env
  1742.   dc.l bas_env
  1743.     dc.w    new_snd
  1744.     dc.l    bas
  1745.   dc.w G02,q,G02,q,G03,q,G02,q
  1746.   dc.w G02,q,F03,q,G02,q,G03,q
  1747.   dc.w end_patt
  1748. p6b:
  1749.   dc.w new_env
  1750.   dc.l org_env
  1751.     dc.w    new_snd
  1752.     dc.l    org
  1753. ;  dc.w modon,1,1
  1754. ;  dc.w 3,3,8
  1755.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1756.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1757.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1758.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1759.   dc.w F06,cr+q,E06,cr+q,F06,cr
  1760.   dc.w G06,cr+q,F06,cr+q,G06,cr
  1761.   dc.w A06,q*5,F06,q,A06,q,G06,q*9
  1762.   dc.w end_patt
  1763.  
  1764. p8b:
  1765.   dc.w new_env
  1766.   dc.l clv_env
  1767.     dc.w    new_snd
  1768.     dc.l    clv 
  1769.  dc.w Bb05,cr+q,Bb05,cr+q,C06,cr
  1770.   dc.w D06,cr+q,C06,cr+q,Bb05,cr
  1771.   dc.w C06,cr+q,C06,cr+q,Bb05,cr
  1772.   dc.w G05,cr*3
  1773.   dc.w F05,cr
  1774.   dc.w Bb05,cr+q,Bb05,cr+q,C06,cr
  1775.   dc.w D06,cr+q,C06,cr+q,Bb05,cr
  1776.   dc.w C06,cr+q,C06,cr+q,D06,cr
  1777.   dc.w E06,cr*4
  1778.   dc.w end_patt
  1779.  
  1780. p9b:
  1781.   dc.w new_env
  1782.   dc.l bas_env
  1783.     dc.w    new_snd
  1784.     dc.l    bas
  1785.   dc.w C02,q,C02,q,Bb01,q,Bb01,q
  1786.   dc.w G01,q,G01,q,E01,q,E01,q
  1787.   dc.w end_patt
  1788.  
  1789. p10b:
  1790.   dc.w new_env
  1791.   dc.l org_env
  1792.     dc.w    new_snd
  1793.     dc.l    org
  1794. ;  dc.w modon,1,1
  1795. ;  dc.w 2,2,8
  1796. ;  dc.w pbend,up,10
  1797. ;  dc.w F05,1
  1798.     dc.w pbend,up,10,F06,1
  1799.     dc.w    F04,q*11
  1800.   dc.w E06,cr+q,C06,cr
  1801.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1802.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1803.   dc.w F06,cr+q,E06,cr+q,C06,cr
  1804.   dc.w F06,cr+q,E06,cr+q,F06,cr
  1805.   dc.w G06,cr+q,F06,cr+q,G06,cr
  1806.   dc.w A06,q*5,F06,q,A06,q,G06,q*9
  1807.   dc.w end_patt
  1808.  
  1809. p11b:
  1810.   dc.w new_env
  1811.   dc.l bas_env
  1812.     dc.w    new_snd
  1813.     dc.l    bas
  1814.   dc.w D02,q,D03,q,D02,q,D03,q
  1815.   dc.w D02,q,D03,q,C02,q,C03,q
  1816.   dc.w end_patt
  1817.  
  1818. p12b:
  1819.   dc.w new_env
  1820.   dc.l bas_env
  1821.     dc.w    new_snd
  1822.     dc.l    bas
  1823.   dc.w D02,q,D03,q,F02,q,F03,q
  1824.   dc.w E02,q,E03,q,Eb02,q,Eb03,q
  1825.   dc.w end_patt
  1826.  
  1827. p13b:
  1828.   dc.w new_env
  1829.   dc.l org_env
  1830.     dc.w    new_snd
  1831.     dc.l    org
  1832.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1833.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1834.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1835.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1836.   dc.w end_patt
  1837.  
  1838. p13ab:
  1839.   dc.w new_env
  1840.   dc.l org_env
  1841.     dc.w    new_snd
  1842.     dc.l    org
  1843.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1844.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1845.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1846.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1847.   dc.w end_patt
  1848.  
  1849. p222b:
  1850.   dc.w new_env
  1851.   dc.l org_env
  1852.     dc.w    new_snd
  1853.     dc.l    org
  1854.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1855.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1856.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1857.   dc.w D05,sq,A05,sq,D06,sq,A04,sq
  1858.   dc.w end_patt
  1859.  
  1860. p14b:
  1861.   dc.w new_env
  1862.   dc.l bas_env
  1863.     dc.w    new_snd
  1864.     dc.l    bas
  1865.   dc.w D02,q,D03,q,D02,q,D03,q
  1866.   dc.w D02,q,D03,q,D02,q,D03,q
  1867.   dc.w end_patt
  1868.  
  1869. p15b:
  1870.   dc.w new_env
  1871.   dc.l bas_env
  1872.     dc.w    new_snd
  1873.     dc.l    bas
  1874.   dc.w D02,q,D03,q,D02,q,D03,q
  1875.   dc.w C02,q,C03,q,C02,q,C03,q
  1876.   dc.w end_patt
  1877.  
  1878. p16b:
  1879.   dc.w new_env
  1880.   dc.l bas_env
  1881.     dc.w    new_snd
  1882.     dc.l    bas
  1883.   dc.w D02,q,D03,q,D02,q,D03,q
  1884.   dc.w C02,q,C03,q,Db02,q,Db03,q
  1885.   dc.w end_patt
  1886.  
  1887. p17b:
  1888.   dc.w new_env
  1889.   dc.l clv_env
  1890.     dc.w    new_snd
  1891.     dc.l    clv
  1892.   dc.w rest,q,D05,q,D05,cr
  1893.   dc.w D05,sq,D05,q,D05,sq
  1894.   dc.w D05,q,C05,q
  1895.   dc.w rest,q,D05,q,D05,q
  1896.   dc.w D05,q,F05,q,D05,q
  1897.   dc.w E05,q,C05,q
  1898.   dc.w rest,q,D05,q,D05,cr
  1899.   dc.w D05,sq,D05,q,D05,sq
  1900.   dc.w D05,q,C05,q
  1901.   dc.w rest,q,A05,q,G05,q
  1902.   dc.w F05,q,E05,q,F05,q
  1903.   dc.w E05,q,C05,q
  1904.  
  1905.   dc.w rest,q,D05,q,D05,cr
  1906.   dc.w D05,sq,D05,q,D05,sq
  1907.   dc.w D05,q,C05,q
  1908.   dc.w rest,q,D05,q,D05,q
  1909.   dc.w D05,q,F05,q,D05,q
  1910.   dc.w E05,q,C05,q
  1911.   dc.w rest,q,D05,q,D05,cr
  1912.   dc.w D05,sq,D05,q,D05,sq
  1913.   dc.w D05,q,C05,q
  1914.   dc.w D06,sq,C06,sq,A05,sq,Ab05,sq
  1915.   dc.w G05,sq,F05,sq,D05,sq,C05,sq
  1916.   dc.w D05,sq,C05,sq,A04,sq,Ab04,sq
  1917.   dc.w G04,sq,F04,sq,D04,sq,C04,sq
  1918.   dc.w D04,sq,B03,sq,C04,sq,D04,sq
  1919.   dc.w F04,sq,D04,sq,F04,sq,G04,sq
  1920.   dc.w Ab04,sq,A04,sq,C05,sq,D05,sq
  1921.   dc.w F05,sq,G05,sq,Ab05,sq,A05,sq
  1922.   dc.w end_patt
  1923.  
  1924. p111b:
  1925.   dc.w new_env
  1926.   dc.l clv_env
  1927.     dc.w    new_snd
  1928.     dc.l    clv
  1929.   dc.w D06,sq,C06,sq,A05,sq,Ab05,sq
  1930.   dc.w G05,sq,F05,sq,D05,sq,C05,sq
  1931.   dc.w D05,sq,C05,sq,A04,sq,Ab04,sq
  1932.   dc.w G04,sq,F04,sq,D04,sq,C04,sq
  1933.   dc.w D04,sq,A04,sq,C04,sq,D04,sq
  1934.   dc.w F04,sq,D04,sq,F04,sq,G04,sq
  1935.   dc.w Ab04,sq,A04,sq,C05,sq,D05,sq
  1936.   dc.w F05,sq,G05,sq,Ab05,sq,A05,sq
  1937.   dc.w end_patt
  1938.  
  1939. p18b:
  1940.   dc.w new_env
  1941.   dc.l org_env
  1942.     dc.w    new_snd
  1943.     dc.l    org
  1944.   dc.w D06,q,C06,q,A05,q,Ab05,q
  1945.   dc.w G05,q,F05,q,D05,q,C05,cr
  1946.   dc.w D05,q,A04,q,C05,q,F05,cr,D05,cr
  1947.   dc.w D06,q,C06,q,A05,q,Ab05,q
  1948.   dc.w G05,q,F05,q,D05,q,C05,cr
  1949.   dc.w D05,q,A04,q,C05,q,D05,cr,rest,cr
  1950.   dc.w end_patt
  1951.  
  1952. p19b:
  1953.   dc.w new_env
  1954.   dc.l org_env
  1955.     dc.w    new_snd
  1956.     dc.l    org
  1957.   dc.w D02,q,F02,q,G02,q,Ab02,q
  1958.   dc.w A02,q,C03,q,D03,q,F03,cr
  1959.   dc.w D03,q,G03,q,F03,q,C03,cr,D03,cr
  1960.   dc.w D02,q,F02,q,G02,q,Ab02,q
  1961.   dc.w A02,q,C03,q,D03,q,F03,cr
  1962.   dc.w D03,q,G03,q,F03,q,D03,cr,rest,cr
  1963.   dc.w end_patt
  1964.  
  1965. p20b:
  1966.   dc.w new_env
  1967.   dc.l org_env
  1968.     dc.w    new_snd
  1969.     dc.l    org
  1970.   dc.w rest,q,D03,sq,C03,sq,A02,sq
  1971.   dc.w G02,sq,F02,q
  1972.   dc.w rest,q,D03,sq,C03,sq,A02,sq
  1973.   dc.w G02,sq,F02,q
  1974.   dc.w rest,q,D03,sq,C03,sq,A02,sq
  1975.   dc.w G02,sq,F02,q
  1976.   dc.w D02,q,rest,q*7
  1977.   dc.w end_patt
  1978.  
  1979. p21b:
  1980.   dc.w new_env
  1981.   dc.l org_env
  1982.     dc.w    new_snd
  1983.     dc.l    org
  1984.   dc.w rest,q,D06,sq,C06,sq,A05,sq
  1985.   dc.w G05,sq,F05,q
  1986.   dc.w rest,q,D06,sq,C06,sq,A05,sq
  1987.   dc.w G05,sq,F05,q
  1988.   dc.w rest,q,D06,sq,C06,sq,A05,sq
  1989.   dc.w G05,sq,F05,q
  1990.   dc.w D05,q,rest,q*7
  1991.   dc.w end_patt
  1992.  
  1993. p22b:
  1994.   dc.w new_env
  1995.   dc.l hat_env
  1996.     dc.w    new_snd
  1997.     dc.l    hat
  1998.   dc.w r16,sq,r16,sq,r16,sq,r16,sq
  1999.   dc.w r16,sq,r16,sq,r16,sq,r16,sq
  2000.   dc.w r16,sq,r16,sq,r16,sq,r16,sq
  2001.   dc.w r16,sq,r16,sq,r16,sq,r16,sq
  2002.   dc.w end_patt
  2003.  
  2004. p7b:     
  2005.   dc.w new_env
  2006.   dc.l kik_env
  2007.     dc.w    new_snd
  2008.     dc.l    kik
  2009.   dc.w r16,cr
  2010.   dc.w new_env
  2011.   dc.l snr_env
  2012.     dc.w    new_snd
  2013.     dc.l    snr
  2014.   dc.w r16,cr
  2015.   dc.w new_env
  2016.   dc.l kik_env
  2017.     dc.w    new_snd
  2018.     dc.l    kik
  2019.   dc.w r16,cr
  2020.   dc.w new_env
  2021.   dc.l snr_env
  2022.     dc.w    new_snd
  2023.     dc.l    snr
  2024.   dc.w r16,cr
  2025.   dc.w end_patt
  2026.  
  2027. p7ab:     
  2028.   dc.w new_env
  2029.   dc.l kik_env
  2030.     dc.w    new_snd
  2031.     dc.l    kik
  2032.   dc.w r16,cr
  2033.   dc.w new_env
  2034.   dc.l snr_env
  2035.     dc.w    new_snd
  2036.     dc.l    snr
  2037.   dc.w r16,q
  2038.   dc.w new_env
  2039.   dc.l kik_env
  2040.     dc.w    new_snd
  2041.     dc.l    kik
  2042.   dc.w r16,cr
  2043.   dc.w new_env
  2044.   dc.l kik_env
  2045.     dc.w    new_snd
  2046.     dc.l    kik
  2047.   dc.w r16,q
  2048.   dc.w new_env
  2049.   dc.l snr_env
  2050.     dc.w    new_snd
  2051.     dc.l    snr
  2052.   dc.w r16,cr
  2053.   dc.w end_patt
  2054.  
  2055. p7bb:
  2056.   dc.w new_env
  2057.   dc.l kik_env
  2058.     dc.w    new_snd
  2059.     dc.l    kik
  2060.   dc.w r16,cr,r16,cr,r16,cr,r16,cr
  2061.   dc.w end_patt
  2062.  
  2063. p7cb:     
  2064.   dc.w new_env
  2065.   dc.l snr_env
  2066.     dc.w    new_snd
  2067.     dc.l    snr
  2068.   dc.w r16,Q
  2069.   dc.w new_env
  2070.   dc.l kik_env
  2071.     dc.w    new_snd
  2072.     dc.l    kik
  2073.   dc.w r16,Q
  2074.   dc.w new_env
  2075.   dc.l snr_env
  2076.     dc.w    new_snd
  2077.     dc.l    snr
  2078.   dc.w r16,Q
  2079.   dc.w new_env
  2080.   dc.l kik_env
  2081.     dc.w    new_snd
  2082.     dc.l    kik
  2083.   dc.w r16,Q
  2084.   dc.w new_env
  2085.   dc.l snr_env
  2086.     dc.w    new_snd
  2087.     dc.l    snr
  2088.   dc.w r16,Q
  2089.   dc.w new_env
  2090.   dc.l kik_env
  2091.     dc.w    new_snd
  2092.     dc.l    kik
  2093.   dc.w r16,Q
  2094.   dc.w new_env
  2095.   dc.l snr_env
  2096.     dc.w    new_snd
  2097.     dc.l    snr
  2098.   dc.w r16,Q
  2099.   dc.w new_env
  2100.   dc.l kik_env
  2101.     dc.w    new_snd
  2102.     dc.l    kik
  2103.   dc.w r16,Q
  2104.   dc.w end_patt
  2105.  
  2106. p7db:
  2107.   dc.w new_env
  2108.   dc.l kik_env
  2109.     dc.w    new_snd
  2110.     dc.l    kik
  2111.   dc.w r16,cr,rest,cr
  2112.   dc.w r16,cr,rest,cr
  2113.   dc.w end_patt
  2114.  
  2115. p7eb:
  2116.   dc.w new_env
  2117.   dc.l kik_env
  2118.     dc.w    new_snd
  2119.     dc.l    kik
  2120.   dc.w r16,cr,rest,cr
  2121.   dc.w r16,cr
  2122.   dc.w new_env
  2123.   dc.l snr_env
  2124.     dc.w    new_snd
  2125.     dc.l    snr
  2126.   dc.w r16,cr
  2127.   dc.w end_patt
  2128.  
  2129.  
  2130. **************************************************************
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.     ; sample parameters
  2140. hat
  2141.         dc.w 1
  2142.              dc.l hatcd
  2143.              dc.w 665/2 
  2144.              dc.l restd
  2145.              dc.w 16/2
  2146. clv
  2147.         dc.w 1  
  2148.              dc.l clv2d
  2149.              dc.w 1632/2 
  2150.              dc.l restd
  2151.              dc.w 16/2
  2152. bas
  2153.         dc.w 1  
  2154.              dc.l bas4d
  2155.              dc.w 1801/2 
  2156.              dc.l restd
  2157.              dc.w 16/2
  2158. kik
  2159.         dc.w 1  
  2160.              dc.l kik1d
  2161.              dc.w 3801/2 
  2162.              dc.l restd
  2163.              dc.w 16/2
  2164. snr
  2165.         dc.w 1  
  2166.              dc.l snr1d
  2167.              dc.w 6325/2 
  2168.              dc.l restd
  2169.              dc.w 16/2
  2170. org
  2171.         dc.w 1  
  2172.              dc.l orglp2d
  2173.              dc.w 5408/2 
  2174.         dc.l orglp2d
  2175.              dc.w 5408/2 
  2176.  
  2177.  
  2178.  
  2179. ;**************************************************
  2180. hatcd            incbin df1:hatc124.sam
  2181. orglp2d            incbin df1:orglp2.sam
  2182. kik1d            incbin df1:kik1.sam
  2183. snr1d            incbin df1:snr1.sam
  2184. clv2d            incbin df1:clv2.sam
  2185. bas4d            incbin df1:bas4.sam
  2186.  
  2187. hat_env:            dc.w 0,50,255
  2188. org_env:            dc.w 0,20,255
  2189. kik_env:             dc.w 0,60,255
  2190. snr_env:            dc.w 0,60,255
  2191. tom_env:            dc.w 0,50,255
  2192. cow_env:            dc.w 0,50,255
  2193. clv_env:            dc.w 0,30,255
  2194. bas_env:            dc.w 0,50,255
  2195. rest_env:            dc.w 0,0,0,0,0,0,0,0,0,255
  2196.  
  2197.  
  2198. NICESHo8
  2199.         dc.w 1  
  2200.              dc.l NICESHo8d
  2201.              dc.w 4728/2 
  2202.              dc.l restd
  2203.              dc.w 16/2
  2204. NICESHO1
  2205.         dc.w 1  
  2206.              dc.l NICESHO1d
  2207.              dc.w 6976/2 
  2208.              dc.l restd
  2209.              dc.w 16/2
  2210. GOODHIT1
  2211.         dc.w 1  
  2212.              dc.l GOODHIT1d
  2213.              dc.w 4500/2 
  2214.              dc.l restd
  2215.              dc.w 16/2
  2216. BULLSEY2
  2217.         dc.w 1  
  2218.              dc.l BULLSEY2d
  2219.              dc.w 5016/2 
  2220.              dc.l restd
  2221.              dc.w 16/2
  2222. BULLSEY1
  2223.         dc.w 1  
  2224.              dc.l BULLSEY1d
  2225.              dc.w 6090/2 
  2226.              dc.l restd
  2227.              dc.w 16/2
  2228. NICEL
  2229.         dc.w 1  
  2230.              dc.l NICELd
  2231.              dc.w 6130/2 
  2232.              dc.l restd
  2233.              dc.w 16/2
  2234. STRIKEE
  2235.         dc.w 1  
  2236.              dc.l STRIKEEd
  2237.              dc.w 12336/2 
  2238.              dc.l restd
  2239.              dc.w 16/2
  2240. GUN1
  2241.         dc.w 1  
  2242.              dc.l GUN1d
  2243.              dc.w 2914/2 
  2244.              dc.l restd
  2245.              dc.w 16/2
  2246. WHEELS
  2247.         dc.w 1  
  2248.              dc.l WHEELSd
  2249.              dc.w 1808/2 
  2250.              dc.l restd
  2251.              dc.w 16/2
  2252. BRAKES
  2253.         dc.w 1  
  2254.              dc.l BRAKESLd
  2255.              dc.w 1130/2 
  2256.              dc.l BRAKESLd
  2257.              dc.w 1130/2 
  2258. NOISEL
  2259.         dc.w 1  
  2260.              dc.l NOISELd
  2261.              dc.w 2380/2 
  2262.              dc.l NOISELd
  2263.              dc.w 2380/2 
  2264. JET
  2265.         dc.w 1  
  2266.              dc.l JETENG1d
  2267.              dc.w 8952/2 
  2268.              dc.l JETENG1d
  2269.              dc.w 8952/2 
  2270. SKID
  2271.         dc.w 1  
  2272.              dc.l SKIDd
  2273.              dc.w 5176/2 
  2274.              dc.l restd
  2275.              dc.w 16/2
  2276. EXPLOSI8
  2277.         dc.w 1  
  2278.              dc.l EXPLOSI8d
  2279.              dc.w 4882/2 
  2280.              dc.l restd
  2281.              dc.w 16/2
  2282.  
  2283. alarm
  2284.         dc.w 1  
  2285.              dc.l alarmd
  2286.              dc.w 586/2 
  2287.              dc.l alarmd
  2288.              dc.w 586/2
  2289.  
  2290. sine
  2291.         dc.w 1  
  2292.              dc.l sine_datad
  2293.              dc.w 18/2 
  2294.              dc.l sine_datad
  2295.              dc.w 18/2
  2296.  
  2297.  
  2298. restd:
  2299. rest_data:
  2300.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2301.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2302.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2303.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2304.  
  2305. sine_datad:
  2306.              dc.b 127,100,50,25,0,-25,-50,-100,-127
  2307.              dc.b -127,-100,-50,-25,0,25,50,100,127
  2308.  
  2309.  
  2310. ;*************************************************
  2311.  
  2312. NICESHo8d        ;incbin df1:NICESH08.con
  2313. NICESHO1d        ;incbin df1:NICESHO1.con
  2314. GOODHIT1d        ;incbin df1:GOODHIT1.con
  2315. BULLSEY2d        ;incbin df1:BULLSEY2.con
  2316. BULLSEY1d        ;incbin df1:BULLSEY1.con
  2317. NICELd            ;incbin df1:NICEL.con
  2318. STRIKEEd        ;incbin df1:STRIKEE.con
  2319. GUN1d            incbin df1:GUN1.con
  2320. WHEELSd            ;incbin df1:WHEELS.con
  2321. BRAKESLd        ;incbin df1:BRAKESL.con
  2322. NOISELd            ;incbin df1:NOISEL.con
  2323. JETENG1d        ;incbin df1:JETENG1.con
  2324. SKIDd            ;incbin df1:SKID.con        
  2325. EXPLOSI8d        incbin df1:EXPLOSI8.con
  2326. alarmd            ;incbin df1:alarm1.con
  2327.  
  2328.  
  2329.     end
  2330.  
  2331.  
  2332.  
  2333.  
  2334. ;NICESH08.CON                4728 
  2335. ;NICESHOT.CON                9456 
  2336. ;NICESHO1.CON                6976 
  2337. ;GOODHIT1.CON                4500 
  2338. ;BULLSEY2.CON                5016 
  2339. ;BULLSEY1.CON                6090 
  2340. ;NICEL.CON                   6130 
  2341. ;STRIKEE1.CON               12336 
  2342. ;STRIKEE.CON                12336 
  2343. ;GUN1.CON                    2914 
  2344. ;WHEELS.CON                  1808 
  2345. ;BRAKESL.CON                 1130 
  2346. ;NOISEL.CON                  2380 
  2347. ;JETENG1.CON                 8952 
  2348. ;SKID.CON                    5176 
  2349. ;EXPLOSI8.CON                4882 
  2350. ;17 files - 211 blocks used
  2351.  
  2352.  
  2353.     ;            dc.w modon,1,1,8,8,6,6
  2354.     ;dc.w pbend,down,20,60000,1
  2355.     ;dc.w    c01,cr*32
  2356.  
  2357.  
  2358.  
  2359.