10 CLS:PRINT@236,"SENTINEL":CLEAR1000
20 MC=16384:REM CHANGE MC=1024 FOR COCO
30 DIMB$(14),SE$,B1$,B3$,C$,PF$,PP$,PL$,DI$,SH$,NL$,SX$
35 DIMAP(141), TI,DU,VX,VY,NP,X,Y,PL,LF,SC,NT,DT,FL,DS,MC,TS,MC,LV,O,J,U,W,E,TT,T1,T2,T3,T4,T5,V1,V2,V3,V4,SE,WG
40 C$=CHR$(128):B3$="   ":B1$=" ":NL$=""
50 O=128:HS=0:NM$="NOBODY":AP(96)=1:AP(128)=2:AP(110)=3:AP(141)=4:AP(137)=5:AP(124)=6
55 REM CHANGE MC=1024 FOR COCO
60 PP$=CHR$(141):PL$=CHR$(137)+CHR$(129)+CHR$(141):PF$="..."+PP$+"..."
70 SE$=CHR$(159):SX$=CHR$(150)+CHR$(153)+CHR$(153):SH$="*"
80 BL$="":FORT=1TO17:BL$=BL$+C$:NEXTT
90 WL$="":FORT=1TO17:WL$=WL$+" ":NEXTT
100 PRINT@485,"PRESS ANY KEY TO BEGIN";
120 PRINT@291,"BY CHARLIE AND JIM GERRIE";
130 I$=INKEY$:DI=RND(10):IFI$=""THEN130
230 GOTO1000
299 REM **DRAW SCREEN**
300 CLS0:SC=SC+1:LV=50-SC:DT=16:FL=1:DS=0:WG=0
305 B$(14)=B$(0)
310 FORY=0TO13
320 T=RND(13)+1
330 T$=RIGHT$(WL$,T)
350 B$(Y)=LEFT$(LEFT$(BL$,16-T)+T$+T$+BL$,32)
360 PRINTB$(Y);
370 NEXTY
375 PRINTB$(14);
380 X=15:Y=14:PL=463:NP=463
400 PRINT@480,LF;:PRINT@507,SC;
420 RETURN
499 REM **PLAYER MOVES**
500 TI=64000:FORDU=UTOTI:DI$=INKEY$:IFDI$=NL$THEN670
550 DI=ASC(DI$)
555 IFDI=TT THEN IFPL>TT THEN PRINT@PL-T4,PF$;:SOUND200,1:GOSUB800:PRINT@TT*Y-TT,B$(Y-U);:PRINT@PL-T1,PP$;:GOTO690
560 VX=(DI=V1)-(DI=V2)
570 VY=(DI=V3)-(DI=V4)
580 NP=TT*(Y+VY)+(X+VX)
595 IFPEEK(MC+NP)=O ORPEEK(MC+NP+U)=O ORPEEK(MC+NP+W)=O ORPEEK(MC+NP-T1)=O THEN670
600 IF NP>SE OR NP<J THEN DU=TI:GOTO690
610 PRINT@PL,B3$;:IF PL>TT THENPRINT@PL-T1,B1$;
620 X=X+VX:Y=Y+VY:PL=NP
670 PRINT@PL,PL$;:IF NP>TT THENPRINT@PL-T1,PP$;
680 GOSUB800
690 NEXT
710 RETURN
799 REM **SENTINEL ATTACK**
800 IFWG THEN850
805 NT=DT+FL:IFRND(LV)=UTHENNT=DT+(TT*SGN(PL-DT)):IFNT<J THENNT=DT+FL
810 ONAP(PEEK(MC+NT))GOTO830,820,825,827,827,827
815 GOTO830
820 FL=FL*-U:GOTO940
825 WG=U:PRINT@DT,B1$;:PRINT@DS,B1$;:PRINT@J,C$;:LF=LF+U:PRINT@480,LF;:GOTO940
827 LF=J:DU=TI
830 PRINT@DT,B1$;:PRINT@NT,SE$;
840 DT=NT
850 IFDS THENGOSUB950:GOTO940
860 IFWG THEN940
900 DS=DT+TT
920 IFPEEK(MC+DS)=O THEN DS=J:GOTO940
930 PRINT@DS,SH$;
940 RETURN
950 TS=DS+TT
955 ONAP(PEEK(MC+TS))GOTO970,975,960,960,960,960
960 PRINT@DS-U,SX$;:SOUND50,1:LF=LF-U:PRINT@480,LF;:PRINT@DS-U,B3$;:DS=J:IFLF<U THENDU=TI
965 GOTO980
970 PRINT@DS,B1$;:PRINT@TS,SH$;:DS=TS:GOTO980
975 PRINT@DS,B1$;:DS=J
980 RETURN
999 REM **MAIN PROGRAM**
1000 SC=0:LF=10:LV=1:TT=32:J=0:U=1:W=2:E=3:T4=34:T1=31:T2=96:T3=110:T5=141
1005 V1=65:V2=83:V3=87:V4=90:SE=511:T=RND(13)+1:T$=RIGHT$(WL$,T):B$(0)=LEFT$(LEFT$(BL$,16-T)+T$+T$+BL$,32)
1010 GOSUB300
1020 GOSUB500
1030 IF WG=J THENPRINT@NT,SE$;
1050 IFSC<49 ANDLF>0 THEN1010
1060 IFLF<1 THENSOUND 1,20:CLS:PRINT"YOUR SHIP HAS BEEN DESTROYED.":PRINT"LEVELS=";SC:GOTO1080
1070 SOUND100,10:SOUND 200,10:CLS:PRINT"YOU HAVE ESCAPED FROM THE CAVE!"
1080 PRINT:PRINT"HIGH SCORE:";HS:PRINT"BY: ";NM$:PRINT
1090 IFSC>HS THENINPUT"NEW HIGH SCORE! ENTER YOUR NAME ";NM$:HS=SC
2000 PRINT
2010 PRINT"PLAY AGAIN (Y/N)?"
2020 I$=INKEY$:DI=RND(10):IFI$=""THEN2020
2030 IFI$="Y"THEN1000
2040 IFI$="N"THEN2060
2050 GOTO2020
2060 END
