Space-Commando is a text adventure game set in space, where the player pilots the ZX-Firetron in pursuit of the evil Dr. Zabar on the planet Zircon-12. The game uses a two-word parser implemented partly in machine code (embedded in REM line 1) that tokenises player input by POKEing characters into specific memory addresses and calling USR 16530. Room descriptions, object handling, conditional logic, and actions are driven by encoded string arrays (M$, C$, A$, O$), making the engine data-driven and compact. Game state is tracked through numeric arrays S() for flags, C() for counters, and O() for object locations, with negative O() values indicating carried items. A save/restore mechanism is provided via SAVE with a user-supplied filename, and the SLOW/FAST commands are used to manage display speed during text output and processing.
Program Analysis
Program Structure
The program is organized into distinct functional blocks by line number ranges:
| Line Range | Purpose |
|---|---|
| 1–3 | Machine code (REM line 1), vocabulary data (REM line 2), mode setup |
| 10–30 | Title screens and instructions |
| 31–90 | Initialisation: room, arrays, object loading, saved-game branch |
| 100–160 | Main game loop: shield/damage checks, room description dispatch |
| 200–500 | Room description and object listing |
| 1000–1910 | Command acceptance and movement resolution |
| 2000–2975 | Conditional evaluation engine |
| 3000–3240 | Action execution engine |
| 4000–5600 | Action subroutines (inventory, pick up, drop, flags, counters, etc.) |
| 6000–6640 | Input parser (word extraction and machine-code lookup) |
| 7000–7255 | Narrative message subroutines |
| 8000–8185 | Room description subroutines (one per room, spaced by 10) |
| 9000–9999 | Array dimension stubs, save/restore, restart |
Machine Code in REM Line 1
Line 1 contains a machine code routine embedded as raw bytes in a REM statement, a standard technique for storing executable code at a known, stable address. The routine is invoked at line 6122 via LET Q=USR 16530 (the address immediately after the REM token and length bytes). Input characters are POKEd into addresses 16520–16523 (four characters of a word), and the result — a two-character numeric code — is returned by PEEKing addresses 16526–16527.
The machine code performs a binary search or sequential scan of the vocabulary packed into REM line 2, matching the four-character word stem against entries like EAST, WEST, FIRE, SHOO, etc., and returning a two-digit code (e.g. 02 for EAST, 11 for FIRE). The vocabulary in line 2 is packed as fixed-width records: a two-digit code followed by a four-character stem.
Two-Word Parser
The parser at lines 6000–6640 extracts up to two words from the player’s input string Y$. Each word is read character by character (subroutine 6500 advances through non-space characters; subroutine 6600 skips leading spaces) into a four-character buffer W$. The machine code lookup converts this to a numeric string stored in P$(W) for W=1 (verb) and W=2 (noun). An unrecognised word leaves P$(W) as "00".
Line 6133–6135 validates that the returned code falls within the range 28–37 (ASCII digits ‘0’–’9′ offset by 28 in the ZX character set), rejecting invalid matches by resetting P$(W) to "00".
Data-Driven Action/Condition Engine
The engine at lines 2000–3240 is a compact interpreter for encoded game logic stored in string arrays:
A$()— action table entries, each up to 31 characters: 2-char verb code, 2-char noun code (or00for wildcard), then a condition/action string.C$()— unconditional (always-checked) entries evaluated first whenT=1.M$()— movement table, one entry per room, encoding direction codes and destination room numbers as 4-character groups.
Condition/action strings are parsed character by character. A period "." acts as a delimiter separating the condition block from the action block and terminating the action block. Each condition or action token is three characters: one type byte (decoded as TYPE = CODE(char) - 38) and a two-digit numeric argument. Condition subroutines live at 2900 + TYPE*10; action subroutines at 4000 + TYPE*100.
Condition and Action Dispatch
| TYPE offset | Condition (GOSUB 2900+) | Action (GOSUB 4000+) |
|---|---|---|
| 0 | Current room = N | Print inventory (CLS + list carried items) |
| 1 | Object N in room or carried | Pick up object N (if capacity allows) |
| 2 | Object N not in room and not negative | Drop object N |
| 3 | Object N carried (O(N)<0) / flag S(N) set | Print message (GOSUB 7000+N*10) |
| 4 | Flag S(N) set | Set flag S(N)=1 |
| 5 | Flag S(N) not set | Clear flag S(N)=0 |
| 6 | Counter C(N)=1 | Set counter C(N) from next two chars of E$ |
| 7 | Random % ≤ N | Swap objects N and N+1 |
| 8 | — | Move object N to current room |
| 9 | — | Destroy object N (O(N)=0, adjust carry count) |
| 10 | — | Teleport player to room N |
| 11 | — | Print “OKAY”; BREAK=1000 (redescribe) |
| 12 | — | BREAK=1000 (redescribe, no message) |
| 13 | — | BREAK=1100 (re-prompt input) |
| 14 | — | BREAK=100 (return to main loop top) |
| 15 | — | Save/quit dialog |
The BREAK variable carries a line number for computed GOTO BREAK at line 3220, enabling actions to jump directly to the describe loop, the input prompt, or the top of the main loop.
Object and State Arrays
O(X)— location of object X: positive = room number, 0 = destroyed, negative = carried by player.S(N)— boolean flags (shield active, gravity belt, etc.).C(N)— countdown counters (e.g. shield duration, after-burner fuel); decremented each turn at lines 110 and 140.P$(2,2)— two-slot string array holding the current verb and noun codes as two-character strings.
Room and Message Dispatch
Room descriptions are accessed via GOSUB 8000 + ROOM*10 (line 220), placing each room’s PRINT block at a predictable line number. Similarly, narrative messages are at GOSUB 7000 + N*10 (line 4310), giving 26 possible message slots. This computed-GOSUB pattern avoids any need for a dispatch table and is a classic Sinclair BASIC space-saving idiom.
Save and Restore
Saving (lines 9600–9670) prompts for an adventure name, POKEs address 16437 to 255 (setting the system variable that controls the SAVE target), then executes SAVE N$ followed by GOTO 2 — which would re-execute the REM/data lines and re-enter the game. Loading a saved game is handled at line 33 by branching to line 90 (skipping the array initialisation at lines 37–80), relying on the LOAD having restored the variable state.
Notable Anomalies
- Line 50 uses
DIM O(O)—Oas a variable rather than a literal. This relies onObeing set as a numeric constant elsewhere (likely in the data loaded from tape or defined before line 9000’sDIM Q(O)), and is a deliberate space-saving technique rather than a bug. - Line 2940 contains two consecutive assignments without a colon separator:
LET OK=(O(N)<0)followed immediately byLET OK=S(N). The first assignment is dead code; onlyS(N)is returned. This appears to be a copy-paste error merging two separate condition types. - Lines 9000–9530 contain
DIMstatements after aSTOP. These are unreachable during normal play and appear to be remnants of a development scaffold or initialisation stub that was superseded by the data-loading mechanism at lines 50–80. - The
SLOWat line 3 andFASTat lines 95 and 31 are used deliberately:SLOWenables the display during text output, whileFASTsuppresses it during computation-heavy phases.
Content
Source Code
1 REM 924026262626363A2E3926261D1F2626ED438240 0 0 0 021F840 13232 0 0 0 0 03D3C 6 1153EEFBECAEA403D3A88402310FDEDA1 6 5C2A940 53A8940EDA1C2A940 53A8A40EDA1C2A940 53A8B40EDA1C2A940 6 62B10FD7E328E40237E328F404B8240C9
2 REM 02E 02EAST02E 03W 03WEST04N 04NORT05S 05SOUT06LEAV06EXIT07ENTE11FIRE11SHOO09REMO10EMIT11WITH11USE 11TURN12INVE13QUIT14DESC15KILL15HIT 15STRA16GET 16TAKE17LOOK19OPEN20AFTE21SHIE22STEA23LASE23PHOT24THER25DEMA26GRAV27FERR28PUT 28DROP29CRUI29SHIP30TELE30COMM31CASE32TUBE33PANE34DROI34BODY35DOCT35DR 35ZABA11RAIS LOAD AAAAAAAAA
3 SLOW
10 PRINT ,,,," WELCOME TO "," %S%P%A%C%E-%C%O%M%M%A%N%D%O ",,," (C) TY-SOFT 1982 ",,,"YOU ARE PILOTING THE ZX-","FIRETRON THROUGH SPACE IN","QUEST OF THE EVIL DR. ZABAR","IN HIDING WITH HIS ANDROID","ARMY ON ZIRCON-12.",,,"YOUR MISSION IS TO %S%E%A%R%C%H AND","%D%E%S%T%R%O%Y THE VILE DR. YOUR","SHIP IS EQUIPPED WITH: ",,,"STEATH-AVIONICS,PHOTON-LASER,","SHIELD AND AFTER-BURNER.",,," DEPRESS ANY KEY TO START"
12 LET U$=INKEY$
14 IF U$="" THEN GOTO 12
16 CLS
18 PRINT ,,,,"PLEASE INSTRUCT THE COMPUTER","WITH SHORT SENTENCES.","SOME USEFUL WORDS ARE: GET","TAKE,PUT,TURN,FIRE,LEAVE,","OPEN,WITH AND LOTS MORE. ",,," IF YOU GET INTO %T%R%O%U%B%L%E TRY:",,,"DESCRIPTION - WILL GIVE YOUR","LOCATION ",,,"INVENTORY - WILL TELL YOU","WHAT OBJECTS YOU ARE CARRYING",,,"QUIT - WILL END THE GAME,","GIVING YOU THE OPTION TO","RESTART OR TO SAVE THE GAME"," ---GOOD LUCK--- ",,," DEPRESS ANY KEY TO START."
20 LET U$=INKEY$
22 IF U$="" THEN GOTO 20
23 CLS
25 PRINT ,,,," IS THIS A PREVIOUSLY SAVED","GAME?(Y/N) "
27 INPUT L$
29 PRINT L$
30 CLS
31 FAST
33 IF CHR$ CODE L$="Y" THEN GOTO 90
36 CLS
37 LET ROOM=1
38 DIM S(10)
39 DIM C(5)
40 DIM P$(2,2)
50 DIM O(O)
60 FOR X=1 TO O
70 LET O(X)=Q(X)
80 NEXT X
90 CLS
95 FAST
100 IF NOT S(2) THEN GOTO 200
110 IF C(2) THEN LET C(2)=C(2)-1
120 IF S(3) THEN GOTO 200
130 PRINT "--YOU ARE SUSTAINING DAMAGE--","--SHIELD MAY BECOME USEFUL--"
140 IF C(3) THEN LET C(3)=C(3)-1
150 GOTO 1000
160 REM DESCRIBE ROOM
210 PRINT
220 GOSUB 8000+ROOM*10
300 LET F=0
310 FOR X=1 TO O
320 IF O(X)<>ROOM THEN GOTO 500
330 IF F THEN GOTO 400
340 PRINT ,,"THERE IS ALSO:"
350 LET F=1
400 PRINT " ";O$(X)
500 NEXT X
1000 REM ACCEPT COMMAND
1010 LET T=1
1020 GOTO 2000
1100 IF C(1) THEN LET C(1)=C(1)-1
1110 IF C(4) THEN LET C(4)=C(4)-1
1120 PRINT ,,"%*"
1130 INPUT Y$
1140 CLS
1150 LET Y=0
1160 PRINT ,,"%*"
1170 LET P$(2)="00"
1200 FOR W=1 TO 2
1210 GOSUB 6000
1220 IF Y>=LEN Y$ THEN GOTO 1300
1230 IF P$(W)="00" THEN GOTO 1210
1240 NEXT W
1300 IF P$(1)<>"00" THEN GOTO 1600
1310 PRINT " EXCUSE ME ?"
1320 GOTO 100
1600 REM CHECK FOR MOVEMENT
1610 LET Z=1
1620 LET T$=M$(ROOM)(Z TO Z+1)
1630 IF T$="00" THEN GOTO 1900
1640 IF T$<>P$(1) THEN GOTO 1700
1650 LET ROOM=VAL (M$(ROOM)(Z+2 TO Z+3))
1660 GOTO 100
1700 LET Z=Z+4
1710 GOTO 1620
1900 LET T=0
1910 LET MATCH=0
2000 REM CHECK FOR CONDITIONALS
2010 LET CP=0
2100 LET CP=CP+1
2110 IF NOT T THEN GOTO 2300
2120 LET E$=C$(CP)
2130 GOTO 2600
2300 IF CP<=A THEN GOTO 2400
2310 IF MATCH THEN GOTO 1000
2320 PRINT "YOU CANT";
2330 IF VAL (P$(1))<6 THEN PRINT " GO THAT WAY";
2340 PRINT "."
2350 GOTO 100
2400 IF A$(CP)(1 TO 2)<>P$(1) THEN GOTO 2100
2410 LET Y$=A$(CP)(3 TO 4)
2420 IF Y$<>"00" AND Y$<>P$(2) THEN GOTO 2100
2430 LET E$=A$(CP)(5 TO )
2600 REM CONDITIONS
2610 LET E=1
2700 IF E$(E)="." THEN GOTO 3000
2710 LET TYPE=CODE (E$(E))-38
2720 LET N=VAL (E$(E+1 TO E+2))
2800 GOSUB 2900+TYPE*10
2810 IF NOT OK THEN GOTO 2100
2820 LET E=E+3
2830 GOTO 2700
2900 LET OK=(N=ROOM)
2905 RETURN
2910 LET OK=(O(N)=ROOM OR O(N)<0)
2915 RETURN
2920 LET OK=(O(N)<>ROOM AND O(N)>=0)
2925 RETURN
2930 LET OK=(O(N)<0)
2940 LET OK=S(N)
2945 RETURN
2950 LET OK=(NOT S(N))
2955 RETURN
2960 LET OK=(C(N)=1)
2965 RETURN
2970 LET OK=((INT (RND*100)+1)<=N)
2975 RETURN
3000 REM ACTIONS
3010 LET MATCH=1
3020 LET E=E+1
3100 IF E$(E)="." THEN GOTO 2100
3110 LET TYPE=CODE (E$(E))-38
3120 IF E$(E+1)<>"." THEN LET N=VAL (E$(E+1 TO E+2))
3200 LET BREAK=0
3210 GOSUB 4000+TYPE*100
3220 IF BREAK THEN GOTO BREAK
3230 LET E=E+3
3240 GOTO 3100
4000 CLS
4002 PRINT
4010 PRINT "YOU ARE CARRYING:"
4020 LET F=1
4030 FOR X=1 TO O
4040 IF O(X)>=0 THEN GOTO 4070
4045 PRINT " ";O$(X)
4050 LET F=0
4070 NEXT X
4080 IF F THEN PRINT " NOTHING"
4090 LET BREAK=100
4095 RETURN
4100 IF S(1)<5 THEN GOTO 4140
4110 PRINT "YOU CANT CARRY ANY MORE"
4120 LET BREAK=100
4130 RETURN
4140 IF O(N)=-1 THEN GOTO 4180
4150 LET O(N)=-1
4160 LET S(1)=S(1)+1
4170 RETURN
4180 PRINT "YOU HAVE IT ALREADY"
4190 GOTO 4120
4200 IF O(N)=-1 THEN GOTO 4240
4210 PRINT "YOU DONT HAVE";O$(N)
4220 LET BREAK=100
4230 RETURN
4240 LET O(N)=ROOM
4250 LET S(1)=S(1)-1
4260 RETURN
4300 PRINT
4310 GOSUB 7000+N*10
4320 RETURN
4400 LET S(N)=1
4410 RETURN
4500 LET S(N)=0
4510 RETURN
4600 LET C(N)=VAL (E$(E+3 TO E+4))
4610 LET E=E+2
4620 RETURN
4700 LET X=O(N)
4710 LET O(N)=O(N+1)
4720 LET O(N+1)=X
4730 RETURN
4800 LET O(N)=ROOM
4810 RETURN
4900 IF O(N)<0 THEN LET S(1)=S(1)-1
4910 LET O(N)=0
4920 RETURN
5000 LET ROOM=N
5010 RETURN
5100 PRINT " OKAY"
5200 LET BREAK=1000
5210 RETURN
5300 LET BREAK=1100
5310 RETURN
5400 LET BREAK=100
5410 RETURN
5500 PRINT " ARE YOU SURE?(Y/N)",,,"Y = TO %S%A%V%E ",,,,"N = TO %R%E%S%T%A%R%T"
5510 INPUT W$
5520 PRINT W$
5525 LET BREAK=1100
5530 IF CHR$ CODE W$="Y" THEN GOTO 9600
5600 GOTO 9700
6000 REM REMOVE WORD
6010 DIM W$(4)
6015 LET P$(W)="00"
6020 GOSUB 6600
6025 IF END THEN RETURN
6030 FOR Q=1 TO 4
6040 LET W$(Q)=Y$(Y)
6050 GOSUB 6500
6060 IF END THEN GOTO 6100
6070 NEXT Q
6080 GOSUB 6500
6090 IF NOT END THEN GOTO 6080
6100 IF W$=" " THEN RETURN
6110 POKE 16526,128
6112 POKE 16527,128
6114 POKE 16520,CODE W$(1)
6116 POKE 16521,CODE W$(2)
6118 POKE 16522,CODE W$(3)
6120 POKE 16523,CODE W$(4)
6122 LET Q=USR 16530
6130 LET P$(W)(1 TO 1)=CHR$ PEEK 16526
6132 LET P$(W)(2 TO 2)=CHR$ PEEK 16527
6133 IF CODE P$(W)<28 OR CODE P$(W)>37 THEN GOTO 6136
6135 GOTO 6210
6136 LET P$(W)="00"
6210 RETURN
6500 LET Y=Y+1
6510 LET END=(Y>LEN Y$)
6520 IF END THEN RETURN
6530 LET END=(Y$(Y)=" ")
6540 RETURN
6600 LET Y=Y+1
6610 LET END=(Y>LEN Y$)
6620 IF END THEN RETURN
6630 IF Y$(Y)=" " THEN GOTO 6600
6640 RETURN
7000 REM ACTION MESSAGES
7010 PRINT "YOU CANNOT DO THAT"
7015 RETURN
7020 CLS
7022 PRINT "YOU ARE LOST TO THE INFINITE","VOID OF A BLACK HOLE.BETTER","LUCK NEXT TIME."
7025 RETURN
7030 CLS
7032 PRINT "YOU HAVE NEGLECTED TO ACTIVATE","YOUR ZX FIRETRON PROTECTIVE","SHEILD FOR INTERGALACTIC","TRAVEL. ",,,"--BETTER LUCK NEXT TIME--"
7035 RETURN
7040 CLS
7042 PRINT "YOU HAVE FORGOTTEN TO ACTIVATE","YOUR ANTI-GRAVITATIONAL BELT.","YOU HAVE FLOATED STRAIGHT UP","AND BEEN DETECTED BY AN ANDROID","GUARD WHO SHOOTS YOU. BETTER","LUCK NEXT TIME."
7045 RETURN
7050 PRINT "YOUR BODY TEMPERATURE IS","SERIOUSLY FLUCTUATING YOU","HAVE A SHORT TIME TO LIVE.","THINK FAST OR DIE."
7055 RETURN
7060 PRINT "YOUR LIFE SUPPORT SYSTEMS HAVE","DISINTEGRATED. YOUR MISSION","IS OVER BETTER LUCK NEXT TIME."
7065 RETURN
7070 CLS
7072 PRINT "YOU ARE CAGED,DRUGGED AND","BEING PREPARED FOR A","EXPERIMENTAL SURGICAL","PROCEDURE. YOU HAVE FAILED","YOUR MISSION. THE EVIL TERROR","OF THE MAD DOCTOR REIGNS."
7075 RETURN
7080 CLS
7082 PRINT "HERE IS A DISCARDED ANDROID","COMMUNICATIONS DEVICE."
7085 RETURN
7090 PRINT "SUDDENLY YOU ARE POUNCED ON","BY A CRAZED BAND OF...FLYING","MONKEES. VILE MUTANTS CREATED","BY THE DEPRAVED DOCTOR ZABAR","AS A DESTRUCTIVE DEPLOYMENT","FORCE. WILDLY SCREACHING","THEY RIP AT YOU FROM ALL","SIDES. THEY ARE RELENTLESS","AND YOU ARE DEFENSELESS BYE-BYE"
7095 RETURN
7100 PRINT "IN THE CASE IS A STRANGE","LOOKING TUBE THAT EMITS A","FAINT BEAM."
7105 RETURN
7110 PRINT "ANDROID SECURITY FORCES HAVE","DISCOVERED YOU. WHEN YOU TURNED","THE STRANGE ROD IN THEIR","DIRECTION IT DECOMPOSED THEM","INTO A MOLTEN PILE OF SILICON."
7115 RETURN
7120 PRINT "IT IS NOT EFFECTIVE"
7125 RETURN
7130 PRINT "WITH WHAT"
7135 RETURN
7140 CLS
7142 PRINT "YOU HAVE ENTERED A ROOM","FILLED WITH THE MAD DOCTORS","BOTCHED GENETIC EXPERIMENTS.","MUTANTS SURROUND YOU AND","BLUDGEON YOU TO DEATH."
7145 RETURN
7150 PRINT "YOU HAVE MANAGED TO SCATTER","THE MUTANTS USING THE TUBE.","LETS HOPE YOU DO NOT RUN ","INTO THEM AGAIN. EXITS ARE","EAST AND NORTH."
7155 RETURN
7160 PRINT "YOU ARE BADLY WOUNDED BY THE","DROID PATROL FORCES. YOU ARE","LOSING A LOT OF BLOOD AND","THIS QUEST WILL END SHORTLY","FOR YOU. BETTER LUCK NEXT TIME"
7165 RETURN
7170 PRINT "YOU HAVE DESTROYED THESE","ANDROIDS BUT THE MAD DOCTOR","HAS ESCAPED IN THE CONFUSION.","EXIT IS SOUTH. "
7175 RETURN
7180 CLS
7182 PRINT "YOU HAVE FROZEN TO %D%E%A%T%H",,," BETTER LUCK NEXT TIME"
7185 RETURN
7190 PRINT "YOU ARE TAKING HEAVY LASER","FIRE. A LASER BLAST DIRECTLY","UNDER YOU JOLTS YOU OFF","COURSE. ANDROID CRUISERS ARE","DIRECTLY ABOVE YOU."
7195 RETURN
7200 PRINT "YOU HAVE ENTERED A BARRACKS","FILLED WITH REMNANTS OF","BOTCHED GENETIC EXPERIMENTS.","MUTANT CREATURES SURROUND YOU."
7205 RETURN
7210 PRINT "WHEN YOU TURN THE TUBE ON","THE ANDROIDS IT.DECOMPOSES","THEM INTO A MOLTEN PILE OF","SILICON. LEAVING DR ZABAR","COMPLETELY DEFENSELESS."
7215 RETURN
7220 PRINT "THE MAD DR ZABARS REIGN ","OF TERROR IS NOW OVER. YOU","HAVE KILLED HIM GOOD SHOW.","EXIT IS NORTH"
7225 RETURN
7230 PRINT ,,,," ** CONGRATULATIONS ** ",,,"YOU HAVE RID THE UNIVERSE","OF THE INSIDIOUS DR ZABAR "
7235 RETURN
7240 CLS
7242 PRINT "YOU HAVE BEEN DETECTED UPON","ENTRY ANDROID SECURITY","PATROLS HAVE BLASTED YOUR SHIP",,,"--BETTER LUCK NEXT TIME--"
7245 RETURN
7250 PRINT "OKAY "
7255 RETURN
8000 REM ROOM DESCRIPTIONS
8010 PRINT "YOU ARE PILOTING THE ZX","FIRETRON THROUGH SPACE. AS YOU","APPROACH ZIRCON-12 YOU FEEL","A SUDDEN TURBULENCE. YOUR","SENSOR EQUIPMENT IS SHOWING","SIGNS OF MALFUNTIONING.","DIRECTIONALS PLOT A CLEAR","COURSE WEST."
8015 RETURN
8020 PRINT "YOU ARE IN THE EYE OF THE","METEOR STORM.METEORITES POUND","YOUR SHIP RELENTLESSLY.YOU","EXPERIENCE A GRAVATATIONAL","PULL TO THE SOUTH AND WEST"
8025 RETURN
8030 PRINT "YOU HAVE BEEN SUCKED INTO THE","CENTRIFUGAL FORCE OF A BLACK","HOLE. LIFE SUPPORT SYSTEMS ARE","FAILING SUDDENLY A METEORITE","SIDESWIPES YOUR SHIP."
8035 RETURN
8040 PRINT "YOU ARE SURROUNDED BY ANDROID","CRUISERS. YOU BLAST SOME WITH","YOUR PHOTON-LASER. STILL THEY","CONTINUE TO COME AT YOU.","DIRECTIONALS INDICATE A CLEAR","COURSE SOUTH."
8045 RETURN
8050 PRINT "SENSORTRON READINGS INDICATE","THE SECURITY FORCE FIELD OF","ZIRCON-12 IS AHEAD. YOU MUST","SLIP THROUGH AT POINTS NORTH","AND SOUTH."
8055 RETURN
8060 PRINT "YOU HAVE PENETRATED THE ALIEN","SECURITY FORCE FIELD. ALL OF","A SUDDEN YOUR ENGINE EXPLODES","AND YOU ARE ENGULFED IN FLAMES."
8065 RETURN
8070 PRINT "YOU HAVE PENETRATED THE","SECURITY FORCE SHIELD AND ARE","BOARDING YOUR SURFACE CRUISER.","EXITS LEAD SOUTH AND WEST."
8075 RETURN
8080 PRINT "THIS IS A DESERTED CRUISER","HANGER. THE ENTRANCE IS AT","THE END OF A LONG RUNWAY. A","SHUTTLE BAY IS RIGHT IN FRONT","OF THE ENTRANCE. "
8085 RETURN
8090 PRINT "A SUDDEN DROP IN TEMPERATURE","MAKES YOU REALIZE THAT YOU","HAVE STRAYED INTO THE ZIRCONIAN","ICE CAP. EXITS ARE NORTH","AND WEST"
8095 RETURN
8100 PRINT "YOU ARE IN THE SPACE LABORATORY","WALKING DOWN A CORRIDOR LINED","WITH CAGES. INTERGALACTIC","SPECIMINS OF THE MAD DOCTORS","PEER AT YOU,EXITS LEAD EAST","AND WEST "
8105 RETURN
8110 PRINT "THIS IS A THERMAL NUCLEAR","LAB WITH A HUGE REACTOR","CATHODE-RAY TUBES,SCANNERS","AND CAGES.ON A TABLE IS A ","LOCKED CASE.AN EXIT LEADS NORTH"
8115 RETURN
8120 PRINT "THIS IS THE GIANT GEODISIC","DOME.A ONCE VITAL NERVE CENTER","OF ZIRCONIAN LIFE IT STANDS","BEFORE YOU EERILY DESERTED","EXITS LEAD EAST AND SOUTH."
8125 RETURN
8130 PRINT "THE LIGHT LEADS TO A CHAMBER","WITH A LARGE SLIDING PANEL."
8135 RETURN
8140 PRINT "THIS IS THE BEGINNING OF","THE GREAT ZIRCONIAN DESERT.","YOU ENTER A LARGE CAVE AND","FIND YOURSELF FACE TO FACE","WITH THE EVIL DOCTOR AND HIS","PERSONAL DROID BODYGUARDS."
8145 RETURN
8150 PRINT "IN THE MIDDLE OF A SANDSTORM","IN THE GREAT ZIRCONIAN DESERT","YOU ARE TAKING HEAVY FIRE","FROM THE DREADED SCAT-RAIDERS","AN ELITE CORPS OF ANDROID","OFFICERS.PREPARE FOR BATTLE.","EXITS ARE LEAD SOUTH AND WEST"
8155 RETURN
8160 PRINT "YOU HAVE REACHED THE CONTROL","ROOM OF THE ZIRCONIAN LANDING","STATION. A VAULTED DOOR","SEPARATES YOU FROM THE SWITCH","THAT WILL DEACTIVATE THE","SECURITY SHIELD AND ALLOW THE","AFP FLEET TO LAND."
8165 RETURN
8170 PRINT "YOU ARE WELCOMED BY THE EVIL","DOCTOR ZABAR AND A GOON SQUAD","OF ANDROIDS. HE LAUGHINGLY","INFORMS YOU THAT HE PLANS TO","USE YOU AS PART OF A NEW","GENETIC EXPERIMENT. YOU ARE","ABOUT TO BECOME A PRISONER","THINK FAST."
8175 RETURN
8180 PRINT "YOU ARE TAKING HEAVY LASER","FIRE. A LASER BLAST DIRECTLY","UNDER YOU JOLTS YOU OFF","COURSE. ANDROID CRUISERS ARE","DIRECTLY ABOVE YOU."
8185 RETURN
9000 STOP
9040 DIM Q(O)
9050 DIM O$(O,16)
9330 DIM M$(18,32)
9430 DIM C$(C,21)
9530 DIM A$(A,31)
9600 CLS
9610 PRINT "ENTER ADVENTURE NAME"
9611 INPUT N$
9612 PAUSE 60
9613 PRINT ,,,,,"---%H%U%R%R%Y----"
9614 PAUSE 150
9630 PRINT ,,"START THE TAPE..."
9640 PAUSE 150
9645 POKE 16437,255
9650 CLS
9660 SAVE N$
9670 GOTO 2
9700 SLOW
9702 PRINT ,,"WOULD YOU LIKE TO START AGAIN?",,," DEPRESS ANY KEY TO RESTART"
9720 LET U$=INKEY$
9730 IF U$="" THEN GOTO 9720
9735 CLS
9740 GOTO 2
9999 STOP
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.




