Skip to navigation

Elite on the BBC Micro and NES

Text tokens

[BBC Micro cassette version]

ELITE RECURSIVE TEXT TOKEN FILE Produces the binary file WORDS9.bin that gets loaded by elite-loader.asm. The recursive token table is loaded at &1100 and is moved down to &0400 as part of elite-loader.asm, so it ends up at &0400 to &07FF.
ORG CODE_WORDS%
Name: CHAR [Show more] Type: Macro Category: Text Summary: Macro definition for characters in the recursive token table Deep dive: Printing text tokens
Context: See this macro on its own page References: This macro is used as follows: * QQ18 uses CHAR

The following macro is used when building the recursive token table: CHAR 'x' Insert ASCII character "x" To include an apostrophe, use a backtick character, as in CHAR '`'. See the deep dive on "Printing text tokens" for details on how characters are stored in the recursive token table.
Arguments: 'x' The character to insert into the table
MACRO CHAR x IF x = '`' EQUB 39 EOR RE ELSE EQUB x EOR RE ENDIF ENDMACRO
Name: TWOK [Show more] Type: Macro Category: Text Summary: Macro definition for two-letter tokens in the token table Deep dive: Printing text tokens
Context: See this macro on its own page References: This macro is used as follows: * QQ18 uses TWOK

The following macro is used when building the recursive token table: TWOK 'x', 'y' Insert two-letter token "xy" See the deep dive on "Printing text tokens" for details on how two-letter tokens are stored in the recursive token table.
Arguments: 'x' The first letter of the two-letter token to insert into the table 'y' The second letter of the two-letter token to insert into the table
MACRO TWOK t, k IF t = 'A' AND k = 'L' : EQUB 128 EOR RE : ENDIF IF t = 'L' AND k = 'E' : EQUB 129 EOR RE : ENDIF IF t = 'X' AND k = 'E' : EQUB 130 EOR RE : ENDIF IF t = 'G' AND k = 'E' : EQUB 131 EOR RE : ENDIF IF t = 'Z' AND k = 'A' : EQUB 132 EOR RE : ENDIF IF t = 'C' AND k = 'E' : EQUB 133 EOR RE : ENDIF IF t = 'B' AND k = 'I' : EQUB 134 EOR RE : ENDIF IF t = 'S' AND k = 'O' : EQUB 135 EOR RE : ENDIF IF t = 'U' AND k = 'S' : EQUB 136 EOR RE : ENDIF IF t = 'E' AND k = 'S' : EQUB 137 EOR RE : ENDIF IF t = 'A' AND k = 'R' : EQUB 138 EOR RE : ENDIF IF t = 'M' AND k = 'A' : EQUB 139 EOR RE : ENDIF IF t = 'I' AND k = 'N' : EQUB 140 EOR RE : ENDIF IF t = 'D' AND k = 'I' : EQUB 141 EOR RE : ENDIF IF t = 'R' AND k = 'E' : EQUB 142 EOR RE : ENDIF IF t = 'A' AND k = '?' : EQUB 143 EOR RE : ENDIF IF t = 'E' AND k = 'R' : EQUB 144 EOR RE : ENDIF IF t = 'A' AND k = 'T' : EQUB 145 EOR RE : ENDIF IF t = 'E' AND k = 'N' : EQUB 146 EOR RE : ENDIF IF t = 'B' AND k = 'E' : EQUB 147 EOR RE : ENDIF IF t = 'R' AND k = 'A' : EQUB 148 EOR RE : ENDIF IF t = 'L' AND k = 'A' : EQUB 149 EOR RE : ENDIF IF t = 'V' AND k = 'E' : EQUB 150 EOR RE : ENDIF IF t = 'T' AND k = 'I' : EQUB 151 EOR RE : ENDIF IF t = 'E' AND k = 'D' : EQUB 152 EOR RE : ENDIF IF t = 'O' AND k = 'R' : EQUB 153 EOR RE : ENDIF IF t = 'Q' AND k = 'U' : EQUB 154 EOR RE : ENDIF IF t = 'A' AND k = 'N' : EQUB 155 EOR RE : ENDIF IF t = 'T' AND k = 'E' : EQUB 156 EOR RE : ENDIF IF t = 'I' AND k = 'S' : EQUB 157 EOR RE : ENDIF IF t = 'R' AND k = 'I' : EQUB 158 EOR RE : ENDIF IF t = 'O' AND k = 'N' : EQUB 159 EOR RE : ENDIF ENDMACRO
Name: CONT [Show more] Type: Macro Category: Text Summary: Macro definition for control codes in the recursive token table Deep dive: Printing text tokens
Context: See this macro on its own page References: This macro is used as follows: * QQ18 uses CONT

The following macro is used when building the recursive token table: CONT n Insert control code token {n} See the deep dive on "Printing text tokens" for details on how characters are stored in the recursive token table.
Arguments: n The control code to insert into the table
MACRO CONT n EQUB n EOR RE ENDMACRO
Name: RTOK [Show more] Type: Macro Category: Text Summary: Macro definition for recursive tokens in the recursive token table Deep dive: Printing text tokens
Context: See this macro on its own page References: This macro is used as follows: * QQ18 uses RTOK

