; STARS.ACT Star Module for Action!›; (c) New Breed Software 1994›; By Bill Kendrick››INCLUDE "D:RUNTIME.ACT"››MODULE››BYTE COL0=712,COL1=708,COL2=709,COL3=710›BYTE CONSOLE=53279,TIME=20,KEY=764›INT ARRAY SX(10),SY(10)›BYTE ARRAY SB(10)›BYTE SPEED,ALERT,TOG,S›CARD TOP=[10],LEFT=[10],RIGHT=[1590]›CARD BOTTOM=[660]›CARD DL››INT FUNC NEWX()› INT NX›› NX=RAND(200)+RIGHT/2-100›RETURN(NX)››INT FUNC NEWY()› INT NY›› NY=RAND(200)+BOTTOM/2-100›RETURN(NY)››PROC MOVE()› BYTE C,B› INT X,Y,XCEN,YCEN› INT DX,DY,MOV›› FOR C=1 TO 7 DO› X=SX(C)› Y=SY(C)› B=SB(C)›› COLOR=0› PLOT(X/10,Y/10)›› IF SPEED>0 THEN› DX=(X-RIGHT/2)/(12-SPEED)› DY=(Y-BOTTOM/2)/(12-SPEED)›› X=X+DX› Y=Y+DY› B=B+1›› IF DX=0 AND DY=0 THEN› B=B+20› FI› FI›› XCEN=0› YCEN=0› MOV=(SPEED+1)*5› IF S<>15 AND SPEED=0 THEN› MOV=25› IF S>4 AND S<8 AND X>RIGHT/2 THEN› DX=-(X-RIGHT/2)/48› ELSE› DX=(X-RIGHT/2)/48› FI› IF (S=14 OR S=10 OR S=6) AND Y>RIGHT/2 THEN› DY=-(Y-BOTTOM/2)/48› ELSE› DY=(Y-BOTTOM/2)/48› FI›› X=X+DX› Y=Y+DY› FI› IF S>4 AND S<8 THEN X=X-MOV XCEN=100 FI› IF S>8 AND S<12 THEN X=X+MOV XCEN=-100 FI› IF S=14 OR S=10 OR S=6 THEN Y=Y-MOV YCEN=100 FI› IF S=13 OR S=9 OR S=5 THEN Y=Y+MOV YCEN=-100 FI›› IF X=RIGHT OR Y=BOTTOM OR B>250 THEN› X=NEWX()+XCEN› Y=NEWY()+YCEN› B=0› FI›› COLOR=1› PLOT(X/10,Y/10)›› SX(C)=X› SY(C)=Y› SB(C)=B› OD›RETURN››PROC RESET()› BYTE C›› GRAPHICS(31)› COL1=15› FOR C=1 TO 10 DO› SX(C)=NEWX()› SY(C)=NEWY()› SB(C)=RAND(10)› OD› DL=PEEKC(560)+4› FOR C=2 TO 66 DO› POKE(DL+C,13)› OD›RETURN››PROC SHUTUP()› SOUND(0,0,0,0)› SOUND(1,0,0,0)› SOUND(2,0,0,0)› SOUND(3,0,0,0)›RETURN››PROC MAIN()› RESET()› SPEED=5› ALERT=0› COLOR=1› PLOT(0,0)› DRAWTO(0,67)› DRAWTO(159,67)› DRAWTO(159,0)› DRAWTO(0,0)› POKE(756,224)› DO› S=STICK(0)› MOVE()› IF CONSOLE=5 AND SPEED<9 THEN SPEED=SPEED+1 FI› IF CONSOLE=3 AND SPEED>0 THEN SPEED=SPEED-1 FI› SOUND(0,100-SPEED*5,0,SPEED+2)› UNTIL CONSOLE=6 OD› SHUTUP()› GRAPHICS(0)› DO UNTIL CONSOLE=7 OD› [$6C$0A$00]›RETURN››