home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 2: Collection B / 17Bit_Collection_B.iso / files / 2075.dms / in.adf / Puma_Replay.S < prev    next >
Encoding:
Text File  |  1992-06-24  |  16.3 KB  |  832 lines

  1. ;        ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  2. ;              PumaTracker V0.99 Replay-Routine
  3. ;        ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  4. ;
  5. ;        That routine was ripped from Toki (Ocean), resourced,
  6. ;    improved, and optimized by Flyspy/Agile. Use it in your programs...
  7. ;    These kinda modules can be useful for intros coz' a module can't exceed
  8. ;    8Kb and that replay-routine is fuck'n fast.
  9. ;
  10.  
  11. >Extern "Df0:Toki7",Mt_Data        ; If no module is loaded it crashes !
  12.  
  13. ; **************************** Demonstration IRQ ******************************
  14.  
  15. Begin:    Bsr.b    Save_All
  16.     Bsr.w    Mt_Init
  17.     Move.w    #$7fff,$dff09a
  18.     Move.w    #$7fff,$dff096
  19.     Move.l    #Irq,$6c.w
  20.     Move.w    #$c020,$dff09a
  21.     Move.w    #$8200,$dff096
  22.  
  23. WaitMouse:
  24.     Btst    #6,$bfe001
  25.     Bne.B    WaitMouse
  26.     Bsr.b    Restore_all
  27.     Bsr.w    Mt_End
  28.     Rts
  29.  
  30. Irq:    Movem.l    d0-d7/a0-a6,-(sp)
  31.     Move.w    #0,$dff180
  32.     Bsr.w    Mt_Music
  33.     Move.w    #$20,$dff09c
  34.     Movem.l    (sp)+,d0-d7/a0-a6
  35.     Rte
  36.  
  37. Save_All:
  38.     Move.b    #%10000111,$bfd100
  39.     Move.l    4.w,a6
  40.     Jsr    -132(a6)
  41.     Lea    Save_Irq(pc),a0
  42.     Move.l    $6c.w,(a0)+
  43.     Move.w    $dff01c,(a0)
  44.     Or.w    #$c000,(a0)+
  45.     Move.w    $dff002,(a0)
  46.     Or.w    #$8100,(a0)
  47.     Rts
  48.  
  49. Restore_All:
  50.     Move.l    Save_Irq(pc),$6c.w
  51.     Move.w    #$7fff,$dff09a
  52.     Move.w    Save_Intena(pc),$dff09a
  53.     Move.w    #$7fff,$dff096
  54.     Move.w    Save_Dmacon(pc),$dff096
  55.     Move.l    $4.w,a6
  56.     Lea    Name_GLib(pc),a1
  57.     Moveq    #0,d0
  58.     Jsr    -552(a6)
  59.     Move.l    d0,a0
  60.     Move.l    38(a0),$dff080
  61.     Clr.w    $dff088
  62.     Move.l    d0,a1
  63.     Jsr    -414(a6)
  64.     Jsr    -138(a6)
  65.     Rts
  66.  
  67. Save_Irq:    Dc.l    0
  68. Save_Intena:    Dc.w    0
  69. Save_Dmacon:    Dc.w    0
  70. Name_GLib:    Dc.b    "graphics.library",0
  71.         Even
  72.  
  73. ; ************************* Real Replay-Routine ****************************
  74.  
  75. Mt_Data=$60000
  76. Mt_init:
  77.     Lea    Mt_Data,a4
  78.     Lea    MusicData(pc),a2
  79.     Lea    Mt_Voice1(pc),A0
  80.     Bclr    #2,$22(A0)
  81.     Move.B    #1,$12(A0)
  82.     Lea    Mt_Voice2(pc),A0
  83.     Bclr    #2,$22(A0)
  84.     Move.B    #1,$12(A0)
  85.     Lea    Mt_Voice3(pc),A0
  86.     Bclr    #2,$22(A0)
  87.     Move.B    #1,$12(A0)
  88.     Lea    Mt_Voice4(pc),A0
  89.     Bclr    #2,$22(A0)
  90.     Move.B    #1,$12(A0)
  91.     Move.L    A4,(a2)
  92.     Move.W    12(A4),D0
  93.     AddQ.W    #1,D0
  94.     Move.W    D0,$134(a2)
  95.     St     $132(a2)
  96.     Move.B    #1,$130(a2)
  97.     Move.B    #$20,$131(a2)
  98.     MoveQ    #9,D0
  99.     Lea    $3C(A4),A0
  100.     Lea    MusicData9(pc),A1
  101.     Lea    $14(A4),A6
  102.     Lea    MusicData8(pc),A3
  103. lbC005F20:
  104.     Move.W    (A0)+,(A1)+
  105.     Move.L    (A6)+,A5
  106.     Add.L    MusicData(pc),A5
  107.     Move.L    A5,(A3)+
  108.     Dbra    D0,lbC005F20
  109.  
  110.     MoveQ    #$29,D0
  111.     Lea    MusicData10(pc),A5
  112. lbC005F38:
  113.     Move.L    A5,(A3)+
  114.     Lea    $20(A5),A5
  115.     Dbra    D0,lbC005F38
  116.  
  117.     Move.W    14(A4),D0
  118.     Lea    $50(A4),A0
  119.     Move.W    12(A4),D1
  120.     AddQ.W    #1,D1
  121.     Mulu    #14,D1
  122.     SubQ.W    #4,D1
  123.     Add.W    D1,A0
  124.     Lea    MusicData7(pc),A1
  125.     Move.L    #$70617474,D2
  126.     AddQ.W    #4,A0
  127. lbC005F66:
  128.     Cmp.L    (A0)+,D2
  129.     Bne.S    lbC005F66
  130.  
  131.     Move.L    A0,(A1)+
  132.     Dbra    D0,lbC005F66
  133.  
  134.     Lea    MusicData6(pc),A1
  135.     Move.L    #$696E7374,D2
  136.     Move.L    #$696E7366,D1
  137.     Move.W    $10(A4),D0
  138.     SubQ.W    #1,D0
  139.     SubQ.W    #2,A0
  140. lbC005F8A:
  141.     AddQ.W    #2,A0
  142.     Cmp.L    (A0),D2
  143.     Bne.S    lbC005F8A
  144.  
  145.     AddQ.W    #4,A0
  146.     Move.L    A0,(A1)+
  147.     SubQ.W    #2,A0
  148. lbC005F96:
  149.     AddQ.W    #2,A0
  150.     Cmp.L    (A0),D1
  151.     Bne.S    lbC005F96
  152.  
  153.     AddQ.W    #4,A0
  154.     Move.L    A0,(A1)+
  155.     Dbra    D0,lbC005F8A
  156.  
  157.     Lea    MusicData1(pc),A6
  158.     Move.B    #$40,$15(A6)
  159.     Clr.W    $38(A6)
  160.     Rts
  161.  
  162. Mt_Music:
  163.     Lea    MusicData(PC),A2
  164.     Move.W    $13c(a2),d0
  165.     Bne.S    lbC005FC8
  166.  
  167.     Move.W    #$8000,D5
  168.     Bra.w    lbC0061B2
  169. lbC005FC8:
  170.     Cmp.B    #$20,$131(a2)
  171.     Bne.w    lbC0060C2
  172.  
  173.     AddQ.B    #1,$132(a2)
  174.     Move.W    $134(a2),d0
  175.     Cmp.B    $132(a2),d0
  176.     Bne.S    lbC005FE4
  177.  
  178.     Sf    $132(a2)
  179. lbC005FE4:
  180.     Sf    $131(a2)
  181.     MoveQ    #0,D0
  182.     Move.B    MusicData2(pc),D0
  183.     Add.W    D0,D0
  184.     Move.W    D0,D1
  185.     Lsl.W    #3,D0
  186.     Sub.W    D1,D0
  187.     Move.L    MusicData(pc),A5
  188.     Lea    $50(A5),A5
  189.     Add.W    D0,A5
  190.     Lea    MusicData7(pc),A4
  191.     Lea    Mt_Voice1(pc),A6
  192.     Or.B    #1,$14(A6)
  193.     MoveQ    #0,D1
  194.     Move.B    (A5)+,D1
  195.     Add.W    D1,D1
  196.     Add.W    D1,D1
  197.     Move.L    (A4,D1.W),14(A6)
  198.     SubQ.L    #4,14(A6)
  199.     Move.B    (A5)+,$18(A6)
  200.     Move.B    (A5)+,$19(A6)
  201.     Move.B    #1,$12(A6)
  202.     Lea    Mt_Voice2(pc),A6
  203.     Or.B    #1,$14(A6)
  204.     MoveQ    #0,D1
  205.     Move.B    (A5)+,D1
  206.     Add.W    D1,D1
  207.     Add.W    D1,D1
  208.     Move.L    (A4,D1.W),14(A6)
  209.     SubQ.L    #4,14(A6)
  210.     Move.B    (A5)+,$18(A6)
  211.     Move.B    (A5)+,$19(A6)
  212.     Move.B    #1,$12(A6)
  213.     Lea    Mt_Voice3(pc),A6
  214.     Or.B    #1,$14(A6)
  215.     MoveQ    #0,D1
  216.     Move.B    (A5)+,D1
  217.     Add.W    D1,D1
  218.     Add.W    D1,D1
  219.     Move.L    (A4,D1.W),14(A6)
  220.     SubQ.L    #4,14(A6)
  221.     Move.B    (A5)+,$18(A6)
  222.     Move.B    (A5)+,$19(A6)
  223.     Move.B    #1,$12(A6)
  224.     Lea    Mt_Voice4(pc),A6
  225.     Or.B    #1,$14(A6)
  226.     MoveQ    #0,D1
  227.     Move.B    (A5)+,D1
  228.     Add.W    D1,D1
  229.     Add.W    D1,D1
  230.     Move.L    (A4,D1.W),14(A6)
  231.     SubQ.L    #4,14(A6)
  232.     Move.B    (A5)+,$18(A6)
  233.     Move.B    (A5)+,$19(A6)
  234.     Move.B    #1,$12(A6)
  235.     Move.B    (A5),D1
  236.     Beq.S    lbC0060C2
  237.  
  238.     Move.B    D1,Mt_Data+$315a
  239. lbC0060C2:
  240.     Lea    MusicData4(pc),A1
  241.     SubQ.B    #1,$130(a2)
  242.     Bne.B    lbC006140
  243.  
  244.     AddQ.B    #1,$131(a2)
  245.     Move.B    Mt_Data+$315a,$130(a2)
  246.     Lea    Mt_Voice1(pc),A6
  247.     SubQ.B    #1,$12(A6)
  248.     Bne.S    lbC0060F2
  249.  
  250.     AddQ.L    #4,14(A6)
  251.     And.B    #$DF,$14(A6)
  252.     MoveQ    #1,D1
  253.     Bsr.w    Mt_read_sample
  254. lbC0060F2:
  255.     Lea    Mt_Voice2(pc),A6
  256.     SubQ.B    #1,$12(A6)
  257.     Bne.S    lbC00610C
  258.  
  259.     AddQ.L    #4,14(A6)
  260.     And.B    #$DF,$14(A6)
  261.     MoveQ    #2,D1
  262.     Bsr.w    Mt_read_sample
  263. lbC00610C:
  264.     Lea    Mt_Voice3(pc),A6
  265.     SubQ.B    #1,$12(A6)
  266.     Bne.S    lbC006126
  267.  
  268.     AddQ.L    #4,14(A6)
  269.     And.B    #$DF,$14(A6)
  270.     MoveQ    #4,D1
  271.     Bsr.w    Mt_read_sample
  272. lbC006126:
  273.     Lea    Mt_Voice4(pc),A6
  274.     SubQ.B    #1,$12(A6)
  275.     Bne.S    lbC006140
  276.  
  277.     AddQ.L    #4,14(A6)
  278.     And.B    #$DF,$14(A6)
  279.     MoveQ    #8,D1
  280.     Bsr.w    Mt_read_sample
  281. lbC006140:
  282.     Move.W    #$8000,D5
  283.     Lea    Mt_Voice1(pc),A6
  284.     Move.B    $22(A6),D7
  285.     Btst    #2,D7
  286.     Beq.S    lbC00615E
  287.  
  288.     AddQ.B    #1,D5
  289.     Bsr.w    lbC006330
  290.     Move.B    D7,$22(A6)
  291. lbC00615E:
  292.     Lea    Mt_Voice2(pc),A6
  293.     Move.B    $22(A6),D7
  294.     Btst    #2,D7
  295.     Beq.S    lbC006178
  296.  
  297.     AddQ.B    #2,D5
  298.     Bsr.w    lbC006330
  299.     Move.B    D7,$22(A6)
  300. lbC006178:
  301.     Lea    Mt_Voice3(pc),A6
  302.     Move.B    $22(A6),D7
  303.     Btst    #2,D7
  304.     Beq.S    lbC006192
  305.  
  306.     AddQ.B    #4,D5
  307.     Bsr.w    lbC006330
  308.     Move.B    D7,$22(A6)
  309. lbC006192:
  310.     Move.W    $136(a2),d6
  311.     Bne.S    lbC0061B2
  312.  
  313.     Lea    Mt_Voice4(pc),A6
  314.     Move.B    $22(A6),D7
  315.     Btst    #2,D7
  316.     Beq.S    lbC0061B2
  317.  
  318.     AddQ.B    #8,D5
  319.     Bsr.w    lbC006330
  320.     Move.B    D7,$22(A6)
  321. lbC0061B2:
  322.     Move.W    $13a(a2),d0
  323.     Beq.S    lbC00620A
  324.  
  325.     Move.W    $136(a2),d0
  326.     Beq.S    lbC006222
  327.  
  328.     Lea    MusicData1(pc),A6
  329.     Move.W    $138(a2),d1
  330.     Beq.S    lbC006200
  331.  
  332.     Clr.W    $138(a2)
  333.     Add.W    D0,D0
  334.     Move.W    D0,D1
  335.     Add.W    D0,D0
  336.     Add.W    D0,D0
  337.     Add.W    D1,D0
  338.     Ext.L    D0
  339.     Lea    MusicData11(pc),A0
  340.     Add.L    D0,A0
  341.     Move.W    (A0)+,D0
  342.     Move.B    D0,$3A(A6)
  343.     Move.L    (A0)+,$1A(A6)
  344.     Move.L    (A0),$1E(A6)
  345.     Move.L    #$7000000,$22(A6)
  346.     Move.W    #8,$DFF096
  347. lbC006200:
  348.     Move.B    $22(A6),D7
  349.     Btst    #2,D7
  350.     Bne.S    lbC006210
  351.  
  352. lbC00620A:
  353.     Clr.W    $136(a2)
  354.     Bra.S    lbC006222
  355. lbC006210:
  356.     Lea    MusicData4(pc),A1
  357.     Bsr.w    lbC006330
  358.     Move.B    D7,$22(A6)
  359.     Or.W    #8,D5
  360. lbC006222:
  361.     Lea    $562(a2),a6
  362.     Bra.S    lbC00623E
  363.     Beq.S    lbC006236
  364.  
  365.     SubQ.L    #1,(A6)+
  366.     Move.L    (A6),A1
  367.     Move.L    (A1)+,D0
  368.     Move.L    A1,(A6)+
  369.     Sub.L    D0,(A6)
  370.     Bra.S    lbC00623E
  371. lbC006236:
  372.     Move.L    8(A6),D0
  373.     Add.L    D0,$55e(a2)
  374. lbC00623E:
  375.     Move.B    $DFF006,D0
  376.     AddQ.B    #1,D0
  377. lbC006246:
  378.     Cmp.B    $DFF006,D0
  379.     Bne.S    lbC006246
  380.  
  381.     MoveQ    #15,D0
  382.     And.B    D5,D0
  383.     Not.W    D0
  384.     And.W    #15,D0
  385.     Tst.W    MusicData3
  386.     Beq.S    lbC006274
  387.  
  388.     Move.W    D0,$DFF096
  389.     Move.W    D5,$DFF096
  390.     Clr.B    start_sign
  391.     Rts
  392.  
  393. lbC006274:
  394.     Tst.B    start_sign
  395.     Bne.S    lbC006290
  396.  
  397.     St     start_sign
  398.     Move.W    D0,$DFF096
  399.     Move.W    D5,$DFF096
  400.     Rts
  401.  
  402. lbC006290:
  403.     And.W    #8,D0
  404.     And.W    #$8008,D5
  405.     Move.W    D0,$DFF096
  406.     Move.W    D5,$DFF096
  407.     Rts
  408.  
  409. Mt_read_sample:
  410.     Clr.W    D0
  411.     Move.L    14(A6),A0
  412.     Move.B    (A0)+,D0
  413.     Beq.S    lbC0062DE
  414.  
  415.     Move.W    D1,$DFF096
  416.     Add.B    $19(A6),D0
  417.     Move.B    D0,$3A(A6)
  418.     Move.B    (A0),D0
  419.     Add.B    $18(A6),D0
  420.     Lsl.B    #3,D0
  421.     Lea    MusicData5(pc),A5
  422.     Add.W    D0,A5
  423.     Move.L    (A5)+,$1A(A6)
  424.     Move.L    (A5),$1E(A6)
  425.     Move.L    #$7000000,$22(A6)
  426. lbC0062DE:
  427.     Move.B    2(A0),$12(A6)
  428.     MoveQ    #-$20,D0
  429.     And.B    (A0)+,D0
  430.     Bne.S    lbC0062F6
  431.  
  432.     Move.B    #$40,$15(A6)
  433.     Clr.W    $38(A6)
  434.     Rts
  435.  
  436. lbC0062F6:
  437.     Cmp.B    #$60,D0
  438.     Bne.S    lbC00630E
  439.  
  440.     MoveQ    #0,D0
  441.     Move.B    (A0),D0
  442.     Neg.W    D0
  443.     Move.W    D0,$38(A6)
  444.     Move.B    #$40,$15(A6)
  445.     Rts
  446.  
  447. lbC00630E:
  448.     Cmp.B    #$40,D0
  449.     Bne.S    lbC006326
  450.  
  451.     Move.B    (A0),D0
  452.     And.W    #$FF,D0
  453.     Move.W    D0,$38(A6)
  454.     Move.B    #$40,$15(A6)
  455.     Rts
  456.  
  457. lbC006326:
  458.     Move.B    (A0),$15(A6)
  459.     Clr.W    $38(A6)
  460.     Rts
  461.  
  462. lbC006330:
  463.     Clr.W    D6
  464.     Move.B    $24(A6),D6
  465. lbC006336:
  466.     Move.L    $1A(A6),A0
  467.     Add.W    D6,A0
  468.     Move.B    (A0)+,D1
  469.     Cmp.B    #$A0,D1
  470.     Beq.S    lbC00639E
  471.  
  472.     Cmp.B    #$C0,D1
  473.     Beq.S    lbC006360
  474.  
  475.     Cmp.B    #$B0,D1
  476.     Beq.S    lbC00635C
  477.  
  478.     Clr.W    12(A6)
  479.     Bclr    #2,D7
  480.     Bra.w    lbC006404
  481. lbC00635C:
  482.     Move.B    (A0),D6
  483.     Bra.S    lbC006336
  484. lbC006360:
  485.     Clr.W    D1
  486.     Move.B    (A0)+,D1
  487.     Lea    $34(A6),A5
  488.     Move.B    (A0),(A5)+
  489.     Move.B    (A0)+,(A5)+
  490.     Move.B    (A0),(A5)+
  491.     Add.W    D1,D1
  492.     Lea    MusicData9(pc),A0
  493.     Move.W    0(A0,D1.W),D2
  494.     Move.W    D2,8(A6)
  495.     Cmp.W    #$50,D2
  496.     Bmi.S    lbC006388
  497.  
  498.     Bset    #3,D7
  499. lbC006388:
  500.     Add.W    D1,D1
  501.     Lea    MusicData8(pc),A0
  502.     Move.L    (A0,D1.W),4(A6)
  503.     AddQ.B    #4,D6
  504.     Bset    #0,D7
  505.     Bra.S    lbC006336
  506. lbC00639E:
  507.     Bclr    #0,D7
  508.     Beq.S    lbC0063D8
  509.  
  510.     Move.B    (A0)+,D1
  511.     Move.B    (A0)+,D2
  512.     Move.B    (A0),$26(A6)
  513.     AddQ.B    #1,$26(A6)
  514.     Move.B    D1,13(A6)
  515.     Sf    $27(A6)
  516.     Move.B    #1,$2A(A6)
  517.     Sub.B    D1,D2
  518.     Bcc.S    lbC0063C8
  519.  
  520.     Neg.B    D2
  521.     St     $2A(A6)
  522. lbC0063C8:
  523.     Move.B    D2,$28(A6)
  524.     Bra.S    lbC006404
  525. lbC0063CE:
  526.     AddQ.B    #4,D6
  527.     Bset    #0,D7
  528.     Bra.w    lbC006336
  529. lbC0063D8:
  530.     SubQ.B    #1,$26(A6)
  531.     Beq.S    lbC0063CE
  532.  
  533.     Move.B    2(A0),D4
  534.     Move.B    $27(A6),D1
  535.     Add.B    $28(A6),D1
  536.     Sub.B    D4,D1
  537.     BMI.S    lbC0063FE
  538.  
  539.     Clr.W    D2
  540.     Move.B    $2A(A6),D3
  541. lbC0063F4:
  542.     Add.B    D3,D2
  543.     Sub.B    D4,D1
  544.     Bpl.S    lbC0063F4
  545.  
  546.     Add.B    D2,13(A6)
  547. lbC0063FE:
  548.     Add.B    D4,D1
  549.     Move.B    D1,$27(A6)
  550. lbC006404:
  551.     Move.B    D6,$24(A6)
  552.     Move.B    $25(A6),D6
  553. lbC00640C:
  554.     Move.L    $1E(A6),A0
  555.     Add.W    D6,A0
  556.     Move.B    (A0)+,D1
  557.     Cmp.B    #$A0,D1
  558.     Beq.S    lbC006458
  559.  
  560.     Cmp.B    #$D0,D1
  561.     Beq.S    lbC00642C
  562.  
  563.     Cmp.B    #$B0,D1
  564.     Bne.w    lbC0064CA
  565.  
  566.     Move.B    (A0),D6
  567.     Bra.S    lbC00640C
  568. lbC00642C:
  569.     Bclr    #1,D7
  570.     Bne.S    lbC006442
  571.  
  572.     SubQ.B    #1,$29(A6)
  573.     Bne.w    lbC0064CA
  574.  
  575.     Bset    #1,D7
  576.     AddQ.B    #4,D6
  577.     Bra.S    lbC00640C
  578. lbC006442:
  579.     Clr.W    D1
  580.     Move.B    (A0),D1
  581.     Move.B    2(A0),$29(A6)
  582.     Add.B    $3A(A6),D1
  583.     Move.W    (A1,D1.W),10(A6)
  584.     Bra.S    lbC0064CA
  585. lbC006458:
  586.     Bclr    #1,D7
  587.     Beq.S    lbC0064B6
  588.  
  589.     Clr.W    D0
  590.     Move.B    (A0)+,D1
  591.     Move.B    (A0)+,D2
  592.     Move.B    (A0),$29(A6)
  593.     Move.B    $3A(A6),D0
  594.     Move.W    0(A1,D0.W),D0
  595.     Ext.W    D1
  596.     Ext.W    D2
  597.     Add.W    D0,D1
  598.     Add.W    D0,D2
  599.     Move.W    D1,10(A6)
  600.     Move.W    D1,$2C(A6)
  601.     Clr.W    $2E(A6)
  602.     Sub.W    D1,D2
  603.     Clr.W    D1
  604.     Move.B    $29(A6),D1
  605.     Ext.L    D2
  606.     Asl.L    #8,D2
  607.     Divs    D1,D2
  608.     Bvs.S    lbC00649E
  609.  
  610.     Ext.L    D2
  611.     Asl.L    #8,D2
  612.     Move.L    D2,$30(A6)
  613.     Bra.S    lbC0064CA
  614. lbC00649E:
  615.     Asr.L    #8,D2
  616.     Divs    D1,D2
  617.     Swap    D2
  618.     Clr.W    D2
  619.     Move.L    D2,$30(A6)
  620.     Bra.S    lbC0064CA
  621. lbC0064AC:
  622.     Bset    #1,D7
  623.     AddQ.B    #4,D6
  624.     Bra.w    lbC00640C
  625. lbC0064B6:
  626.     SubQ.B    #1,$29(A6)
  627.     Beq.S    lbC0064AC
  628.  
  629.     Move.L    $30(A6),D1
  630.     Add.L    D1,$2C(A6)
  631.     Move.W    $2C(A6),10(A6)
  632. lbC0064CA:
  633.     Move.B    D6,$25(A6)
  634.     Move.W    $38(A6),D1
  635.     Add.W    D1,10(A6)
  636.     Lea    (A6),A0
  637.     Move.L    (A0)+,A5
  638.     Move.L    (A0)+,A3
  639.     Move.B    $34(A6),D0
  640.     Beq.S    lbC006502
  641.  
  642.     Move.B    $35(A6),D1
  643.     Ble.S    lbC0064F0
  644.  
  645.     Cmp.B    $36(A6),D1
  646.     Bmi.S    lbC0064F6
  647.  
  648. lbC0064F0:
  649.     Neg.B    D0
  650.     Move.B    D0,$34(A6)
  651. lbC0064F6:
  652.     Add.B    D0,D1
  653.     Move.B    D1,$35(A6)
  654.     Ext.W    D1
  655.     Lsl.W    #5,D1
  656.     Add.W    D1,A3
  657. lbC006502:
  658.     Move.L    A3,(A5)+
  659.     Move.L    (A0),(A5)+
  660.     Bclr    #3,D7
  661.     Beq.S    lbC006510
  662.  
  663.     Move.W    #1,(A0)
  664. lbC006510:
  665.     AddQ.L    #4,A0
  666.     Move.W    (A0),D6
  667.     Add.B    $15(A6),D6
  668.     Sub.B    #$40,D6
  669.     Bpl.S    lbC006520
  670.  
  671.     Clr.W    D6
  672. lbC006520:
  673.     Move.W    D6,(A5)
  674.     Rts
  675.  
  676. Mt_end:    Move.w    #$f,$dff096
  677.     Rts
  678.  
  679. ;    *******************
  680. ;    *** Replay Data ***
  681. ;    *******************
  682.  
  683. Start_sign:    Dc.w    0
  684. MusicData:    Dc.l    0
  685. Mt_Voice1:    Dc.l    $DFF0A0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  686. Mt_Voice2:    Dc.l    $DFF0B0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  687. Mt_Voice3:    Dc.l    $DFF0C0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  688. Mt_Voice4:    Dc.l    $DFF0D0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  689.  
  690. MusicData1:
  691.     Dcb.w    31,0
  692. MusicData2:
  693.     Dcb.w    5,0
  694. MusicData3:
  695.     Dc.w    1
  696. MusicData4:
  697.     Dc.l    $1AC0,$194017D0,$16801530,$140012E0,$11D010D0
  698.     Dc.l    $FE00F00,$E280D60,$CA00BE8,$B400A98,$A000970
  699.     Dc.l    $8E80868,$7F00780,$71406B0,$65005F4,$5A0054C
  700.     Dc.l    $50004B8,$4740434,$3F803C0,$38A0358,$32802FA
  701.     Dc.l    $2D002A6,$280025C,$23A021A,$1FC01E0,$1C501AC
  702.     Dc.l    $194017D,$1680153,$140012E,$11D010D,$FE00F0,$E200D6
  703.     Dc.l    $CA00BE,$B400AA,$A00097,$8F0087,$7F0078
  704.     Dc.w    $0071
  705. MusicData5:
  706.     Dcb.w    4,0
  707. MusicData6:
  708.     Dcb.w    132,0
  709. MusicData7:
  710.     Dcb.w    160,0
  711. MusicData8:
  712.     Dcb.w    104,0
  713. MusicData9:
  714.     Dc.w    0,0,0,0,0,0,0,0,0
  715.  
  716.     Dc.l    $10,$100010,$100010,$100010,$100010,$100010,$100010
  717.     Dcb.l    14,$100010
  718.     Dc.l    $100000,0,0,$539D0002,$9F32E2CB
  719.     Dc.w    $0053
  720. MusicData10:
  721.     Dc.w    $C0C0,$D0D8,$E0E8
  722.     Dc.l    $F0F800F8,$F0E8E0D8,$D0C83F37,$2F271F17,$F07FF07
  723.     Dc.l    $F171F27,$2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8
  724.     Dc.l    $D0C8C037,$2F271F17,$F07FF07,$F171F27,$2F37C0C0
  725.     Dc.l    $D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8,$2F271F17
  726.     Dc.l    $F07FF07,$F171F27,$2F37C0C0,$D0D8E0E8,$F0F800F8
  727.     Dc.l    $F0E8E0D8,$D0C8C0B8,$B0271F17,$F07FF07,$F171F27
  728.     Dc.l    $2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8
  729.     Dc.l    $B0A81F17,$F07FF07,$F171F27,$2F37C0C0,$D0D8E0E8
  730.     Dc.l    $F0F800F8,$F0E8E0D8,$D0C8C0B8,$B0A8A017,$F07FF07
  731.     Dc.l    $F171F27,$2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8
  732.     Dc.l    $D0C8C0B8,$B0A8A098,$F07FF07,$F171F27,$2F37C0C0
  733.     Dc.l    $D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8,$B0A8A098
  734.     Dc.l    $9007FF07,$F171F27,$2F37C0C0,$D0D8E0E8,$F0F800F8
  735.     Dc.l    $F0E8E0D8,$D0C8C0B8,$B0A8A098,$9088FF07,$F171F27
  736.     Dc.l    $2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8
  737.     Dc.l    $B0A8A098,$90888007,$F171F27,$2F37C0C0,$D0D8E0E8
  738.     Dc.l    $F0F800F8,$F0E8E0D8,$D0C8C0B8,$B0A8A098,$90888088
  739.     Dc.l    $F171F27,$2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8
  740.     Dc.l    $D0C8C0B8,$B0A8A098,$90888088,$90171F27,$2F37C0C0
  741.     Dc.l    $D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8,$B0A8A098
  742.     Dc.l    $90888088,$90981F27,$2F37C0C0,$D0D8E0E8,$F0F800F8
  743.     Dc.l    $F0E8E0D8,$D0C8C0B8,$B0A8A098,$90888088,$9098A027
  744.     Dc.l    $2F37C0C0,$D0D8E0E8,$F0F800F8,$F0E8E0D8,$D0C8C0B8
  745.     Dc.l    $B0A8A098,$90888088,$9098A0A8,$2F37C0C0,$D0D8E0E8
  746.     Dc.l    $F0F800F8,$F0E8E0D8,$D0C8C0B8,$B0A8A098,$90888088
  747.     Dc.l    $9098A0A8,$B0378181,$81818181,$81818181,$81818181
  748.     Dc.l    $81817F7F,$7F7F7F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8181
  749.     Dcb.l    3,$81818181
  750.     Dc.l    $8181817F,$7F7F7F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8181
  751.     Dcb.l    4,$81818181
  752.     Dcb.l    3,$7F7F7F7F
  753.     Dc.l    $7F7F8181,$81818181,$81818181,$81818181,$81818181
  754.     Dc.l    $817F7F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8181,$81818181
  755.     Dcb.l    3,$81818181
  756.     Dc.l    $81817F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8181,$81818181
  757.     Dcb.l    3,$81818181
  758.     Dc.l    $8181817F,$7F7F7F7F,$7F7F7F7F,$7F7F8181,$81818181
  759.     Dcb.l    4,$81818181
  760.     Dcb.l    2,$7F7F7F7F
  761.     Dc.l    $7F7F8181,$81818181,$81818181,$81818181,$81818181
  762.     Dc.l    $81818181,$817F7F7F,$7F7F7F7F,$7F7F8181,$81818181
  763.     Dcb.l    4,$81818181
  764.     Dc.l    $81817F7F,$7F7F7F7F,$7F7F8181,$81818181,$81818181
  765.     Dcb.l    3,$81818181
  766.     Dc.l    $8181817F,$7F7F7F7F,$7F7F8181,$81818181,$81818181
  767.     Dcb.l    4,$81818181
  768.     Dc.l    $7F7F7F7F,$7F7F8181,$81818181,$81818181,$81818181
  769.     Dcb.l    3,$81818181
  770.     Dc.l    $817F7F7F,$7F7F8181,$81818181,$81818181,$81818181
  771.     Dcb.l    3,$81818181
  772.     Dc.l    $81817F7F,$7F7F8181,$81818181,$81818181,$81818181
  773.     Dcb.l    3,$81818181
  774.     Dc.l    $8181817F,$7F7F8080,$80808080,$80808080,$80808080
  775.     Dcb.l    4,$80808080
  776.     Dc.l    $7F7F8080,$80808080,$80808080,$80808080,$80808080
  777.     Dcb.l    3,$80808080
  778.     Dc.l    $807F8080,$80808080,$80807F7F,$7F7F7F7F,$7F7F8080
  779.     Dc.l    $80808080,$807F7F7F,$7F7F7F7F,$7F7F8080,$80808080
  780.     Dcb.l    2,$7F7F7F7F
  781.     Dc.l    $7F7F8080,$8080807F,$7F7F7F7F,$7F7F7F7F,$7F7F8080
  782.     Dc.l    $80807F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8080,$807F7F7F
  783.     Dcb.l    2,$7F7F7F7F
  784.     Dc.l    $7F7F8080,$7F7F7F7F,$7F7F7F7F,$7F7F7F7F,$7F7F8080
  785.     Dcb.l    3,$7F7F7F7F
  786.     Dc.l    $7F7F8080,$9098A0A8,$B0B8C0C8,$D0D8E0E8,$F0F80008
  787.     Dc.l    $10182028,$30384048,$50586068,$707F8080,$A0B0C0D0
  788.     Dc.l    $E0F00010,$20304050,$60704545,$797D7A77,$70666158
  789.     Dc.l    $534D2C20,$181204DB,$D3CDc6BC,$B5AEA8A3,$9D99938E
  790.     Dc.l    $8B8A4545,$797D7A77,$70665B4B,$43372C20,$181204F8
  791.     Dc.l    $E8DBCFC6,$BEB0A8A4,$9E9A9594,$8D830000,$40607F60
  792.     Dc.l    $402000E0,$C0A080A0,$C0E00000,$40607F60,$402000E0
  793.     Dc.l    $C0A080A0,$C0E08080,$9098A0A8,$B0B8C0C8,$D0D8E0E8
  794.     Dc.l    $F0F80008,$10182028,$30384048,$50586068,$707F8080
  795.     Dc.l    $A0B0C0D0,$E0F00010,$20304050
  796.     Dc.w    $6070
  797. MusicData11:
  798.     Dc.w    $0000,$0002,$6B70
  799.     Dc.l    $26B7A,$7A0002,$6B700002,$6B7A007E,$26B80,$26B8A
  800.     Dc.l    $760002,$6B940002,$6B9E0068,$26BA8,$26BBE,$300002
  801.     Dc.l    $6BCC0002,$6BD6008A,$26BE0,$26BF2,$780002,$6BFC0002
  802.     Dc.l    $6C0A0078,$26C18,$26C22,$5E0002,$6C280002,$6C360058
  803.     Dc.l    $26C44,$26C62,$780002,$6C740002,$6C7E0048,$26C84
  804.     Dc.l    $26C9A,$8C0002,$6CC40002,$6CD2C01A,$4A028,$10E000
  805.     Dc.l    $A07F0010,$E000C01F,$A023,$8E000,$D0F80001
  806.     Dc.l    $A0F67F0A,$E000C01A,$10FA01E,$AE000,$A064CE02
  807.     Dc.l    $A0CE7808,$E000C01A,$FA028,$503A023,$205A014,$8A00A
  808.     Dc.l    $6E000,$A0813204,$A0007F03,$A07F0003,$B004C02F
  809.     Dc.l    $8A040,$4014E004,$A0140014,$A0007814,$B000C01C
  810.     Dc.l    $FA023,$1404A01E,$A04A00A,$8E000,$D0E80001
  811.     Dc.l    $D0000001,$E000C01C,$FA028,$1408A014,$14E000
  812.     Dc.l    $D0080003,$D0000003,$D00A0001,$E000C01C,$FA028
  813.     Dc.l    $1408E000,$D0080003,$E000C01C,$10FA01E,$3203A019
  814.     Dc.l    $8E000,$A0880004,$D0E80002,$D0000001,$B004C01C
  815.     Dc.l    $10FA028,$3C03A01E,$4A032,$4A014,$2A01E,$4A00A
  816.     Dc.l    $3E000,$D00C0002,$A07F8106,$D0F40002,$D0180001
  817.     Dc.l    $B008C01C,$FA028,$1408E000,$D0080003,$E000C01A
  818.     Dc.l    $FA028,$1404A014,$2806A01E,$A14A00A,$28E000
  819.     Dc.l    $D0080001,$A07F810A,$D0080002,$D00A0002,$D00C0002
  820.     Dc.l    $D00E0002,$D0120002,$D0180002,$D0200002,$D0260001
  821.     Dc.l    $E000C01A,$FA028,$1404A00A,$8E000,$D0000001
  822.     Dc.l    $D0020001,$E0000001,$80001612,$C050001,$5000130C
  823.     Dc.l    $16050001,$1000190E,$15020001,$190A,$D020000
  824.     Dc.l    $90001B18,$10020000,$85000A15,$F010000,$8000121F
  825.     Dc.l    $A010000,$75000E1B,$16010000,$70001C1D,$E010000
  826.     Dc.l    $6500101E,$12010000,$60001D0A,$1B010000,$55000B18
  827.     Dc.l    $1E010000,$5000130E,$A010000,$45000F0A,$B010000
  828.     Dc.l    $40001D0E,$18010000,$35000A1B,$16010000,$30000A1B
  829.     Dc.l    $12010000,$2500130A,$C010000,$2000190A,$1D010000
  830.     Dc.l    $1500131E
  831.     Dc.w    $1501
  832.