10 REM CHARLIE'S GAME
20 CLS:PRINT@268,"SENTINEL":CLEAR1000
30 DIMB$(14),TI,DU,VX,VY,NP,X,Y,PL,LF,SC,NT,DT,FL,DS,MC,TS,MC,LV,O
40 C$=CHR$(128):B3$="   ":B1$=" "
50 MC=16384:O=128:HS=0:NM$="NOBODY"
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@295,"BY CHARLIE 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
310 FORY=0TO14
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
380 X=16:Y=14:PL=464
400 PRINT@480,LF;:PRINT@507,SC;
420 RETURN
499 REM **PLAYER MOVES**
500 TI=64000:FORDU=1TOTI:DI$=INKEY$:IFDI$=""THEN670
550 DI=ASC(DI$)
555 IFDI=32THENPRINT@PL-34,PF$;:SOUND200,1:GOSUB800:PRINT@32*Y-32,B$(Y-1);:GOTO690
560 VX=(DI=65)-(DI=83)
570 VY=(DI=87)-(DI=90)
580 NP=32*(Y+VY)+(X+VX)
595 IFPEEK(MC+NP)=O ORPEEK(MC+NP+2)=O ORPEEK(MC+NP-31)=OTHEN670
600 IFNP<32ORNP>511THENDU=TI:GOTO690
610 PRINT@PL,B3$;:PRINT@PL-31,B1$;
620 X=X+VX:Y=Y+VY:PL=NP
670 PRINT@PL,PL$;:PRINT@PL-31,PP$;
680 GOSUB800
690 NEXTDU
710 RETURN
799 REM **SENTINEL ATTACK**
800 IFWGTHEN870
805 NT=DT+FL:IFRND(LV)=1THENNT=DT+(32*SGN(PL-DT))
810 AP=PEEK(MC+NT):IFAP=96THEN830
820 IFAP=OTHENFL=FL*-1:GOTO870
825 IFAP=110THENWG=1:PRINT@DT,B1$;:PRINT@DS,B1$;:DS=0:PRINT@0,C$;:LF=LF+1:PRINT@480,LF;:GOTO870
827 IFAP=141THENLF=0:DU=TI
830 PRINT@DT,B1$;:PRINT@NT,SE$;
840 DT=NT
850 IFDSTHENGOSUB950:GOTO870
860 GOSUB900
870 RETURN
899 REM **SHOT**
900 DS=DT+32
920 IFPEEK(MC+DS)=OTHEN DS=0:GOTO940
930 PRINT@DS,SH$;
940 RETURN
950 TS=DS+32
960 IFPEEK(MC+TS)=128THENPRINT@DS,B1$;:DS=0:GOTO980
965 IFPEEK(MC+TS)=96THENPRINT@DS,B1$;:PRINT@TS,SH$;:DS=TS:GOTO980
970 PRINT@DS-1,SX$;:SOUND50,1:LF=LF-1:PRINT@480,LF;:PRINT@DS-1,B3$;
975 DS=0:IFLF<1THENDU=TI
980 RETURN
999 REM **MAIN PROGRAM**
1000 SC=0:LF=8:LV=1
1010 GOSUB300
1020 GOSUB500
1050 IFSC<49ANDLF>0THEN1010
1060 IFLF<1THENCLS:PRINT"YOUR SHIP HAS BEEN DESTROYED.":PRINT"LEVELS=";SC:GOTO1080
1070 SOUND100,10:CLS:PRINT"YOU HAVE ESCAPED FROM THE CAVE!"
1080 PRINT:PRINT"HIGH SCORE:";HS:PRINT"BY: ";NM$:PRINT
1090 IFSC>HSTHENINPUT"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"ORI$="y"THEN1000
2040 IFI$="N"ORI$="n"THEN2060
2050 GOTO2020
2060 END
