home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / S / SHAPESFT / MSXMENU2.ZIP / MSXMENU2.MSA / SCRAPBIN / ALBERT.S next >
Text File  |  1985-11-20  |  9KB  |  645 lines

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