home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Steel Sky Bkp 2 / Lowe_SteelSkyBkp2.adf / introNEW.s < prev    next >
Encoding:
Text File  |  1979-10-02  |  38.7 KB  |  2,306 lines

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