0 CLS:CLEAR500:DIMA$(15),B$(15),C$(15),M(42,22),K(255),A(11,5),B(11,5),C(11,5),X,Y,A,B,T,C,D,E,F,G,H,I,K,B$,E(5),F(5),M:GOTO999
1 RETURN
2 ONM(X-1+A,Y+B)GOTO10,1,30,40,95,70,70,80,90,58:GOSUB11:OI=I:X=X-1:M(X+A,Y+B)=11:G=11:H=12:RETURN
3 ONM(X+A,Y-1+B)GOTO10,1,30,40,95,70,70,80,90,58:GOSUB11:OI=I:Y=Y-1:M(X+A,Y+B)=11:RETURN
4 ONM(X+1+A,Y+B)GOTO10,1,30,40,95,70,70,80,90,58:GOSUB11:OI=I:X=X+1:M(X+A,Y+B)=11:G=13:H=14:RETURN
5 ONM(X+A,Y+1+B)GOTO10,1,30,40,95,70,70,80,90,58:GOSUB11:OI=I:Y=Y+1:M(X+A,Y+B)=11:RETURN
6 R=R+1:M=R:E(M)=C:F(M)=D:RETURN
8 F=SGN(Y-D):ONM(C+A,D+F+B)GOTO1,1,1,1,1,1,1,1,1,52,60:PRINT@A(C,D),B$;:PRINT@B(C,D),B$;:PRINT@C(C,D),B$;
9 M(C+A,D+B)=0:D=D+F:F(M)=D:DD=DD(RND(4)):PRINT@A(C,D),A$(DD);:PRINT@B(C,D),B$(DD);:PRINT@C(C,D),C$(DD);:M(C+A,D+B)=DD:RETURN
10 ONOGOSUB230:M(X+A,Y+B)=0:X=X+X(I):Y=Y+Y(I):A=A+O(I):B=B+P(I):GOSUB200:RETURN
11 PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:PRINT@C(X,Y),B$;:M(X+A,Y+B)=0:RETURN
12 PRINT@A(X,Y),A$(T);:PRINT@B(X,Y),B$(T);:PRINT@C(X,Y),C$(T);:RETURN
14 C=E(M):D=F(M):E=SGN(X-C):ONM(C+E+A,D+B)GOTO8,8,8,8,8,8,8,8,8,50,60:PRINT@A(C,D),B$;:PRINT@B(C,D),B$;:PRINT@C(C,D),B$;
15 M(C+A,D+B)=0:C=C+E:E(M)=C:DD=DD(1+E):PRINT@A(C,D),A$(DD);:PRINT@B(C,D),B$(DD);:PRINT@C(C,D),C$(DD);:M(C+A,D+B)=DD:RETURN
16 FORZ=1TO65000:FORT=GTOH:PRINT@A(X,Y),A$(T);:PRINT@B(X,Y),B$(T);:PRINT@C(X,Y),C$(T);:I=K(PEEK(K)ANDPEEK(2))
17 ONIGOSUB2,3,4,5,55,42,92:NEXT:ONOGOSUB81:FORM=1TOR:ON1-(E(M)=-1)GOSUB14:NEXT:NEXT
18 ON1-(HE>0)GOTO100
20 Z=0:FORD=0TO4:FORC=0TO9:FORT=GTOH:PRINT@A(X,Y),A$(T);:PRINT@B(X,Y),B$(T);:PRINT@C(X,Y),C$(T);:I=K(PEEK(K)ANDPEEK(2))
21 ONIGOSUB2,3,4,5,55,42,92:ONM(C+A,D+B)GOSUB1,1,1,1,1,6,6:C=C+1:NEXT:C=C-1:NEXT:NEXT:ON1-(Z>64999)GOTO16,18
30 PRINT@480,"door";B$;B$;B$;:IFKE>0THEN:GOSUB11:X=X+DX(I):Y=Y+DY(I):M(X+A,Y+B)=11:KE=KE-1:GOSUB12:SOUND100,1:SOUND200,1
31 RETURN
40 GOSUB11:X=X+DX(I):Y=Y+DY(I):M(X+A,Y+B)=11:GOSUB12
41 KE=KE+1:SOUND235,2
42 PRINT@480,"key";B$;B$;B$;:I$=RIGHT$(STR$(KE),2):POKE16868,ASC(MID$(I$,1,1)):POKE16869,ASC(MID$(I$,2,1)):RETURN
50 PRINT@A(C,D),B$;:PRINT@B(C,D),B$;:PRINT@C(C,D),B$;:M(C+A,D+B)=0:C=C+E:GOTO53
51 N=N+1:SOUND5,1:GOTO59
52 PRINT@A(C,D),B$;:PRINT@B(C,D),B$;:PRINT@C(C,D),B$;:M(C+A,D+B)=0:D=D+F
53 FORZZ=1TO4:DD=DD(RND(4)):PRINT@A(C,D),A$(DD);:PRINT@B(C,D),B$(DD);:PRINT@C(C,D),C$(DD);:SOUND25,2:NEXT
54 PRINT@A(C,D),B$;:PRINT@B(C,D),B$;:PRINT@C(C,D),B$;:SOUND1,1:E(M)=-1:M(C+A,D+B)=0:DK=DK+1:RETURN
55 I=OI:ONM(X+DX(I)+A,Y+DY(I)+B)GOTO1,1,1,1,1,1,1,1,1,1,1:IFN=0THEN1
56 PRINT@A(X+DX(I),Y+DY(I)),A$(10);:PRINT@B(X+DX(I),Y+DY(I)),B$(10);:PRINT@C(X+DX(I),Y+DY(I)),C$(10);
57 M(X+DX(I)+A,Y+DY(I)+B)=10:SOUND50,2:N=N-1:GOSUB59:RETURN
58 GOSUB11:X=X+DX(I):Y=Y+DY(I):M(X+A,Y+B)=11:N=N+1:SOUND5,1
59 PRINT@480,"nets";B$;B$;B$;:I$=RIGHT$(STR$(N),2):POKE16869,ASC(MID$(I$,1,1)):POKE16870,ASC(MID$(I$,2,1)):RETURN
60 PRINT@480,"exterminate";:POKE16875,33:PRINT@A(X,Y),A$(15);:PRINT@B(X,Y),B$(15);:PRINT@C(X,Y),C$(15);:SOUND240,3:SOUND200,1
61 HE=HE-1:GOSUB65:IFHE<=0THENGOSUB69
62 RETURN
65 PRINT@496,"life";:POKE16885,48+HE:RETURN
69 HE=0:Z=65000:D=4:C=9:T=H:RETURN
70 GOSUB11:X=X+DX(I):Y=Y+DY(I)
71 FORZZ=1TO5:PRINT@A(X,Y),A$(15);:PRINT@B(X,Y),B$(15);:PRINT@C(X,Y),C$(15);:SOUND1,5
72 PRINT@A(X,Y),A$(7);:PRINT@B(X,Y),B$(7);:PRINT@C(X,Y),C$(7);:SOUND25,5:NEXT:GOSUB69:RETURN
80 ON1-(Z>0)GOTO83:PRINT@480,"bomb";B$;B$;:O=1:BP=16384+B(X+DX(I),Y+DY(I))+1:CD=53:POKEBP,CD:M(X+DX(I)+A,Y+DY(I)+B)=0:RETURN
81 CD=CD-1:POKEBP,CD:IFCD=47THENGOSUB230:HE=0:GOSUB200:RETURN
82 SOUND1,1:RETURN
83 PRINT@480,"reactor";B$;:GOTO82
90 GOSUB11:X=X+DX(I):Y=Y+DY(I):M(X+A,Y+B)=11:GOSUB12
91 SOUND235,2:PA=PA+1
92 PRINT@480,"part";B$;B$;B$;:I$=RIGHT$(STR$(PA),2):POKE16869,ASC(MID$(I$,1,1)):POKE16870,ASC(MID$(I$,2,1))
93 IFPA>=PTTHENPRINT@480,"all"CHR$(128)"parts"CHR$(128)"found";:FORZZ=1TO2500:NEXT:PRINT@480,"";:FORZZ=1TO5:PRINTB$;:NEXT
94 RETURN
95 IFPA<PTTHENSOUND1,2:RETURN
96 GOSUB11:X=X+DX(I):Y=Y+DY(I):FORZZ=1TO5:T=5:GOSUB12:FORT=50TO40STEP-1:SOUNDT,1:NEXT:T=0:GOSUB12:FORT=35TO45:SOUNDT,1:NEXT
97 NEXT:SC=DK+HE+PA+N:PRINT@480,"SCORE:";SC;:GOSUB2020:PRINT" TRY AGAIN (Y/N)?";B$;:GOSUB69:RETURN
100 PRINT@480,"DO YOU WISH TO TRY AGAIN (Y/N)?";
110 I$=INKEY$:IFI$=""THEN110
120 IFI$="Y"THEN150
130 IFI$="N"THENEND
140 GOTO110
150 PRINT@480,"         PLEASE WAIT...        ";:FORY=0TO22:FORX=0TO42:READM(X,Y):NEXT:NEXT:RESTORE
155 FORY=0TO4:FORX=0TO9:A(X,Y)=(Y*3)*32+(X*3):B(X,Y)=A(X,Y)+32:C(X,Y)=B(X,Y)+32:NEXT:NEXT
160 FORT=1TO4
165 X=RND(41):Y=RND(21):IFM(X,Y)<>0THEN165
170 M(X,Y)=10:NEXT:PRINT@480,"    PRESS ANY KEY TO BEGIN.   ";
180 I$=INKEY$:IFI$=""THEN180
190 A=0:B=0:X=1:Y=1:M(X+A,Y+B)=11:HE=3:GOSUB200:C=5:D=1:G=11:H=12:N=3:PA=0:KE=0:DK=0:SC=0:PT=12:GOTO20
200 CLS0:FORF=0TO4:FORE=0TO9:PRINT@A(E,F),A$(M(E+A,F+B));:PRINT@B(E,F),B$(M(E+A,F+B));:PRINT@C(E,F),C$(M(E+A,F+B));:NEXT:NEXT
220 GOSUB65:O=0:R=0:E(1)=-1:Z=65000:D=4:C=9:T=H:ONM(X+A,Y+B)GOSUB1,1,1,41,1,71,71,1,91,51:M(X+A,Y+B)=11:RETURN
230 CLS:PRINT@256+14,"BOOM!":FORT=1TO10:SOUNDRND(20),1:POKE49151,64:FORZZ=1TO25:NEXT:SOUNDRND(20),1:NEXT
240 FORM=1TOR:IFE(M)>0THENM(E(M)+A,F(M)+B)=0
241 DK=DK+1:NEXT:RETURN
999 DIMX(4),Y(4),O(4),P(4),DX(4),DY(4),DD(4),Z,DD,O:DD(0)=7:DD(1)=7:DD(2)=6:DD(3)=6:DD(4)=7:GOSUB2000
1000 X(1)=9:Y(1)=0:O(1)=-11:P(1)=0:DX(1)=-1:DY(1)=0
1002 X(2)=0:Y(2)=4:O(2)=0:P(2)=-6:DX(2)=0:DY(2)=-1
1003 X(3)=-9:Y(3)=0:O(3)=11:P(3)=0:DX(3)=1:DY(3)=0
1004 X(4)=0:Y(4)=-4:O(4)=0:P(4)=6:DX(4)=0:DY(4)=1
1005 A$(0)=""
1006 B$(0)=""
1007 C$(0)=""
1008 B$=A$(0)
1011 A$(2)=""
1015 B$(2)=""
1020 C$(2)=""
1030 A$(3)=""
1040 B$(3)=""
1050 C$(3)=""
1070 A$(4)=""
1080 B$(4)=""
1090 C$(4)=""
1100 A$(5)=""
1110 B$(5)=""
1120 C$(5)=""
1130 A$(6)=""
1140 B$(6)=""
1150 C$(6)=""
1160 A$(7)=""
1170 B$(7)=""
1180 C$(7)=""
1181 A$(8)=""
1182 B$(8)=""+CHR$(96)+""
1183 C$(8)=A$(8)
1184 A$(9)=""
1185 B$(9)=""
1186 C$(9)=""
1190 A$(10)=""
1191 B$(10)=""
1192 C$(10)=""
1200 A$(11)=""
1210 B$(11)=""
1220 C$(11)=""
1230 A$(12)=""
1240 B$(12)=""
1250 C$(12)=""
1260 A$(13)=""
1270 B$(13)=""
1280 C$(13)=""
1290 A$(14)=""
1300 B$(14)=""
1310 C$(14)=""
1320 A$(15)=""
1330 B$(15)=""
1340 C$(15)="":GOSUB2100
1370 K(65)=1:K(87)=2:K(83)=3:K(90)=4:K(32)=5:K(75)=6:K(80)=7:K(71)=1:K(89)=2:K(74)=3:K(72)=4
1380 K=17023:E(0)=-1:X=RND(-(PEEK(9)*256+PEEK(10))):GOTO150
2000 CLS:PRINT@138,"THE DOCTOR'S";:PRINT@199,"ADVENTURE ON SCARO";
2010 PRINT@266,"BY JIM GERRIE";:PRINT@325,"FOR RETROSPECTIVA 2012";
2020 SOUND133,4:SOUND180,4:SOUND176,8:SOUND180,6:SOUND99,6:SOUND167,6
2030 SOUND153,6:SOUND108,6:SOUND99,6:SOUND99,6:SOUND125,6:SOUND108,6:SOUND99,6:SOUND79,4:SOUND99,4
2040 RETURN
2100 CLS
2101 PRINT"THE INFINITY DEVICE HAS BEEN "A$(9);
2102 PRINT"TAKEN BY THE DARLECS, BROKEN "B$(9);
2103 PRINT"INTO ITS COMPONENT PARTS AND "C$(9);
2104 PRINT"SCATTERED THROUGHOUT THEIR   "B$;
2105 PRINT"BASE ON PLANET SCARO. WHILE  "A$(7);
2106 PRINT"TRYING TO RECOVER THE TWELVE "B$(7);
2107 PRINT"PIECES YOU WERE CAPTURED,    "C$(7);
2108 PRINT"BUT NOW YOU HAVE MANAGED TO  "B$;
2109 PRINT"GET AWAY. YOU MUST FIND THE  "A$(5);
2110 PRINT"PIECES, RECOVER YOUR TIME    "B$(5);
2111 PRINT"MACHINE AND MAKE YOUR ESCAPE."C$(5); 
2112 PRINT"REACTORS AND NETS KILL DARLECS."
2113 PRINTA$(8)"HIT   "A$(10)"'SPACE'"A$(4)"KEYS   "A$(3);
2114 PRINTB$(8)"TO    "B$(10)"  TO   "B$(4)"UNLOCK "B$(3);
2115 PRINTC$(8)"START "C$(10)" DROP  "C$(4)"DOORS  "C$(3);
2120 RETURN
3000 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2   
3020 DATA 2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,7,3,1,0,4,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2   
3030 DATA 2,7,0,0,0,2,2,2,2,2,1,2,0,0,0,2,0,8,2,2,2,1,2,2,2,2,0,2,2,2,2,2,1,2,2,2,2,2,2,0,0,0,2   
3040 DATA 2,9,7,0,0,2,8,7,0,0,1,0,0,0,0,2,0,0,3,9,2,1,2,2,0,0,6,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,2   
3050 DATA 2,6,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,2,2,2,1,2,2,0,0,0,2,2,2,2,2,1,2,2,2,2,0,2,0,0,0,2   
3060 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2   
3070 DATA 2,0,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,2,2,2,1,2,2,0,0,0,2,2,2,2,2,1,2,2,2,2,0,2,0,0,0,2   
3080 DATA 2,0,0,0,0,0,0,0,0,0,1,0,0,7,7,2,4,0,2,0,0,1,0,0,0,2,0,2,4,2,0,0,1,0,0,0,0,0,2,6,2,8,2   
3090 DATA 2,0,2,2,2,2,0,0,0,0,1,0,7,8,9,2,2,2,2,0,0,1,0,0,4,2,0,2,0,0,0,2,1,2,2,2,2,2,2,0,0,0,2   
3100 DATA 2,0,9,6,8,0,6,0,0,0,1,0,0,0,7,2,9,0,0,0,0,1,0,2,2,2,0,2,2,2,2,2,1,2,0,0,6,0,0,0,0,7,2   
3110 DATA 2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,2,9,2,1,2,0,2,2,2,0,0,0,0,2   
3120 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2   
3130 DATA 2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,1,0,0,2,2,2,0,0,0,0,2   
3140 DATA 2,0,2,2,2,0,2,2,2,0,1,0,0,2,2,2,2,0,7,7,2,1,2,2,0,0,6,2,6,2,2,2,1,2,2,2,2,2,2,2,2,0,2   
3150 DATA 2,7,2,0,2,7,2,0,0,0,1,0,7,3,9,2,6,0,0,0,0,1,0,2,0,0,0,2,0,0,8,2,1,2,0,0,0,2,0,0,0,0,2   
3160 DATA 2,2,2,0,2,2,2,0,0,0,1,0,0,2,2,2,0,8,0,9,2,1,2,2,2,2,0,2,0,0,0,0,1,0,0,2,0,0,7,2,2,2,2   
3170 DATA 2,9,8,0,0,7,0,0,0,0,1,0,0,0,0,2,0,2,0,2,2,1,2,0,0,0,0,0,0,4,0,2,1,2,2,2,2,2,0,0,0,0,2   
3180 DATA 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2   
3190 DATA 2,2,2,0,0,0,0,0,0,0,1,0,0,0,0,2,0,2,0,2,0,1,6,0,0,0,0,0,0,0,0,2,1,2,2,2,2,2,0,0,0,0,2   
3200 DATA 2,9,2,7,0,7,2,2,2,2,1,2,0,0,0,2,2,2,2,2,2,1,2,0,2,2,2,2,2,2,2,2,1,2,2,2,2,2,0,0,0,0,2   
3210 DATA 2,0,0,2,0,2,0,0,0,2,1,2,0,0,0,2,0,6,9,2,2,1,2,0,2,0,0,0,0,0,9,2,1,2,0,0,7,3,0,0,0,0,2   
3220 DATA 2,2,0,0,0,0,0,2,4,2,1,2,0,0,0,3,0,0,0,2,2,1,2,0,3,0,0,0,0,0,0,2,1,2,0,5,0,2,0,0,0,0,2   
3230 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2   
