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

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