Address Length Description
25000 22
Table: Room Image Offsets
Word offsets from Table_RoomImageOffsets to the room images. Pointer_RoomImageOffsets points at this table. Entry 0 is unused, and entries 1 to 10 select the ten pictures Image_YourOffice, Image_TheSewer, Image_Rubble, Image_Alleyway, Image_ControlRoom, Image_Wreckage, Image_Desert, Image_Home, Image_Museum and Image_Stadium.
40398 4
Table: Delimiters
A table of delimiter characters used for matching user input in...
40402 5
Table: Vocabulary For "THE"
"Vocabulary Table" used for matching and removing "THE" from user input.
40840 136
Table: Item Locations
A table where the index is the item ID, and the value is the room it resides in (0 for "currently inactive").
When the item is in the players inventory, the room ID changes to 1.
41096 32
Flags: Game States
Bit flags tested and changed by TestFlag, SetFlag and ClearFlag. The bit index selects both the byte and the bit inside it.
41128 3
Flags: Already Seen Room Images
One bit for each entry in Table_RoomsWithImages. Handler_RoomExits sets the bit after the picture has been shown so the same room does not draw it again.
41160 1
Flags: Turn-Based Event States
One bit per turn-based event. Handler_GameEvents counts a bit down while it is set, and the script actions Action_StartTurnEvent and Action_StopTurnEvent change the bits.
41161 8
Turn-Based Event Counters
One counter byte for each bit in Flags_TurnEvents. Handler_GameEvents decreases the counter for every active event, and Action_SetTurnCounter stores a new count.
41169 1
Flags: Event States
Bits that MovePlayerToRoom honours after a move. Action_SetEventFlag sets a bit and Action_ClearEventFlag clears one.
41170 1
Number Of Items In The Players Inventory
The number of items the player is currently holding.
41171 1
Carrying Limit
The most items the player may carry. Handler_CanTakeItem compares it with Count_InventoryItems. The game starts it from InitialCarryingLimit, and Action_SetCarryingLimit can replace it.
41172 6
Saved State Bytes
The 6 bytes copied to and from the addresses in Table_SavedStateAddresses while saving and loading. The count is Count_SavedStateBytes.
41222 1
Current Room ID
The room the player starts the game in is room 69: Your Office.
41223 2
Score
41225 50
Command Buffer
41275 10
User Input: Word Tokens
41285 4
Four Letter Buffer
The four characters of the word Handler_UserInput is currently matching. Spare letters are spaces.
41289 12
Table: Directions
42051 4
Pointer: Command Word
The address and length of the command-buffer word being tokenised.
42749 2
Script Condition State
Working bytes for Handler_RunScript. The mask collects condition results and the operator selects AND or OR.
42873 12
Jump Table: Parser Checks
Parser routines called by Condition_ParserSucceeds and Condition_ParserFails. The first entry is unused.
42885 60
Jump Table: Script Conditions
Condition routines indexed by the opcodes in a script.
42945 68
Jump Table: Script Actions
Action routines indexed by the opcodes in a script.
43013 2
Script Result
ScriptMatchedItem holds the item ID found by Condition_GroupItemDiffers. An operand of 255 makes Handler_RunScript_15 substitute it. ScriptParserResult holds the value returned by the latest parser check.
44164 2
Temporary Storage Table Pointer
44166 2
Temporary Storage Table Index
44408 1
Temporary Room ID
The room ChangeRoom is about to enter. The script can test it before the move is committed.
44669 180
Table: Room Descriptions
44849 172
Table: Object Noun Phrases
45021 272
Table: Item Descriptions
46112 42
Table: Verb Tokens
The token searched for by Handler_DispatchVerb. There are Count_VerbTokens entries.
46154 84
Jump Table: Verb Scripts
The script Handler_DispatchVerb runs for the matching entry in Table_VerbTokens.
46238 86
Table: Token Item List
A list of all tokens which relate to items.
46324 282
Data: Item Groups
See Table_ItemGrouping for usage.
46606 172
Table: Item Grouping
Items may have several item IDs which relate to a single item, this table groups the items together to assist the parser with knowing that tokens refer to the same thing.
Some examples are:
Item ID Item Name Relates To:
R$E353(19) N/A The Hare
R$E354(38) N/A
Item ID Item Name Relates To:
R$E36B(31) N/A The Bronze Helmet
R$E36C(32) N/A
Item ID Item Name Relates To:
R$E3AD(79) N/A The Pig
R$E3AE(80) N/A
46778 55
Table: Scenic Event Locations 2
A table where the index is the event ID, and the value is the room it resides in (0 for "currently inactive"). See Count_ScenicEvents for the count.
46833 3
Table: Plural Items
Item IDs that use the plural carrying messages. Handler_CanTakeItem and Handler_IsCarryingItem search these 3 bytes.
46836 329
Data: Phrase Tokens
Phrase patterns read by MatchPhraseTokens. Table_PhrasePointers holds an address for each pattern.
47165 160
Table: Phrase Pointers
Addresses of the phrases in Data_PhraseTokens. Condition_PhraseMatches and Condition_PhraseDoesNotMatch index it.
47325 291
Table: Room Map
47616 4
Data: Saved Room Byte
State byte 3 in Table_SavedStateAddresses. Saving copies this byte through SavedStateBytes, and Action_WriteSavedByte can replace it. The remaining bytes are a room-ID list terminated by 0.
47620 73
Data: Saved Room List
State byte 4 in Table_SavedStateAddresses, followed by room IDs in groups terminated by 0. Only the first byte is copied by the save routine.
47693 172
Data: Saved Room List 2
State byte 5 in Table_SavedStateAddresses, followed by room IDs in groups terminated by 0. Only the first byte is copied by the save routine.
47865 12
Table: Saved State Addresses
Addresses of the six bytes packed into SavedStateBytes: 47465, 47596, 47610, 47616, 47620 and 47693. Three of them are direction bytes in Table_RoomMap, so a changed exit survives a save.
47877 6
Initial Saved State Bytes
Values copied to the addresses in Table_SavedStateAddresses when a new game starts.
47883 136
Table: Initial Item Locations
Copied over Table_ItemLocations when a new game starts. The length is Count_Objects_1.
48019 19
Table: Rooms With Images
48038 19
Table: Room Image Numbers
The picture passed to Handler_Images for each entry in Table_RoomsWithImages.
48057 4
Jump Table: Turn-Based Events
Scripts run by Handler_GameEvents when the matching turn counter reaches zero: 48330 and 48343.
48061 10
Jump Table: Scenic Events
48071 2
Number Of Object
The total number of objects in the game.
48073 2
Number Of Objects
The total number of objects in the game.
48075 2
Number Of Verb Tokens
The number of entries in Table_VerbTokens and JumpTable_VerbScripts.
48077 2
Number Of Rooms With Images
The total number of rooms which have related images in the game.
48079 2
Number Of Scenic Events
48081 2
Number Of Saved State Bytes
How many addresses Table_SavedStateAddresses holds, and how many bytes SavedStateBytes packs.
48083 1
Starting Room
48085 2
Pointer: Room Image Offsets
Points at Table_RoomImageOffsets, the offsets Handler_Images adds after indexing them.
48087 1
Initial Carrying Limit
Copied to CarryingLimit at the start of a game.
48088 116
Data: Arrival Script
Script run by ChangeRoom before the player enters the new room.
48204 152
Data: Room Setup Script
Script run by ChangeRoom after the new room is current.
48356 28
Data: Scenic Event Script
Script for scenic event 0. JumpTable_ScenicEvents jumps here.
48384 28
Data: Scenic Event Script 2
Script for scenic event 1.
48412 9
Data: Scenic Event Script 3
Script for scenic event 2.
48421 9
Data: Scenic Event Script 4
Script for scenic event 3.
48430 3003
Data: Action Scripts
Scenic event 4 starts here. The verb scripts addressed from JumpTable_VerbScripts, and the later action scripts, continue through the rest of this block.
51433 322
Data: Strings
51755 736
Table: Messaging Offsets