home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Conqloader Am…a Source + Samples Backup / Lowe_ConqloaderAmigaSource+SamplesBackup.adf / chipmonk.s < prev    next >
Encoding:
Text File  |  1978-01-31  |  25.1 KB  |  1,469 lines

  1.  
  2.     ;    DRIVER AND MUSIC REMAIN COPYRIGHT D.LOWE 
  3.  
  4.     ;         GRAN PRIX REMIX SOURCE
  5.  
  6.  
  7.     ; PETE/GEOFF
  8.     ; The instruments have been remixed with the bass louder
  9.     ; and the cowbell bits replaced with toms..
  10.     ; 
  11.  
  12. ;dff0d0+6
  13.     ;        DAVE LOWE.....0723  870648
  14.  
  15.  
  16. ;        **************************
  17.  
  18.     section issA,code_c    ;must be in low memory for dma access
  19.                 ;DEVPAC PSEUDO OP ..CAN BE DELETED
  20.  
  21.  
  22. ;*****************************************
  23.  
  24.         ;  ALL EQUs
  25.  
  26. a00  equ  508*2
  27. bb00  equ  480*2
  28. b00  equ  453*2
  29.  
  30. c01  equ  428*2
  31. db01  equ  404*2
  32. d01 equ  381*2
  33. eb01  equ  360*2
  34. e01  equ  339*2
  35. f01  equ  320*2
  36. gb01  equ  302*2
  37. g01  equ  285*2
  38. ab01 equ 269*2
  39. a01  equ  508
  40. bb01  equ  480
  41. b01  equ  453
  42.  
  43. c02  equ  428
  44. db02  equ  404
  45. d02  equ  381
  46. eb02  equ  360
  47. e02  equ  339
  48. f02  equ  320
  49. gb02  equ  302
  50. g02  equ  285
  51. ab02 equ 269
  52. a02  equ  254
  53. bb02  equ  240
  54. b02  equ  226
  55.  
  56. c03  equ  214
  57. db03  equ  202
  58. d03  equ  190
  59. eb03  equ  180
  60. e03  equ  170
  61. f03  equ  160
  62. gb03  equ  151
  63. g03  equ  143
  64. ab03 equ 135
  65. a03  equ  127
  66.  
  67. bb03  equ  480*2
  68. b03  equ  453*2
  69.  
  70. c04  equ  428*2
  71. db04  equ  404*2
  72. d04 equ  381*2
  73. eb04  equ  360*2
  74. e04  equ  339*2
  75. f04  equ  320*2
  76. gb04  equ  302*2
  77. g04  equ  285*2
  78. ab04 equ 269*2
  79. a04  equ  508
  80. bb04  equ  480
  81. b04  equ  453
  82.  
  83. c05  equ  428
  84. db05  equ  404
  85. d05  equ  381
  86. eb05  equ  360
  87. e05  equ  339
  88. f05  equ  320
  89. gb05  equ  302
  90. g05  equ  285
  91. ab05 equ 269
  92. a05  equ  254
  93. bb05  equ  240
  94. b05  equ  226
  95.  
  96. c06  equ  214
  97. db06  equ  202
  98. d06  equ  190
  99. eb06  equ  180
  100. e06  equ  170
  101. f06  equ  160
  102. gb06  equ  151
  103. g06  equ  143
  104. ab06 equ 135
  105. a06  equ  127
  106. bb06  equ  480*2
  107. b06  equ  453*2
  108.  
  109. c07  equ  428*2
  110. db07  equ  404*2
  111. d07 equ  381*2
  112. eb07  equ  360*2
  113. e07  equ  339*2
  114. f07  equ  320*2
  115. gb07  equ  302*2
  116. g07  equ  285*2
  117. ab07 equ 269*2
  118. a07  equ  508
  119. bb07  equ  480
  120. b07  equ  453
  121.  
  122. c08  equ  428
  123. db08  equ  404
  124. d08  equ  381
  125. eb08  equ  360
  126. e08  equ  339
  127. f08  equ  320
  128. gb08  equ  302
  129. g08  equ  285
  130. ab08 equ 269
  131. a08  equ  254
  132. bb08  equ  240
  133. b08  equ  226
  134.  
  135.  
  136. v equ 0
  137.  
  138. no_loop equ 0
  139. loop equ 0
  140. chann1reg   equ $dff0a0    
  141. chann2reg   equ $dff0b0
  142. chann3reg   equ $dff0c0
  143. chann4reg   equ $dff0d0
  144. dmacon     equ $dff096
  145. int_bf_int   equ   $dff01e
  146. int_bf_w    equ   $dff09a
  147. vhposr     equ   $dff006
  148. in_line    equ   0
  149. new_snd    equ   4
  150. end_song     equ   1
  151. end_patt    equ   8
  152. new_env    equ   12
  153. pbend     equ   16
  154.  
  155. cr  equ   16
  156. tq1 equ 7
  157. tq2 equ 6
  158. tsq1 equ 3
  159. tsq2 equ 4
  160.  
  161. ;tq equ 8
  162. q equ cr/2
  163. sq equ q/2
  164. cr1  equ   20
  165. q1 equ cr1/2
  166. sq1 equ q1/2
  167.  
  168. hi: equ 223
  169. lo:  equ 446
  170.  
  171. r22    equ 134
  172. r20    equ 135        ;correctum
  173. r19    equ 150
  174. r18    equ 178
  175. r17    equ 200
  176. r16:    equ 227        ;correctum
  177. r15:    equ 249
  178. r14    equ 280
  179. r13:    equ 305
  180. r12:    equ 333
  181. r11:    equ 361
  182. r10:    equ 389
  183. r9:    equ 419
  184. r8:    equ 446
  185. r7:    equ 446+112
  186. r6:    equ 446+223
  187. r5:    equ 446+223+112
  188. r4:    equ 446*2
  189. r3:    equ 446*3
  190. r2:    equ 446*4
  191. r1:    equ 446*8
  192.  
  193.  
  194. filter: equ $bfe001
  195. filter_on equ 44
  196. filter_off equ 48
  197.  
  198. modon     equ   20
  199. pboff     equ   24
  200. modoff     equ   28
  201. rest     equ 32
  202. end_fxp  equ 36
  203. end_fx3  equ 36
  204. end_fx4  equ 40
  205. acc    equ 52
  206. repeat    equ 56
  207. down      equ   1
  208. up       equ   2
  209.  
  210. ;***************************************************************
  211.  
  212.  
  213.  ;    THIS IS THE CONTROL SECTION FOR TESTING AS A STAND ALONE PRG. 
  214.  
  215.     ;       AND CAN BE DELETED WHEN NOT REQUIRED
  216.  
  217.  
  218.     jsr select_new_song
  219.  
  220. testloop:
  221.     jsr delay    ;wait for scan line  at 50hz on pal
  222.  
  223.     jsr driver
  224.  
  225.         bra testloop
  226.  
  227.  
  228. delay:
  229.     tst.w fxtimer
  230.     bne no_test
  231.     clr.l d0
  232.     move.b $bfe001,d0
  233.     btst #6,d0
  234.     bne no_test1
  235.     move.w #10,fxtimer
  236.     bra testfx4
  237. no_test
  238.     subq #1,fxtimer
  239. no_test1
  240.     clr.l d0
  241.         move.w vhposr,d0
  242.         andi.w #%1111111100000000,d0
  243.         cmpi.w #%1111111100000000,d0
  244.  
  245.     bne no_test1
  246.     rts
  247.  
  248. testfx4:  
  249.  
  250.     ;jsr    kill_chip
  251.     ;move.w #1,int_disable
  252.     clr.l d0
  253.     move.b $bfe001,d0
  254.     btst #6,d0
  255.     beq testfx4
  256.  
  257.     move.l song_buffer,d0
  258.     addq.l #1,d0
  259.     cmp.l    #6,d0
  260.     bne nores
  261.     move.l #1,d0
  262. nores    move.l d0,song_buffer
  263.     jsr    select_new_song
  264.  
  265.  
  266.     ;move.l fx_last,d0
  267.     ;move.l d0,fx_kill
  268.  
  269.     ;jsr kill_loopfx        ;only one fx at a time
  270.  
  271.  
  272. no_k
  273.         move.l fx_no,fx_number
  274.     move.l fx_no,fx_last
  275.     addq.l #1,fx_no
  276.     move.l    max_fx,d0
  277.         cmp.l fx_no,d0
  278.     bne noreset
  279.     move.l #1,fx_no    
  280. noreset: 
  281.     jsr set_up_fx
  282.     bra no_test    
  283.  
  284. fxtc:          dc.w 10
  285. fx_no:         dc.l  1
  286. fx_last        dc.l  0
  287.  
  288.  
  289. ;        END OF CONTROL (DELETABLE) SECTION
  290.  
  291. ;**********************************************************
  292.  
  293. ; --------------------------------------------------------------
  294.  
  295. ;    MAIN VARIABLES TO BE ACCESSED BY PROGRAMMER DURING RUNTIME
  296.  
  297.  
  298. fx_number:     dc.l 0 ;     number of fx required here...see list
  299. fx_kill        dc.l 0 ;     number of fx to kill/only needed for looped fx
  300.  
  301. song_buffer     dc.l 1 ;     number of piece of music required here ie.1 to 5
  302.  
  303. music_disable:  dc.w 0 ;     1 = disable music
  304. fx_disable:     dc.w 1 ;     1 = disable fx  (currently disabled)
  305.  
  306. ;    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  307.  
  308. ;  THESE VARIABLES ARE USED INTERNALLY BY THE DRIVER
  309. fxr1         dc.l 0  
  310. fxr2         dc.l 0  
  311. fxr3         dc.l 0  
  312. fxr4         dc.l 0  
  313. fxc1        dc.l 0
  314. fxc2          dc.l 0
  315. fxc3        dc.l 0
  316. fxc4          dc.l 0
  317. fx1_flag    dc.w 0
  318. fx2_flag    dc.w 0
  319. fx3_flag    dc.w 0
  320. fx4_flag    dc.w 0
  321. fxtimer        dc.w 0
  322. gen        dc.w 0
  323. int_disable    dc.w 0
  324. altpf         dc.w 0
  325. kill_flag    dc.w 0
  326. ;  *******************************************************
  327.  
  328. ;  CALL THIS SUBROUTINE TO SET UP THE REQIURED FX
  329. ;  on entry it requires the fx number to be in "fx_number"(see above)
  330. ;  
  331.  
  332. set_up_fx
  333.     movem.l d5/a2,-(a7)    ;save used registers
  334.     move.l #1,d0
  335.     cmp fx_number,d0
  336.     bne check3        ;engine to 4
  337.  
  338.     tst.l fxc4
  339.     bne check3
  340. use4:    
  341.     move.w #%0000000000001000,d5
  342.     lea chann4reg,a2
  343.     jsr end_fx4p
  344.     move.l fx_number,fxr4
  345.     move.l fx_number,fxc4
  346.     move.l #0,fx_number
  347.     bra no_fx
  348. check3:    tst.l fxc3
  349.     bne check2
  350. use3:
  351.     move.w #%0000000000000100,d5
  352.     lea chann3reg,a2
  353.     jsr end_fx3p
  354.     move.l fx_number,fxr3
  355.     move.l fx_number,fxc3
  356.     move.l #0,fx_number
  357.     bra no_fx
  358. check2:    tst.l fxc2
  359.     bne check1
  360. use2:
  361.     move.w #%0000000000000010,d5
  362.     lea chann2reg,a2
  363.     jsr end_fx2p
  364.     move.l fx_number,fxr2
  365.     move.l fx_number,fxc2
  366.     move.l #0,fx_number
  367.     bra no_fx
  368. check1:    tst.l fxc1
  369.     bne use3
  370. use1:
  371.     move.w #%0000000000000001,d5
  372.     lea chann1reg,a2
  373.     jsr end_fx1p
  374.     move.l fx_number,fxr1
  375.     move.l fx_number,fxc1
  376.     move.l #0,fx_number
  377. no_fx
  378.     movem.l (a7)+,d5/a2    ;restore registers
  379.     rts
  380.  
  381. ;*************************************************
  382. ;          CALL HERE TO KILL ANY LOOPED FX...
  383. ;       after putting the number of the fx you want to kill
  384. ;            into fx_kill
  385.  
  386. kill_loopfx
  387.  
  388.     movem.l d5/a2,-(a7)    ;save used registers
  389.     move.l fx_kill,d5
  390.     cmp.l fxc1,d5
  391.     bne k2
  392.     move.w #%0000000000000001,d5
  393.     lea chann1reg,a2
  394.     jsr end_fx1p
  395.     bra error
  396. k2    cmp.l fxc2,d5
  397.     bne k3
  398.     move.w #%0000000000000010,d5
  399.     lea chann2reg,a2
  400.     jsr end_fx2p
  401.     bra error
  402. k3    cmp.l fxc3,d5
  403.     bne k4
  404.     move.w #%0000000000000100,d5
  405.     lea chann3reg,a2
  406.     jsr end_fx3p
  407.     bra error
  408. k4    cmp.l fxc4,d5
  409.     bne error
  410.     move.w #%0000000000001000,d5
  411.     lea chann2reg,a2
  412.     jsr end_fx4p
  413. error
  414.     clr.l fx_kill
  415.     movem.l (a7)+,d5/a2    ;restore registers
  416.     rts
  417. ;*************************************************
  418.  
  419.     ; CALL HERE TO KILL ANY SOUND for whatever reason
  420.  
  421. kill_chip:
  422.     move.w #%0000000000001111,dmacon
  423.     move.l rest_data,chann1reg
  424.     move.l rest_data,chann2reg
  425.     move.l rest_data,chann3reg
  426.     move.l rest_data,chann4reg
  427.     move.w #16,chann1reg+4    
  428.     move.w #16,chann2reg+4    
  429.     move.w #16,chann3reg+4    
  430.     move.w #16,chann4reg+4    
  431.     move.w #0,chann1reg+8
  432.     move.w #0,chann2reg+8
  433.     move.w #0,chann3reg+8
  434.     move.w #0,chann4reg+8
  435.     move.w #1,chann1reg+6
  436.     move.w #1,chann2reg+6
  437.     move.w #1,chann3reg+6
  438.     move.w #1,chann4reg+6
  439.     move.l #0,fxr1
  440.     move.l #0,fxr2
  441.     move.l #0,fxr3
  442.     move.l #0,fxr4
  443.     move.w #0,fx1_flag
  444.     move.w #0,fx2_flag
  445.     move.w #0,fx3_flag
  446.     move.w #0,fx4_flag
  447.     move.l #0,fxc1
  448.     move.l #0,fxc2
  449.     move.l #0,fxc3
  450.     move.l #0,fxc4
  451.     rts
  452. ;****************************************
  453.  
  454. ;  CALL HERE TO SELECT WHICH PIECE OF MUSIC TO PLAY
  455. ;  AFTER PLACING NUMBER (1 to 3) IN "SONG_BUFFER"..see above
  456. ;  a call to this routine will initiliase the driver/kill any sound etc.      
  457. ;  make sure this routine has been called before running the interrupt
  458. ;  driven section....see below
  459.  
  460. select_new_song:
  461.  
  462.     move.w #1,int_disable
  463.     movem.l d0/d1/a0/a1,-(a7)    ;save used registers
  464.     move.w music_disable,gen
  465.     move.w #1,music_disable
  466.         jsr kill_chip           
  467.     clr.l d0
  468.         move.w #204,d0
  469.         lea gvars,a0
  470. clloop: clr.w (a0)+        
  471.         dbra  d0,clloop
  472.     tst.l song_buffer
  473.     beq no_song
  474.         move.l song_buffer,d1
  475.     add.l d1,d1
  476.      add.l d1,d1
  477.      add.l d1,d1
  478.      add.l d1,d1
  479.         LEA  SONG_TABLE-16,A1
  480.         add.l d1,a1      
  481.         MOVE.L (A1)+,WSONG1    
  482.         move.l (a1)+,wsong2    
  483.         move.l (a1)+,wsong3
  484.     move.l (a1),wsong4
  485.         MOVE.L #pstart,PATTR1
  486.         MOVE.L #pstart,PATTR2
  487.         MOVE.L #pstart,PATTR3
  488.     move.l #pstart,pattr4
  489.         move.l #sstart,songr1
  490.         MOVE.L #sstart,SONGR2
  491.         MOVE.L #sstart,SONGR3
  492.     move.l #sstart,songr4
  493. no_song
  494.     move.w #1,ch1vars
  495.     move.w #2,ch2vars
  496.     move.w #3,ch3vars
  497.     move.w #4,ch4vars
  498.     move.w #6,ch4fxvars
  499.     move.w #5,ch3fxvars
  500.     move.w #7,ch2fxvars
  501.     move.w #8,ch1fxvars
  502.     move.w gen,music_disable
  503.     clr.w int_disable
  504.     movem.l (a7)+,d0/d1/a0/a1    ;restore registers
  505.         rts
  506.  
  507. ;**************************************************
  508.  
  509. ;  CALL HERE ON A 50hz INTERRUPT DURING RUNTIME
  510. ;  TO PLAY FX AND TUNES
  511.  
  512. driver:  
  513.     tst.w int_disable
  514.     beq process_data
  515.     rts        
  516. process_data
  517.     movem.l d0-d6/a0-a6,-(a7)    ;save used registers
  518.  
  519.  
  520. ch1:
  521.     tst.w fx_disable
  522.     bne test_music1
  523.     tst.l fxr1
  524.     bne   ch1j1
  525.     tst.l fxc1
  526.     beq test_music1
  527.     bra ch1j3
  528. ch1j2    jsr run_dummy1
  529.     jsr run_fx1
  530.     bra ch2
  531. ch1j1
  532.     jsr set_up1
  533. ch1j3    tst.w music_disable    
  534.     beq ch1j2
  535.     jsr run_fx1
  536.     bra ch2
  537. test_music1
  538.     tst.w music_disable
  539.     bne ch2
  540.     jsr run_music1
  541.     bra ch2
  542.     ;***********************
  543.  
  544.     ; channel 1 subroutines
  545.  
  546. run_dummy1    
  547.      lea ch1vars,a0
  548.      lea dummy_reg,a2 
  549.      move.w #0,d5 
  550.      jsr sect1    
  551.     rts
  552.  
  553. set_up1    
  554.          move.l fxr1,d0
  555.          add d0,d0
  556.          add d0,d0
  557.          lea  fxjump_table-4,A1
  558.      add.l d0,a1
  559.          move.l (a1),currfx1
  560.       clr.l fxr1
  561.      clr.w fxintc1
  562.       rts
  563.   
  564.      
  565. run_fx1
  566.     lea ch1fxvars,a0
  567.        lea chann1reg,a2
  568.       move.w #%0000000000000001,d5 
  569.      move.w #%1000001000000001,d1 
  570.      jsr sect1
  571.     rts
  572.  
  573. run_music1
  574.     lea ch1vars,a0
  575.        lea chann1reg,a2
  576.       move.w #%0000000000000001,d5 
  577.       move.w #%1000001000000001,d1 
  578.       jsr sect1     
  579.     rts
  580.  
  581.     ;  **************************
  582. ch2
  583.     tst.w fx_disable
  584.     bne test_music2
  585.     tst.l fxr2
  586.     bne   ch2j1
  587.     tst.l fxc2
  588.     beq test_music2
  589.     bra ch2j3
  590. ch2j2    jsr run_dummy2
  591.     jsr run_fx2
  592.     bra ch3
  593. ch2j1
  594.     jsr set_up2
  595. ch2j3    tst.w music_disable    
  596.     beq ch2j2
  597.     jsr run_fx2
  598.     bra ch3
  599.  
  600. test_music2
  601.     tst.w music_disable
  602.     bne ch3
  603.     jsr run_music2
  604.     bra ch3
  605.     ;***********************
  606.     ; channel 2 subroutines
  607. run_dummy2    
  608.      lea ch2vars,a0
  609.      lea dummy_reg,a2 
  610.      move.w #0,d5 
  611.      jsr sect1    
  612.     rts
  613.  
  614. set_up2    
  615.          move.l fxr2,d0
  616.          add d0,d0
  617.          add d0,d0
  618.          lea  fxjump_table-4,A1
  619.      add.l d0,a1
  620.          move.l (a1),currfx2
  621.       clr.l fxr2
  622.      clr.w fxintc2
  623.       rts
  624.   
  625.      
  626. run_fx2
  627.     lea ch2fxvars,a0
  628.        lea chann2reg,a2
  629.       move.w #%0000000000000010,d5 
  630.      move.w #%1000001000000010,d1 
  631.      jsr sect1
  632.     rts
  633.  
  634. run_music2
  635.     lea ch2vars,a0
  636.        lea chann2reg,a2
  637.       move.w #%0000000000000010,d5 
  638.       move.w #%1000001000000010,d1 
  639.       jsr sect1     
  640.     rts
  641.  
  642.     ;  **************************
  643.  
  644. ch3:
  645.     tst.w fx_disable
  646.     bne test_music3
  647.     tst.l fxr3
  648.     bne   ch3j1
  649.     tst.l fxc3
  650.     beq test_music3
  651.     bra ch3j3
  652. ch3j2    jsr run_dummy3
  653.     jsr run_fx3
  654.     bra ch4
  655. ch3j1
  656.     jsr set_up3
  657. ch3j3    tst.w music_disable    
  658.     beq ch3j2
  659.     jsr run_fx3
  660.     bra ch4
  661.  
  662. test_music3
  663.     tst.w music_disable
  664.     bne ch4
  665.     jsr run_music3
  666.     bra ch4
  667.  
  668.     ;***********************
  669.  
  670.     ; channel 3 subroutines
  671.  
  672. run_dummy3    
  673.      lea ch3vars,a0
  674.      lea dummy_reg,a2 
  675.      move.w #0,d5 
  676.      jsr sect1    
  677.     rts
  678.  
  679. set_up3    
  680.          move.l fxr3,d0
  681.          add d0,d0
  682.          add d0,d0
  683.          lea  fxjump_table-4,A1
  684.      add.l d0,a1
  685.          move.l (a1),currfx3
  686.       clr.l fxr3
  687.      clr.w fxintc3
  688.       rts
  689.   
  690.      
  691. run_fx3
  692.     lea ch3fxvars,a0
  693.        lea chann3reg,a2
  694.       move.w #%0000000000000100,d5 
  695.      move.w #%1000001000000100,d1 
  696.      jsr sect1
  697.     rts
  698.  
  699. run_music3
  700.     lea ch3vars,a0
  701.        lea chann3reg,a2
  702.       move.w #%0000000000000100,d5 
  703.       move.w #%1000001000000100,d1 
  704.       jsr sect1     
  705.     rts
  706.  
  707.     ;  **************************
  708.  
  709. ch4:
  710.     tst.w fx_disable
  711.     bne test_music4
  712.     tst.l fxr4
  713.     bne   ch4j1
  714.     tst.l fxc4
  715.     beq test_music4
  716.     bra ch4j3
  717. ch4j2    jsr run_dummy4
  718.     jsr run_fx4
  719.     bra no4
  720. ch4j1
  721.     jsr set_up4
  722. ch4j3    tst.w music_disable    
  723.     beq ch4j2
  724.     jsr run_fx4
  725.     bra no4
  726.  
  727. test_music4
  728.     tst.w music_disable
  729.     bne no4
  730.     jsr run_music4
  731. no4    
  732.     movem.l (a7)+,d0-d6/a0-a6    ;restore registers
  733.     rts
  734.  
  735.     ;***********************
  736.  
  737.     ; channel 4 subroutines
  738.  
  739. run_dummy4    
  740.      lea ch4vars,a0
  741.      lea dummy_reg,a2 
  742.      move.w #0,d5 
  743.      jsr sect1    
  744.     rts
  745.  
  746. set_up4    
  747.          move.l fxr4,d0
  748.          add d0,d0
  749.          add d0,d0
  750.          lea  fxjump_table-4,A1
  751.      add.l d0,a1
  752.          move.l (a1),currfx4
  753.       clr.l fxr4
  754.      clr.w fxintc4
  755.       rts
  756.   
  757.      
  758. run_fx4
  759.     lea ch4fxvars,a0
  760.        lea chann4reg,a2
  761.       move.w #%0000000000001000,d5 
  762.      move.w #%1000001000001000,d1 
  763.      jsr sect1
  764.     rts
  765.  
  766. run_music4
  767.     lea ch4vars,a0
  768.        lea chann4reg,a2
  769.       move.w #%0000000000001000,d5 
  770.       move.w #%1000001000001000,d1 
  771.       jsr sect1     
  772.     rts
  773.     ;  **************************
  774.  
  775. sect1: tst.w 0(a0)
  776.     bne s1j1
  777.     rts
  778.  
  779. s1j1:    tst.w 2(a0)
  780.         beq sect3       
  781.         cmpi.w #1,2(a0)
  782.         beq sect4
  783.  
  784.         cmpi.w #3,4(a0)    
  785.         beq part2       
  786.     
  787. mode_switch:  subq.w #1,2(a0)     
  788.  
  789. check_effects: clr.w altpf      
  790.         move.w 6(a0),d2    
  791.         tst.w 8(a0)      
  792.         beq check_mod
  793.         tst.w 14(a0)      
  794.         beq cont_bend
  795.         subq.w #1,14(a0)
  796.         bra check_mod
  797. cont_bend:   addq.w #1,altpf    
  798.         move.w 10(a0),d3    
  799.         move.w 12(a0),d4    
  800.         cmpi.w #1,8(a0)
  801.         beq pbup
  802.     
  803.         sub.w d3,d2
  804.         cmp.w d2,d4
  805.         bcs check_mod
  806.         bra fbend
  807.  
  808. pbup:     add.w d3,d2
  809.         cmp.w d2,d4
  810.         bcc check_mod
  811. fbend:     move.w d4,d2
  812.         clr.w 8(a0)      
  813. check_mod:   tst.w 16(a0)
  814.         beq send_alt_pitch
  815.    
  816.  
  817.     tst.w  58(a0)
  818.     beq st_ok
  819.     subq.w #1,58(a0)
  820.     bra send_alt_pitch
  821. st_ok:
  822.         tst.w 50(a0)
  823.         beq cont_mod
  824.         subq #1,50(a0)
  825.         bra send_alt_pitch
  826. cont_mod:    move.w 52(a0),50(a0)  
  827.         addq #1,altpf
  828.         cmpi #3,16(a0)
  829.         bcc addmod
  830.     
  831.         move.w 56(a0),d3 
  832.         sub.w d3,d2
  833.         addq.w #1,16(a0)  
  834.         bra send_alt_pitch
  835. addmod:
  836.  
  837.         move.w 54(a0),d3 
  838.         add.w d3,d2
  839.         addq.w #1,16(a0)
  840.         cmpi.w #5,16(a0)
  841.        bne send_alt_pitch
  842.         move.w #1,16(a0)  
  843.  
  844. send_alt_pitch: tst.w altpf
  845.         beq send_env
  846.         move.w d2,6(a0)  
  847.         move.w d2,6(a2)  
  848.  
  849. send_env: 
  850.  
  851.     cmpi #6,(a0)
  852.     beq norm_env    
  853.     cmpi #5,(a0)
  854.     bne do_env_check
  855.  
  856.     tst.w fx4_flag
  857.     beq norm_env
  858.     bra low_vol
  859.  
  860. do_env_check:
  861.     move.w fx3_flag,d0
  862.     or.w fx4_flag,d0
  863.     cmpi.w  #0,d0
  864.     beq norm_env
  865. low_vol:    
  866.     move.l 18(a0),a1    
  867.         cmpi.w #255,(a1)
  868.         beq evj1
  869.     move.w (a1)+,d0
  870. evj2:    sub.w  62(a0),d0
  871.     bcc no_over
  872.     move.w 0,d0
  873. no_over:
  874.         move.w d0,8(a2) 
  875.     bra fint        
  876.  
  877. evj1:   subq.l #2,a1
  878.     move.w (a1)+,d0
  879.     bra evj2
  880.  
  881. norm_env:
  882.     move.l 18(a0),a1    
  883.         cmpi.w #255,(a1)
  884.         beq env_finished
  885.     cmpi.w #1,66(a0)    
  886.     bne    no_acc 
  887.  
  888.     clr.l d0
  889.     move.w (a1)+,d0
  890.     add.w 64(a0),d0    
  891.     move.w d0,8(a2)    
  892.     move.l a1,18(a0)
  893.     rts        
  894.  
  895. no_acc:
  896. resu:   move.w (a1)+,8(a2)   
  897. fint:   move.l a1,18(a0)    
  898.     rts
  899.  
  900. env_finished:
  901.      subq.l #2,a1    
  902.      bra resu
  903.  
  904.  
  905. one_shot_note: move.w #3,4(a0)     
  906.         move.l 38(a0),(a2)
  907.         move.w 42(a0),4(a2)
  908.         move.w d1,dmacon     
  909.         bra send_env
  910.  
  911.  
  912. part2:                         
  913.         move.l 44(a0),(a2)
  914.         move.w 48(a0),4(a2)
  915.         subq.w #1,2(a0)      
  916.         move.w #1,4(a0)
  917.         bra check_effects
  918.  
  919. sect3:
  920.     move.w 0,66(a0)    
  921.  
  922.     move.l 22(a0),a1  
  923. control_ret: move.w (a1)+,d0  
  924.     cmpi.w #100,d0   
  925.     bls sect5   
  926.   
  927. acc_note:
  928.     move.w d0,6(a0)  
  929.     move.w d0,6(a2)  
  930.     move.w (a1)+,2(a0) 
  931.     subq.w #1,2(a0)  
  932.     move.l a1,22(a0)  
  933.     move.l 34(a0),18(a0) 
  934.     move.w 60(a0),58(a0) 
  935.  
  936.  
  937.     tst.w 16(a0)
  938.     beq no_mod_res
  939.     move.w #1,16(a0)
  940. no_mod_res:
  941.     cmpi.w #0,4(a0)
  942.     beq do_loop
  943.     bra one_shot_note    
  944.  
  945.  
  946. do_loop:    move.w d1,dmacon   
  947.         bra send_env
  948.  
  949. do_rest:
  950.     move.w (a1)+,2(a0) 
  951.     subq.w #1,2(a0)  
  952.     move.l a1,22(a0)  
  953.     move.l  #rest_env,18(a0)
  954.  
  955.         move.w #0,8(a2)
  956.         bra send_env
  957.    
  958. sect4:
  959.         cmpi.w #0,4(a0)
  960.         beq noof
  961.         move.w d5,dmacon   
  962. noof:     subq.w #1,2(a0)
  963.         bra check_effects
  964.    
  965. sect5:     move.l #jump_table,a3
  966.         move.l (a3,d0),a4
  967.         jmp (a4)
  968.  
  969. jump_table: 
  970.     dc.l  in_line_data
  971.         dc.l  nsound
  972.         dc.l  patt_end
  973.         dc.l  get_env
  974.         dc.l  check_pbend
  975.         dc.l  do_mod
  976.         dc.l  bend_off
  977.         dc.l  mod_off
  978.         dc.l  do_rest
  979.         dc.l  end_fx
  980.         dc.l  end_fx
  981.     dc.l  s_f_on
  982.     dc.l  s_f_off
  983.     dc.l  set_acc
  984.     dc.l  rept
  985.  
  986. in_line_data:
  987.  
  988.         nop
  989.         rts
  990.  
  991. rept:
  992.     move.l (a1),a1
  993.     bra control_ret
  994.  
  995. s_f_on: 
  996.     bclr #1,filter
  997.     bra control_ret
  998. s_f_off:
  999.     bset #1,filter
  1000.     bra control_ret
  1001.  
  1002. nsound:    move.l (a1)+,a3     
  1003.         cmpi.w #0,(a3)
  1004.         bne one_shot_sound
  1005.         move.w (a3)+,4(a0)    
  1006.         move.l (a3)+,(a2)     
  1007.         move.w (a3),4(a2)    
  1008.         jmp control_ret
  1009.  
  1010. one_shot_sound:
  1011.         move.w (a3)+,4(a0)
  1012.         move.l (a3)+,38(a0)   
  1013.         move.l (a3)+,42(a0)
  1014.         move.l (a3),46(a0)
  1015.         jmp control_ret
  1016.  
  1017. patt_end:
  1018.  
  1019.         move.l 26(a0),a1    
  1020.         cmpi.l #0,(a1)     
  1021.         beq song_control
  1022.         addq.l #4,26(a0)    
  1023.         move.l (a1),a1     
  1024.         jmp control_ret
  1025. get_env: 
  1026.        move.l (a1)+,a4 
  1027.     move.l (a4)+,62(a0)    
  1028.     
  1029.     move.l  a4,34(a0)    
  1030.     
  1031.         bra control_ret
  1032.  
  1033. check_pbend:
  1034.      move.l (a1)+,8(a0)
  1035.         move.l (a1)+,12(a0)
  1036.         bra control_ret
  1037.  
  1038. do_mod:    move.w #1,16(a0)  
  1039.         move.l (a1)+,50(a0)
  1040.         move.l (a1)+,54(a0)
  1041.         move.l (a1)+,58(a0)
  1042.         bra control_ret
  1043.  
  1044. bend_off:   clr.w 8(a0)
  1045.         bra control_ret
  1046.  
  1047. mod_off:    clr.w 16(a0)
  1048.         bra control_ret
  1049.  
  1050.  
  1051. end_fx:    
  1052.     cmpi.w #6,(a0)
  1053.     beq end_fx4p
  1054.     cmpi.w #5,(a0)
  1055.     beq end_fx3p
  1056.     cmpi.w #7,(a0)
  1057.     beq end_fx2p
  1058.  
  1059. end_fx1p:
  1060.         move.w d5,dmacon   
  1061.     move.w  #1,chann1reg+6
  1062.     move.w #0,8(a2)
  1063.     move.l #0,fxc1
  1064.     rts
  1065.  
  1066. end_fx2p:
  1067.     move.w d5,dmacon 
  1068.     move.w  #1,chann2reg+6
  1069.         move.w #0,8(a2) 
  1070.     move.l #0,fxc2
  1071.         rts
  1072.  
  1073.  
  1074. end_fx3p:
  1075.         move.w d5,dmacon   
  1076.     move.w  #1,chann3reg+6
  1077.     move.w #0,8(a2)
  1078.     move.l #0,fxc3
  1079.     rts
  1080.  
  1081. end_fx4p:
  1082.     move.w d5,dmacon 
  1083.     move.w  #1,chann4reg+6
  1084.         move.w #0,8(a2) 
  1085.     move.l #0,fxc4
  1086.         rts
  1087.  
  1088. set_acc: move.w #1,66(a0) 
  1089.     bra control_ret
  1090.  
  1091. song_control:
  1092.         addq.l #4,a1
  1093.         move.l 30(a0),26(a0)
  1094.         move.l 26(a0),a1
  1095.         addq.l #4,26(a0)
  1096.         move.l (a1),a1
  1097.         jmp control_ret
  1098.  
  1099.  
  1100.     ;"""""""""""""""""""""""""""""""""""""""""""""""""
  1101.  
  1102.     ;;; DATA
  1103.  
  1104. song_table:
  1105.         dc.l s1,s2,s3,s4
  1106.     ;    dc.l s5,s6,s7,s8
  1107.  
  1108. ;************************************************************
  1109. gvars:
  1110. ch1vars     
  1111.     dc.w 0     
  1112.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1113. pattr1: dc.l 0    
  1114. songr1: dc.l 0    
  1115. wsong1: dc.l 0   
  1116.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1117.  
  1118. ch2vars     
  1119.     dc.w 0     
  1120.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1121. pattr2: dc.l 0    
  1122. songr2: dc.l 0    
  1123. wsong2: dc.l 0    
  1124.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1125.  
  1126. ch3vars 
  1127.     dc.w 0     
  1128.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1129. pattr3: dc.l 0    
  1130. songr3: dc.l 0    
  1131. wsong3: dc.l 0    
  1132.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1133.  
  1134. ch4vars 
  1135.     dc.w 0     
  1136.         dc.w 0,0,0,0,0,0,0,0,0,0     
  1137. pattr4: dc.l 0    
  1138. songr4: dc.l 0    
  1139. wsong4: dc.l 0    
  1140.         dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0   
  1141.  
  1142.  
  1143. ch1fxvars 
  1144.     dc.w 0     
  1145. fxintc1:
  1146.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1147. currfx1:
  1148.     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    
  1149.  
  1150. ch2fxvars 
  1151.     dc.w 0     
  1152. fxintc2:
  1153.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1154. currfx2:
  1155.     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    
  1156.  
  1157.  
  1158. ch3fxvars
  1159.     dc.w 0     
  1160. fxintc3:
  1161.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1162. currfx3:
  1163.     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    
  1164.  
  1165. ch4fxvars 
  1166.     dc.w 0     
  1167. fxintc4:
  1168.     dc.w 0,0,0,0,0,0,0,0,0,0     
  1169. currfx4:
  1170.     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    
  1171. ;************************************************************
  1172.  
  1173. dummy_reg dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1174.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1175.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1176.         dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1177. ;************************************************************
  1178.  
  1179.  
  1180.  
  1181. ;       fx patterns here
  1182.  
  1183. fxjump_table:  
  1184.  
  1185. max_fx    dc.l    1
  1186.  
  1187.  
  1188.  
  1189.  
  1190. ;______________________________________________________________________
  1191.  
  1192. ;   The 1/50 counter in these patterns is dependent on the length
  1193. ;   of the sample in bytes and the replay speed.if altering the
  1194. ;   replay speed calculate the counter using length/rate*50
  1195. ;   ie the piston sample is 2647 bytes at r6(6000)..hence interrupt
  1196. ;   counter for 1 shot play = 22
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204. ;*******************************************************************
  1205.  
  1206. sstart: dc.l 0,end_song
  1207.  
  1208. pstart: dc.w end_patt
  1209.  
  1210.  
  1211. ;----------------------------------
  1212.  
  1213.  
  1214. ;;;;;;;;;;;;;;;;;;;;;   Music Data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1215.  
  1216.  
  1217.  
  1218.  
  1219. s1:
  1220.     dc.l    p1,p1,p1b,p1,p1,p1a
  1221.     dc.l    pr,pr,pr,pr
  1222.       dc.l     0,end_song
  1223. s2:
  1224.     dc.l    p4z,p4z,p44,p4z,p4z,p4za
  1225.     dc.l    pr,pr,pr,pr
  1226.         DC.L    0,end_song
  1227. s3:
  1228.     dc.l    p3z,p3z,p3z,p3z
  1229.     dc.l    p3z,p3z,p3z,p3z
  1230.     dc.l    p3z,p3z,p3z,p3z
  1231.     dc.l    p3z,p3z,p3z,p3z
  1232.     dc.l    p3z,p3z,p3z,p3z
  1233.     dc.l    p3z,p3z,p3z,p3z
  1234.     dc.l    p3z,p3z,p3z,p3za
  1235.     dc.l    pr,pr,pr,pr
  1236.     dc.l     0,end_song
  1237. s4:
  1238.     dc.l    p2,p2,p2b,p2,p2,p2a
  1239.     dc.l    pr,pr,pr,pr
  1240.     dc.l     0,end_song
  1241. pr:
  1242.     dc.w rest,cr*4
  1243.     dc.w end_patt
  1244. prza:
  1245.     dc.w rest,q*7
  1246.     dc.w end_patt
  1247.  
  1248. p1:
  1249.       dc.w new_env
  1250.       dc.l sax_env
  1251.     dc.w new_snd
  1252.     dc.l sax
  1253. ;      dc.w modon,1,1
  1254. ;      dc.w 3,3,8
  1255.     dc.w G05,cr,rest,cr,A05,cr,rest,cr+q
  1256.     dc.w B05,q,B05,q,C06,q,C06,q,rest,cr*2
  1257.     dc.w A05,q,G05,q,E05,q,G05,cr,D05,cr,rest,q
  1258.     dc.w A05,q,G05,q,E05,q,G05,cr,A05,cr
  1259.       dc.w end_patt
  1260. p1b:
  1261.       dc.w new_env
  1262.       dc.l sax_env
  1263.     dc.w new_snd
  1264.     dc.l sax
  1265. ;      dc.w modon,1,1
  1266. ;      dc.w 3,3,8
  1267.     dc.w A05,q,A05,q,G05,q,A05,cr,G05,cr,rest,q*9
  1268.     dc.w A05,q,A05,q,G05,q,A05,cr,G05,cr
  1269.     dc.w A05,cr,A05,q,G05,cr,D05,cr,rest,cr
  1270.     dc.w A05,q,A05,q,G05,q,A05,cr,G05,cr,rest,q*9
  1271.     dc.w A05,q,A05,q,G05,q,A05,cr,G05,cr
  1272.     dc.w A05,cr,B05,q,B05,q,C06,q,C06,cr,rest,cr
  1273.       dc.w end_patt
  1274.  
  1275. p1a:
  1276.     dc.w G05,cr,rest,cr,A05,cr,rest,cr+q
  1277.     dc.w B05,q,B05,q,C06,q,C06,q,rest,q*3
  1278.     dc.w G05,cr,rest,cr,A05,cr,rest,cr+q
  1279.     dc.w B05,q,B05,q,C06,q,C06,q,rest,q*3
  1280.       dc.w end_patt
  1281. p2:
  1282.       dc.w new_env
  1283.       dc.l org_env
  1284.     dc.w new_snd
  1285.     dc.l sax
  1286. ;      dc.w modon,1,1
  1287. ;      dc.w 3,3,8
  1288.     dc.w E05,cr,rest,cr,F05,cr,rest,cr+q
  1289.     dc.w F05,q,E05,q,D05,q,C05,q,rest,q*19
  1290.       dc.w end_patt
  1291. p2b:
  1292.       dc.w new_env
  1293.       dc.l sax_env
  1294.     dc.w new_snd
  1295.     dc.l sax
  1296. ;      dc.w modon,1,1
  1297. ;      dc.w 3,3,8
  1298.     dc.w F05,q,F05,q,E05,q,F05,cr,E05,cr,rest,q*9
  1299.     dc.w F05,q,F05,q,E05,q,F05,cr,E05,cr
  1300.     dc.w F05,cr,F05,q,E05,cr,B04,cr,rest,cr
  1301.     dc.w F05,q,F05,q,E05,q,F05,cr,E05,cr,rest,q*9
  1302.     dc.w F05,q,F05,q,E05,q,F05,cr,E05,cr
  1303.     dc.w F05,cr,D05,q,D05,q,G05,q,G05,cr,rest,cr
  1304.       dc.w end_patt
  1305.  
  1306. p2a:
  1307.     dc.w E05,cr,rest,cr,F05,cr,rest,cr+q
  1308.     dc.w D05,q,D05,q,G05,q,G05,q,rest,q*3
  1309.     dc.w E05,cr,rest,cr,F05,cr,rest,cr+q
  1310.     dc.w F05,q,E05,q,D05,q,C05,q,rest,q*3
  1311.       dc.w end_patt
  1312. p4z:
  1313.       dc.w new_env
  1314.       dc.l bass_env
  1315.     dc.w new_snd
  1316.     dc.l bas
  1317.     dc.w C02,cr
  1318.     dc.w C02,q,C02,q
  1319.     dc.w F02,cr
  1320.     dc.w F02,q
  1321.     dc.w G02,cr
  1322.     dc.w G02,q,G02,q,G02,q
  1323.     dc.w C02,cr,rest,cr
  1324.     dc.w C02,(q*3)
  1325.     dc.w C02,q
  1326.     dc.w F02,(q*3)
  1327.     dc.w F02,q
  1328.     dc.w D02,(q*3)
  1329.     dc.w D02,q
  1330.     dc.w G02,cr,G02,cr
  1331.     dc.w end_patt
  1332. p4za:
  1333.       dc.w new_env
  1334.       dc.l bass_env
  1335.     dc.w new_snd
  1336.     dc.l bas
  1337.     dc.w C02,cr
  1338.     dc.w C02,q,C02,q
  1339.     dc.w F02,cr
  1340.     dc.w F02,q
  1341.     dc.w G02,cr
  1342.     dc.w G02,q,G02,q,G02,q
  1343.     dc.w C02,cr,rest,cr
  1344.     dc.w C02,cr
  1345.     dc.w C02,q,C02,q
  1346.     dc.w F02,cr
  1347.     dc.w F02,q
  1348.     dc.w G02,cr
  1349.     dc.w G02,q,G02,q,G02,q
  1350.     dc.w C02,cr,rest,cr
  1351.     dc.w end_patt
  1352. p44
  1353.     dc.w F02,cr,F02,q,F02,q,F02,(q*3)
  1354.     dc.w F02,cr,F02,q,E02,q,D02,q,C02,cr*2
  1355.     dc.w F02,cr,F02,q,F02,q,F02,(q*3)
  1356.     dc.w F02,cr,F02,q,F02,q,G02,q,G02,cr*2
  1357.     dc.w F02,cr,F02,q,F02,q,F02,(q*3)
  1358.     dc.w F02,cr,F02,q,E02,q,D02,q,C02,cr*2
  1359.     dc.w F02,cr,F02,q,F02,q,F02,cr*2
  1360.     dc.w rest,q,F02,q,F02,q,G02,q,C02,cr,rest,cr
  1361.     dc.w end_patt
  1362. p3z:
  1363.       dc.w new_env
  1364.       dc.l kik_env
  1365.     dc.w new_snd
  1366.     dc.l kik
  1367.       dc.w r16,cr
  1368.     dc.w new_snd
  1369.     dc.l snr
  1370.       dc.w r20,cr
  1371.     dc.w new_snd
  1372.     dc.l kik
  1373.     dc.w r16,cr
  1374.     dc.w new_snd
  1375.     dc.l snr
  1376.       dc.w r20,cr
  1377.       dc.w end_patt
  1378. p3za:
  1379.       dc.w new_env
  1380.       dc.l kik_env
  1381.     dc.w new_snd
  1382.     dc.l kik
  1383.       dc.w r16,cr
  1384.       dc.w new_snd
  1385.     dc.l snr
  1386.     dc.w r20,cr
  1387.     dc.w new_snd
  1388.     dc.l kik
  1389.       dc.w r16,cr,rest,cr
  1390.       dc.w end_patt
  1391.  
  1392.  
  1393.  
  1394.  
  1395. **************************************************************
  1396.     ; sample parameters
  1397. bas
  1398.         dc.w 1  
  1399.              dc.l bas4d
  1400.              dc.w 1801/2 
  1401.              dc.l restd
  1402.              dc.w 16/2
  1403. kik
  1404.         dc.w 1  
  1405.              dc.l kik1d
  1406.              dc.w 3801/2 
  1407.              dc.l restd
  1408.              dc.w 16/2
  1409. snr
  1410.         dc.w 1  
  1411.              dc.l snr1d
  1412.              dc.w 6325/2 
  1413.              dc.l restd
  1414.              dc.w 16/2
  1415. sax
  1416.         dc.w 1  
  1417.              dc.l sax2d
  1418.              dc.w 6073/2 
  1419.         dc.l sax2d
  1420.              dc.w 6073/2 
  1421.  
  1422. ;**************************************************
  1423. kik1d            incbin df1:kik1.sam
  1424. snr1d            incbin df1:snr1.sam
  1425. bas4d            incbin df1:bas4.sam
  1426. sax2d            incbin df1:sax2.sam                    
  1427.  
  1428. org_env:            dc.w 0,16,255
  1429. sax_env:            dc.w 0,33,255
  1430. bass_env            dc.w 0,64,255
  1431. q_env:                dc.w 0,10,255
  1432. kik_env:            dc.w 0,64,255
  1433. tom_env:            dc.w 0,45,255
  1434. rest_env:            dc.w 0,0,0,0,0,0,0,0,0,255
  1435. blip:        dc.w 0,33,33,7,7,33,33,10,29,28,24,20,16,14,12,10,8,6,4,2,0,255
  1436.  
  1437.  
  1438. tf1:            dc.w 0,5,255
  1439. tf2:            dc.w 0,9,255
  1440. tf3:            dc.w 0,13,255
  1441. tf4:            dc.w 0,17,255
  1442. tf5:            dc.w 0,21,255
  1443. tf6:            dc.w 0,25,255
  1444. tf7:            dc.w 0,29,255
  1445. tf8:            dc.w 0,35,255
  1446. tf9:            dc.w 0,40,255
  1447. tf10:            dc.w 0,45,255
  1448. tf11:            dc.w 0,50,255
  1449. tf12:            dc.w 0,55,255
  1450. tf13:            dc.w 0,60,255
  1451. tf14:            dc.w 0,64,255
  1452. tf15:            dc.w 0,64,255
  1453.  
  1454. restd:
  1455. rest_data:
  1456.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1457.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1458.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1459.              dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1460.  
  1461. sine_datad:
  1462.              dc.w 127,100,50,25,0,-25,-50,-100,-127
  1463.              dc.w -127,-100,-50,-25,0,25,50,100,127
  1464.  
  1465.     end
  1466.  
  1467.  
  1468.  
  1469.