home *** CD-ROM | disk | FTP | other *** search
/ Falcon 030 Power 2 / F030_POWER2.iso / ST_STE / MAGS / ICTARI05.ARJ / ictari.05 / ASSEMBLY / STARBUST / BURST.S next >
Text File  |  1993-07-09  |  4KB  |  204 lines

  1. ****************
  2. * STARBURST    *
  3. * AUTO PROGRAM *
  4. * by S.H.Rigby *
  5. ****************
  6.  
  7.     opt    d+
  8.     
  9. PIXNO    EQU    42
  10. SCALE    EQU    100
  11. VELX    EQU    50
  12. VELY    equ    250
  13. INIT    EQU    $A000
  14. PLOTPIX    EQU    $A001
  15.  
  16. SETUP    ;don't need to shrink as it's an auto prg
  17.     MOVE.W    #-1,-(SP)        no cursor
  18.     CLR.W    -(SP)
  19.     MOVE.W    #21,-(SP)
  20.     TRAP    #14
  21.     ADDQ.L    #6,SP
  22.  
  23.     ;Setcolor    #0,#0        background is black
  24.     clr.l    -(sp)
  25.     move.w    #7,-(sp)
  26.     trap    #14
  27.     addq.w    #6,sp
  28.     move.w    d0,old_col
  29.         
  30.     DC.W    INIT        Initialise A-Line routines
  31.     MOVE.L    8(A0),A5    points to array intin
  32.     MOVE.L    12(A0),A4    points to array ptsin
  33.     MOVE.W    #0,36(A0)    REPLACE MODE
  34.  
  35. START    MOVE.L    #PIX0,A6
  36.     MOVE.L    #PIX1,A3
  37.     MOVE.W    #(8*PIXNO)-1,D0
  38. RESET    MOVE.W    (A6)+,(A3)+
  39.     DBRA    D0,RESET
  40.  
  41.     MOVE.L    #PIX1,A3
  42.     MOVE.W    #400,D3        TIME COUNTER
  43. MOVEPIX    MOVE.W    #PIXNO-1,D4
  44.     CMP.W    #250,D3        Time for Starburst
  45.     BEQ    BURST
  46.  
  47. NEXPIX    ROL.W    #4,D4
  48.     MOVE.L    A3,A6    Pass the address of the pixel table to
  49.     ADDA.W    D4,A6
  50.     ROR.W    #4,D4
  51.     BSR.S    UPDATE        the update routine.
  52.     DBRA    D4,NEXPIX
  53.  
  54.     MOVE.W    #$2800,D1
  55. LOOP    DBRA    D1,LOOP
  56.     DBRA    D3,MOVEPIX    LOOP UNTIL COUNTER=0
  57.  
  58. KEYCHK    MOVEM    D1-D4/A0-A4,-(SP)    
  59.     MOVE.W    #11,-(SP)
  60.     TRAP    #1
  61.     ADDQ.L    #2,SP
  62.     MOVEM    (SP)+,D1-D4/A0-A4
  63.     TST.L    D0
  64.     BEQ.S    START
  65.  
  66. OUT    ;Setcolor    #0,old_col
  67.     move.w    old_col,-(sp)
  68.     move.w    #0,-(sp)
  69.     move.w    #7,-(sp)
  70.     trap    #14
  71.     addq.w    #6,sp
  72.     CLR.W    -(SP)
  73.     TRAP    #1        Return to Desktop
  74.     ADDQ.W    #2,SP
  75.     
  76. UPDATE    BSR    BYEPIX
  77.     MOVE.W    (A6),D7        Get X co-ordinate    
  78.     MULS    #SCALE,D7
  79.     MOVE.W    4(A6),D6    Get X velocity
  80.     MOVE.W    8(A6),D5
  81.     MULS    D5,D6
  82.     ADD.L    D6,D7        X=X+Ux
  83.     BLT.S    NEXT
  84.     DIVS    #SCALE,D7
  85.     CMP.W    #640,D7
  86.     BGE.S    NEXT
  87.     MOVE.W    D7,10(A6)    Update X co-ordinate
  88.     
  89.     MOVE.L    #199*SCALE,D7
  90.     MOVE.W    2(A6),D6
  91.     MULS    #SCALE,D6    Get Y co-ordinate
  92.     SUB.L    D6,D7
  93.     MOVE.W    6(A6),D6    Get Y velocity
  94.     MOVE.W    8(A6),D5
  95.     MULS    D5,D6
  96.     SUB.L    D6,D7
  97.     MULS    D5,D5
  98.     ADD.L    D5,D7
  99.     BLT.S    NEXT
  100.     DIVS    #SCALE,D7
  101.     CMP.W    #200,D7
  102.     BGE.S    NEXT
  103.     MOVE.W    D7,12(A6)    Update Y co-ordinate
  104.     ADDQ.W    #1,8(A6)
  105.  
  106.     BSR.S    PUTPIX        PUT PIXEL ON SCREEN
  107. NEXT    RTS    
  108.  
  109. BURST    MOVE.W    #PIXNO-1,D2
  110.     CLR.W    D1
  111. BLOOP    BSR.S    RAND
  112.     EXT.W    D0    
  113.     MOVE.W    D0,4(A3,D1.W)
  114.     BSR.S    RAND
  115.     EXT.W    D0
  116.     MOVE.W    D0,6(A3,D1.W)
  117.     MOVE.W    #199,2(A3,D1.W)
  118.     MOVE.W    12(A3,D1.W),D0
  119.     SUB.W    D0,2(A3,D1.W)
  120.     MOVE.W    10(A3,D1.W),0(A3,D1.W)
  121.     CLR.W    8(A3,D1.W)
  122.     CLR.W    14(A3,D1.W)
  123.     ADD.W    #16,D1
  124.     DBRA    D2,BLOOP
  125.     BRA    NEXPIX
  126.  
  127. BYEPIX    MOVE.L    10(A6),(A4)    Put X,Y into ptsin
  128.     MOVE.W    #0,(A5)        Colour 0
  129.     DC.W    PLOTPIX
  130.     MOVE.W    #319,D0
  131.     SUB.W    10(A6),D0
  132.     MOVE.W    D0,(A4)
  133.     MOVE.W    12(A6),2(A4)
  134.     DC.W    PLOTPIX
  135.     RTS
  136.     
  137. PUTPIX    MOVE.L    10(A6),(A4)
  138.     MOVE.W    14(A6),D0
  139.     BNE.S    NOTRAND
  140.     BSR.S    RAND
  141.     AND.W    #15,D0
  142. NOTRAND    MOVE.W    D0,(A5)
  143.     DC.W    PLOTPIX
  144.     MOVE.W    #319,D0
  145.     SUB.W    10(A6),D0
  146.     MOVE.W    D0,(A4)
  147.     MOVE.W    12(A6),2(A4)
  148.     DC.W    PLOTPIX
  149.     RTS
  150.  
  151. RAND    MOVEM    D1-D2/A0-A2,-(SP)
  152.     MOVE.W    #17,-(SP)
  153.     TRAP    #14
  154.     ADDQ.L    #2,SP
  155.     MOVEM    (SP)+,D1-D2/A0-A2
  156.     RTS
  157.  
  158.     DATA
  159. PIX0    DC.W    1,0,VELX,VELY,0,0,0,1    X,Y,Ux,Uy
  160.     DC.W    2,0,VELX,VELY,0,0,0,1
  161.     DC.W    3,0,VELX,VELY,0,0,0,1
  162.     DC.W    0,1,VELX,VELY,0,0,0,1
  163.     DC.W    1,1,VELX,VELY,0,0,0,1
  164.     DC.W    2,1,VELX,VELY,0,0,0,1
  165.     DC.W    3,1,VELX,VELY,0,0,0,0
  166.     DC.W    4,1,VELX,VELY,0,0,0,1
  167.     DC.W    0,2,VELX,VELY,0,0,0,1
  168.     DC.W    1,2,VELX,VELY,0,0,0,0
  169.     DC.W    2,2,VELX,VELY,0,0,0,1
  170.     DC.W    3,2,VELX,VELY,0,0,0,1
  171.     DC.W    4,2,VELX,VELY,0,0,0,1
  172.     DC.W    0,3,VELX,VELY,0,0,0,0
  173.     DC.W    1,3,VELX,VELY,0,0,0,1
  174.     DC.W    2,3,VELX,VELY,0,0,0,1
  175.     DC.W    3,3,VELX,VELY,0,0,0,0
  176.     DC.W    4,3,VELX,VELY,0,0,0,1
  177.     DC.W    1,4,VELX,VELY,0,0,0,1
  178.     DC.W    2,4,VELX,VELY,0,0,0,1
  179.     DC.W    3,4,VELX,VELY,0,0,0,1
  180.     DC.W    1,0,VELX,VELY,0,0,0,1    X,Y,Ux,Uy
  181.     DC.W    2,0,VELX,VELY,0,0,0,1
  182.     DC.W    3,0,VELX,VELY,0,0,0,1
  183.     DC.W    0,1,VELX,VELY,0,0,0,0
  184.     DC.W    1,1,VELX,VELY,0,0,0,1
  185.     DC.W    2,1,VELX,VELY,0,0,0,1
  186.     DC.W    3,1,VELX,VELY,0,0,0,1
  187.     DC.W    4,1,VELX,VELY,0,0,0,1
  188.     DC.W    0,2,VELX,VELY,0,0,0,1
  189.     DC.W    1,2,VELX,VELY,0,0,0,1
  190.     DC.W    2,2,VELX,VELY,0,0,0,0
  191.     DC.W    3,2,VELX,VELY,0,0,0,1
  192.     DC.W    4,2,VELX,VELY,0,0,0,1
  193.     DC.W    0,3,VELX,VELY,0,0,0,1
  194.     DC.W    1,3,VELX,VELY,0,0,0,1
  195.     DC.W    2,3,VELX,VELY,0,0,0,1
  196.     DC.W    3,3,VELX,VELY,0,0,0,1
  197.     DC.W    4,3,VELX,VELY,0,0,0,1
  198.     DC.W    1,4,VELX,VELY,0,0,0,1
  199.     DC.W    2,4,VELX,VELY,0,0,0,0
  200.     DC.W    3,4,VELX,VELY,0,0,0,1
  201.     bss
  202. old_col    ds.w    1
  203. PIX1    DS.W    8*PIXNO
  204.