home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / S / SHAPESFT / MSXMENU2.ZIP / MSXMENU2.MSA / SCRAPBIN / WOW.S < prev   
Text File  |  1985-11-20  |  10KB  |  738 lines

  1.  
  2.  CLR.L -(SP)       ; Enter supervisor mode.
  3.  MOVE.W #$20,-(SP) ; Super.
  4.  TRAP #1
  5.  ADDQ.L #6,SP
  6.  MOVE.L D0,SV
  7.  
  8.  
  9. SL EQU $FF8800
  10. SD EQU $FF8802
  11.  
  12.  LEA SL,A0
  13.  move.b #7,(a0)
  14.  move.b #%11111000,2(a0)
  15.  MOVE.L #$08000000,(A0)
  16.  MOVE.L #$09000000,(A0)
  17.  MOVE.L #$0A000000,(A0)
  18.  
  19.  
  20. bi
  21.  MOVE.B $469,D0
  22. FT CMP.B $469,D0
  23.  BEQ.S FT
  24.  
  25.  bsr vbi
  26. ; bsr guitar
  27.  
  28.  CMP.B #97,$FFFC02
  29.  BNE BI
  30.  
  31.  
  32.  
  33.     lea    $ff8800,a0    get sound chip 
  34.     move.b    #7,(a0)
  35.     move.b    #%11111111,2(a0) cut out lingering noise
  36.     move.l #$8000000,$ff8800 
  37.     move.l #$9000000,$ff8800 
  38.     move.l #$a000000,$ff8800 
  39.  
  40.  MOVE.L SV,-(SP)
  41.  MOVE #$20,-(SP)
  42.  TRAP #1
  43.  ADDQ.L #6,SP
  44.  
  45.  CLR -(SP)
  46.  TRAP #1
  47.  
  48.  
  49.  
  50. guitar
  51.  move.b #8,(a0)
  52.  move.b #15,2(a0)
  53.  
  54.  move.b #0,(a0)
  55.  move.b #192,2(a0)
  56.  move.b #1,(a0)
  57.  move.b #0,2(a0)
  58.  rts
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. VBI  
  70.  add.b #240,flo
  71.  bcc killer
  72.  
  73.  lea sl,a3
  74.  
  75.  
  76. ;\\\\\\\\\\\\\
  77.  MOVE.L UPTO,A2
  78.  MOVE CUNT,D3
  79.  MOVE.B 33(A2),D4
  80. SSU SUBQ.W #1,D3
  81.  BPL PART1
  82.  
  83.  moveq.l #1,d1
  84.  MOVE.L d1,PNT1
  85.  MOVE.L d1,PNT2
  86.  MOVE.L d1,PNT3
  87.  MOVE.L d1,PNT5
  88.  ;MOVE.L #$9000000,(a3)
  89.  
  90.  Lea 36(a2),a2
  91.  CMP.L #CHAN0,A2
  92.  BNE.S LLA
  93.  
  94.  LEA DOTH,A2
  95.  
  96. LLA
  97.  MOVE 34(A2),D3
  98.  MOVE.B 33(A2),D4
  99.  
  100. PART1
  101.  
  102.  
  103.  
  104. W0 
  105.  BTST #1,D4
  106.  BEQ.S W1
  107.  MOVE.L (A2),A1
  108.  MOVE.L 4(A2),A0
  109.  BSR CHAN0
  110.  
  111. W1  BTST #2,D4
  112.  BEQ.S W2
  113.  MOVE.L 8(A2),A1
  114.  MOVE.L 12(A2),A0
  115.  BSR CHAN0
  116.  
  117. W2  BTST #3,D4
  118.  BEQ.S W3
  119.  MOVE.L 16(A2),A1
  120.  MOVE.L 20(A2),A0
  121.  BSR CHAN0
  122.  
  123. W3 BTST #4,D4
  124.  BEQ.S W4
  125.  MOVE.L 24(A2),A1
  126.  MOVE.L 28(A2),A0
  127.  BSR CHAN0
  128.  
  129.  
  130. W4 
  131.  MOVE.L A2,UPTO
  132.  MOVE D3,CUNT
  133. ;--END OF VBI
  134. ;--------EXIT
  135.  
  136.  
  137. killer rts
  138.  
  139.  
  140.  
  141. flo dc.b 0,0
  142.  
  143.  
  144. SV DC.L 0
  145.  
  146.  DC.B " (C) G.WHEATON.  60 NEVIS GROVE. BOLTON. U.K. "
  147.  
  148.  even
  149.  
  150. UPTO DC.L ee-36
  151. CUNT DC.W 0
  152.  EVEN
  153. ;\\RUNNING ORDER SEQUENCE
  154.  
  155. ee
  156. doth
  157.  DC.L PNT5,yy
  158.  DC.L PNT1,dd
  159.  DC.L PNT2,bb
  160.  DC.L PNT3,drm
  161.  DC.B 1,%00011110
  162.  DC.W -1+64*4
  163.  
  164.  DC.L PNT5,yy1
  165.  DC.L PNT1,ff
  166.  DC.L PNT2,bb1
  167.  DC.L PNT3,drm
  168.  DC.B 1,%00011110
  169.  DC.W -1+64*4
  170.  
  171.  DC.L PNT5,yy2
  172.  DC.L PNT1,ff1
  173.  DC.L PNT2,bb2 null
  174.  DC.L PNT3,drm
  175.  DC.B 1,%00011110
  176.  DC.W -1+64*4
  177.  
  178.  
  179.  
  180.  
  181. CHAN0
  182. ;\\\\\\\\\\\\\\\\\\\\\\
  183.  MOVE (A1),D0
  184.  ADD D0,A0
  185.  MOVE.L (A0),D1  ;GET NOTE 0 & DURATION
  186.  MOVE.B 13(A1),D5
  187.  EXT.W D5
  188.  SWAP D1
  189.  ADD D5,D1
  190.  SWAP D1
  191.  CMP #$FFFF,D1
  192.  BNE CON2
  193.  CLR (A1)        ;RESET TO START
  194.  SUB D0,A0
  195.  MOVE.L (A0),D1
  196.  
  197. CON2
  198.  SUBQ.B #1,3(A1)    ;NP0
  199.  BNE STILLON
  200.  
  201.  MOVE.L D1,6(A1) ;TMP0  \D1.W IS DURATION
  202.  MOVE.L D1,20(A1);TEMP  HOLD NOTE
  203.  MOVE.B 26(A1),4(A1)   ;VOL0
  204.  MOVE D1,2(A1)   ;NP0  \SET NEW DURATION
  205.  ADDQ.W #4,(A1)        ; & INC POINTER
  206.  
  207. STILLON
  208. ;\\VOLUME
  209. RFF
  210. ;\\\\\\\\\EFFECTS\\\\\\\\\\
  211. NV0 
  212.  MOVE.B 2(A1),D0
  213.  CMP.B #4,D0
  214.  BNE DOIT
  215.  ADDQ.B #1,4(A1)
  216.  RTS
  217. DOIT 
  218.  
  219. DZZ
  220.  MOVE.B #7,(a3)
  221.  MOVE.B #%11111000,2(a3)
  222.  BRA FCC
  223. EFCT
  224.  
  225.      DC.L FINK
  226.       dc.l vib,warb
  227.      dc.l drum,SLIP
  228.      dc.l silent,mug
  229.      dc.l mug1,mug2
  230.      DC.L git
  231.  
  232.  
  233. FCC LEA EFCT,A6
  234.  AND #31,D0 
  235.  ASL #2,D0
  236.  MOVE.L (A6,D0),A0
  237.  JSR (A0)
  238.  
  239. MAZ ADDQ.B #1,4(A1)          ;VOL0
  240.  
  241.  MOVE.B 11(A1),(a3)
  242.  MOVE.B 21(A1),2(a3)   ;TMP0+1
  243.  MOVE.B 12(A1),(a3)
  244.  MOVE.B 20(A1),2(a3)   ;TMP0
  245.  moveq.w #0,D0
  246.  MOVE.B 4(A1),D0
  247.  MOVE.B 10(A1),(a3)
  248.  MOVE.B 28(A1,D0),2(a3)    ;VOL0
  249.  
  250. fink rts
  251.  
  252. ;-------EFFECTS ROUTINES--------
  253. ;1-256---DELAYED--VIBRATO-------
  254.  
  255. mug
  256.  bra.s wwq 
  257.  
  258. VIB 
  259.  
  260.  moveq.w #0,d1
  261.  move.b 4(a1),d1
  262.  cmp #24,d1
  263.  blt.s sac 
  264.  
  265.  
  266. WWQ 
  267.  MOVE 16(A1),D1
  268.  ADD D1,18(A1)
  269.  MOVE 14(A1),D1
  270.  CMP 18(A1),D1
  271.  BLT.S RIST
  272. KJ NEG D1
  273.  CMP 18(A1),D1
  274.  BGT.S RIST
  275.  
  276. SAZ MOVE 6(A1),D1
  277.  ADD 18(A1),D1
  278.  MOVE D1,20(A1)
  279. SDC RTS
  280.  
  281. RIST NEG 16(A1)
  282.  BRA.S SAZ
  283.  
  284. sac move 6(a1),20(a1)
  285.  rts
  286.  
  287.  
  288. ;2-512------WARB DW-----------
  289. warb
  290.  lsr 20(a1)
  291.  cmp #60,20(a1)
  292.  bgt.s gaz
  293.  
  294.  move 6(a1),20(a1) 
  295. gaz rts
  296.  
  297.  
  298.  
  299. fty dc.w 128
  300.  
  301.  
  302. mug2
  303.  move.b #149,4(a1)
  304.  rts
  305.  
  306. mug1 
  307.  move.b #139,4(a1)
  308.  addq #1,lol
  309.  move lol,d1
  310.  and #3,d1
  311.  asl #1,d1
  312.  
  313.  move 6(a1),20(a1)
  314.  move pap(pc,d1),d1
  315.  add d1,20(a1)
  316.  rts
  317.  
  318.  
  319. pap dc.w -1,0,1,0
  320. lol dc.w 0
  321.  
  322. ;3--768--------DRUM-----------
  323. DRUM 
  324.  SUBQ.B #2,21(A1)
  325.  MOVE.B #7,(a3)
  326.  MOVE.B #%11011000,2(a3)
  327.  MOVE.B #6,(a3)
  328.  MOVE.B 21(A1),2(a3)
  329.  
  330.  MOVE.B #5,(a3)
  331.  MOVE.B 32(A2),2(a3)
  332.  
  333.  MOVE.B #4,(a3)
  334.  MOVE.B 21(A1),D0
  335.  ASL.B #3,D0
  336.  MOVE.B D0,2(a3)
  337.  RTS
  338.  
  339.  
  340.  
  341. ;------5*256
  342. silent
  343.  move.b #150,4(a1)
  344.  rts 
  345.  
  346. slip
  347.  rts
  348.  
  349.  
  350.  
  351. ;------9*256
  352. git
  353.  tst.b 4(a1)
  354.  bne.s palp
  355.  
  356.  clr bab
  357.  
  358.  
  359. palp 
  360.  move.b #99,4(a1) 
  361.  addq.w #1,bab
  362.  
  363.  move bab,d1
  364.  move.b gitr(pc,d1),d2
  365.  ext.w d2
  366.  move 6(a1),d1
  367.  add d2,d1
  368.  move d1,20(a1)
  369.  rts 
  370.  
  371. bab dc.w 0
  372.  
  373. gitr
  374.  dc.b 0,0,0,0,0,0,0,0
  375.  dc.b 0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13
  376.  dc.b 15,14,15,14,11,10,11,15,14,16,15,14,13,15,13,14
  377.  dc.b 12,11,10,9,8,7,6,5,4,3,2,1,0
  378.  
  379.  dc.b 1,1,0,1,1,1,0,-1,-1,0,0,0,1,1,0,1,0
  380.  dc.b 1,1,0,1,0,1,1,0,-1,-1,0,-1,0,0,1,1,2,1,0
  381.  dc.b 1,1,0,1,0,1,1,0,-1,-1,0,-1,0,0,1,1,2,1,0
  382.  
  383.  even
  384.  
  385. ;\\\\\\\\\\\\\\DATAS\\\\\\\\\\\\\\\
  386. ;\\NOTE 1ST WORD. DURATION 2ND WORD
  387. ;\\\LEAD
  388.  
  389. ;\\\MIDDLE
  390. PNT1 DC.W 0
  391.  DC.W 1       ;EFFECT & DURATION 2(A1)
  392.  DC.B 0,0
  393.  DC.L 0
  394.  DC.B 9,2,3
  395.  DC.B 0       ;ADD  13(A1)
  396.  DC.W 3       ;VIB LIMIT
  397.  DC.W 2       ;VIB ADD 16(A1)
  398.  DC.W 0       ;VIB 18(A1)
  399.  DC.L 0       ;TEMP NOTE 20(A1)
  400. ti DC.B 1,1     ;VIB RATE  24)A1)
  401.  DC.B 0,0     ;INITIAL VOL
  402. ;ADSR  28(A1)
  403.  
  404.  DC.B 15,14,14,14,13,13,13,13
  405.  
  406.  dcb.b 16,12
  407.  dcb.b 16,11
  408.  dcb.b 16,10
  409.  dcb.b 16,9
  410.  dcb.b 16,8
  411.  dcb.b 32,7
  412.  dcb.b 32,6
  413.  dcb.b 32,5
  414.  dcb.b 16,4
  415.  dcb.b 20,3
  416.  dcb.b 8,4
  417.  dcb.b 8,5
  418.  dcb.b 8,6
  419.  dcb.b 8,7
  420.  dcb.b 8,8
  421.  dcb.b 8,9
  422.  dcb.b 8,10
  423.  
  424.  
  425.  
  426.  EVEN
  427. ;\\\BASS
  428. PNT2 DC.W 0
  429.  DC.W 1          ;2(A1) DURATION
  430.  DC.B 0,0        ;4(A1)
  431.  DC.L 0          ;6
  432.  DC.B 10,4,5     ;10(A1) VOL REG
  433.  DC.B 1          ;ADD TO NOTE 13(A1)
  434.  DC.W 2         ;VIB LIMIT
  435.  DC.W 1          ;VIBRATO ADD 16(A1)
  436.  DC.W 2          ;VIB 18(A1)
  437.  DC.L 0          ;TMP NOTE 20(A1)
  438. li DC.B 1,1        ;VIB RATE
  439.  DC.B 0,0        ;INITIAL VOL 26(A1)
  440. ;\ADSR  28(A1)
  441. ADSR
  442. *-*
  443.  
  444.  DC.B 13,12,11,12,11,10,11
  445.  DCb.B 8,10
  446.  DCb.B 8,9
  447.  DCb.B 8,7
  448.  DCb.B 28,6
  449.  dcb.b 20,5
  450.  dcb.b 16,4
  451.  dcb.b 32,3
  452.  dcb.b 64,2
  453.  
  454.  
  455.  
  456.  
  457.  EVEN
  458. PNT3 DC.W 0
  459. NP3 DC.W 1      ;2(A1) DURATION
  460.  DC.B 0,0        ;4(A1)
  461.  DC.L 0          ;6
  462.  DC.B 10,6,11    ;10(A1) VOL REG
  463.  DC.B 0          ;ADD  13(A1)
  464.  DC.W 5          ;VIB LIMIT
  465.  DC.W 3          ;VIBRATO ADD 16(A1)
  466.  DC.W 0          ;VIB 18(A1)
  467.  DC.L 0          ;TMP NOTE 20(A1)
  468. fluk DC.B 0,0        ;VIB RATE
  469.  DC.B 0,0        ;INITIAL VOL 26(A1)
  470. ;\ADSR  28(A1)
  471.  
  472.  
  473.  DC.B 10,9,14,13,12,11,11,10,9,8,7
  474.  
  475.  
  476. PNT5 DC.W 0
  477.  DC.W 1       ;EFFECT & DURATION 2(A1)
  478.  DC.B 0,0
  479.  DC.L 0
  480.  DC.B 8,0,1
  481.  DC.B 0       ;ADD  13(A1)
  482.  DC.W 2       ;VIB LIMIT
  483.  DC.W 3       ;VIB ADD 16(A1)
  484.  DC.W 0       ;VIB 18(A1)
  485.  DC.L 0       ;TEMP NOTE 20(A1)
  486.  DC.B 1,1     ;VIB RATE  24)A1)
  487.  DC.B 0,0     ;INITIAL VOL
  488. ;ADSR  28(A1)
  489.  
  490.  dc.b 15,14,13,12
  491.  dc.b 11,10
  492.  
  493.  dcb.b 8,9
  494.  dcb.b 8,8
  495.  dcb.b 16,7
  496.  dcb.b 10,6
  497.  dcb.b 16,7
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504. MAX DC.B 71,32,87,72,69,65,84,79,78
  505.  EVEN
  506.  
  507. ;-----------MUSIC DATA
  508.  
  509. D=1024+256
  510. v=256
  511. vv=6*256
  512.  
  513. NULL DC.W 2,128+5*256
  514.  DC.W $FFFF,$FFFF
  515.  
  516. drm
  517.  dc.w 0,1+768
  518.  dc.w 0,15+1024
  519.  dc.w 12,3+768
  520.  dc.w 0,13+1024
  521.  
  522.  dc.w 0,1+768
  523.  dc.w 0,15+1024
  524.  dc.w 10,5+768
  525.  dc.w 0,11+1024
  526.  
  527.  
  528.  DC.W $FFFF,$FFFF
  529.  
  530. u=2
  531. x=512
  532.  
  533. yy
  534.  dc.w 0,40+d
  535.  dc.w 204*u,8+x
  536.  dc.w 192*u,8+x
  537.  dc.w 204*u,8+x
  538.  dc.w 192*u,8+x  1st beat
  539.  dc.w 204*u,8+x
  540.  dc.w 192*u,8+x
  541.  dc.w 120*u,8+x
  542.  dc.w 0,8+d
  543.  
  544.  dc.w 204*u,8+x
  545.  dc.w 192*u,8+x
  546.  dc.w 204*u,8+x
  547.  dc.w 192*u,8+x
  548.  dc.w 204*u,8+x
  549.  dc.w 192*u,8+x
  550.  dc.w 120*u,16+x
  551.  dc.w 0,16+d
  552.  
  553.  dc.w 128*u,8+x
  554.  dc.w 128*u,8+x
  555.  dc.w 120*u,8+x
  556.  dc.w 0,8+d
  557.  dc.w 182*u,8+x
  558.  dc.w 0,8+d
  559.  
  560.  dc.w 0,32+d
  561.  
  562.  DC.W $FFFF,$FFFF
  563.  
  564. yy1
  565.  dc.w 0,40+d
  566.  dc.w 204*u,8+x
  567.  dc.w 192*u,8+x
  568.  dc.w 204*u,8+x
  569.  dc.w 192*u,8+x  1st beat
  570.  dc.w 204*u,8+x
  571.  dc.w 192*u,8+x
  572.  dc.w 120*u,8+x
  573.  dc.w 0,8+d
  574.  
  575.  dc.w 204*u,8+x
  576.  dc.w 192*u,8+x
  577.  dc.w 204*u,8+x
  578.  dc.w 192*u,8+x
  579.  dc.w 204*u,8+x
  580.  dc.w 192*u,8+x
  581.  dc.w 120*u,8+x
  582.  dc.w 0,24+d
  583.  
  584.  dc.w 96*u,8+x
  585.  dc.w 96*u,8+x
  586.  dc.w 91*u,8+x
  587.  dc.w 0,8+d
  588.  dc.w 121*u,8+x
  589.  dc.w 0,8+d
  590.  
  591.  dc.w 0,32+d
  592.  
  593.  DC.W $FFFF,$FFFF
  594.  
  595.  
  596. yy2
  597.  dc.w 0,48+d
  598.  dc.w 91*u,16+x
  599.  dc.w 128*u,8+x
  600.  dc.w 0,48+56+d
  601.  dc.w 128*u,16+x
  602.  dc.w 144*u,8+x
  603.  dc.w 0,255+d
  604.  
  605.  DC.W $FFFF,$FFFF
  606.  
  607. e=1536
  608. i=8
  609. bb
  610.  dc.w 144*i,8+e
  611.  dc.w 144*i,8+e
  612.  dc.w 0,8+d
  613.  dc.w 144*i,8+e
  614.  dc.w 0,8+d
  615.  dc.w 192*i,8+e
  616.  dc.w 162*i,8+e
  617.  dc.w 153*i,8+e
  618.  DC.W $FFFF,$FFFF
  619.  
  620. bb1
  621.  dc.w 144*i,8
  622.  dc.w 144*i,8
  623.  dc.w 0,8+d
  624.  dc.w 144*i,8
  625.  dc.w 0,8+d
  626.  dc.w 192*i,8
  627.  dc.w 162*i,8 +d
  628.  dc.w 153*i,8
  629.  
  630.  dc.w 144*i,8
  631.  dc.w 144*i,8
  632.  dc.w 0,8+d
  633.  dc.w 144*i,8
  634.  dc.w 0,8+d
  635.  dc.w 192*i,8
  636.  dc.w 162*i,8 +d
  637.  dc.w 153*i,8
  638.  
  639.  dc.w 144*i,8
  640.  dc.w 144*i,8
  641.  dc.w 0,8+d
  642.  dc.w 144*i,8
  643.  dc.w 0,8+d
  644.  dc.w 192*i,8
  645.  dc.w 162*i,8 +d
  646.  dc.w 153*i,8
  647.  
  648. bb2
  649.  dc.w 121*i,8
  650.  dc.w 121*i,8
  651.  dc.w 0,8+d
  652.  dc.w 121*i,8
  653.  dc.w 0,8+d
  654.  dc.w 121*i,8
  655.  dc.w 121*i,8 +d
  656.  dc.w 128*i,16 8
  657.  
  658. ; dc.w 128*i,8
  659.  dc.w 128*i,8
  660.  dc.w 0,8+d
  661.  dc.w 128*i,8
  662.  dc.w 0,8+d
  663.  dc.w 128*i,8
  664.  dc.w 128*i,8 +d
  665.  dc.w 128*i,8
  666.  
  667.  dc.w 128*i,8
  668.  dc.w 128*i,8
  669.  dc.w 0,8+d
  670.  dc.w 128*i,8
  671.  dc.w 0,8+d
  672.  dc.w 128*i,8
  673.  dc.w 128*i,8 +d
  674.  dc.w 128*i,8
  675.  
  676.  dc.w 144*i,8
  677.  dc.w 144*i,8
  678.  dc.w 0,8+d
  679.  dc.w 144*i,8
  680.  dc.w 0,8+d
  681.  dc.w 192*i,8
  682.  dc.w 162*i,8 +d
  683.  dc.w 153*i,8
  684.  
  685.  
  686.  dc.w 128*i,8
  687.  dc.w 128*i,8
  688.  dc.w 0,8+d
  689.  dc.w 128*i,8
  690.  dc.w 0,8+d
  691.  dc.w 128*i,8
  692.  dc.w 128*i,8 +d
  693.  dc.w 128*i,8
  694.  
  695.  DC.W $FFFF,$FFFF
  696.  
  697. g=8*256
  698. r=7*256
  699. dd
  700.  dc.w 36,196+d
  701.  dc.w 36,50+r
  702.  
  703.  dc.w 44,1+g
  704.  dc.w 48,1+g
  705.  dc.w 52,1+g
  706.  dc.w 56,1+g
  707.  dc.w 60,1+g
  708.  dc.w 64,1+g
  709.  dc.w 68,1+g
  710.  dc.w 72,1+g
  711.  dc.w 76,1+g
  712.  dc.w 80,1+g
  713.  dc.w 84,1+g
  714.  dc.w 88,1+g
  715.  dc.w 89,1+g
  716.  dc.w 90,1+g
  717.  
  718.  DC.W $FFFF,$FFFF
  719.  
  720. ff
  721.  dc.w 90,64+r
  722.  dc.w 96,128+r
  723.  dc.w 36,64+r
  724.  DC.W $FFFF,$FFFF
  725.  
  726. ff1
  727.  dc.w 90,64+r
  728.  dc.w 45,64+r
  729.  dc.w 64,64+r
  730.  dc.w 72,16+r
  731.  dc.w 36,48+d
  732.  DC.W $FFFF,$FFFF
  733.  
  734.  
  735.  
  736.  
  737.  
  738.