Cast adrift in space, and without fuel, you have only a beam weapon with which to defend yourself against the hostile nasties that assail you from all sides.
Your craft can be spun around to the left and right with the Z and X keys. Your beam is fired with RETURN, and if you're really desperate, you can always do your disappearing act by pressing your SPACE bar and visiting the void for a while.
5 REM**CHESHIRE CAT** BBC VERSION* 10 REM CONVERTED TO BBC MICRO BY C.R.TANNE R 20 DIMa$(2) 30 VDU 23,224,8,8,42,42,42,42,42,62 40 VDU 23,225,0,18,36,72,146,164,72,48 50 VDU 23,226,0,0,252,128,255,128,252,0 60 VDU 23,227,48,72,164,146,72,36,18,0 70 VDU 23,228,62,42,42,42,42,42,8,8 80 VDU 23,229,12,18,37,73,18,36,72,0 90 VDU 23,230,0,63,1,255,1,63,0,0 100 VDU 23,231,0,72,36,18,73,37,18,12 110 VDU 23,232,231,195,165,24,24,165,195,23 1 120 VDU 23,233,0,0,1,3,71,127,21,21 130 VDU 23,234,0,0,192,224,241,255,84,84 140 VDU 23,235,31,63,102,127,93,8,0,0 150 VDU 23,236,252,224,51,255,221,136,0,0 160 VDU 23,237,0,0,48,72,164,68,2,3 170 VDU 23,238,0,0,12,18,37,34,64,192 180 VDU 23,239,3,7,11,17,18,32,32,192 190 VDU 23,240,192,224,208,136,72,4,4,3 200 VDU 23,241,128,192,160,147,255,251,249, -1 210 VDU 23,242,1,3,5,201,-1,191,159,-1 220 VDU 23,243,127,96,96,48,56,28,15,3 230 VDU 23,244,254,6,6,12,28,56,240,192 240 VDU 23,245,-1,-1,-1,-1,-1,-1,-1,-1 250 MODE 7:VDU 23;8202;0;0;0;:GOSUB 1670 260 hs=0:h$="" 270 MODE 1:VDU 23;8202;0;0;0;28,4,27,35,4 280 GOSUB 1610 290 IF INKEY(-67) AND p<151 THEN p=p+1 300 IF INKEY(-67) AND p=151 THEN p=p-7 310 IF INKEY(-98) AND p>144 THEN p=p-1 320 IF INKEY(-98) AND p=144 THEN p=p+7 330 COLOUR 2:PRINT TAB(15,11);CHR$(p+80) 340 IF INKEY(-99) THEN GOSUB 1350 350 IF b<>0 AND INKEY(-74) THEN GOSUB 880 360 ON t-1 GOSUB 410,450,500,570,600,600,71 0,780 370 A=FNscreen(15,11):IF (A>127 AND A<136) OR (A>223 AND A<232) THEN ELSE GOSUB 1540 380 ti=ti-1:COLOUR 3:PRINT TAB(28,0);t1;" " :IF ti=0 THEN PRINT TAB(25,0);"TI:";ti:GOTO 1 430 390 IF t1-ti>=29 THEN GOSUB 1270 400 GOTO 290 410 y=y+2:x=x+2:IF y>=21 THEN Y=1 420 IF x>31 THEN x=0 430 PROCover(x1,y1,CHR$(233)+CHR$(234),0):P ROCover(x1,y1+1,CHR$(235)+CHR$(236),0):PROCov er(x,y,CHR$(233)+CHR$(234),1):PROCover(x,y+1, CHR$(235)+CHR$(236),1) 440 y1=y:x1=x:RETURN 450 y=INT(RND(3)/2-RND(3)/2):x=x+2:IF y<=21 THEN y=1 460 IF y<=0 THEN y=20 470 IF x=30 THEN x=0 480 PROCover(x1,y1,CHR$(233)+CHR$(234),0):P ROCover(x1,y1+1,CHR$(235)+CHR$(236),0):PROCov er(x,y,CHR$(233)+CHR$(234),1):PROCover(x,y+1, CHR$(235)+CHR$(236),1) 490 y1=y:x1=x:RETURN 500 y=y+RND(3)-RND(3):x=x+RND(3)-RND(3) 510 IF x<0 THEN x=30 520 IF x>30 THEN x=0 530 IF y>20 THEN y=1 540 IF y<1 THEN y=20 550 PROCover(x1,y1,CHR$(237)+CHR$(238),0):P ROCover(x1,y1+1,CHR$(239)+CHR$(240),0):PROCov er(x,y,CHR$(237)+CHR$(238),1):PROCover(x,y+1, CHR$(239)+CHR$(240),1) 560 y1=y:x1=x:RETURN 570 y=y-3:IF y<1 THEN x=x+RND(7)+3:y=20:IF x>30 THEN x=RND(5) 580 PROCover(x1,y1,CHR$(237)+CHR$(238),0):P ROCover(x1,y1+1,CHR$(239)+CHR$(240),0):PROCov er(x,y,CHR$(237)+CHR$(238),1):PROCover(x,y+1, CHR$(239)+CHR$(240),1) 590 y1=y:x1=x:RETURN 600 de=de+1 610 IF de=5 THEN y=RND(20)+1:x=RND(30)+1:de =0 620 y=y+RND(2)-RND(2):x=x+RND(2)-RND(2):IF y<1 OR y>20 OR x<0 OR x>30 THEN de=5:GOTO 610 630 PROCover(x1,y1,CHR$(241)+CHR$(242),0):P ROCover(x1,y1+1,CHR$(243)+CHR$(244),0):PROCov er(x,y,CHR$(241)+CHR$(242),1):PROCover(x,y+1, CHR$(243)+CHR$(244),1) 640 y1=y:x1=x 650 RETURN 660 y=y+RND(2)-RND(2)-(y<11)+(y>11):x=x+2 670 IF x>30 THEN x=0 680 IF y>20 OR y<1 THEN y=11 690 PROCover(x1,y1,CHR$(242)+CHR$(241),0):P ROCover(x1,y1+1,CHR$(240)+CHR$(239),0):PROCov er(x,y,CHR$(242)+CHR$(241),1):PROCover(x,y+1, CHR$(240)+CHR$(239),1) 700 y1=y:x1=x:RETURN 710 y=y+di:x=x+2:de=de+1:IF de=5 THEN de=0: di=-di 720 IF y<1 THEN y=20 730 IF y>20 THEN y=1 740 IF x>30 THEN x=0 750 PROCover(x1,y1,CHR$(242)+CHR$(241),0):P ROCover(x1,y1+1,CHR$(240)+CHR$(239),0):PROCov er(x,y,CHR$(242)+CHR$(241),1):PROCover(x,y+1, CHR$(240)+CHR$(239),1) 760 y1=y:x1=x 770 RETURN 780 y=y+di:x=x+de 790 IF x>30 THEN x=0 800 IF y<1 THEN y=20 810 IF y>20 THEN y=1 820 IF RND(10)>8 THEN GOTO 860 830 IF de=0 THEN de=2 840 IF di=0 THEN di=2 850 IF RND(10)>5 THEN di=-di 860 PROCover(x1,y1,CHR$(232)+CHR$(232),0):P ROCover(x1,y1+1,CHR$(232)+CHR$(232),0):PROCov er(x,y,CHR$(232)+CHR$(232),1):PROCover(x,y+1, CHR$(232)+CHR$(232),1) 870 y1=y:x1=x:RETURN 880 b=b-1:COLOUR 3:PRINT TAB(19,0);b;" " 890 IF p=144 THEN g1=124:f1=88:f=78:g=0 900 IF p=145 THEN g1=128:f1=88:f=78:g=78 910 IF p=146 THEN g1=128:f1=83:f=0:g=126 920 IF p=147 THEN g1=128:f1=79:f=-78:g=78 930 IF p=148 THEN g1=123:f1=79:f=-78:g=0 940 IF p=149 THEN g1=119:f1=79:f=-78:g=-78 950 IF p=150 THEN g1=119:f1=84:f=0:g=-118 960 IF p=151 THEN g1=119:f1=84:f=78:g=-78 970 VDU29,g1*4+128;f1*4+192; 980 xc=g/64:yc=f/64:hit=0 990 GCOL0,3:SOUND &10,-15,6,15 1000 FOR A%=1 TO 64:X%=xc*A%*4:Y%=yc*A%*4:IF POINT(X%,Y%)=1 THEN hit=1:A%=64:NEXT:GOTO 10 20 1010 PLOT 69,X%,Y%:NEXT 1020 GCOL0,0:SOUND &10,0,0,0 1030 FOR A%=1 TO 64:X%=xc*A%*4:Y%=yc*A%*4:PL OT 69,X%,Y%:NEXT 1040 VDU29,0;0; 1050 IF hit<>0 THEN GOTO 1080 1060 IF b=0 THEN COLOUR 3:PRINT TAB(16,0);"S H:";b:GOTO 1430 1070 RETURN 1080 PROCover(x,y,a$(1),0):PROCover(x,y+1,a$ (2),0) 1090 hit=0:sc=sc+o:COLOUR 3:PRINT TAB(3,0);s c 1100 FOR f=1 TO 4:FOR i=2 TO 0 STEP -2 1110 IF y-f>=1 AND x-f>=0 THEN PROCover( x-f,y-f,MID$(a$(1),1,1),i) 1120 IF y+f<=21 AND x-f>=0 THEN PROCover (x-f,y+f,MID$(a$(2),1,1),i) 1130 IF y-f>=0 AND x+f<=31 THEN PROCover (x+f,y-f,MID$(a$(1),2,1),i) 1140 IF y+f<=21 AND x+f<=31 THEN PROCove r(x+f,y+f,MID$(a$(2),2,1),i) 1150 SOUND 1,-15,f*4+100,1:NEXT:NEXT 1160 COLOUR 2:PRINT TAB(15,11);CHR$(p+80) 1170 IF b=0 THEN COLOUR 3:PRINT TAB(16,0);"S H:";b:GOTO 1430 1180 t=RND(7)+2:y=RND(20)+1:x=0 1190 y1=y:x1=x:t1=ti 1200 IF t=3 OR t=2 THEN a$(1)=CHR$(233)+CHR $(234):a$(2)=CHR$(235)+CHR$(236):o=(20 AND t= 2)+(10 AND t=3) 1210 IF t=4 OR t=5 THEN a$(1)=CHR$(237)+CHR$ (238):a$(2)=CHR$(239)+CHR$(240):o=(25 AND t=4 )+(10 AND t=5) 1220 IF t=6 THEN a$(1)=CHR$(241)+CHR$(242):a $(2)=CHR$(243)+CHR$(244):de=0:o=30 1230 IF t=7 OR t=8 THEN a$(1)=CHR$(242)+CHR$ (241):a$(2)=CHR$(240)+CHR$(239):o=(25 AND t=8 )+(20 AND t=7):de=0:di=-2 1240 IF t=9 THEN a$(1)=CHR$(232)+CHR$(232):a $(2)=CHR$(232)+CHR$(232):de=2:di=0:o=20 1250 PROCover(x,y,a$(1),0):PROCover(x,y+1,a$ (2),0) 1260 RETURN 1270 d=x*8+(16 AND x<=15)+(x>15) 1280 GCOL3,3:PLOT 69,d*4+128,((21-y)*8)*4+19 2:PLOT 1,((124-d)/3)*4,((84-(21-y)*8)/3)*4 1290 SOUND 1,-15,100,1:PLOT 1,((124-d)/3)*4, ((84-(21-y)*8)/3)*4 1300 SOUND 1,-15,130,1:PLOT 1,((124-d)/3)*4, ((84-(21-y)*8)/3)*4 1310 SOUND 1,-15,160,1:PLOT 69,d*4+128,((21- y)*8)*4+192:PLOT 1,((124-d)/3)*4,((84-(21-y)* 8)/3)*4 1320 SOUND 1,-15,190,1:PLOT 1,((124-d)/3)*4, ((84-(21-y)*8)/3)*4 1330 SOUND 1,-15,210,1:PLOT 1,((124-d)/3)*4, ((84-(21-y)*8)/3)*4 1340 GOTO 1540 1350 ti=ti-30:t1=t1-30:COLOUR 3:PRINT TAB(28 ,0);ti;" ":IF ti<=0 THEN PRINT TAB(25,0);"TI: 0 ":GOTO 1430 1360 FOR g=7 TO 0 STEP -1 1370 COLOUR 2:PRINT TAB(15,11);CHR$(p+80) 1380 SOUND 1,-15,g*3+100,1:NEXT g 1390 PRINT TAB(15,11);" " 1400 FOR f=1 TO 8:FOR g=1 TO 10:NEXT g:ON t- 1 GOSUB 410,450,500,570,600,660,710,780:NEXT f 1410 FOR g=0 TO 5:COLOUR 2:PRINT TAB(15,11); CHR$(p+80):SOUND 1,-15,100+g*3,1:NEXT g 1420 RETURN 1430 FOR g=1 TO 7 1440 FOR x=1 TO 21 1450 SOUND 1,-15,80,0:NEXT x:NEXT g 1460 COLOUR 3:PRINT TAB(11,8);"GAME OVER";TA B(0,0);"SC:";sc:*FX15,1 1470 IF sc<=hs THEN GOTO 1500 1475 FORA=1 TO 2000:NEXT 1480 hs=sc:PRINT TAB(1,11);"WELL DONE - A NE W HIGH SCORE!!" 1490 PRINT TAB(4,13);"PLEASE ENTER YOUR NAME .":INPUT h$:FOR f=1 TO 50:NEXT f:GOTO 1510 1500 PRINT TAB(1,11);"THE HIGH SCORE IS ";hs ;" POINTS.";TAB(1,12);"BY ";h$ 1510 PRINT TAB(2,16);"PRESS ANY KEY TO PLAY AGAIN." 1520 IF INKEY$(1000)="" THEN TO 1520 1530 SOUND 1,-15,250,1:GOTO 270 1540 li=li-1:PRINT TAB(12,0);li 1550 FOR f=1 TO 5:FOR g=144 TO 151 1560 COLOUR 3:PRINT TAB(15,11);CHR$(g+80 ):SOUND 1,-15,f+80,1 1570 NEXT g:NEXT f 1580 IF li=0 THEN COLOUR 3:PRINT TAB(9,0);"L I:";li:GOTO 1430 1590 PROCover(x,y,a$(1),0):PROCover(x,y+1,a$ (2),0):PRINT TAB(15,11);" " 1600 GOTO 1180 1610 GCOL 0,3:FOR f=1 TO 200:PLOT 69,RND(128 0),RND(1024):NEXT f 1620 p=144:ti=500:b=100:sc=0:li=5:hit=0 1630 COLOUR 3:PRINT TAB(0,0);"SC: LI: SH: TI: " 1640 PRINT TAB(3,0);sc;TAB(12,0);li;TAB(19,0 );b;TAB(28,0);ti 1650 SOUND 1,-15,70,1 1660 GOTO 1180 1670 PRINT TAB(0,7);CHR$141;CHR$129;"--CHESH IRE CATS AND OTHER NASTIES!--"'CHR$141;CHR$13 1;"--CHESHIRE CATS AND OTHER NASTIES!--" 1680 PRINT '''TAB(5);CHR$(133);"Program desi gn & software by" 1690 PRINT ''TAB(5);CHR$141;CHR$129;CHR$136; "P A U L S T A N L E Y"'TAB(5);CHR$141;CHR $131;CHR$136;"P A U L S T A N L E Y" 1700 TIME=0:REPEAT UNTIL TIME>500:CLS 1710 PRINT CHR$141;CHR$129;"--CHESHIRE CATS AND OTHER NASTIES!--"'CHR$141;CHR$131;"--CHES HIRE CATS AND OTHER NASTIES!--" 1720 PRINT '''''" They placed me in spa ce. Withoutengines, just a laser."; 1730 PRINT " Shoot the nastiesthey said. I' d like to see them do it."; 1740 PRINT "Twist left with";CHR$133;"Z";CHR $135;". Right with";CHR$133;"X";CHR$135;", w eremy instructions. "; 1750 PRINT " They told me toblast'em w ith";CHR$133;" <RETURN>";CHR$135;", and that if Igot into trouble, I could press";CHR$133 ;"<SPACE>.God only knows what it does. "; 1760 PRINT ''''TAB(10);CHR$141;CHR$129;"Plea se help me!"'TAB(10);CHR$141;CHR$129;"Please help me!"'TAB(2,24);CHR$136;"If your prepared to press any key.";:*FX 15,1 1770 IF INKEY$(1000)="" THEN GOTO 1770 1780 SOUND 1,-15,240,2:RETURN 1790 DEFPROCover(X%,Y%,A$,C%) 1800 VDU 5:GCOL0,0:MOVE X%*32+128,1023-(Y%*3 2+128):PRINT STRING$(LEN(A$),CHR$245):MOVE X% *32+128,1023-(Y%*32+128):GCOL 0,C%:PRINT A$:V DU 4 1810 ENDPROC 1820 DEF FNscreen(X%,Y%) 1830 VDU 31,X%,Y%:A%=135:C=USR(&FFF4):C=(C A ND &FFFF) DIV &100 1840 =C