The following macro is used when building the recursive token table: RTOK n Insert recursive token [n] * Tokens 0-95 get stored as n + 160 * Tokens 128-145 get stored as n - 114 * Tokens 96-127 get stored as n See the deep dive on "Printing text tokens" for details on how recursive tokens are stored in the recursive token table.
Arguments: n The number of the recursive token to insert into the table, in the range 0 to 145
MACRO RTOK n IF n >= 0 AND n <= 95 t = n + 160 ELIF n >= 128 t = n - 114 ELSE t = n ENDIF EQUB t EOR RE ENDMACRO
Name: QQ18 [Show more] Type: Variable Category: Text Summary: The recursive token table for tokens 0-148 Deep dive: Printing text tokens
Context: See this variable on its own page Variations: See code variations for this variable in the different versions References: This variable is used as follows: * ex uses QQ18
.QQ18 RTOK 111 \ Token 0: "FUEL SCOOPS ON {beep}" RTOK 131 \ CONT 7 \ Encoded as: "[111][131]{7}" EQUB 0 CHAR ' ' \ Token 1: " CHART" CHAR 'C' \ CHAR 'H' \ Encoded as: " CH<138>T" TWOK 'A', 'R' CHAR 'T' EQUB 0 CHAR 'G' \ Token 2: "GOVERNMENT" CHAR 'O' \ TWOK 'V', 'E' \ Encoded as: "GO<150>RNM<146>T" CHAR 'R' CHAR 'N' CHAR 'M' TWOK 'E', 'N' CHAR 'T' EQUB 0 CHAR 'D' \ Token 3: "DATA ON {selected system name}" TWOK 'A', 'T' \ CHAR 'A' \ Encoded as: "D<145>A[131]{3}" RTOK 131 CONT 3 EQUB 0 TWOK 'I', 'N' \ Token 4: "INVENTORY{crlf} TWOK 'V', 'E' \ " CHAR 'N' \ CHAR 'T' \ Encoded as: "<140><150>NT<153>Y{13}" TWOK 'O', 'R' CHAR 'Y' CONT 13 EQUB 0 CHAR 'S' \ Token 5: "SYSTEM" CHAR 'Y' \ CHAR 'S' \ Encoded as: "SYS<156>M" TWOK 'T', 'E' CHAR 'M' EQUB 0 CHAR 'P' \ Token 6: "PRICE" TWOK 'R', 'I' \ TWOK 'C', 'E' \ Encoded as: "P<158><133>" EQUB 0 CONT 2 \ Token 7: "{current system name} MARKET PRICES" CHAR ' ' \ TWOK 'M', 'A' \ Encoded as: "{2} <139>RKET [6]S" CHAR 'R' CHAR 'K' CHAR 'E' CHAR 'T' CHAR ' ' RTOK 6 CHAR 'S' EQUB 0 TWOK 'I', 'N' \ Token 8: "INDUSTRIAL" CHAR 'D' \ TWOK 'U', 'S' \ Encoded as: "<140>D<136>T<158><128>" CHAR 'T' TWOK 'R', 'I' TWOK 'A', 'L' EQUB 0 CHAR 'A' \ Token 9: "AGRICULTURAL" CHAR 'G' \ TWOK 'R', 'I' \ Encoded as: "AG<158>CULTU<148>L" CHAR 'C' CHAR 'U' CHAR 'L' CHAR 'T' CHAR 'U' TWOK 'R', 'A' CHAR 'L' EQUB 0 TWOK 'R', 'I' \ Token 10: "RICH " CHAR 'C' \ CHAR 'H' \ Encoded as: "<158>CH " CHAR ' ' EQUB 0 CHAR 'A' \ Token 11: "AVERAGE " TWOK 'V', 'E' \ TWOK 'R', 'A' \ Encoded as: "A<150><148><131> " TWOK 'G', 'E' CHAR ' ' EQUB 0 CHAR 'P' \ Token 12: "POOR " CHAR 'O' \ TWOK 'O', 'R' \ Encoded as: "PO<153> " CHAR ' ' EQUB 0 TWOK 'M', 'A' \ Token 13: "MAINLY " TWOK 'I', 'N' \ CHAR 'L' \ Encoded as: "<139><140>LY " CHAR 'Y' CHAR ' ' EQUB 0 CHAR 'U' \ Token 14: "UNIT" CHAR 'N' \ CHAR 'I' \ Encoded as: "UNIT" CHAR 'T' EQUB 0 CHAR 'V' \ Token 15: "VIEW " CHAR 'I' \ CHAR 'E' \ Encoded as: "VIEW " CHAR 'W' CHAR ' ' EQUB 0 TWOK 'Q', 'U' \ Token 16: "QUANTITY" TWOK 'A', 'N' \ TWOK 'T', 'I' \ Encoded as: "<154><155><151>TY" CHAR 'T' CHAR 'Y' EQUB 0 TWOK 'A', 'N' \ Token 17: "ANARCHY" TWOK 'A', 'R' \ CHAR 'C' \ Encoded as: "<155><138>CHY" CHAR 'H' CHAR 'Y' EQUB 0 CHAR 'F' \ Token 18: "FEUDAL" CHAR 'E' \ CHAR 'U' \ Encoded as: "FEUD<128>" CHAR 'D' TWOK 'A', 'L' EQUB 0 CHAR 'M' \ Token 19: "MULTI-GOVERNMENT" CHAR 'U' \ CHAR 'L' \ Encoded as: "MUL<151>-[2]" TWOK 'T', 'I' CHAR '-' RTOK 2 EQUB 0 TWOK 'D', 'I' \ Token 20: "DICTATORSHIP" CHAR 'C' \ CHAR 'T' \ Encoded as: "<141>CT<145><153>[25]" TWOK 'A', 'T' TWOK 'O', 'R' RTOK 25 EQUB 0 RTOK 91 \ Token 21: "COMMUNIST" CHAR 'M' \ CHAR 'U' \ Encoded as: "[91]MUN<157>T" CHAR 'N' TWOK 'I', 'S' CHAR 'T' EQUB 0 CHAR 'C' \ Token 22: "CONFEDERACY" TWOK 'O', 'N' \ CHAR 'F' \ Encoded as: "C<159>F<152><144>ACY" TWOK 'E', 'D' TWOK 'E', 'R' CHAR 'A' CHAR 'C' CHAR 'Y' EQUB 0 CHAR 'D' \ Token 23: "DEMOCRACY" CHAR 'E' \ CHAR 'M' \ Encoded as: "DEMOC<148>CY" CHAR 'O' CHAR 'C' TWOK 'R', 'A' CHAR 'C' CHAR 'Y' EQUB 0 CHAR 'C' \ Token 24: "CORPORATE STATE" TWOK 'O', 'R' \ CHAR 'P' \ Encoded as: "C<153>P<153><145>E [43]<145>E" TWOK 'O', 'R' TWOK 'A', 'T' CHAR 'E' CHAR ' ' RTOK 43 TWOK 'A', 'T' CHAR 'E' EQUB 0 CHAR 'S' \ Token 25: "SHIP" CHAR 'H' \ CHAR 'I' \ Encoded as: "SHIP" CHAR 'P' EQUB 0 CHAR 'P' \ Token 26: "PRODUCT" CHAR 'R' \ CHAR 'O' \ Encoded as: "PRODUCT" CHAR 'D' CHAR 'U' CHAR 'C' CHAR 'T' EQUB 0 CHAR ' ' \ Token 27: " LASER" TWOK 'L', 'A' \ CHAR 'S' \ Encoded as: " <149>S<144>" TWOK 'E', 'R' EQUB 0 CHAR 'H' \ Token 28: "HUMAN COLONIAL" CHAR 'U' \ CHAR 'M' \ Encoded as: "HUM<155> COL<159>I<128>" TWOK 'A', 'N' CHAR ' ' CHAR 'C' CHAR 'O' CHAR 'L' TWOK 'O', 'N' CHAR 'I' TWOK 'A', 'L' EQUB 0 CHAR 'H' \ Token 29: "HYPERSPACE " CHAR 'Y' \ CHAR 'P' \ Encoded as: "HYP<144>SPA<133> " TWOK 'E', 'R' CHAR 'S' CHAR 'P' CHAR 'A' TWOK 'C', 'E' CHAR ' ' EQUB 0 CHAR 'S' \ Token 30: "SHORT RANGE CHART" CHAR 'H' \ TWOK 'O', 'R' \ Encoded as: "SH<153>T [42][1]" CHAR 'T' CHAR ' ' RTOK 42 RTOK 1 EQUB 0 TWOK 'D', 'I' \ Token 31: "DISTANCE" RTOK 43 \ TWOK 'A', 'N' \ Encoded as: "<141>[43]<155><133>" TWOK 'C', 'E' EQUB 0 CHAR 'P' \ Token 32: "POPULATION" CHAR 'O' \ CHAR 'P' \ Encoded as: "POPUL<145>I<159>" CHAR 'U' CHAR 'L' TWOK 'A', 'T' CHAR 'I' TWOK 'O', 'N' EQUB 0 CHAR 'G' \ Token 33: "GROSS PRODUCTIVITY" CHAR 'R' \ CHAR 'O' \ Encoded as: "GROSS [26]IVITY" CHAR 'S' CHAR 'S' CHAR ' ' RTOK 26 CHAR 'I' CHAR 'V' CHAR 'I' CHAR 'T' CHAR 'Y' EQUB 0 CHAR 'E' \ Token 34: "ECONOMY" CHAR 'C' \ TWOK 'O', 'N' \ Encoded as: "EC<159>OMY" CHAR 'O' CHAR 'M' CHAR 'Y' EQUB 0 CHAR ' ' \ Token 35: " LIGHT YEARS" CHAR 'L' \ CHAR 'I' \ Encoded as: " LIGHT YE<138>S" CHAR 'G' CHAR 'H' CHAR 'T' CHAR ' ' CHAR 'Y' CHAR 'E' TWOK 'A', 'R' CHAR 'S' EQUB 0 TWOK 'T', 'E' \ Token 36: "TECH.LEVEL" CHAR 'C' \ CHAR 'H' \ Encoded as: "<156>CH.<129><150>L" CHAR '.' TWOK 'L', 'E' TWOK 'V', 'E' CHAR 'L' EQUB 0 CHAR 'C' \ Token 37: "CASH" CHAR 'A' \ CHAR 'S' \ Encoded as: "CASH" CHAR 'H' EQUB 0 CHAR ' ' \ Token 38: " BILLION" TWOK 'B', 'I' \ RTOK 118 \ Encoded as: " <134>[118]I<159>" CHAR 'I' TWOK 'O', 'N' EQUB 0 RTOK 122 \ Token 39: "GALACTIC CHART{galaxy number}" RTOK 1 \ CONT 1 \ Encoded as: "[122][1]{1}" EQUB 0 CHAR 'T' \ Token 40: "TARGET LOST" TWOK 'A', 'R' \ TWOK 'G', 'E' \ Encoded as: "T<138><131>T LO[43]" CHAR 'T' CHAR ' ' CHAR 'L' CHAR 'O' RTOK 43 EQUB 0 RTOK 106 \ Token 41: "MISSILE JAMMED" CHAR ' ' \ CHAR 'J' \ Encoded as: "[106] JAMM<152>" CHAR 'A' CHAR 'M' CHAR 'M' TWOK 'E', 'D' EQUB 0 CHAR 'R' \ Token 42: "RANGE" TWOK 'A', 'N' \ TWOK 'G', 'E' \ Encoded as: "R<155><131>" EQUB 0 CHAR 'S' \ Token 43: "ST" CHAR 'T' \ EQUB 0 \ Encoded as: "ST" RTOK 16 \ Token 44: "QUANTITY OF " CHAR ' ' \ CHAR 'O' \ Encoded as: "[16] OF " CHAR 'F' CHAR ' ' EQUB 0 CHAR 'S' \ Token 45: "SELL" CHAR 'E' \ RTOK 118 \ Encoded as: "SE[118]" EQUB 0 CHAR ' ' \ Token 46: " CARGO{sentence case}" CHAR 'C' \ TWOK 'A', 'R' \ Encoded as: " C<138>GO{6}" CHAR 'G' CHAR 'O' CONT 6 EQUB 0 CHAR 'E' \ Token 47: "EQUIP" TWOK 'Q', 'U' \ CHAR 'I' \ Encoded as: "E<154>IP" CHAR 'P' EQUB 0 CHAR 'F' \ Token 48: "FOOD" CHAR 'O' \ CHAR 'O' \ Encoded as: "FOOD" CHAR 'D' EQUB 0 TWOK 'T', 'E' \ Token 49: "TEXTILES" CHAR 'X' \ TWOK 'T', 'I' \ Encoded as: "<156>X<151>L<137>" CHAR 'L' TWOK 'E', 'S' EQUB 0 TWOK 'R', 'A' \ Token 50: "RADIOACTIVES" TWOK 'D', 'I' \ CHAR 'O' \ Encoded as: "<148><141>OAC<151><150>S" CHAR 'A' CHAR 'C' TWOK 'T', 'I' TWOK 'V', 'E' CHAR 'S' EQUB 0 CHAR 'S' \ Token 51: "SLAVES" TWOK 'L', 'A' \ TWOK 'V', 'E' \ Encoded as: "S<149><150>S" CHAR 'S' EQUB 0 CHAR 'L' \ Token 52: "LIQUOR/WINES" CHAR 'I' \ TWOK 'Q', 'U' \ Encoded as: "LI<154><153>/W<140><137>" TWOK 'O', 'R' CHAR '/' CHAR 'W' TWOK 'I', 'N' TWOK 'E', 'S' EQUB 0 CHAR 'L' \ Token 53: "LUXURIES" CHAR 'U' \ CHAR 'X' \ Encoded as: "LUXU<158><137>" CHAR 'U' TWOK 'R', 'I' TWOK 'E', 'S' EQUB 0 CHAR 'N' \ Token 54: "NARCOTICS" TWOK 'A', 'R' \ CHAR 'C' \ Encoded as: "N<138>CO<151>CS" CHAR 'O' TWOK 'T', 'I' CHAR 'C' CHAR 'S' EQUB 0 RTOK 91 \ Token 55: "COMPUTERS" CHAR 'P' \ CHAR 'U' \ Encoded as: "[91]PUT<144>S" CHAR 'T' TWOK 'E', 'R' CHAR 'S' EQUB 0 TWOK 'M', 'A' \ Token 56: "MACHINERY" CHAR 'C' \ CHAR 'H' \ Encoded as: "<139>CH<140><144>Y" TWOK 'I', 'N' TWOK 'E', 'R' CHAR 'Y' EQUB 0 RTOK 117 \ Token 57: "ALLOYS" CHAR 'O' \ CHAR 'Y' \ Encoded as: "[117]OYS" CHAR 'S' EQUB 0 CHAR 'F' \ Token 58: "FIREARMS" CHAR 'I' \ TWOK 'R', 'E' \ Encoded as: "FI<142><138>MS" TWOK 'A', 'R' CHAR 'M' CHAR 'S' EQUB 0 CHAR 'F' \ Token 59: "FURS" CHAR 'U' \ CHAR 'R' \ Encoded as: "FURS" CHAR 'S' EQUB 0 CHAR 'M' \ Token 60: "MINERALS" TWOK 'I', 'N' \ TWOK 'E', 'R' \ Encoded as: "M<140><144><128>S" TWOK 'A', 'L' CHAR 'S' EQUB 0 CHAR 'G' \ Token 61: "GOLD" CHAR 'O' \ CHAR 'L' \ Encoded as: "GOLD" CHAR 'D' EQUB 0 CHAR 'P' \ Token 62: "PLATINUM" CHAR 'L' \ TWOK 'A', 'T' \ Encoded as: "PL<145><140>UM" TWOK 'I', 'N' CHAR 'U' CHAR 'M' EQUB 0 TWOK 'G', 'E' \ Token 63: "GEM-STONES" CHAR 'M' \ CHAR '-' \ Encoded as: "<131>M-[43]<159><137>" RTOK 43 TWOK 'O', 'N' TWOK 'E', 'S' EQUB 0 TWOK 'A', 'L' \ Token 64: "ALIEN ITEMS" CHAR 'I' \ TWOK 'E', 'N' \ Encoded as: "<128>I<146> [127]S" CHAR ' ' RTOK 127 CHAR 'S' EQUB 0 CHAR '(' \ Token 65: "(Y/N)?" CHAR 'Y' \ CHAR '/' \ Encoded as: "(Y/N)?" CHAR 'N' CHAR ')' CHAR '?' EQUB 0 CHAR ' ' \ Token 66: " CR" CHAR 'C' \ CHAR 'R' \ Encoded as: " CR" EQUB 0 CHAR 'L' \ Token 67: "LARGE" TWOK 'A', 'R' \ TWOK 'G', 'E' \ Encoded as: "L<138><131>" EQUB 0 CHAR 'F' \ Token 68: "FIERCE" CHAR 'I' \ TWOK 'E', 'R' \ Encoded as: "FI<144><133>" TWOK 'C', 'E' EQUB 0 CHAR 'S' \ Token 69: "SMALL" TWOK 'M', 'A' \ RTOK 118 \ Encoded as: "S<139>[118]" EQUB 0 CHAR 'G' \ Token 70: "GREEN" TWOK 'R', 'E' \ TWOK 'E', 'N' \ Encoded as: "G<142><146>" EQUB 0 CHAR 'R' \ Token 71: "RED" TWOK 'E', 'D' \ EQUB 0 \ Encoded as: "R<152>" CHAR 'Y' \ Token 72: "YELLOW" CHAR 'E' \ RTOK 118 \ Encoded as: "YE[118]OW" CHAR 'O' CHAR 'W' EQUB 0 CHAR 'B' \ Token 73: "BLUE" CHAR 'L' \ CHAR 'U' \ Encoded as: "BLUE" CHAR 'E' EQUB 0 CHAR 'B' \ Token 74: "BLACK" TWOK 'L', 'A' \ CHAR 'C' \ Encoded as: "B<149>CK" CHAR 'K' EQUB 0 RTOK 136 \ Token 75: "HARMLESS" EQUB 0 \ \ Encoded as: "[136]" CHAR 'S' \ Token 76: "SLIMY" CHAR 'L' \ CHAR 'I' \ Encoded as: "SLIMY" CHAR 'M' CHAR 'Y' EQUB 0 CHAR 'B' \ Token 77: "BUG-EYED" CHAR 'U' \ CHAR 'G' \ Encoded as: "BUG-EY<152>" CHAR '-' CHAR 'E' CHAR 'Y' TWOK 'E', 'D' EQUB 0 CHAR 'H' \ Token 78: "HORNED" TWOK 'O', 'R' \ CHAR 'N' \ Encoded as: "H<153>N<152>" TWOK 'E', 'D' EQUB 0 CHAR 'B' \ Token 79: "BONY" TWOK 'O', 'N' \ CHAR 'Y' \ Encoded as: "B<159>Y" EQUB 0 CHAR 'F' \ Token 80: "FAT" TWOK 'A', 'T' \ EQUB 0 \ Encoded as: "F<145>" CHAR 'F' \ Token 81: "FURRY" CHAR 'U' \ CHAR 'R' \ Encoded as: "FURRY" CHAR 'R' CHAR 'Y' EQUB 0 CHAR 'R' \ Token 82: "RODENT" CHAR 'O' \ CHAR 'D' \ Encoded as: "ROD<146>T" TWOK 'E', 'N' CHAR 'T' EQUB 0 CHAR 'F' \ Token 83: "FROG" CHAR 'R' \ CHAR 'O' \ Encoded as: "FROG" CHAR 'G' EQUB 0 CHAR 'L' \ Token 84: "LIZARD" CHAR 'I' \ TWOK 'Z', 'A' \ Encoded as: "LI<132>RD" CHAR 'R' CHAR 'D' EQUB 0 CHAR 'L' \ Token 85: "LOBSTER" CHAR 'O' \ CHAR 'B' \ Encoded as: "LOB[43]<144>" RTOK 43 TWOK 'E', 'R' EQUB 0 TWOK 'B', 'I' \ Token 86: "BIRD" CHAR 'R' \ CHAR 'D' \ Encoded as: "<134>RD" EQUB 0 CHAR 'H' \ Token 87: "HUMANOID" CHAR 'U' \ CHAR 'M' \ Encoded as: "HUM<155>OID" TWOK 'A', 'N' CHAR 'O' CHAR 'I' CHAR 'D' EQUB 0 CHAR 'F' \ Token 88: "FELINE" CHAR 'E' \ CHAR 'L' \ Encoded as: "FEL<140>E" TWOK 'I', 'N' CHAR 'E' EQUB 0 TWOK 'I', 'N' \ Token 89: "INSECT" CHAR 'S' \ CHAR 'E' \ Encoded as: "<140>SECT" CHAR 'C' CHAR 'T' EQUB 0 RTOK 11 \ Token 90: "AVERAGE RADIUS" TWOK 'R', 'A' \ TWOK 'D', 'I' \ Encoded as: "[11]<148><141><136>" TWOK 'U', 'S' EQUB 0 CHAR 'C' \ Token 91: "COM" CHAR 'O' \ CHAR 'M' \ Encoded as: "COM" EQUB 0 RTOK 91 \ Token 92: "COMMANDER" CHAR 'M' \ TWOK 'A', 'N' \ Encoded as: "[91]M<155>D<144>" CHAR 'D' TWOK 'E', 'R' EQUB 0 CHAR ' ' \ Token 93: " DESTROYED" CHAR 'D' \ TWOK 'E', 'S' \ Encoded as: " D<137>TROY<152>" CHAR 'T' CHAR 'R' CHAR 'O' CHAR 'Y' TWOK 'E', 'D' EQUB 0 CHAR 'B' \ Token 94: "BY D.BRABEN & I.BELL" CHAR 'Y' \ CHAR ' ' \ Encoded as: "BY D.B<148><147>N & I.<147>[118]" CHAR 'D' CHAR '.' CHAR 'B' TWOK 'R', 'A' TWOK 'B', 'E' CHAR 'N' CHAR ' ' CHAR '&' CHAR ' ' CHAR 'I' CHAR '.' TWOK 'B', 'E' RTOK 118 EQUB 0 RTOK 14 \ Token 95: "UNIT QUANTITY{crlf} CHAR ' ' \ PRODUCT UNIT PRICE FOR SALE{crlf} CHAR ' ' \ {lf}" RTOK 16 \ CONT 13 \ Encoded as: "[14] [16]{13} [26] [14] [6] F<153> CHAR ' ' \ SA<129>{13}{10}" RTOK 26 CHAR ' ' CHAR ' ' CHAR ' ' RTOK 14 CHAR ' ' RTOK 6 CHAR ' ' CHAR 'F' TWOK 'O', 'R' CHAR ' ' CHAR 'S' CHAR 'A' TWOK 'L', 'E' CONT 13 CONT 10 EQUB 0 CHAR 'F' \ Token 96: "FRONT" CHAR 'R' \ TWOK 'O', 'N' \ Encoded as: "FR<159>T" CHAR 'T' EQUB 0 TWOK 'R', 'E' \ Token 97: "REAR" TWOK 'A', 'R' \ EQUB 0 \ Encoded as: "<142><138>" TWOK 'L', 'E' \ Token 98: "LEFT" CHAR 'F' \ CHAR 'T' \ Encoded as: "<129>FT" EQUB 0 TWOK 'R', 'I' \ Token 99: "RIGHT" CHAR 'G' \ CHAR 'H' \ Encoded as: "<158>GHT" CHAR 'T' EQUB 0 RTOK 121 \ Token 100: "ENERGY LOW{beep}" CHAR 'L' \ CHAR 'O' \ Encoded as: "[121]LOW{7}" CHAR 'W' CONT 7 EQUB 0 RTOK 99 \ Token 101: "RIGHT ON COMMANDER!" RTOK 131 \ RTOK 92 \ Encoded as: "[99][131][92]!" CHAR '!' EQUB 0 CHAR 'E' \ Token 102: "EXTRA " CHAR 'X' \ CHAR 'T' \ Encoded as: "EXT<148> " TWOK 'R', 'A' CHAR ' ' EQUB 0 CHAR 'P' \ Token 103: "PULSE LASER" CHAR 'U' \ CHAR 'L' \ Encoded as: "PULSE[27]" CHAR 'S' CHAR 'E' RTOK 27 EQUB 0 TWOK 'B', 'E' \ Token 104: "BEAM LASER" CHAR 'A' \ CHAR 'M' \ Encoded as: "<147>AM[27]" RTOK 27 EQUB 0 CHAR 'F' \ Token 105: "FUEL" CHAR 'U' \ CHAR 'E' \ Encoded as: "FUEL" CHAR 'L' EQUB 0 CHAR 'M' \ Token 106: "MISSILE" TWOK 'I', 'S' \ CHAR 'S' \ Encoded as: "M<157>SI<129>" CHAR 'I' TWOK 'L', 'E' EQUB 0 RTOK 67 \ Token 107: "LARGE CARGO{sentence case} BAY" RTOK 46 \ CHAR ' ' \ Encoded as: "[67][46] BAY" CHAR 'B' CHAR 'A' CHAR 'Y' EQUB 0 CHAR 'E' \ Token 108: "E.C.M.SYSTEM" CHAR '.' \ CHAR 'C' \ Encoded as: "E.C.M.[5]" CHAR '.' CHAR 'M' CHAR '.' RTOK 5 EQUB 0 RTOK 102 \ Token 109: "EXTRA PULSE LASERS" RTOK 103 \ CHAR 'S' \ Encoded as: "[102][103]S" EQUB 0 RTOK 102 \ Token 110: "EXTRA BEAM LASERS" RTOK 104 \ CHAR 'S' \ Encoded as: "[102][104]S" EQUB 0 RTOK 105 \ Token 111: "FUEL SCOOPS" CHAR ' ' \ CHAR 'S' \ Encoded as: "[105] SCOOPS" CHAR 'C' CHAR 'O' CHAR 'O' CHAR 'P' CHAR 'S' EQUB 0 TWOK 'E', 'S' \ Token 112: "ESCAPE POD" CHAR 'C' \ CHAR 'A' \ Encoded as: "<137>CAPE POD" CHAR 'P' CHAR 'E' CHAR ' ' CHAR 'P' CHAR 'O' CHAR 'D' EQUB 0 RTOK 121 \ Token 113: "ENERGY BOMB" CHAR 'B' \ CHAR 'O' \ Encoded as: "[121]BOMB" CHAR 'M' CHAR 'B' EQUB 0 RTOK 121 \ Token 114: "ENERGY UNIT" RTOK 14 \ EQUB 0 \ Encoded as: "[121][14]" RTOK 124 \ Token 115: "DOCKING COMPUTERS" TWOK 'I', 'N' \ CHAR 'G' \ Encoded as: "[124]<140>G [55]" CHAR ' ' RTOK 55 EQUB 0 RTOK 122 \ Token 116: "GALACTIC HYPERSPACE " CHAR ' ' \ RTOK 29 \ Encoded as: "[122] [29]" EQUB 0 CHAR 'A' \ Token 117: "ALL" RTOK 118 \ EQUB 0 \ Encoded as: "A[118]" CHAR 'L' \ Token 118: "LL" CHAR 'L' \ EQUB 0 \ Encoded as: "LL" RTOK 37 \ Token 119: "CASH:{cash} CR{crlf} CHAR ':' \ " CONT 0 \ EQUB 0 \ Encoded as: "[37]:{0}" TWOK 'I', 'N' \ Token 120: "INCOMING MISSILE" RTOK 91 \ TWOK 'I', 'N' \ Encoded as: "<140>[91]<140>G [106]" CHAR 'G' CHAR ' ' RTOK 106 EQUB 0 TWOK 'E', 'N' \ Token 121: "ENERGY " TWOK 'E', 'R' \ CHAR 'G' \ Encoded as: "<146><144>GY " CHAR 'Y' CHAR ' ' EQUB 0 CHAR 'G' \ Token 122: "GALACTIC" CHAR 'A' \ TWOK 'L', 'A' \ Encoded as: "GA<149>C<151>C" CHAR 'C' TWOK 'T', 'I' CHAR 'C' EQUB 0 CONT 13 \ Token 123: "{crlf} RTOK 92 \ COMMANDER'S NAME? " CHAR '`' \ CHAR 'S' \ Encoded as: "{13}[92]'S NAME? " CHAR ' ' CHAR 'N' CHAR 'A' CHAR 'M' CHAR 'E' CHAR '?' CHAR ' ' EQUB 0 CHAR 'D' \ Token 124: "DOCK" CHAR 'O' \ CHAR 'C' \ Encoded as: "DOCK" CHAR 'K' EQUB 0 CONT 5 \ Token 125: "FUEL: {fuel level} LIGHT YEARS{crlf} TWOK 'L', 'E' \ CASH:{cash} CR{crlf} CHAR 'G' \ LEGAL STATUS:" TWOK 'A', 'L' \ CHAR ' ' \ Encoded as: "{5}<129>G<128> [43]<145><136>:" RTOK 43 TWOK 'A', 'T' TWOK 'U', 'S' CHAR ':' EQUB 0 RTOK 92 \ Token 126: "COMMANDER {commander name}{crlf} CHAR ' ' \ {crlf} CONT 4 \ {crlf} CONT 13 \ {sentence case}PRESENT SYSTEM{tab to CONT 13 \ column 21}:{current system name}{crlf} CONT 13 \ HYPERSPACE SYSTEM{tab to column 21}: CONT 6 \ {selected system name}{crlf} RTOK 145 \ CONDITION{tab to column 21}:" CHAR ' ' \ RTOK 5 \ Encoded as: "[92] {4}{13}{13}{13}{6}[145] [5]{9}{2} CONT 9 \ {13}[29][5]{9}{3}{13}C<159><141><151> CONT 2 \ <159>{9}" CONT 13 RTOK 29 RTOK 5 CONT 9 CONT 3 CONT 13 CHAR 'C' TWOK 'O', 'N' TWOK 'D', 'I' TWOK 'T', 'I' TWOK 'O', 'N' CONT 9 EQUB 0 CHAR 'I' \ Token 127: "ITEM" TWOK 'T', 'E' \ CHAR 'M' \ Encoded as: "I<156>M" EQUB 0 CHAR ' ' \ Token 128: " LOAD NEW COMMANDER (Y/N)?{crlf} CHAR ' ' \ {crlf} CHAR 'L' \ " CHAR 'O' \ CHAR 'A' \ Encoded as: " LOAD NEW [92] [65]{13}{13}" CHAR 'D' CHAR ' ' CHAR 'N' CHAR 'E' CHAR 'W' CHAR ' ' RTOK 92 CHAR ' ' RTOK 65 CONT 13 CONT 13 EQUB 0 CONT 6 \ Token 129: "{sentence case}DOCKED" RTOK 124 \ TWOK 'E', 'D' \ Encoded as: "{6}[124]<152>" EQUB 0 TWOK 'R', 'A' \ Token 130: "RATING:" TWOK 'T', 'I' \ CHAR 'N' \ Encoded as: "<148><151>NG:" CHAR 'G' CHAR ':' EQUB 0 CHAR ' ' \ Token 131: " ON " TWOK 'O', 'N' \ CHAR ' ' \ Encoded as: " <159> " EQUB 0 CONT 13 \ Token 132: "{crlf} CONT 8 \ {all caps}EQUIPMENT: {sentence case}" RTOK 47 \ CHAR 'M' \ Encoded as: "{13}{8}[47]M<146>T:{6}" TWOK 'E', 'N' CHAR 'T' CHAR ':' CONT 6 EQUB 0 CHAR 'C' \ Token 133: "CLEAN" TWOK 'L', 'E' \ TWOK 'A', 'N' \ Encoded as: "C<129><155>" EQUB 0 CHAR 'O' \ Token 134: "OFFENDER" CHAR 'F' \ CHAR 'F' \ Encoded as: "OFF<146>D<144>" TWOK 'E', 'N' CHAR 'D' TWOK 'E', 'R' EQUB 0 CHAR 'F' \ Token 135: "FUGITIVE" CHAR 'U' \ CHAR 'G' \ Encoded as: "FUGI<151><150>" CHAR 'I' TWOK 'T', 'I' TWOK 'V', 'E' EQUB 0 CHAR 'H' \ Token 136: "HARMLESS" TWOK 'A', 'R' \ CHAR 'M' \ Encoded as: "H<138>M<129>SS" TWOK 'L', 'E' CHAR 'S' CHAR 'S' EQUB 0 CHAR 'M' \ Token 137: "MOSTLY HARMLESS" CHAR 'O' \ RTOK 43 \ Encoded as: "MO[43]LY [136]" CHAR 'L' CHAR 'Y' CHAR ' ' RTOK 136 EQUB 0 RTOK 12 \ Token 138: "POOR " EQUB 0 \ \ Encoded as: "[12]" RTOK 11 \ Token 139: "AVERAGE " EQUB 0 \ \ Encoded as: "[11]" CHAR 'A' \ Token 140: "ABOVE AVERAGE " CHAR 'B' \ CHAR 'O' \ Encoded as: "ABO<150> [11]" TWOK 'V', 'E' CHAR ' ' RTOK 11 EQUB 0 RTOK 91 \ Token 141: "COMPETENT" CHAR 'P' \ CHAR 'E' \ Encoded as: "[91]PET<146>T" CHAR 'T' TWOK 'E', 'N' CHAR 'T' EQUB 0 CHAR 'D' \ Token 142: "DANGEROUS" TWOK 'A', 'N' \ TWOK 'G', 'E' \ Encoded as: "D<155><131>RO<136>" CHAR 'R' CHAR 'O' TWOK 'U', 'S' EQUB 0 CHAR 'D' \ Token 143: "DEADLY" CHAR 'E' \ CHAR 'A' \ Encoded as: "DEADLY" CHAR 'D' CHAR 'L' CHAR 'Y' EQUB 0 CHAR '-' \ Token 144: "---- E L I T E ----" CHAR '-' \ CHAR '-' \ Encoded as: "---- E L I T E ----" CHAR '-' CHAR ' ' CHAR 'E' CHAR ' ' CHAR 'L' CHAR ' ' CHAR 'I' CHAR ' ' CHAR 'T' CHAR ' ' CHAR 'E' CHAR ' ' CHAR '-' CHAR '-' CHAR '-' CHAR '-' EQUB 0 CHAR 'P' \ Token 145: "PRESENT" TWOK 'R', 'E' \ CHAR 'S' \ Encoded as: "P<142>S<146>T" TWOK 'E', 'N' CHAR 'T' EQUB 0 CONT 8 \ Token 146: "{all caps}GAME OVER" CHAR 'G' \ CHAR 'A' \ Encoded as: "{8}GAME O<150>R" CHAR 'M' CHAR 'E' CHAR ' ' CHAR 'O' TWOK 'V', 'E' CHAR 'R' EQUB 0 CHAR 'P' \ Token 147: "PRESS FIRE OR SPACE,COMMANDER.{crlf} CHAR 'R' \ {crlf} TWOK 'E', 'S' \ " CHAR 'S' \ CHAR ' ' \ Encoded as: "PR<137>S FI<142> <153> SPA<133>,[92]. CHAR 'F' \ {13}{13}" CHAR 'I' TWOK 'R', 'E' CHAR ' ' TWOK 'O', 'R' CHAR ' ' CHAR 'S' CHAR 'P' CHAR 'A' TWOK 'C', 'E' CHAR ',' RTOK 92 CHAR '.' CONT 13 CONT 13 EQUB 0 CHAR '(' \ Token 148: "(C) ACORNSOFT 1984" CHAR 'C' \ CHAR ')' \ Encoded as: "(C) AC<153>N<135>FT 1984" CHAR ' ' CHAR 'A' CHAR 'C' TWOK 'O', 'R' CHAR 'N' TWOK 'S', 'O' CHAR 'F' CHAR 'T' CHAR ' ' CHAR '1' CHAR '9' CHAR '8' CHAR '4' EQUB 0
Save WORDS9.bin
PRINT "WORDS9" PRINT "Assembled at ", ~CODE_WORDS% PRINT "Ends at ", ~P% PRINT "Code size is ", ~(P% - CODE_WORDS%) PRINT "Execute at ", ~LOAD_WORDS% PRINT "Reload at ", ~LOAD_WORDS% PRINT "S.WORDS9 ",~CODE_WORDS%," ",~P%," ",~LOAD_WORDS%," ",~LOAD_WORDS% SAVE "3-assembled-output/WORDS9.bin", CODE_WORDS%, P%, LOAD_WORDS%