10 CLEAR200:CLS0:GOSUB2000:DIM AX(20),AY(20),XC(20),YC(20),K(255),C(8),HT(8),SQ(128,2),CC(20),V1(66),V2(35)
15 DIM S$(2),CK$,I$
20 DIM Q,T,P,R,S
25 DIM SC,CD,T1,S3,ZE,OE,EN,TY,T2,EX,CL,PC,TW,PK,UL,FR,AC,HS,TE,SH,O2,DP,ET
30 GOSUB1000:I$="HIT ANY KEY TO BEGIN":R=16:GOSUB3000
40 I$=INKEY$:R=RND(10):IFI$=""THEN40
50 GOTO300
160 Q=EN:DP=P:RESET(SAND(AX(T)-XC(T)),T1AND(AY(T)-YC(T))):RESET((SAND(AX(T)-XC(T)))+OE,T1AND(AY(T)-YC(T)))
165 SET(AX(T),AY(T),EX):SET(AX(T)+OE,AY(T),EX)
167 R=RND(O2):AX(T)=SQ(R,OE):AY(T)=SQ(R,TW):XC(T)=C(RND(ET)):YC(T)=C(RND(ET)):RETURN
170 P=P-(OE*-(T2<P)):RETURN
175 P=P+(OE*-(UL>P)):RETURN
180 P=P-(T2*-(T2<P)):RETURN
185 P=P+(T2*-(UL>P)):RETURN
186 P=P-(T2*-(T2<P))-(OE*-(T2<P)):RETURN
187 P=P+(OE*-(UL>P))-(T2*-(T2<P)):RETURN
188 P=P-(OE*-(T2<P))+(T2*-(UL>P)):RETURN
189 P=P+(T2*-(UL>P))+(OE*-(UL>P)):RETURN
190 IFSH=TYTHENSH=OE
195 RETURN
300 FORAC=OETOTE:FORQ=SCTOEN:SC=Q:CLSZE:PRINT@P,S$(CC(SH));:SH=SH-(SH<TY)
310 FORT=OETOCD:SET(AX(T),AY(T),CL):SET(AX(T)+OE,AY(T),CL):AX(T)=AX(T)+XC(T):AY(T)=AY(T)+YC(T)
320 ONV1(AX(T)+TW)ORV2(AY(T)+TW)GOSUB167
350 ONHT((POINT(AX(T),AY(T)))OR(POINT(AX(T)+OE,AY(T))))GOSUB160,165
360 NEXTT
370 ONK(PEEK(PK)ANDPEEK(TW))GOSUB170,175,180,185,190,186,187,188,189
380 NEXTQ
900 SOUNDS3,OE
920 IFSC=ENTHENCLSZE:PRINT@P,S$(OE);:PRINT@32,"YOU ESCAPED THE ASTEROID BELT ! ";:GOTO950
930 NEXTAC
940 PRINT@DP,CHR$(131+RND(8)+(16*(PC-1)))+CHR$(131+RND(8)+(16*(PC-1)))+CHR$(131+RND(8)+(16*(PC-1)));
945 PRINT@DP+T2,CHR$(131+RND(8)+(16*(PC-1)))+CHR$(131+RND(8)+(16*(PC-1)))+CHR$(131+RND(8)+(16*(PC-1)));
950 IFHS<=SCTHENHS=SC
960 PRINT@0,"HIGH SCORE:";HS,"YOUR SCORE:";SC;
970 PRINT@487,"PLAY AGAIN (Y/N)?";
980 I$=INKEY$:R=RND(10):IFI$=""THEN980
985 IFI$="Y"THENGOSUB1080:GOTO300
986 IFI$="N"THEN990
987 GOTO980
990 END
1000 ZE=0:OE=1:TW=2:TE=3:FR=4:ET=8:T1=31:T2=32:S3=62:OE=1:S=63:TY=20
1010 EN=999:CD=15:HS=0:CK$=""
1015 PK=17023:PC=3:CL=6:EX=2:UL=446:O2=128
1025 V1(0)=1:V1(1)=1:V1(65)=1:V1(66)=1:V2(0)=1:V2(1)=1:V2(34)=1:V2(35)=1
1030 S$(1)=CHR$(131+(16*(PC-1)))+CHR$(143+(16*(PC-1)))+CHR$(131+(16*(PC-1)))
1035 FORT=OETO30:S$(1)=S$(1)+CHR$(128):NEXTT:S$(1)=S$(1)+CHR$(140+(16*(PC-1)))
1040 S$(2)=CHR$(135+(16*(CL-1)))+CHR$(143+(16*(CL-1)))+CHR$(139+(16*(CL-1)))
1045 FORT=OETO29:S$(2)=S$(2)+CHR$(128):NEXTT:S$(2)=S$(2)+CHR$(141+(16*(CL-1)))+CHR$(143+(16*(CL-1)))+CHR$(142+(16*(CL-1)))
1050 FORT=ZETO255:K(T)=0:NEXTT:K(65)=1:K(83)=2:K(87)=3:K(90)=4:K(32)=5:K(85)=6:K(73)=7:K(74)=8:K(75)=9
1055 FORT=OETOTY:CC(T)=1:NEXTT:CC(1)=2:CC(2)=2:CC(3)=2
1060 C(8)=-.5:C(1)=.5:C(2)=1:C(3)=-1:C(4)=1.5:C(5)=-1.5:C(6)=2:C(7)=-2
1065 HT(PC)=1:HT(CL)=2:HT(7)=1
1070 T=OE:FORR=ZETOS3STEPTW:SQ(T,1)=R:SQ(T,TW)=ZE:T=T+OE:NEXTR:FORR=ZETOS3STEPTW:SQ(T,OE)=R:SQ(T,TW)=T1:T=T+OE:NEXTR
1075 FORR=ZETOT1:SQ(T,TW)=R:SQ(T,OE)=ZE:T=T+OE:NEXTR:FORR=ZETOT1:SQ(T,TW)=R:SQ(T,OE)=S3:T=T+OE:NEXTR
1080 SC=0:AC=0:P=238:SH=20
1085 FORT=OETOTY:GOSUB167:NEXTT
1090 RETURN
2000 I$="*** ASTEROID ***":R=2:GOSUB3000
2010 I$="BY JIM GERRIE":R=4:GOSUB3000
2020 I$="USE ARROWS & U,I,J,K KEYS TO ":R=6:GOSUB3000
2030 I$="AVOID THE INCOMING ASTEROIDS.":R=7:GOSUB3000
2040 I$="HIT SPACE TO ACTIVATE SHIELD.":R=8:GOSUB3000
2050 I$="SHIELD RECHARGING TAKES TIME,":R=9:GOSUB3000
2060 I$="SO USE ONLY IN EMERGENCIES.  ":R=10:GOSUB3000
2065 I$="YOUR SHIP CAN TAKE GLANCING  ":R=11:GOSUB3000
2067 I$="BLOWS BUT ONLY 3 DIRECT HITS ":R=12:GOSUB3000
2068 I$="BEFORE IT WILL BE DESTROYED. ":R=13:GOSUB3000
2069 I$="GOOD LUCK!":R=14:GOSUB3000
2070 RETURN
3000 PRINT@((R-1)*32)+((32-LEN(I$))/2),I$;
3010 RETURN
