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

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