10 MODE 1:CALL &BC02:FOR a=1 TO 3:PEN 3:LOCATE 14,a:PRINT STRING$(11,127);:NEXT:PEN 1:LOCATE 16,2:PRINT "CAVERNS":LOCATE 6,7:PRINT"Use the joystick or curser";:LOCATE 13,9:PRINT"Keys to thrust":LOCATE 10,11:PRINT"and the ship will be"
20 LOCATE 5,13:PRINT"moved in the other direction":PEN 2:LOCATE 7,17:PRINT"Todays furthest distance is :":LOCATE 17,19:PEN 3:PRINT hid;"m";:LOCATE 14,24:PEN 1:PRINT"Press any key":WHILE INKEY$<>"":WEND:WHILE INKEY$="":WEND:CLS:dis=0
30 INK 0,0:BORDER 0:INK 2,15:LOCATE 1,23:PRINT"Energy"SPACE$(16)"Distance  Screens":PEN 3:PRINT STRING$(20,143);:en=320:x=0:y=245:x1=0:y1=0:screens=0:d=0:ship$=CHR$(231):bonus=0:wipe$=CHR$(32)
40 d=135:FOR a=1 TO 640 STEP 2:MOVE a,50:DRAW a,50+d,2:MOVER 0,100:DRAW a,400:e=INT(RND*MIN(a/2,12))+1:IF d+e>185 THEN d=d-e/2 ELSE IF d-e<35 THEN d=d+e/2 ELSE IF RND<0.5 THEN d=d+e ELSE d=d-e
50 NEXT:TAG:PLOT -5,-5,1:WHILE en<>0:d=bonus+(screens*640)+x:MOVE x,y:PRINT" ";:x=x+x1:y=y+y1:IF TEST(x+18,y+2)=0 AND TEST(x+17,y-17)=0 AND TEST(x-2,y-18)=0 AND TEST(x-2,y-2)=0 THEN MOVE x,y:PRINT ship$; ELSE en=0:GOTO 80
60 IF INKEY(0)=0 OR JOY(0)=1 THEN y1=y1-1:en=en-2:GOSUB 90 ELSE IF INKEY(2)=0 OR JOY(0)=2 THEN y1=y1+1:en=en-2:GOSUB 90 ELSE IF INKEY(1)=0 OR JOY(0)=8 THEN x1=x1-1:en=en-2:GOSUB 90 ELSE IF INKEY(8)=0 OR JOY(0)=4 THEN x1=x1+1:en=en-2:GOSUB 90
70 IF x>640 THEN x1=0:y1=0:x=0:y=245:screens=screens+1:TAGOFF:FOR a=1 TO en STEP 4:LOCATE 24,24:PRINT(640*screens)+a;:SOUND 1,(en+25)-a,1,7:NEXT:bonus=bonus+en:TAG
80 y1=y1-0.35:TAGOFF:LOCATE 24,24:PEN 1:PRINT d;"m";:LOCATE 35,24:PRINT screens;:TAG:WEND:FOR a=1 TO 500 STEP 2:SOUND 1,a+100,1,7:INK 0,RND*15:NEXT:INK 0,0:MOVE x,y:PRINT CHR$(238);:TAGOFF::PRINT CHR$(22)+CHR$(1);:GOTO 100
90 SOUND 1,1500,5,5:MOVE en,30:PRINT " ";:RETURN
100 LOCATE 8,2:PEN 0:PRINT"YOUR SHIP HAS CRASHED !!":LOCATE 3,4:PEN 3:PRINT"BUT YOU SCORED A DISTANCE OF :";D;"m";:IF d>hid THEN hid=d:PEN 1:PRINT SPACE$(12)"THE BEST YET !!":CALL &BB18:GOTO 10 ELSE CALL &BB18:GOTO 10