home *** CD-ROM | disk | FTP | other *** search
/ Supremacy 1 / Supremacy-1.iso / DEMOS / U-V / ULTCHPDK.ZIP / SOURCES.ZIP / ASM68000.ZIP / OFFBEAT.S < prev    next >
Text File  |  1987-04-22  |  10KB  |  389 lines

  1. ********************
  2. *AYOROS FROM IMPACT*
  3. ********************
  4.  
  5. ********************************************************************************
  6. *MUSIC BY OFFBEAT, PLAYER BY ENS, EXECUTEUR BY AYOROS
  7. *        NUMBER OF MUSIC COMPOSED BY OFFBEAT, PRESENT ON THIS DISK
  8. *        OFFBEAT5.MUS
  9. *        OFFBEAT6.MUS
  10. ********************************************************************************   
  11.     
  12.         SECTION    TEXT
  13.         
  14.         OPT    O+
  15.     
  16.         CLR.L    -(SP)
  17.         MOVE.W    #$20,-(SP)    *superviseur
  18.         TRAP    #1
  19.         ADDQ.L    #6,SP
  20.     
  21.         MOVE.L    D0,-(SP)
  22.         
  23.         MOVE.W    #1,-(SP)    *ecran moyenne resolution
  24.         MOVE.L    #$78000,-(SP)   *adresse ecran $78000 pour 520 ST
  25.         MOVE.L    #$78000,-(SP)   *adresse ecran $F8000 pour 1040 ST
  26.         MOVE.W    #5,-(SP)
  27.         TRAP    #14
  28.         ADDQ.L    #6,SP
  29.  
  30.         DC.W    $A00A        *cache souris
  31.         
  32.         PEA    TEXT(PC)
  33.         MOVE.W    #9,-(SP)    *affiche txt
  34.         TRAP    #1
  35.         ADDQ.L    #6,SP
  36.  
  37.         LEA    VU_METRE(PC),A2
  38.         MOVE.L    A2,$4D6.W    *affiche vumetre
  39.         
  40.  
  41.         LEA    STOP_MOUSE(PC),A4
  42.         ADDQ.L    #3,A4
  43.         MOVE.B    $484.W,(A4)     *stop clavier bip et souris
  44.         MOVE.B    #2,$484.W
  45.         
  46.         LEA    DATA(PC),A0    *adresse des data_packe
  47.         LEA    MUSIC(PC),A1    *adresse music pour depack
  48.         BSR    depack        *depack music
  49.         
  50.         MOVEQ    #1,D0        *appel musique
  51.         BSR    MUSIC+4
  52.  
  53.         LEA    MUSIC(PC),A0
  54.         MOVE.L    A0,$4D2.W        *exec musique
  55.         
  56. TOUCHE_ESPACE    
  57.         CMP.B    #$39,$FFFFFC02.W    *attend appuie sur espace
  58.         BNE.S    TOUCHE_ESPACE
  59.         
  60.         CLR.L    $4D2.W            *stop musique
  61.         CLR.L    $4D6.W            *stop vumetre
  62.         
  63.         BSR    MUSIC+8            *eteint music digidrum
  64.         
  65.         MOVE.L    #$08080000,$FFFF8800.W    *stop son
  66.         MOVE.L    #$09090000,$FFFF8800.W
  67.         MOVE.L    #$0A0A0000,$FFFF8800.W
  68.  
  69. STOP_MOUSE    MOVE.B    #$12,$484.W        *remet souris
  70.         DC.W    $A009
  71.     
  72.         CLR.L    -(SP)            *stop programme
  73.         TRAP    #1
  74.  
  75. VU_METRE
  76.               LEA     $78000+0+160*160,A0
  77.               MOVEA.L A0,A1 
  78.               MOVEA.L A0,A2 
  79.               MOVE.W  #3,D0 
  80. VU_0        CLR.W   (A0)
  81.               CLR.W   160(A0) 
  82.               CLR.W   320(A0) 
  83.               CLR.W   480(A0) 
  84.               CLR.W   640(A0) 
  85.               CLR.W   800(A0) 
  86.               CLR.W   32(A0)
  87.               CLR.W   192(A0) 
  88.               CLR.W   352(A0) 
  89.               CLR.W   512(A0) 
  90.               CLR.W   672(A0) 
  91.              CLR.W   832(A0) 
  92.               CLR.W   64(A0)
  93.               CLR.W   224(A0) 
  94.               CLR.W   384(A0) 
  95.               CLR.W   544(A0) 
  96.               CLR.W   704(A0) 
  97.              CLR.W   864(A0) 
  98.               CLR.W   96(A0)
  99.               CLR.W   256(A0) 
  100.               CLR.W   416(A0) 
  101.               CLR.W   576(A0) 
  102.               CLR.W   736(A0) 
  103.               CLR.W   896(A0)
  104.               ADDQ.W  #8,A0 
  105.               DBF     D0,VU_0
  106.               MOVE.B  #8,$FFFF8800.W
  107.               MOVE.B  $FFFF8800.W,D0
  108.               ANDI.W  #$F,D0
  109. VU_1        SUBQ.W  #1,(A1) 
  110.               SUBQ.W  #1,160(A1)
  111.               SUBQ.W  #1,320(A1)
  112.               SUBQ.W  #1,480(A1)
  113.               SUBQ.W  #1,640(A1)
  114.               SUBQ.W  #1,800(A1)
  115.               ADDQ.W  #8,A1 
  116.               DBF     D0,VU_1
  117.               ADDA.L  #$5A0,A2
  118.               MOVEA.L A2,A1 
  119.               MOVEA.L A2,A0 
  120.               MOVE.W  #3,D0 
  121. VU_2:        CLR.W   (A0)
  122.               CLR.W   160(A0) 
  123.               CLR.W   320(A0) 
  124.              CLR.W   480(A0) 
  125.               CLR.W   640(A0) 
  126.              CLR.W   800(A0) 
  127.               CLR.W   32(A0)
  128.               CLR.W   192(A0) 
  129.               CLR.W   352(A0) 
  130.               CLR.W   512(A0) 
  131.               CLR.W   672(A0) 
  132.               CLR.W   832(A0) 
  133.               CLR.W   64(A0)
  134.               CLR.W   224(A0) 
  135.               CLR.W   384(A0) 
  136.               CLR.W   544(A0) 
  137.               CLR.W   704(A0) 
  138.               CLR.W   864(A0) 
  139.               CLR.W   96(A0)
  140.               CLR.W   256(A0) 
  141.               CLR.W   416(A0) 
  142.               CLR.W   576(A0) 
  143.               CLR.W   736(A0) 
  144.               CLR.W   896(A0) 
  145.               ADDQ.W  #8,A0 
  146.               DBF     D0,VU_2
  147.               MOVE.B  #9,$FFFF8800.W
  148.               MOVE.B  $FFFF8800.W,D0
  149.               ANDI.W  #$F,D0
  150. VU_3:        SUBQ.W  #1,(A1) 
  151.               SUBQ.W  #1,160(A1)
  152.               SUBQ.W  #1,320(A1)
  153.               SUBQ.W  #1,480(A1)
  154.               SUBQ.W  #1,640(A1)
  155.               SUBQ.W  #1,800(A1)
  156.               ADDQ.W  #8,A1 
  157.               DBF     D0,VU_3
  158.               ADDA.L  #$5A0,A2
  159.               MOVEA.L A2,A1 
  160.               MOVEA.L A2,A0 
  161.               MOVE.W  #3,D0 
  162. VU_4:        CLR.W   (A0)
  163.               CLR.W   160(A0) 
  164.               CLR.W   320(A0) 
  165.               CLR.W   480(A0) 
  166.               CLR.W   640(A0) 
  167.               CLR.W   800(A0) 
  168.               CLR.W   32(A0)
  169.               CLR.W   192(A0) 
  170.               CLR.W   352(A0) 
  171.               CLR.W   512(A0) 
  172.               CLR.W   672(A0) 
  173.               CLR.W   832(A0) 
  174.               CLR.W   64(A0)
  175.               CLR.W   224(A0) 
  176.               CLR.W   384(A0) 
  177.               CLR.W   544(A0) 
  178.               CLR.W   704(A0) 
  179.               CLR.W   864(A0) 
  180.               CLR.W   96(A0)
  181.               CLR.W   256(A0) 
  182.               CLR.W   416(A0) 
  183.               CLR.W   576(A0) 
  184.               CLR.W   736(A0) 
  185.               CLR.W   896(A0) 
  186.               ADDQ.W  #8,A0 
  187.               DBF     D0,VU_4
  188.               MOVE.B     #$A,$FFFF8800.W 
  189.               MOVE.B     $FFFF8800.W,D0
  190.               ANDI.W  #$F,D0
  191. VU_5:        SUBQ.W  #1,(A1) 
  192.         SUBQ.W  #1,160(A1)
  193.               SUBQ.W  #1,320(A1)
  194.               SUBQ.W  #1,480(A1)
  195.               SUBQ.W  #1,640(A1)
  196.               SUBQ.W  #1,800(A1)
  197.               ADDQ.W  #8,A1 
  198.               DBF     D0,VU_5
  199.          RTS
  200. ***************************************************************************
  201.  
  202. PIC_ALGO:    equ    1
  203.  
  204. depack:    movem.l    d0-a6,-(a7)
  205.     cmp.l    #"ATOM",(a0)+
  206.     bne    no_crunched
  207.     move.l    a1,a5
  208.     add.l    (a0)+,a5
  209.     ifne    PIC_ALGO
  210.     pea    (a5)
  211.     endc
  212.     move.l    (a0)+,d0    
  213.     lea    0(a0,d0.l),a6
  214.     move.b    -(a6),d7
  215.     bra    make_jnk
  216. tablus:    lea    tablus_table(pc),a4
  217.     moveq    #1,d6
  218.     bsr.s    get_bit2
  219.     bra.s    tablus2
  220. decrunch:    moveq    #6,d6
  221. take_lenght:    add.b    d7,d7
  222.     beq.s    .empty1
  223. .cont_copy:    dbcc    d6,take_lenght
  224.     bcs.s    .next_cod
  225.     moveq    #6,d5
  226.     sub    d6,d5
  227.     bra.s    .do_copy
  228. .next_cod:    moveq    #3,d6
  229.     bsr.s    get_bit2
  230.     beq.s    .next_cod1
  231.     addq    #6,d5
  232.     bra.s    .do_copy
  233. .next_cod1:    moveq    #7,d6
  234.     bsr.s    get_bit2
  235.     beq.s    .next_cod2
  236.     add    #15+6,d5
  237.     bra.s    .do_copy
  238. .empty1:    move.b    -(a6),d7
  239.     addx.b    d7,d7
  240.     bra.s    .cont_copy
  241. .next_cod2:    moveq    #13,d6
  242.     bsr.s    get_bit2
  243.     add    #255+15+6,d5
  244. .do_copy:    move    d5,-(a7)
  245.     bne.s    bigger
  246.     lea    decrun_table2(pc),a4
  247.     moveq    #2,d6
  248.     bsr.s    get_bit2
  249.     cmp    #5,d5
  250.     blt.s    contus
  251.     addq    #2,a7
  252.     subq    #6,d5
  253.     bgt.s    tablus
  254.     move.l    a5,a4
  255.     blt.s    .first4
  256.     addq    #4,a4
  257. .first4:    moveq    #1,d6
  258.     bsr.s    get_bit2
  259. tablus2:    move.b    0(a4,d5.w),-(a5)    
  260.     bra.s    make_jnk
  261. get_bit2:    clr    d5
  262. .get_bits:    add.b    d7,d7
  263.     beq.s    .empty
  264. .cont:    addx    d5,d5
  265.     dbf    d6,.get_bits
  266.     tst    d5
  267.     rts
  268. .empty:    move.b    -(a6),d7
  269.     addx.b    d7,d7
  270.     bra.s    .cont
  271. bigger:    lea    decrun_table(pc),a4
  272. cont:    moveq    #2,d6
  273.     bsr.s    get_bit2
  274. contus:    move    d5,d4
  275.     move.b    14(a4,d4.w),d6
  276.     ext    d6
  277.     bsr.s    get_bit2
  278.     add    d4,d4
  279.     beq.s    .first
  280.     add    -2(a4,d4.w),d5
  281. .first:    lea    1(a5,d5.w),a4
  282.     move    (a7)+,d5
  283.     move.b    -(a4),-(a5)
  284. .copy_same:    move.b    -(a4),-(a5)
  285.     dbf    d5,.copy_same
  286. make_jnk:    moveq    #11,d6
  287.     moveq    #11,d5
  288. take_jnk:    add.b    d7,d7
  289.     beq.s    empty
  290. cont_jnk:    dbcc    d6,take_jnk
  291.     bcs.s    next_cod
  292.     sub    d6,d5
  293.     bra.s    copy_jnk1
  294. next_cod:    moveq    #7,d6
  295.     bsr.s    get_bit2
  296.     beq.s    .next_cod1
  297.     addq    #8,d5
  298.     addq    #3,d5
  299.     bra.s    copy_jnk1
  300. .next_cod1:    moveq    #2,d6
  301.     bsr.s    get_bit2
  302.     swap    d5
  303.     moveq    #15,d6
  304.     bsr.s    get_bit2
  305.     addq.l    #8,d5
  306.     addq.l    #3,d5    
  307. copy_jnk1:    subq    #1,d5
  308.     bmi.s    .end_word
  309.     moveq    #1,d6
  310.     swap    d6
  311. .copy_jnk:    move.b    -(a6),-(a5)
  312.     dbf    d5,.copy_jnk
  313.     sub.l    d6,d5
  314.     bpl.s    .copy_jnk
  315. .end_word:    cmp.l    a6,a0
  316. .decrunch:    bne    decrunch
  317.     cmp.b    #$80,d7
  318.     bne.s    .decrunch
  319.     ifne    PIC_ALGO
  320.     move.l    (a7)+,a0
  321.     bsr.s    decod_picture
  322.     endc
  323. no_crunched:    movem.l    (a7)+,d0-a6
  324.      rts
  325. empty:    move.b    -(a6),d7
  326.     addx.b    d7,d7
  327.     bra.s    cont_jnk
  328. decrun_table:    dc.w    32,32+64,32+64+256,32+64+256+512,32+64+256+512+1024
  329.     dc.w    32+64+256+512+1024+2048,32+64+256+512+1024+2048+4096
  330.     dc.b    4,5,7,8,9,10,11,12
  331. decrun_table2:    dc.w    32,32+64,32+64+128,32+64+128+256
  332.     dc.w    32+64+128+256+512,32+64+128+256+512*2
  333.     dc.w    32+64+128+256+512*3
  334.     dc.b    4,5,6,7,8,8
  335. tablus_table:    dc.b    $60,$20,$10,$8
  336.     ifne    PIC_ALGO
  337. decod_picture:    move    -(a0),d7
  338.     clr    (a0)
  339. .next_picture:    dbf    d7,.decod_algo
  340.     rts
  341. .decod_algo:    move.l    -(a0),d0
  342.     clr.l    (a0)
  343.     lea    0(a5,d0.l),a1
  344.     lea    $7d00(a1),a2
  345. .next_planes:    moveq    #3,d6
  346. .next_word:    move    (a1)+,d0
  347.     moveq    #3,d5
  348. .next_bits:    add    d0,d0
  349.     addx    d1,d1
  350.     add    d0,d0
  351.     addx    d2,d2
  352.     add    d0,d0
  353.     addx    d3,d3
  354.     add    d0,d0
  355.     addx    d4,d4
  356.     dbf    d5,.next_bits
  357.     dbf    d6,.next_word
  358.     movem    d1-d4,-8(a1)
  359.     cmp.l    a1,a2
  360.     bne.s    .next_planes
  361.     bra.s    .next_picture
  362.     endc
  363. *******************************************************************************************
  364.  
  365.     SECTION    DATA
  366. TEXT    
  367.  DC.B    $1B,'E'
  368.          ********************************************************************************
  369.  DC.B    "              HERE IS....IMPACT SOUNDSHIP MUSIC 3 FOR YOUR PLEASURE             ",$A,$D,$A,$D,$A,$D
  370.  DC.B    " MUSIC COMPOSED BY OFFBEAT OR BIG ALEC OR ENS, RIPPED AND EXEC_MUSIC BY AYOROS ",$A,$D,$A,$D
  371.  DC.B    "                       MUSIC NAME : ........ THEME (C) 1991                 ",$A,$D,$A,$D,$A,$D
  372.  DC.B    "THIS DISK WAS IMPROVED BY AYOROS, AND MOTIVATE BY ARAKIS ( WHO SWAPP THE DISK! )",$A,$D
  373.  DC.B    "                             TO CONTACT US WRITE TO                             ",$D,$A
  374.  DC.B    "      IMPACT OR ARAKIS  8 RUE BRUYERE DES BADAUDS  1428 LILLOIS  BELGIUM        ",$D,$A
  375.  DC.B   "                           NO ILLEGAL SWAPPING PLEASE                           ",$A,$D,$A,$D
  376.  DC.B    "                                 GREETINGS GO TO                                ",$D,$A
  377.  DC.B   "ARAKIS (FRODON), FUN VISION (NIC), FACTORY (ALL MEMBERS), MYSTIC (LTK MR SPIRIT) ",$D,$A
  378.  DC.B    "   THE PENDRAGONS (SILVER), NEXT (LEM), FARAMIR, PHENIX, TSB, V-MAX, HOOKER, TDS",$D,$A
  379.  DC.B    "    THE SYNDICATE (ALL MEMBERS), THE REPLICANTS (CAMEO), NIGHTHAWK, SWEETECH    ",$D,$A    
  380.  DC.B    "ZUUL, FM, HOTLINE (RUTHLESS), DELTA FORCE, THE UNION, AUTOMATION, POMPEY PIRATES",$D,$A
  381.  DC.B    "FIREHAWK, THE OVERLANDERS (DAUGUE DE MAUVE), THALION CREW, THE LOST BOYS (SAMMY)",$D,$A
  382.  DC.B    "    DNT (AXIOM), EQUINOX, MAD VISION (ALEXIS), BAD BOYS, OMEGA, SYNC, AND HMD.  ",$A,$D  
  383.  DC.B    0    
  384.  
  385.     EVEN
  386. DATA    INCBIN    A:\OFFBEAT.MUS\OFFBEAT5.MUS
  387.     EVEN
  388. MUSIC        
  389.