Address Length Description
61A8 22
Table: Room Image Offsets
Word offsets from Table_RoomImageOffsets to the room images. Pointer_RoomImageOffsets points at this table. Entry 00 is unused, and entries 01 to 0A 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.
9DCE 4
Table: Delimiters
A table of delimiter characters used for matching user input in...
9DD2 5
Table: Vocabulary For "THE"
"Vocabulary Table" used for matching and removing "THE" from user input.
9F88 136
Table: Item Locations
A table where the index is the item ID, and the value is the room it resides in (00 for "currently inactive").
When the item is in the players inventory, the room ID changes to 01.
A088 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.
A0A8 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.
A0C8 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.
A0C9 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.
A0D1 1
Flags: Event States
Bits that MovePlayerToRoom honours after a move. Action_SetEventFlag sets a bit and Action_ClearEventFlag clears one.
A0D2 1
Number Of Items In The Players Inventory
The number of items the player is currently holding.
A0D3 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.
A0D4 6
Saved State Bytes
The 06 bytes copied to and from the addresses in Table_SavedStateAddresses while saving and loading. The count is Count_SavedStateBytes.
A106 1
Current Room ID
The room the player starts the game in is room 45: Your Office.
A107 2
Score
A109 50
Command Buffer
A13B 10
User Input: Word Tokens
A145 4
Four Letter Buffer
The four characters of the word Handler_UserInput is currently matching. Spare letters are spaces.
A149 12
Table: Directions
A443 4
Pointer: Command Word
The address and length of the command-buffer word being tokenised.
A6FD 2
Script Condition State
Working bytes for Handler_RunScript. The mask collects condition results and the operator selects AND or OR.
A779 12
Jump Table: Parser Checks
Parser routines called by Condition_ParserSucceeds and Condition_ParserFails. The first entry is unused.
A785 60
Jump Table: Script Conditions
Condition routines indexed by the opcodes in a script.
A7C1 68
Jump Table: Script Actions
Action routines indexed by the opcodes in a script.
A805 2
Script Result
ScriptMatchedItem holds the item ID found by Condition_GroupItemDiffers. An operand of FF makes Handler_RunScript_15 substitute it. ScriptParserResult holds the value returned by the latest parser check.
AC84 2
Temporary Storage Table Pointer
AC86 2
Temporary Storage Table Index
AD78 1
Temporary Room ID
The room ChangeRoom is about to enter. The script can test it before the move is committed.
AE7D 180
Table: Room Descriptions
AF31 172
Table: Object Noun Phrases
AFDD 272
Table: Item Descriptions
B420 42
Table: Verb Tokens
The token searched for by Handler_DispatchVerb. There are Count_VerbTokens entries.
B44A 84
Jump Table: Verb Scripts
The script Handler_DispatchVerb runs for the matching entry in Table_VerbTokens.
B49E 86
Table: Token Item List
A list of all tokens which relate to items.
B4F4 282
Data: Item Groups
See Table_ItemGrouping for usage.
B60E 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(13) N/A The Hare
R$E354(26) N/A
Item ID Item Name Relates To:
R$E36B(1F) N/A The Bronze Helmet
R$E36C(20) N/A
Item ID Item Name Relates To:
R$E3AD(4F) N/A The Pig
R$E3AE(50) N/A
B6BA 55
Table: Scenic Event Locations 2
A table where the index is the event ID, and the value is the room it resides in (00 for "currently inactive"). See Count_ScenicEvents for the count.
B6F1 3
Table: Plural Items
Item IDs that use the plural carrying messages. Handler_CanTakeItem and Handler_IsCarryingItem search these 03 bytes.
B6F4 329
Data: Phrase Tokens
Phrase patterns read by MatchPhraseTokens. Table_PhrasePointers holds an address for each pattern.
B83D 160
Table: Phrase Pointers
Addresses of the phrases in Data_PhraseTokens. Condition_PhraseMatches and Condition_PhraseDoesNotMatch index it.
B8DD 291
Table: Room Map
BA00 4
Data: Saved Room Byte
State byte 03 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 00.
BA04 73
Data: Saved Room List
State byte 04 in Table_SavedStateAddresses, followed by room IDs in groups terminated by 00. Only the first byte is copied by the save routine.
BA4D 172
Data: Saved Room List 2
State byte 05 in Table_SavedStateAddresses, followed by room IDs in groups terminated by 00. Only the first byte is copied by the save routine.
BAF9 12
Table: Saved State Addresses
Addresses of the six bytes packed into SavedStateBytes: B969, B9EC, B9FA, BA00, BA04 and BA4D. Three of them are direction bytes in Table_RoomMap, so a changed exit survives a save.
BB05 6
Initial Saved State Bytes
Values copied to the addresses in Table_SavedStateAddresses when a new game starts.
BB0B 136
Table: Initial Item Locations
Copied over Table_ItemLocations when a new game starts. The length is Count_Objects_1.
BB93 19
Table: Rooms With Images
BBA6 19
Table: Room Image Numbers
The picture passed to Handler_Images for each entry in Table_RoomsWithImages.
BBB9 4
Jump Table: Turn-Based Events
Scripts run by Handler_GameEvents when the matching turn counter reaches zero: BCCA and BCD7.
BBBD 10
Jump Table: Scenic Events
BBC7 2
Number Of Object
The total number of objects in the game.
BBC9 2
Number Of Objects
The total number of objects in the game.
BBCB 2
Number Of Verb Tokens
The number of entries in Table_VerbTokens and JumpTable_VerbScripts.
BBCD 2
Number Of Rooms With Images
The total number of rooms which have related images in the game.
BBCF 2
Number Of Scenic Events
BBD1 2
Number Of Saved State Bytes
How many addresses Table_SavedStateAddresses holds, and how many bytes SavedStateBytes packs.
BBD3 1
Starting Room
BBD5 2
Pointer: Room Image Offsets
Points at Table_RoomImageOffsets, the offsets Handler_Images adds after indexing them.
BBD7 1
Initial Carrying Limit
Copied to CarryingLimit at the start of a game.
BBD8 116
Data: Arrival Script
Script run by ChangeRoom before the player enters the new room.
BC4C 152
Data: Room Setup Script
Script run by ChangeRoom after the new room is current.
BCE4 28
Data: Scenic Event Script
Script for scenic event 00. JumpTable_ScenicEvents jumps here.
BD00 28
Data: Scenic Event Script 2
Script for scenic event 01.
BD1C 9
Data: Scenic Event Script 3
Script for scenic event 02.
BD25 9
Data: Scenic Event Script 4
Script for scenic event 03.
BD2E 3003
Data: Action Scripts
Scenic event 04 starts here. The verb scripts addressed from JumpTable_VerbScripts, and the later action scripts, continue through the rest of this block.
C8E9 322
Data: Strings
CA2B 736
Table: Messaging Offsets