Address Length Description
48112 79
Table: Item Locations
Where each of the 79 items is (the count is at Count_Items). The item number is the position in this table, and the same number indexes the item descriptions at Table_ItemDescriptions.
Byte Meaning
0 Not in play yet, or used up
1 Carried by the player
Other The room the item is in
This is the start of the game status buffer. GameStart copies the 324 bytes from DefaultGameState over it at the start of every game (that list names every item and where it starts), and SaveGame and LoadTape save and load it as a single tape block.
48212 1
Game Flags
Holds a single byte, where each bit relates to help states as follows:
Bit Relating To
1 Cannibals
2 Swearing #1
3 Swearing #2
48220 2
Table: Already Seen Room Images
Corresponds to whether the player has already seen the image for the following rooms:
Bit Room ID Room Name
0 3 Your Ship
1 8 The Dunes
2 9 The Dunes
3 10 The Dunes
4 108 The Bridge
5 62 The Cave Mouth
6 106 The Mighty Rock Door
7 31 The Cannibals' Village
Bit Room ID Room Name
0 40 The Cliff Path
1 41 The Cliff Path
2 42 The Cliff Path
3 82 The Vast Cavern
4 98 The Pirate Treasure Chamber
5 N/A N/A
6 N/A N/A
7 N/A N/A
Handler_DisplayRoomImage tests and sets the bit for the current room. The bit number is the room's place in Table_RoomsWithImages.
48230 1
Flags: Turn-Based Event States
Holds a single byte, where each bit relates to a turn-based event as follows:
Bit Relating To
0 Crab
1 Tentacle
2 Drunk
3 Lion
4 Crocodile
5 Cannibals
6 Match
7 Wave
When the bit is set, this starts a turn counter (see Counter_Crab).
48231 8
Turn-Based Event Counters
48239 1
Flag: Crab Following
Only bit 0 is used. When it is set, the giant crab ("A giant crab", the first byte of Table_FollowingItems) follows the player from room to room. ChangeRoom sets the bit at 61329 when the player walks into The Rockpool while the crab is there, and clears it at 61284 on reaching The Rocky Path. Action_Shout clears it at Shout_Crab when the boulder falls on the crab. Bits 1-7 are never set. MovePlayerToRoom moves the item for each set bit into the room the player just entered.
48240 8
Table: Following Items
Each bit of Flag_CrabFollowing makes the item at the same position here follow the player: every time the player changes room, MovePlayerToRoom moves the item into the new room. Only bit 0 is used. ChangeRoom sets it when the player walks into The Rockpool while the giant crab is there, and closes the way out to the west and north; the crab then chases the player until they reach The Rocky Path or until the boulder falls on it (Action_Shout).
48248 9
Table: Scenic Event Locations
Where each of the 9 scenic events is (the count is at Count_ScenicEvents). Scenic events are the animals and pirates that wander about; in the item groups at Data_ItemGroup_Match event 0 is written as 128 and so on.
Byte Meaning
0 Not in play
255 Just put into play by Handler_PutScenicEventIntoPlay, so it gets a room on the next turn
Other The room the event is in
Each turn GameEventsProcessor moves every event that is in play, and not with the player, to a random room from its list in Data_ScenicEvents_Seagull, found through the pointers at Table_ScenicEventRooms. When the player leaves a room MovePlayerToRoom takes any event that is there along too, and Handler_ScenicEvents runs the handler from JumpTable_ScenicEvents for every event in the player's room.
48280 1
Number Of Items In The Players Inventory
The number of items the player is currently holding.
48281 50
Load/ Save Buffer
When loading or saving, this buffer is used for storing Table_ConfigurableExits - which are then copied to/ from the table itself.
48331 1
Current Room ID
The room the player starts the game in is room 3: Your Ship.
48332 18
Table: Scenic Event Rooms
Pointer to the table containing groups of room IDs that an event could occur in.
48396 2
Pointer: Vocabulary Table
Pointer to the table containing the game vocabulary.
48398 2
Pointer: Turn-Based Events Jump Table
Pointer to the jump table containing turn-based events.
48400 2
Pointer: Room Map Table
Pointer to the table containing the relationships between rooms.
48402 2
Pointer: Item Description Table
Pointer to the table containing item descriptions.
48404 2
Pointer: Rooms With Images Table
Pointer to the table containing all the rooms which have an image to display.
48406 2
Pointer: Room Image Jump Table
Pointer to the jump table for displaying an image relating to a room.
48408 2
Pointer: Room Description Table
Pointer to the table containing room descriptions.
48410 2
Pointer: Item Grouping Table
48412 2
Pointer: Object Noun Phrases
48414 2
Pointer: Object List Table
48416 2
Pointer: Verbs Jump Table
48418 2
Pointer: Configurable Exits Table
48420 2
Pointer: Scenic Events Jump Table
48422 2
Pointer: Verb Word Tokens Table
48424 2
Number Of Items
The total number of items in the game.
48426 2
Number Of Objects
The total number of objects in the game.
48428 2
Number Of Verb Tokens
The total number of verb word tokens the game has. See Table_VerbWordTokens.
48430 2
Number Of Rooms With Images
The total number of rooms which have related images in the game.
48432 2
Number Of Scenic Events
The total number of scenic events in the game, see Table_ScenicEventLocations.
48434 2
Number Of "Configurable Exits"
48436 50
Command Buffer
48486 10
User Input: Word Tokens
The vocabulary number (Table_Vocabulary) of each word of the last command, in the order they were typed, with 255 in every slot that isn't used. "THE" is skipped, and a word that isn't in the vocabulary stops the command with an error, so the words always fill the slots from the start.
Populated by UserInput_Enter, which first fills all 10 slots with 255. Handler_MatchVerb looks the verb up in Table_VerbWordTokens, MatchPhraseTokens matches the words after it against a phrase from PhraseTokens_Bottle, and Parser_CountItems and Parser_ProcessItem look through every slot for the name of an object. See also Parser_ValidateNoDirectObject, Parser_ValidateDirectObject, Parser_ValidateInputTokens, Parser_ValidateAnyDirectObject and Action_DropThrow for usage.
48496 1
Line Number
48497 4
Four Letter Buffer
The four-character word UserInput_Enter is matching. The routine fills it with ASCII spaces (32) and then copies up to 4 characters of the next command word into it.
48501 8
Graphics: Room Image Row
Eight bytes assembled by Print_RoomGraphic for one character row of a room image, then passed to the ROM print routine.
48509 2
Temporary Storage Table Pointer
48511 2
Temporary Storage Table Index
48513 2
Temporary Storage Word Count
49122 12
Table: Directions
Pointer to the table containing direction messaging.
54094 158
Table: Item Descriptions
54252 218
Table: Room Descriptions
54470 96
Table: Object Noun Phrases
59754 96
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:
2 "A match" The Match
3 "A lighted match"
Item ID Item Name Relates To:
16 "An eyepatch" The Eyepatch
17 "An eyepatch (worn)"
Item ID Item Name Relates To:
39 "A parrot (alive)" The Parrot
40 "A dead parrot"
60176 654
Table: Room Map
60830 38
Table: Configurable Exits
Addresses of room-map exit bytes. GameStart writes 0 to each of them, and SaveGame copies the bytes into LoadSaveBuffer.
64949 324
Default Game State
The starting values for the game status buffer. GameStart copies all 324 bytes over Table_ItemLocations at the start of every game, so the layout is the same as the entries from Table_ItemLocations to Count_ConfigurableExits.
65338 76
Jump Table: Verbs
A jump table of verb routines, the ordering here is from Table_VerbWordTokens.
Used by the routine at Handler_MatchVerb.
65414 16
Jump Table: Turn-Based Events
65430 18
Jump Table: Scenic Events
65448 26
Jump Table: Room Images