home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: Holly's DPaint Dating Agency / Lowe_HollysDPaintDatingAgency.adf / introNEW.s < prev    next >
Encoding:
Text File  |  1979-10-03  |  38.8 KB  |  2,308 lines

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