Address Length Description
5B2F 1
Flags: Tape Load Result
Written by TapeLoader_LoadBytes. 01 means the load succeeded. Read by TapeLoader_Game and TapeLoader_LoadBytes.
5D80 64
Table: Word index
5DC0 166
Table Dictionary: "A"
All dictionary words starting with "A".
5E66 189
Table Dictionary: "B"
All dictionary words starting with "B".
5F23 169
Table Dictionary: "C"
All dictionary words starting with "C".
5FCC 115
Table Dictionary: "D"
All dictionary words starting with "D".
603F 93
Table Dictionary: "E"
All dictionary words starting with "E".
609C 141
Table Dictionary: "F"
All dictionary words starting with "F".
6129 80
Table Dictionary: "G"
All dictionary words starting with "G".
6179 115
Table Dictionary: "H"
All dictionary words starting with "H".
61EC 94
Table Dictionary: "I"
All dictionary words starting with "I".
624A 9
Table Dictionary: "J"
All dictionary words starting with "J".
6253 28
Table Dictionary: "K"
All dictionary words starting with "K".
626F 130
Table Dictionary: "L"
All dictionary words starting with "L".
62F1 103
Table Dictionary: "M"
All dictionary words starting with "M".
6358 79
Table Dictionary: "N"
All dictionary words starting with "N".
63A7 78
Table Dictionary: "O"
All dictionary words starting with "O".
63F5 181
Table Dictionary: "P"
All dictionary words starting with "P".
64AA 14
Table Dictionary: "Q"
All dictionary words starting with "Q".
64B8 97
Table Dictionary: "R"
All dictionary words starting with "R".
6519 296
Table Dictionary: "S"
All dictionary words starting with "S".
6641 138
Table Dictionary: "T"
All dictionary words starting with "T".
66CB 63
Table Dictionary: "U"
All dictionary words starting with "U".
670A 15
Table Dictionary: "V"
All dictionary words starting with "V".
6719 133
Table Dictionary: "W"
All dictionary words starting with "W".
679E 4
Table Dictionary: "X"
All dictionary words starting with "X".
67A2 18
Table Dictionary: "Y"
All dictionary words starting with "Y".
67B4 3
Table Dictionary: "Z"
All dictionary words starting with "Z".
67B7 84
Table: Common Words
Common Words read by GetCommonWord.
8259 434
Table: Object Runtime
Eight-byte object records. CalculateObjectTableOffset multiplies an object index by 8 and adds this address. Read by CalculateObjectTableOffset, InitialiseDisplayBuffer and ProcessDisplayPointer.
840B 214
Table: Locations
84E1 10
Room 00: "Empty"
84EB 10
Room 01: "Hansom Cab"
84F5 10
Room 02: "Steam Train (London Underground)"
84FF 10
Room 03: "Steam Train (In Picturesque Countryside)"
8509 10
Room 04: "Steam Train (Shunted Between Platforms)"
8513 13
Room 05: "Baker Street"
8520 16
Room 06: "Entrance Hallway"
8530 16
Room 07: "Hall"
8540 16
Room 08: "Your Room"
8550 13
Room 09: "Small Closet"
855D 13
Room 0A: "Parliament Street"
856A 13
Room 0B: "Scotland Yard"
8577 13
Room 0C: "Slater Street"
8584 13
Room 0D: "Disgusting Opium Den"
8591 13
Room 0E: "Aldergate Street"
859E 16
Room 0F: "Aldergate Station"
85AE 16
Room 10: "Platform One (Aldergate Station)"
85BE 13
Room 11: "Platform Two (Aldergate Station)"
85CB 13
Room 12: "Kings Cross Road"
85D8 16
Room 13: "Kings Cross Station"
85E8 16
Room 14: "Platform One (Kings Cross Station)"
85F8 16
Room 15: "Platform Two (Kings Cross Station)"
8608 16
Room 16: "Platform Three (Kings Cross Station)"
8618 13
Room 17: "Platform Four (Kings Cross Station)"
8625 13
Room 18: "Bishops Road"
8632 16
Room 19: "Paddington Station"
8642 16
Room 1A: "Platform One (Paddington Station)"
8652 13
Room 1B: "Platform Two (Paddington Station)"
865F 13
Room 1C: "Buckingham Palace Road"
866C 16
Room 1D: "Victoria Station"
867C 16
Room 1E: "Platform One (Victoria Station)"
868C 13
Room 1F: "Platform Two (Victoria Station)"
8699 16
Room 20: "Camden Street"
86A9 19
Room 21: "Entrance Hall"
86BC 22
Room 22: "Passage"
86D2 16
Room 23: "Basils Bedroom"
86E2 16
Room 24: "Basils Kitchen"
86F2 13
Room 25: "Basils Dining Room"
86FF 13
Room 26: "Basils Library"
870C 13
Room 27: "Basils Yard"
8719 13
Room 28: "Sidmouth Street"
8726 19
Room 29: "Main Passage"
8739 13
Room 2A: "Reading Lounge"
8746 16
Room 2B: "Passage"
8756 13
Room 2C: "Major Ffoulkes Room"
8763 13
Room 2D: "Portman Street"
8770 16
Room 2E: "Tricias Entrance Hall"
8780 19
Room 2F: "Tricias Lounge"
8793 13
Room 30: "Tricias Kitchen"
87A0 13
Room 31: "Tricias Bedroom"
87AD 25
Room 32: "Main Street"
87C6 19
Room 33: "Cobden Lane"
87D9 19
Room 34: "Small Lane"
87EC 16
Room 35: "Leatherhead Station"
87FC 16
Room 36: "Platform One (Leatherhead Station)"
880C 13
Room 37: "Platform Two (Leatherhead Station)"
8819 19
Room 38: "Entrance Hall"
882C 19
Room 39: "Lounge Room"
883F 13
Room 3A: "Basils Library"
884C 16
Room 3B: "Basils Kitchen"
885C 16
Room 3C: "Small Yard"
886C 16
Room 3D: "Basils Bedroom"
887C 16
Room 3E: "Browns Front Gate"
888C 16
Room 3F: "Browns Front Door"
889C 19
Room 40: "Entrance Hall"
88AF 16
Room 41: "Large Kitchen"
88BF 13
Room 42: "Pantry"
88CC 16
Room 43: "Sitting Room"
88DC 16
Room 44: "Dining Room"
88EC 25
Room 45: "Long Passage"
8905 22
Room 46: "Long Passage"
891B 13
Room 47: "Browns Library"
8928 16
Room 48: "Browns Study"
8938 16
Room 49: "Master Bed Room"
8948 13
Room 4A: "Daphnes Room"
8955 13
Room 4B: "Guest Room"
8962 22
Room 4C: "Garden Path"
8978 16
Room 4D: "Winding Garden Path"
8988 19
Room 4E: "Winding Garden Path"
899B 25
Room 4F: "Winding Garden Path"
89B4 19
Room 50: "Winding Garden Path"
89C7 25
Room 51: "Winding Garden Path"
89E0 19
Room 52: "Winding Garden Path"
89F3 22
Room 53: "Winding Garden Path"
8A09 16
Room 54: "Winding Garden Path"
8A19 16
Room 55: "Winding Garden Path"
8A29 19
Room 56: "Winding Garden Path"
8A3C 19
Room 57: "Winding Garden Path"
8A4F 19
Room 58: "East Side"
8A62 22
Room 59: "West Side"
8A78 19
Room 5A: "South Side"
8A8B 22
Room 5B: "North Side"
8AA1 16
Room 5C: "Jones Front Gate"
8AB1 16
Room 5D: "Jones Front Door"
8AC1 16
Room 5E: "Library"
8AD1 13
Room 5F: "Small Room"
8ADE 22
Room 60: "Jones Entrance Hall"
8AF4 16
Room 61: "Sitting Room"
8B04 13
Room 62: "Kitchen"
8B11 16
Room 63: "Dining Room"
8B21 16
Room 64: "Small Passage"
8B31 13
Room 65: "Mrs Jones Room"
8B3E 16
Room 66: "Bails Front Yard"
8B4E 10
Room 67: "Old Mill Road"
8B58 13
Room 68: "Leatherhead Police Station"
8B65 10
Room 69: "Police Cab (Country Roads)"
8B6F 331
Table: Objects
8CBA 17
Object 00: "You"
8CCB 17
Object 01: "China Man"
8CDC 17
Object 02: "Inspector Lestrade"
8CED 17
Object 03: "Watson"
8CFE 17
Object 04: "Chief Constable Strak"
8D0F 17
Object 05: "Daphne Strachan"
8D20 17
Object 06: "Basil Phipps"
8D31 17
Object 07: "Major Percival FFoulk"
8D42 17
Object 08: "Gardener"
8D53 17
Object 09: "Cook"
8D64 17
Object 0A: "Maid"
8D75 23
Object 0B: "Local Police Man"
8D8C 17
Object 0C: "Local Police Man"
8D9D 23
Object 0D: "Tricia Fender"
8DB4 21
Object 0E: "China Mans Disguise"
8DC9 17
Object 0F: "Case"
8DDA 17
Object 10: "What Happened"
8DEB 17
Object 11: "Your Alibi"
8DFC 17
Object 12: "Your Address"
8E0D 26
Object 13: "Front Door"
8E27 24
Object 14: "Stairway"
8E3F 22
Object 15: "Your Door"
8E55 17
Object 16: "Oil Lamp"
8E66 27
Object 17: "Your Armchair"
8E81 27
Object 18: "Watsons Armchair"
8E9C 17
Object 19: "Daily Chronicle"
8EAD 17
Object 1A: "Note"
8EBE 19
Object 1B: "Your Money"
8ED1 19
Object 1C: "Money"
8EE4 18
Object 1D: "Hidden Door"
8EF6 29
Object 1E: "Hansom Cab"
8F13 25
Object 1F: "Cabbie"
8F2C 17
Object 20: "Money"
8F3D 29
Object 21: "Hansom Cab"
8F5A 25
Object 22: "Cabbie"
8F73 17
Object 23: "Money"
8F84 25
Object 24: "Steam Train"
8F9D 25
Object 25: "Steam Train"
8FB6 25
Object 26: "Steam Train"
8FCF 25
Object 27: "Steam Train"
8FE8 25
Object 28: "Steam Train"
9001 25
Object 29: "Steam Train"
901A 25
Object 2A: "Steam Train"
9033 25
Object 2B: "Steam Train"
904C 18
Object 2C: "Wide Stairway"
905E 24
Object 2D: "Large Oak Door"
9076 17
Object 2E: "Female Corpse"
9087 17
Object 2F: "Crumple Note"
9098 26
Object 30: "Heavy Oak Door"
90B2 26
Object 31: "Dining Room Door"
90CC 30
Object 32: "Plain Door"
90EA 24
Object 33: "Ornate Door"
9102 22
Object 34: "Daphnes Door"
9118 22
Object 35: "Bedroom Door"
912E 22
Object 36: "Wooden Door"
9144 28
Object 37: "Thick Heavy Door"
9160 22
Object 38: "Side Door"
9176 18
Object 39: "Sandstone Bridge"
9188 18
Object 3A: "Footbridge"
919A 24
Object 3B: "Deep Stream"
91B2 27
Object 3C: "Plush Sofa"
91CD 17
Object 3D: "Large Desk"
91DE 23
Object 3E: "Drawer"
91F5 21
Object 3F: "False Bottom"
920A 17
Object 40: "Bank Account Book"
921B 17
Object 41: "Note"
922C 20
Object 42: "Bookcase"
9240 17
Object 43: "Bloodstained Clothes"
9251 22
Object 44: "Solid Door"
9267 24
Object 45: "Sitting Room Door"
927F 22
Object 46: "Northern Door"
9295 17
Object 47: "Bloodstained Sofa"
92A6 17
Object 48: "Body"
92B7 22
Object 49: "Back Gate"
92CD 24
Object 4A: "Back Door"
92E5 18
Object 4B: "Thick Hedge"
92F7 17
Object 4C: "Basils Bed"
9308 17
Object 4D: "Basils Piano"
9319 17
Object 4E: "Gramaphone"
932A 22
Object 4F: "Window"
9340 19
Object 50: "Trash Pile"
9353 17
Object 51: "Torn Coded Note"
9364 17
Object 52: "Small Rubbish Bin"
9375 17
Object 53: "Ripped Coded Note"
9386 17
Object 54: "Fireplace"
9397 23
Object 55: "Burn Note"
93AE 21
Object 56: "Wall Safe"
93C3 17
Object 57: "Unfinished Note"
93D4 17
Object 58: "Folder"
93E5 21
Object 59: "Wall Safe"
93FA 17
Object 5A: "Letters"
940B 22
Object 5B: "Front Door"
9421 17
Object 5C: "Gun"
9432 17
Object 5D: "Large Rock"
9443 17
Object 5E: "Mrs Brown"
9454 23
Object 5F: "Mrs Jones"
946B 17
Object 60: "Herself"
947C 17
Object 61: "Plans"
948D 17
Object 62: "Innocent"
949E 17
Object 63: "Opium Den"
94AF 17
Object 64: "Old Man"
94C0 21
Object 65: "Old Mans Disguise"
94D5 17
Object 66: "Window"
94E6 22
Object 67: "Tricias Front Door"
94FC 17
Object 68: "German Agent"
950D 17
Object 69: "Old Mill Road"
951E 17
Object 6A: "Sale Location"
952F 17
Object 6B: "Guilty"
9540 17
Object 6C: "Idiot"
9551 25
Object 6D: "Police Cab"
956A 758
Spare RAM
Spare bytes between the object definitions and the timetable at Table_Timetable. 9570 holds 02F0 and the other bytes are zero.
9860 193
Table: Timetable
Note for Sherlock himself the character ID can also be:
ID Byte Character
00 "You"
01 "China Man"
64 "Old Man"
Due to Sherlock being able to wear disguises.
994D 70
Table: Character Pairs
Pairs of character ids scanned by MatchCharacterPair until a zero word. Read by MatchCharacterPair, PointObjectListRoom and ProcessTextTokenData.
9993 4
Character State
Character state record. DispatchRoomGraphics_Next sets the character record pointer here. Read by DispatchRoomGraphics.
9997 18
Character State
Character state record pointed at by CopyCharacterOntoBothRecords_OtherRecord. Read by CopyCharacterOntoBothRecords.
99A9 14
Character State
Character state record for the action handlers. Read by CharacterAction_InspectorLestradeHelper and CopyCharacterOntoBothRecords.
99B7 44
Character State: Basil
Character state record. Basil's action at 9CC5 sets the character record pointer here. Read by CharacterAction_BasilPhipps.
99E3 14
Character State
Character state record for the action handlers. Read by CharacterAction_InspectorLestradeHelper.
99F1 11
Character State
Character state record. The following bytes through 99F1+0A are data; code begins at ActionPrintHurryCatchLine. Read by CharacterAction_InspectorLestradeHelper.
9C85 28
Table: Character Actions
Character Actions read by Handler_FindCharacterAction.
9CA1 1
Character State: Basil Phipps
Character State: Basil Phipps read by CharacterAction_BasilPhipps and PrintObjectDescriptionText.
9D10 3
Counters: Watson
Counters for Watson's action at CharacterAction_Watson.
9D2E 2
Counters: Strak
Counters for Chief Constable Strak's action at CharacterAction_ChiefConstableStrak.
9D45 3
Counters: Police Man 1
Counters for the first local police man at CharacterAction_FirstLocalPoliceMan.
9D70 3
Counters: Police Man 2
Counters for the second local police man at CharacterAction_SecondLocalPoliceMan.
9D90 5
Flags: Police
9EC0 1
Character State: Daphne Strachan
Character State: Daphne Strachan read by CharacterAction_DaphneStrachan.
9ECA 1
Character State:Cook
Character State:Cook read by CharacterAction_Cook.
9ED0 1
Character State: Gardener
Character State: Gardener read by CharacterAction_Gardener.
9F38 115
Table: Display Records
One id byte and a pointer to a display record, ended by FF. A record is two bytes, plus two when bit 6 is set and five when bit 4 is set. Read by ProcessObjectDisplayLogic_SavedCharacterMove.
9FD4 2
Word: Saved Character Pointer
Saved character-list pointer written by SaveGameState and read by LoadGameState.
9FD6 1
Current Room ID
9FD7 2
Location Value
Stores a location reference value used in room display scripts (a 2-byte value that can be accessed as high or low byte via special parameters). Read by ProcessDisplayRecord, ProcessRoomDisplayParameter, GetScriptPointerFromTimetable, UpdateScriptPointer, ParseInput and DescribeObjectIfPresent.
9FD9 2
Currently Processed Character Command Position
Currently Processed Character Command Position read by ProcessObjectDisplayEntry, DispatchCharacterScript, GetCurrentScriptState and GetScriptPointer.
9FDB 2
Currently Processed Character Timetable Pointer
Currently Processed Character Timetable Pointer read by ProcessObjectDisplayEntry, ProcessCharacterAction, ScriptInterpreter and GetCurrentScriptState.
9FDD 2
Current Time Ticker
Holds a value between 0000 to FFFF and just keeps incrementing all throughout the game. Read by Game_Initialisation, InitialiseCharacterTimer and Handler_GameClock.
9FDF 2
Current Time
Holds the current in-game hours and minutes. Read by Handler_DateBar, Handler_GameClock and DescribeObjectIfPresent.
9FE1 1
Current Day Of The Week
Represents the current day of the week, where:
Byte Day
00 Mon
01 Tue
02 Wed
03 Thu
04 Fri
05 Sat
06 Sun
Read by Handler_DateBar, Handler_GameClock, PrintObjectDescriptionText and PlaceCharacter.
9FE2 2
Messaging: AM/ PM
Holds just the "a" and the "p" for AM and PM, as the "m" is already in the string and so doesn't change. Read by AdvanceGardenerAfterMove, Handler_DateBar, Handler_GameClock, GetTimePeriod, DescribeObjectIfPresent and ActionRoomAndCharacterFlags.
9FE4 1
Flags: Clock
Clock workspace beside the current time. Clock flag beside the time word at 9FE5.
9FE5 2
Flags: Clock
Clock workspace beside the current time. Read by StoreResultHighByte and CopyClockLink.
9FE7 2
Word: Saved Pointer
Saved pointer beside the character lists. Read by DispatchCharacterScript and FindCharacterSavedPointer.
9FE9 2
Character List Pointer
Pointer to the head of the linked list of character entries. Read by DispatchCharacterScript, AllocateMemoryAndStoreCharacter and GetScriptPointer.
9FEB 3
Character Script Entry List
Pointer to the head of the character script entry list. Read by RecordResultCharacterScript, FindCharacterScriptEntry_StartSearch and ParseInput.
9FEE 26
Word: Link Pointer
Link word beside the character lists. Read by FollowLinkPointer, ReadPointerFirstDisplay, CopyPointerToStack and CDBF.
A008 1
Flags: Input
Input flag cleared with the parser workspace. Read by RecordInputFlag and C3E4.
A009 1
Sherlock Disguise Check Result
Stores the result of checking if Sherlock is wearing the China Man disguise (FF if not, otherwise the attribute byte). Read by ReadSherlocksDisguise, PrintMessageAndInitialiseTimer, ReadCharacterTimetable, CheckCharacterDisguise, ProcessCharacterDisplay_TestDisplayFlagEnd, IsSherlockTheChinaMan, SpecialCaseObject_LooksBasilPhipps and EFC7.
A00A 1
Current Character Attribute
A00B 1
Flags: Parser
A00C 1
Flags: Parser
A00D 2
Word: Parser
Parser workspace word. Read by ReadParserWorkspace.
A00F 2
Display Mode
A011 2
Flags: Pictures Enabled
Set at the game entry point unless the player presses N. CheckTextTokenMatch skips picture lookup when this is zero. Read by GameEntryPoint and CheckTextTokenMatch.
A013 2
Word: Current Object
A015 2
Word: Secondary Pointer
A017 2
Current Character Data
A019 2
Flags: Parser
Cleared by the command parser. Read by ClearDisplayLines, InitialiseScreenDisplay, ProcessScreenCharacter and ParseInput.
A01B 1
Flags: Initialised
A01C 1
Flags: Display
A01D 1
Object Attribute Value
A01E 1
Flags: Display
A01F 2
Character Script Cycles
A021 1
Match Flag
A022 2
Token Value Buffer
Token Value Buffer read by PrintTextToken.
A024 1
Command Mode
A025 1
Print Position Flag
Print Position Flag read by Print_Character and Print_Character_ProcessCharacter.
A026 1
Token Format Flag
A027 1
Print Mode Flag
A028 1
Object Processing Source Flag
Flag indicating the source of object processing: 00 for current character/text token, 01 for room display/graphics parameters. Read by ProcessObject_Display, ProcessTextTokenAndCallHandler, ReadParserWorkspace, ReadCharacter, ProcessObjectAttribute, D1C6, CheckObjectAttributeWithFlag and PrintFormattedObjectList.
A029 2
Saved Text Pointer
Saved copy of the text pointer. Used by AB00, ReadObjectProcessingFlag, AB6F, AB83, ACD6, SaveTextPointer, B092, B8A3, D6F5 and D9CD.
A02B 2
Active Text Pointer
A02D 1
Saved Source Byte
Source byte saved beside the text pointer. Used by AB37, AE86 and RecordInputFlag_UseGameState.
A02E 1
Location Match Flag
Set when a location field matches, and cleared before the display scan. It is written but never read back by address. Used by A4E9 and B3D9.
A02F 4
Display Pointer
A033 1
Flags: Saved Character
A034 1
Room Display Parameter
A035 1
Room Graphics Parameter
A036 1
Currently Processed Character ID
A037 1
Flags: Random Seed
Copy of the memory refresh register, stored at the game entry point. Read by GameEntryPoint and ScaleTheRoll.
A038 8
Object Attribute Flag
A11A 2
Workspace
Workspace between the pointer routines. Read by AllocateMemory.
A24D 16
Token Word Table
Eight token words. PrintTokenBasedOnParameters indexes them from the token parameter, and uses the half at A255 when the print mode or the object display flag is set. Used by PrintTokenBasedOnParameters.
A2AA 1
Object Display Flag
A35D 3
Saved Object Fields
Scratch copy of an object id and two room bytes. ProcessObjectDisplay stores the id from A033 and the room word from RoomDisplayParameter. CDBF stores three record bytes here and copies them back. Used by ProcessObjectDisplay, ProcessObject_Display and CDBF.
A55D 64
Control Character Jump Table
Control Character Jump Table read by TestSpace.
A59D 2
Text Pointer
Word FetchNextTextToken reads the next text token through, stepping it on two bytes. PrintTextAndHandleControlCharacters also keeps the caller's stack pointer here while a message is printed. Used by PrintTextAndHandleControlCharacters and FetchNextTextToken.
A6D1 1
Alternatives Left
Count of alternatives still to print or skip. Used by PrintRandomAlternative.
A6D2 1
Chosen Alternative
The alternative PrintRandomAlternative picked at random, counted from 01. Used by PrintRandomAlternative.
A7EA 1
Token Match Flag
Cleared by CheckTokenMatchAndSetFlag, then set when the token is not the special match. CheckObjectHasSpecialDescription clears it again unless bit 6 of the record is set, and A815 folds it into the token format flag. Used by CheckTokenMatchAndSetFlag, A815 and CheckObjectHasSpecialDescription.
A851 1
Lowercase Handling Flag
Lowercase Handling Flag read by ToggleLowercaseHandling and Print_Character_ProcessCharacter.
A85C 36
Table: Format Data
Format data entries indexed by format type (00-08). Each entry is 04 bytes that are copied to the format buffer. Read by ProcessTextTokenFormat.
A9B5 2
Word Buffer Pointer
Pointer into the word buffer at WordBuffer. Read and written by Print_Character; reset to WordBuffer by A9F6 after the buffered word is printed.
AA71 48
Lookup Table: Object Display Data
Words indexed by the object attribute minus 01. Each word points at a display record. A record is two bytes, plus two when bit 6 is set and five when bit 4 is set. Read by C966.
AAA8 4
Buffer: Co-ordinate Header
Four bytes at the start of the co-ordinate buffer cleared by ClearCoordinateBuffer. Read by ClearCoordinateBuffer, PointPictureOrigin and CopyDisplayDataToDisplayBuffer.
AAAC 6
Buffer: Co-ordinate Data
6-byte buffer used for storing co-ordinate pairs and related display data. Read by StartPictureModeScreenIdle, ClearCoordinateBuffer and ProcessLocationDisplay.
AF6B 48
Table: Command Handler Lookup (Standard)
Lookup table for command handlers when *A024 is not equal to 02. Each entry consists of a 1-byte first value, a 1-byte second value, and a 2-byte handler pointer. Read by SearchCommandHandlerTable.
AF9B 24
Table: Command Handler Lookup (Alternate)
Lookup table for command handlers when *A024 is equal to 02. Each entry consists of a 1-byte first value, a 1-byte second value, and a 2-byte handler pointer. Read by SearchCommandHandlerTable.
B16D 5
Display Flag
Flag byte for display processing (bit 1 indicates objects have been processed). Read by InitialiseDisplayBuffer, SwapObjectDisplayPointers, CheckFlagAndSetDisplay_ProcessPointer, UnlinkNextDisplayRecord and SelectJumpIfNotZero.
B172 1
Display Data Pointer
B173 11
Display Mode Flag
Flag controlling display mode (bit 7 indicates special display mode). Read by CheckFlagAndSetDisplay, FindFirstNoun and SelectJumpIfNotZero.
B17E 19
Object Table Pointer
Pointer to the current position in the object table being processed. Read by ReadDisplaySetupFlag, ReportEmptyDisplayStep, FindFirstNoun, ProcessScriptDisplay and ParseInput.
B39C 1
Flags: Display
B4A2 1
Display Setup Flag
Flag indicating whether the display has been set up (FF = not set up, 00 = set up). Read by ReadDisplaySetupFlag, ReportEmptyDisplayStep and CheckFlagAndSetDisplay.
B549 1
Flags: Display
B6D6 4
Word: Display Pointers
Two display pointers. B768 reads the character record from the first, and B760 reads the saved display pointer from the second. Read by ProcessLocationDisplay and ProcessTextTokenStream.
B77E 1
Flags: Display
Display flag beside the character-attribute routine. Read by ProcessLocationDisplay and ProcessTextTokenStream.
B866 2
Word: Saved Character Record
Character record pointer kept while its object attribute is read. Written by B911 and read by B96B, B9BA and CopyLinkAhead.
B868 2
Word: Saved Record Flag
Flag word copied from the character record while its link is followed. Written by B87A and read by FollowLinkPointer_CopyLink and ReadPointerFirstDisplay.
B934 2
Flags: Display
Display flag beside the script display. Read by ProcessScriptDisplay, CheckFlagAndJumpToNewline and DispatchCharacterScript.
BA13 13
Word: Display Pointer
Pointer used while copying a character display. Read by PointObjectListRoom and ReadCharacterRecordWord.
BF6E 11
Messaging: Current Date
Messaging: Current Date read by Handler_DateBar.
C128 1
Flags: Screen
Screen mode. ResetScreenDisplay clears it and the surrounding code stores 01 or 02. Read by InitialiseScreenDisplay, ResetScreenDisplay, ProcessScreenCharacter and UpdateScreenDisplay.
C1F4 1
Storage Decorative Line Width
C1F5 1
Screen Width
C1F6 4
Storage Decorative Line Screen Position
Storage Decorative Line Screen Position read by DrawDecorativeLine, PrintScreenCharacter and RecordResultStorageDecorative.
C1FA 1
Flags: Decorative Line
Initialised with the decorative-line position. Read by InitialiseScreenDisplay and ProcessScreenCharacter.
C1FB 1
Print Column
Column read by C200 while printing. Read by DrawDecorativeLine, PrintScreenCharacter and RecordResultStorageDecorative.
CAAE 1
Room Flag
Set by a display record's code to skip the disguise check at CheckCharacterDisguise. Cleared by ProcessDisplayRecord_RunFollowingCode, tested by CA6C, and set by DF4B, E108 and E140.
CB28 4
Saved Index Registers
CB34 saves IX here and IY at CB2A. RunDisplayRecordCode brings both back before the next display record runs. Used by RunDisplayRecordCode and CB34.
CB79 2
Token Select Flag
Bit mask GetDisplayAddressBasedOnFlag rotates to pick a token word. Bit 7 selects the table at C481. CB7A keeps the room parameter copied back to RoomDisplayParameter. Used by ReadHighByteSource and GetDisplayAddressBasedOnFlag.
CC0B 3
Script Command Counter
Count of script commands ProcessScriptCommandWithCounter has run. ProcessCharacterAction clears it, and DispatchCharacterScript stops the script when it reaches 0A. CC0D records whether the character was found in the display list. Used by ProcessCharacterAction, DispatchCharacterScript and ProcessScriptCommandWithCounter.
D05A 10
Table: Tokens
Tokens read by ProcessLocationToken.
D064 20
Table: Direction Tokens
Direction Tokens read by GetDirectionToken.
D0DC 1
Location Token Processing Flag
Flag that enables location token processing in ProcessLocationToken. When set to 01 location token data is processed and when 00 processing is skipped. Read by ProcessLocationToken and ParseInputNumber.
D5C9 10
Table: Object Attribute Description Text Tokens
Object Attribute Description Text Tokens read by PrintObjectAttributeDescription.
D6B8 7
Flags: Parser Workspace
D6B8 is cleared at the game entry point. D6B8+05 holds the parser pointer for the routines below. Read by GameEntryPoint, ParseInput, ReleaseNextDisplayRecord and RecordParserFailure.
D897 1
Quotation Mark Flag
Set while the command line is inside quotation marks. Set by ReadCommandLine_Loop, toggled by D8F6 and D908, and read by ReadCommandLine_CommandMarkerLeave.
D9C3 2
Word: Saved Input Pointer
Input pointer saved while the dictionary is measured. Written by SkipSpaces_SaveInputPointer and read by SkipSpaces_ReadInputPointer.
DA32 2
Word: Dictionary Address
Address in the dictionary text, saved while a word is matched. Written by DA50 and read by SkipSpaces_MeasureDictionary.
DCFF 2
Word: Looked-Up Room Record
Room record DD24 stores after the lookup. Read by DispatchScheduleMarker and E4F3.
DD01 2
Word: Room Saved For The Lookup
The low byte is the room id StoreMatchedCharacterRoom_0 stores before the lookup, or zero when that room was FF. DispatchScheduleMarker reads it. The high byte stays zero.
E16B 16
Table: Display Entry Lookup
Lookup table for LookupAndPrintDisplayText. It maps room display parameter values to text token pointers. Each entry consists of a 1-byte parameter value followed by a 2-byte pointer to a text token buffer.
F48E 2
Flags: Fill Seeds
One byte for each fill direction. DrawingFill records whether a seed is already saved for that row. Read by DrawingFill.
F60B 1
Flags: Drawing Ink
Ink byte stored by DrawingFill and shifted into the attribute of the plotted pixel by PlotPixel.