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 >
Wrap
Text File
|
1993-07-09
|
4KB
|
204 lines
****************
* STARBURST *
* AUTO PROGRAM *
* by S.H.Rigby *
****************
opt d+
PIXNO EQU 42
SCALE EQU 100
VELX EQU 50
VELY equ 250
INIT EQU $A000
PLOTPIX EQU $A001
SETUP ;don't need to shrink as it's an auto prg
MOVE.W #-1,-(SP) no cursor
CLR.W -(SP)
MOVE.W #21,-(SP)
TRAP #14
ADDQ.L #6,SP
;Setcolor #0,#0 background is black
clr.l -(sp)
move.w #7,-(sp)
trap #14
addq.w #6,sp
move.w d0,old_col
DC.W INIT Initialise A-Line routines
MOVE.L 8(A0),A5 points to array intin
MOVE.L 12(A0),A4 points to array ptsin
MOVE.W #0,36(A0) REPLACE MODE
START MOVE.L #PIX0,A6
MOVE.L #PIX1,A3
MOVE.W #(8*PIXNO)-1,D0
RESET MOVE.W (A6)+,(A3)+
DBRA D0,RESET
MOVE.L #PIX1,A3
MOVE.W #400,D3 TIME COUNTER
MOVEPIX MOVE.W #PIXNO-1,D4
CMP.W #250,D3 Time for Starburst
BEQ BURST
NEXPIX ROL.W #4,D4
MOVE.L A3,A6 Pass the address of the pixel table to
ADDA.W D4,A6
ROR.W #4,D4
BSR.S UPDATE the update routine.
DBRA D4,NEXPIX
MOVE.W #$2800,D1
LOOP DBRA D1,LOOP
DBRA D3,MOVEPIX LOOP UNTIL COUNTER=0
KEYCHK MOVEM D1-D4/A0-A4,-(SP)
MOVE.W #11,-(SP)
TRAP #1
ADDQ.L #2,SP
MOVEM (SP)+,D1-D4/A0-A4
TST.L D0
BEQ.S START
OUT ;Setcolor #0,old_col
move.w old_col,-(sp)
move.w #0,-(sp)
move.w #7,-(sp)
trap #14
addq.w #6,sp
CLR.W -(SP)
TRAP #1 Return to Desktop
ADDQ.W #2,SP
UPDATE BSR BYEPIX
MOVE.W (A6),D7 Get X co-ordinate
MULS #SCALE,D7
MOVE.W 4(A6),D6 Get X velocity
MOVE.W 8(A6),D5
MULS D5,D6
ADD.L D6,D7 X=X+Ux
BLT.S NEXT
DIVS #SCALE,D7
CMP.W #640,D7
BGE.S NEXT
MOVE.W D7,10(A6) Update X co-ordinate
MOVE.L #199*SCALE,D7
MOVE.W 2(A6),D6
MULS #SCALE,D6 Get Y co-ordinate
SUB.L D6,D7
MOVE.W 6(A6),D6 Get Y velocity
MOVE.W 8(A6),D5
MULS D5,D6
SUB.L D6,D7
MULS D5,D5
ADD.L D5,D7
BLT.S NEXT
DIVS #SCALE,D7
CMP.W #200,D7
BGE.S NEXT
MOVE.W D7,12(A6) Update Y co-ordinate
ADDQ.W #1,8(A6)
BSR.S PUTPIX PUT PIXEL ON SCREEN
NEXT RTS
BURST MOVE.W #PIXNO-1,D2
CLR.W D1
BLOOP BSR.S RAND
EXT.W D0
MOVE.W D0,4(A3,D1.W)
BSR.S RAND
EXT.W D0
MOVE.W D0,6(A3,D1.W)
MOVE.W #199,2(A3,D1.W)
MOVE.W 12(A3,D1.W),D0
SUB.W D0,2(A3,D1.W)
MOVE.W 10(A3,D1.W),0(A3,D1.W)
CLR.W 8(A3,D1.W)
CLR.W 14(A3,D1.W)
ADD.W #16,D1
DBRA D2,BLOOP
BRA NEXPIX
BYEPIX MOVE.L 10(A6),(A4) Put X,Y into ptsin
MOVE.W #0,(A5) Colour 0
DC.W PLOTPIX
MOVE.W #319,D0
SUB.W 10(A6),D0
MOVE.W D0,(A4)
MOVE.W 12(A6),2(A4)
DC.W PLOTPIX
RTS
PUTPIX MOVE.L 10(A6),(A4)
MOVE.W 14(A6),D0
BNE.S NOTRAND
BSR.S RAND
AND.W #15,D0
NOTRAND MOVE.W D0,(A5)
DC.W PLOTPIX
MOVE.W #319,D0
SUB.W 10(A6),D0
MOVE.W D0,(A4)
MOVE.W 12(A6),2(A4)
DC.W PLOTPIX
RTS
RAND MOVEM D1-D2/A0-A2,-(SP)
MOVE.W #17,-(SP)
TRAP #14
ADDQ.L #2,SP
MOVEM (SP)+,D1-D2/A0-A2
RTS
DATA
PIX0 DC.W 1,0,VELX,VELY,0,0,0,1 X,Y,Ux,Uy
DC.W 2,0,VELX,VELY,0,0,0,1
DC.W 3,0,VELX,VELY,0,0,0,1
DC.W 0,1,VELX,VELY,0,0,0,1
DC.W 1,1,VELX,VELY,0,0,0,1
DC.W 2,1,VELX,VELY,0,0,0,1
DC.W 3,1,VELX,VELY,0,0,0,0
DC.W 4,1,VELX,VELY,0,0,0,1
DC.W 0,2,VELX,VELY,0,0,0,1
DC.W 1,2,VELX,VELY,0,0,0,0
DC.W 2,2,VELX,VELY,0,0,0,1
DC.W 3,2,VELX,VELY,0,0,0,1
DC.W 4,2,VELX,VELY,0,0,0,1
DC.W 0,3,VELX,VELY,0,0,0,0
DC.W 1,3,VELX,VELY,0,0,0,1
DC.W 2,3,VELX,VELY,0,0,0,1
DC.W 3,3,VELX,VELY,0,0,0,0
DC.W 4,3,VELX,VELY,0,0,0,1
DC.W 1,4,VELX,VELY,0,0,0,1
DC.W 2,4,VELX,VELY,0,0,0,1
DC.W 3,4,VELX,VELY,0,0,0,1
DC.W 1,0,VELX,VELY,0,0,0,1 X,Y,Ux,Uy
DC.W 2,0,VELX,VELY,0,0,0,1
DC.W 3,0,VELX,VELY,0,0,0,1
DC.W 0,1,VELX,VELY,0,0,0,0
DC.W 1,1,VELX,VELY,0,0,0,1
DC.W 2,1,VELX,VELY,0,0,0,1
DC.W 3,1,VELX,VELY,0,0,0,1
DC.W 4,1,VELX,VELY,0,0,0,1
DC.W 0,2,VELX,VELY,0,0,0,1
DC.W 1,2,VELX,VELY,0,0,0,1
DC.W 2,2,VELX,VELY,0,0,0,0
DC.W 3,2,VELX,VELY,0,0,0,1
DC.W 4,2,VELX,VELY,0,0,0,1
DC.W 0,3,VELX,VELY,0,0,0,1
DC.W 1,3,VELX,VELY,0,0,0,1
DC.W 2,3,VELX,VELY,0,0,0,1
DC.W 3,3,VELX,VELY,0,0,0,1
DC.W 4,3,VELX,VELY,0,0,0,1
DC.W 1,4,VELX,VELY,0,0,0,1
DC.W 2,4,VELX,VELY,0,0,0,0
DC.W 3,4,VELX,VELY,0,0,0,1
bss
old_col ds.w 1
PIX1 DS.W 8*PIXNO