Address Length Description
23343 1
Flags: Tape Load Result
Written by TapeLoader_LoadBytes. 1 means the load succeeded. Read by TapeLoader_Game and TapeLoader_LoadBytes.
23936 64
Table: Word index
24000 166
Table Dictionary: "A"
All dictionary words starting with "A".
24166 189
Table Dictionary: "B"
All dictionary words starting with "B".
24355 169
Table Dictionary: "C"
All dictionary words starting with "C".
24524 115
Table Dictionary: "D"
All dictionary words starting with "D".
24639 93
Table Dictionary: "E"
All dictionary words starting with "E".
24732 141
Table Dictionary: "F"
All dictionary words starting with "F".
24873 80
Table Dictionary: "G"
All dictionary words starting with "G".
24953 115
Table Dictionary: "H"
All dictionary words starting with "H".
25068 94
Table Dictionary: "I"
All dictionary words starting with "I".
25162 9
Table Dictionary: "J"
All dictionary words starting with "J".
25171 28
Table Dictionary: "K"
All dictionary words starting with "K".
25199 130
Table Dictionary: "L"
All dictionary words starting with "L".
25329 103
Table Dictionary: "M"
All dictionary words starting with "M".
25432 79
Table Dictionary: "N"
All dictionary words starting with "N".
25511 78
Table Dictionary: "O"
All dictionary words starting with "O".
25589 181
Table Dictionary: "P"
All dictionary words starting with "P".
25770 14
Table Dictionary: "Q"
All dictionary words starting with "Q".
25784 97
Table Dictionary: "R"
All dictionary words starting with "R".
25881 296
Table Dictionary: "S"
All dictionary words starting with "S".
26177 138
Table Dictionary: "T"
All dictionary words starting with "T".
26315 63
Table Dictionary: "U"
All dictionary words starting with "U".
26378 15
Table Dictionary: "V"
All dictionary words starting with "V".
26393 133
Table Dictionary: "W"
All dictionary words starting with "W".
26526 4
Table Dictionary: "X"
All dictionary words starting with "X".
26530 18
Table Dictionary: "Y"
All dictionary words starting with "Y".
26548 3
Table Dictionary: "Z"
All dictionary words starting with "Z".
26551 84
Table: Common Words
Common Words read by GetCommonWord.
33369 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.
33803 214
Table: Locations
34017 10
Room 0: "Empty"
34027 10
Room 1: "Hansom Cab"
34037 10
Room 2: "Steam Train (London Underground)"
34047 10
Room 3: "Steam Train (In Picturesque Countryside)"
34057 10
Room 4: "Steam Train (Shunted Between Platforms)"
34067 13
Room 5: "Baker Street"
34080 16
Room 6: "Entrance Hallway"
34096 16
Room 7: "Hall"
34112 16
Room 8: "Your Room"
34128 13
Room 9: "Small Closet"
34141 13
Room 10: "Parliament Street"
34154 13
Room 11: "Scotland Yard"
34167 13
Room 12: "Slater Street"
34180 13
Room 13: "Disgusting Opium Den"
34193 13
Room 14: "Aldergate Street"
34206 16
Room 15: "Aldergate Station"
34222 16
Room 16: "Platform One (Aldergate Station)"
34238 13
Room 17: "Platform Two (Aldergate Station)"
34251 13
Room 18: "Kings Cross Road"
34264 16
Room 19: "Kings Cross Station"
34280 16
Room 20: "Platform One (Kings Cross Station)"
34296 16
Room 21: "Platform Two (Kings Cross Station)"
34312 16
Room 22: "Platform Three (Kings Cross Station)"
34328 13
Room 23: "Platform Four (Kings Cross Station)"
34341 13
Room 24: "Bishops Road"
34354 16
Room 25: "Paddington Station"
34370 16
Room 26: "Platform One (Paddington Station)"
34386 13
Room 27: "Platform Two (Paddington Station)"
34399 13
Room 28: "Buckingham Palace Road"
34412 16
Room 29: "Victoria Station"
34428 16
Room 30: "Platform One (Victoria Station)"
34444 13
Room 31: "Platform Two (Victoria Station)"
34457 16
Room 32: "Camden Street"
34473 19
Room 33: "Entrance Hall"
34492 22
Room 34: "Passage"
34514 16
Room 35: "Basils Bedroom"
34530 16
Room 36: "Basils Kitchen"
34546 13
Room 37: "Basils Dining Room"
34559 13
Room 38: "Basils Library"
34572 13
Room 39: "Basils Yard"
34585 13
Room 40: "Sidmouth Street"
34598 19
Room 41: "Main Passage"
34617 13
Room 42: "Reading Lounge"
34630 16
Room 43: "Passage"
34646 13
Room 44: "Major Ffoulkes Room"
34659 13
Room 45: "Portman Street"
34672 16
Room 46: "Tricias Entrance Hall"
34688 19
Room 47: "Tricias Lounge"
34707 13
Room 48: "Tricias Kitchen"
34720 13
Room 49: "Tricias Bedroom"
34733 25
Room 50: "Main Street"
34758 19
Room 51: "Cobden Lane"
34777 19
Room 52: "Small Lane"
34796 16
Room 53: "Leatherhead Station"
34812 16
Room 54: "Platform One (Leatherhead Station)"
34828 13
Room 55: "Platform Two (Leatherhead Station)"
34841 19
Room 56: "Entrance Hall"
34860 19
Room 57: "Lounge Room"
34879 13
Room 58: "Basils Library"
34892 16
Room 59: "Basils Kitchen"
34908 16
Room 60: "Small Yard"
34924 16
Room 61: "Basils Bedroom"
34940 16
Room 62: "Browns Front Gate"
34956 16
Room 63: "Browns Front Door"
34972 19
Room 64: "Entrance Hall"
34991 16
Room 65: "Large Kitchen"
35007 13
Room 66: "Pantry"
35020 16
Room 67: "Sitting Room"
35036 16
Room 68: "Dining Room"
35052 25
Room 69: "Long Passage"
35077 22
Room 70: "Long Passage"
35099 13
Room 71: "Browns Library"
35112 16
Room 72: "Browns Study"
35128 16
Room 73: "Master Bed Room"
35144 13
Room 74: "Daphnes Room"
35157 13
Room 75: "Guest Room"
35170 22
Room 76: "Garden Path"
35192 16
Room 77: "Winding Garden Path"
35208 19
Room 78: "Winding Garden Path"
35227 25
Room 79: "Winding Garden Path"
35252 19
Room 80: "Winding Garden Path"
35271 25
Room 81: "Winding Garden Path"
35296 19
Room 82: "Winding Garden Path"
35315 22
Room 83: "Winding Garden Path"
35337 16
Room 84: "Winding Garden Path"
35353 16
Room 85: "Winding Garden Path"
35369 19
Room 86: "Winding Garden Path"
35388 19
Room 87: "Winding Garden Path"
35407 19
Room 88: "East Side"
35426 22
Room 89: "West Side"
35448 19
Room 90: "South Side"
35467 22
Room 91: "North Side"
35489 16
Room 92: "Jones Front Gate"
35505 16
Room 93: "Jones Front Door"
35521 16
Room 94: "Library"
35537 13
Room 95: "Small Room"
35550 22
Room 96: "Jones Entrance Hall"
35572 16
Room 97: "Sitting Room"
35588 13
Room 98: "Kitchen"
35601 16
Room 99: "Dining Room"
35617 16
Room 100: "Small Passage"
35633 13
Room 101: "Mrs Jones Room"
35646 16
Room 102: "Bails Front Yard"
35662 10
Room 103: "Old Mill Road"
35672 13
Room 104: "Leatherhead Police Station"
35685 10
Room 105: "Police Cab (Country Roads)"
35695 331
Table: Objects
36026 17
Object 0: "You"
36043 17
Object 1: "China Man"
36060 17
Object 2: "Inspector Lestrade"
36077 17
Object 3: "Watson"
36094 17
Object 4: "Chief Constable Strak"
36111 17
Object 5: "Daphne Strachan"
36128 17
Object 6: "Basil Phipps"
36145 17
Object 7: "Major Percival FFoulk"
36162 17
Object 8: "Gardener"
36179 17
Object 9: "Cook"
36196 17
Object 10: "Maid"
36213 23
Object 11: "Local Police Man"
36236 17
Object 12: "Local Police Man"
36253 23
Object 13: "Tricia Fender"
36276 21
Object 14: "China Mans Disguise"
36297 17
Object 15: "Case"
36314 17
Object 16: "What Happened"
36331 17
Object 17: "Your Alibi"
36348 17
Object 18: "Your Address"
36365 26
Object 19: "Front Door"
36391 24
Object 20: "Stairway"
36415 22
Object 21: "Your Door"
36437 17
Object 22: "Oil Lamp"
36454 27
Object 23: "Your Armchair"
36481 27
Object 24: "Watsons Armchair"
36508 17
Object 25: "Daily Chronicle"
36525 17
Object 26: "Note"
36542 19
Object 27: "Your Money"
36561 19
Object 28: "Money"
36580 18
Object 29: "Hidden Door"
36598 29
Object 30: "Hansom Cab"
36627 25
Object 31: "Cabbie"
36652 17
Object 32: "Money"
36669 29
Object 33: "Hansom Cab"
36698 25
Object 34: "Cabbie"
36723 17
Object 35: "Money"
36740 25
Object 36: "Steam Train"
36765 25
Object 37: "Steam Train"
36790 25
Object 38: "Steam Train"
36815 25
Object 39: "Steam Train"
36840 25
Object 40: "Steam Train"
36865 25
Object 41: "Steam Train"
36890 25
Object 42: "Steam Train"
36915 25
Object 43: "Steam Train"
36940 18
Object 44: "Wide Stairway"
36958 24
Object 45: "Large Oak Door"
36982 17
Object 46: "Female Corpse"
36999 17
Object 47: "Crumple Note"
37016 26
Object 48: "Heavy Oak Door"
37042 26
Object 49: "Dining Room Door"
37068 30
Object 50: "Plain Door"
37098 24
Object 51: "Ornate Door"
37122 22
Object 52: "Daphnes Door"
37144 22
Object 53: "Bedroom Door"
37166 22
Object 54: "Wooden Door"
37188 28
Object 55: "Thick Heavy Door"
37216 22
Object 56: "Side Door"
37238 18
Object 57: "Sandstone Bridge"
37256 18
Object 58: "Footbridge"
37274 24
Object 59: "Deep Stream"
37298 27
Object 60: "Plush Sofa"
37325 17
Object 61: "Large Desk"
37342 23
Object 62: "Drawer"
37365 21
Object 63: "False Bottom"
37386 17
Object 64: "Bank Account Book"
37403 17
Object 65: "Note"
37420 20
Object 66: "Bookcase"
37440 17
Object 67: "Bloodstained Clothes"
37457 22
Object 68: "Solid Door"
37479 24
Object 69: "Sitting Room Door"
37503 22
Object 70: "Northern Door"
37525 17
Object 71: "Bloodstained Sofa"
37542 17
Object 72: "Body"
37559 22
Object 73: "Back Gate"
37581 24
Object 74: "Back Door"
37605 18
Object 75: "Thick Hedge"
37623 17
Object 76: "Basils Bed"
37640 17
Object 77: "Basils Piano"
37657 17
Object 78: "Gramaphone"
37674 22
Object 79: "Window"
37696 19
Object 80: "Trash Pile"
37715 17
Object 81: "Torn Coded Note"
37732 17
Object 82: "Small Rubbish Bin"
37749 17
Object 83: "Ripped Coded Note"
37766 17
Object 84: "Fireplace"
37783 23
Object 85: "Burn Note"
37806 21
Object 86: "Wall Safe"
37827 17
Object 87: "Unfinished Note"
37844 17
Object 88: "Folder"
37861 21
Object 89: "Wall Safe"
37882 17
Object 90: "Letters"
37899 22
Object 91: "Front Door"
37921 17
Object 92: "Gun"
37938 17
Object 93: "Large Rock"
37955 17
Object 94: "Mrs Brown"
37972 23
Object 95: "Mrs Jones"
37995 17
Object 96: "Herself"
38012 17
Object 97: "Plans"
38029 17
Object 98: "Innocent"
38046 17
Object 99: "Opium Den"
38063 17
Object 100: "Old Man"
38080 21
Object 101: "Old Mans Disguise"
38101 17
Object 102: "Window"
38118 22
Object 103: "Tricias Front Door"
38140 17
Object 104: "German Agent"
38157 17
Object 105: "Old Mill Road"
38174 17
Object 106: "Sale Location"
38191 17
Object 107: "Guilty"
38208 17
Object 108: "Idiot"
38225 25
Object 109: "Police Cab"
38250 758
Spare RAM
Spare bytes between the object definitions and the timetable at Table_Timetable. 38256 holds 752 and the other bytes are zero.
39008 193
Table: Timetable
Note for Sherlock himself the character ID can also be:
ID Byte Character
0 "You"
1 "China Man"
100 "Old Man"
Due to Sherlock being able to wear disguises.
39245 70
Table: Character Pairs
Pairs of character ids scanned by MatchCharacterPair until a zero word. Read by MatchCharacterPair, PointObjectListRoom and ProcessTextTokenData.
39315 4
Character State
Character state record. DispatchRoomGraphics_Next sets the character record pointer here. Read by DispatchRoomGraphics.
39319 18
Character State
Character state record pointed at by CopyCharacterOntoBothRecords_OtherRecord. Read by CopyCharacterOntoBothRecords.
39337 14
Character State
Character state record for the action handlers. Read by CharacterAction_InspectorLestradeHelper and CopyCharacterOntoBothRecords.
39351 44
Character State: Basil
Character state record. Basil's action at 40133 sets the character record pointer here. Read by CharacterAction_BasilPhipps.
39395 14
Character State
Character state record for the action handlers. Read by CharacterAction_InspectorLestradeHelper.
39409 11
Character State
Character state record. The following bytes through 39409+10 are data; code begins at ActionPrintHurryCatchLine. Read by CharacterAction_InspectorLestradeHelper.
40069 28
Table: Character Actions
Character Actions read by Handler_FindCharacterAction.
40097 1
Character State: Basil Phipps
Character State: Basil Phipps read by CharacterAction_BasilPhipps and PrintObjectDescriptionText.
40208 3
Counters: Watson
Counters for Watson's action at CharacterAction_Watson.
40238 2
Counters: Strak
Counters for Chief Constable Strak's action at CharacterAction_ChiefConstableStrak.
40261 3
Counters: Police Man 1
Counters for the first local police man at CharacterAction_FirstLocalPoliceMan.
40304 3
Counters: Police Man 2
Counters for the second local police man at CharacterAction_SecondLocalPoliceMan.
40336 5
Flags: Police
40640 1
Character State: Daphne Strachan
Character State: Daphne Strachan read by CharacterAction_DaphneStrachan.
40650 1
Character State:Cook
Character State:Cook read by CharacterAction_Cook.
40656 1
Character State: Gardener
Character State: Gardener read by CharacterAction_Gardener.
40760 115
Table: Display Records
One id byte and a pointer to a display record, ended by 255. A record is two bytes, plus two when bit 6 is set and five when bit 4 is set. Read by ProcessObjectDisplayLogic_SavedCharacterMove.
40916 2
Word: Saved Character Pointer
Saved character-list pointer written by SaveGameState and read by LoadGameState.
40918 1
Current Room ID
40919 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.
40921 2
Currently Processed Character Command Position
Currently Processed Character Command Position read by ProcessObjectDisplayEntry, DispatchCharacterScript, GetCurrentScriptState and GetScriptPointer.
40923 2
Currently Processed Character Timetable Pointer
Currently Processed Character Timetable Pointer read by ProcessObjectDisplayEntry, ProcessCharacterAction, ScriptInterpreter and GetCurrentScriptState.
40925 2
Current Time Ticker
Holds a value between 0000 to 65535 and just keeps incrementing all throughout the game. Read by Game_Initialisation, InitialiseCharacterTimer and Handler_GameClock.
40927 2
Current Time
Holds the current in-game hours and minutes. Read by Handler_DateBar, Handler_GameClock and DescribeObjectIfPresent.
40929 1
Current Day Of The Week
Represents the current day of the week, where:
Byte Day
0 Mon
1 Tue
2 Wed
3 Thu
4 Fri
5 Sat
6 Sun
Read by Handler_DateBar, Handler_GameClock, PrintObjectDescriptionText and PlaceCharacter.
40930 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.
40932 1
Flags: Clock
Clock workspace beside the current time. Clock flag beside the time word at 40933.
40933 2
Flags: Clock
Clock workspace beside the current time. Read by StoreResultHighByte and CopyClockLink.
40935 2
Word: Saved Pointer
Saved pointer beside the character lists. Read by DispatchCharacterScript and FindCharacterSavedPointer.
40937 2
Character List Pointer
Pointer to the head of the linked list of character entries. Read by DispatchCharacterScript, AllocateMemoryAndStoreCharacter and GetScriptPointer.
40939 3
Character Script Entry List
Pointer to the head of the character script entry list. Read by RecordResultCharacterScript, FindCharacterScriptEntry_StartSearch and ParseInput.
40942 26
Word: Link Pointer
Link word beside the character lists. Read by FollowLinkPointer, ReadPointerFirstDisplay, CopyPointerToStack and 52671.
40968 1
Flags: Input
Input flag cleared with the parser workspace. Read by RecordInputFlag and 50148.
40969 1
Sherlock Disguise Check Result
Stores the result of checking if Sherlock is wearing the China Man disguise (255 if not, otherwise the attribute byte). Read by ReadSherlocksDisguise, PrintMessageAndInitialiseTimer, ReadCharacterTimetable, CheckCharacterDisguise, ProcessCharacterDisplay_TestDisplayFlagEnd, IsSherlockTheChinaMan, SpecialCaseObject_LooksBasilPhipps and 61383.
40970 1
Current Character Attribute
40971 1
Flags: Parser
40972 1
Flags: Parser
40973 2
Word: Parser
Parser workspace word. Read by ReadParserWorkspace.
40975 2
Display Mode
40977 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.
40979 2
Word: Current Object
40981 2
Word: Secondary Pointer
40983 2
Current Character Data
40985 2
Flags: Parser
Cleared by the command parser. Read by ClearDisplayLines, InitialiseScreenDisplay, ProcessScreenCharacter and ParseInput.
40987 1
Flags: Initialised
40988 1
Flags: Display
40989 1
Object Attribute Value
40990 1
Flags: Display
40991 2
Character Script Cycles
40993 1
Match Flag
40994 2
Token Value Buffer
Token Value Buffer read by PrintTextToken.
40996 1
Command Mode
40997 1
Print Position Flag
Print Position Flag read by Print_Character and Print_Character_ProcessCharacter.
40998 1
Token Format Flag
40999 1
Print Mode Flag
41000 1
Object Processing Source Flag
Flag indicating the source of object processing: 0 for current character/text token, 1 for room display/graphics parameters. Read by ProcessObject_Display, ProcessTextTokenAndCallHandler, ReadParserWorkspace, ReadCharacter, ProcessObjectAttribute, 53702, CheckObjectAttributeWithFlag and PrintFormattedObjectList.
41001 2
Saved Text Pointer
Saved copy of the text pointer. Used by 43776, ReadObjectProcessingFlag, 43887, 43907, 44246, SaveTextPointer, 45202, 47267, 55029 and 55757.
41003 2
Active Text Pointer
41005 1
Saved Source Byte
Source byte saved beside the text pointer. Used by 43831, 44678 and RecordInputFlag_UseGameState.
41006 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 42217 and 46041.
41007 4
Display Pointer
41011 1
Flags: Saved Character
41012 1
Room Display Parameter
41013 1
Room Graphics Parameter
41014 1
Currently Processed Character ID
41015 1
Flags: Random Seed
Copy of the memory refresh register, stored at the game entry point. Read by GameEntryPoint and ScaleTheRoll.
41016 8
Object Attribute Flag
41242 2
Workspace
Workspace between the pointer routines. Read by AllocateMemory.
41549 16
Token Word Table
Eight token words. PrintTokenBasedOnParameters indexes them from the token parameter, and uses the half at 41557 when the print mode or the object display flag is set. Used by PrintTokenBasedOnParameters.
41642 1
Object Display Flag
41821 3
Saved Object Fields
Scratch copy of an object id and two room bytes. ProcessObjectDisplay stores the id from 41011 and the room word from RoomDisplayParameter. 52671 stores three record bytes here and copies them back. Used by ProcessObjectDisplay, ProcessObject_Display and 52671.
42333 64
Control Character Jump Table
Control Character Jump Table read by TestSpace.
42397 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.
42705 1
Alternatives Left
Count of alternatives still to print or skip. Used by PrintRandomAlternative.
42706 1
Chosen Alternative
The alternative PrintRandomAlternative picked at random, counted from 1. Used by PrintRandomAlternative.
42986 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 43029 folds it into the token format flag. Used by CheckTokenMatchAndSetFlag, 43029 and CheckObjectHasSpecialDescription.
43089 1
Lowercase Handling Flag
Lowercase Handling Flag read by ToggleLowercaseHandling and Print_Character_ProcessCharacter.
43100 36
Table: Format Data
Format data entries indexed by format type (0-8). Each entry is 4 bytes that are copied to the format buffer. Read by ProcessTextTokenFormat.
43445 2
Word Buffer Pointer
Pointer into the word buffer at WordBuffer. Read and written by Print_Character; reset to WordBuffer by 43510 after the buffered word is printed.
43633 48
Lookup Table: Object Display Data
Words indexed by the object attribute minus 1. 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 51558.
43688 4
Buffer: Co-ordinate Header
Four bytes at the start of the co-ordinate buffer cleared by ClearCoordinateBuffer. Read by ClearCoordinateBuffer, PointPictureOrigin and CopyDisplayDataToDisplayBuffer.
43692 6
Buffer: Co-ordinate Data
6-byte buffer used for storing co-ordinate pairs and related display data. Read by StartPictureModeScreenIdle, ClearCoordinateBuffer and ProcessLocationDisplay.
44907 48
Table: Command Handler Lookup (Standard)
Lookup table for command handlers when *40996 is not equal to 2. Each entry consists of a 1-byte first value, a 1-byte second value, and a 2-byte handler pointer. Read by SearchCommandHandlerTable.
44955 24
Table: Command Handler Lookup (Alternate)
Lookup table for command handlers when *40996 is equal to 2. Each entry consists of a 1-byte first value, a 1-byte second value, and a 2-byte handler pointer. Read by SearchCommandHandlerTable.
45421 5
Display Flag
Flag byte for display processing (bit 1 indicates objects have been processed). Read by InitialiseDisplayBuffer, SwapObjectDisplayPointers, CheckFlagAndSetDisplay_ProcessPointer, UnlinkNextDisplayRecord and SelectJumpIfNotZero.
45426 1
Display Data Pointer
45427 11
Display Mode Flag
Flag controlling display mode (bit 7 indicates special display mode). Read by CheckFlagAndSetDisplay, FindFirstNoun and SelectJumpIfNotZero.
45438 19
Object Table Pointer
Pointer to the current position in the object table being processed. Read by ReadDisplaySetupFlag, ReportEmptyDisplayStep, FindFirstNoun, ProcessScriptDisplay and ParseInput.
45980 1
Flags: Display
46242 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.
46409 1
Flags: Display
46806 4
Word: Display Pointers
Two display pointers. 46952 reads the character record from the first, and 46944 reads the saved display pointer from the second. Read by ProcessLocationDisplay and ProcessTextTokenStream.
46974 1
Flags: Display
Display flag beside the character-attribute routine. Read by ProcessLocationDisplay and ProcessTextTokenStream.
47206 2
Word: Saved Character Record
Character record pointer kept while its object attribute is read. Written by 47377 and read by 47467, 47546 and CopyLinkAhead.
47208 2
Word: Saved Record Flag
Flag word copied from the character record while its link is followed. Written by 47226 and read by FollowLinkPointer_CopyLink and ReadPointerFirstDisplay.
47412 2
Flags: Display
Display flag beside the script display. Read by ProcessScriptDisplay, CheckFlagAndJumpToNewline and DispatchCharacterScript.
47635 13
Word: Display Pointer
Pointer used while copying a character display. Read by PointObjectListRoom and ReadCharacterRecordWord.
49006 11
Messaging: Current Date
Messaging: Current Date read by Handler_DateBar.
49448 1
Flags: Screen
Screen mode. ResetScreenDisplay clears it and the surrounding code stores 1 or 2. Read by InitialiseScreenDisplay, ResetScreenDisplay, ProcessScreenCharacter and UpdateScreenDisplay.
49652 1
Storage Decorative Line Width
49653 1
Screen Width
49654 4
Storage Decorative Line Screen Position
Storage Decorative Line Screen Position read by DrawDecorativeLine, PrintScreenCharacter and RecordResultStorageDecorative.
49658 1
Flags: Decorative Line
Initialised with the decorative-line position. Read by InitialiseScreenDisplay and ProcessScreenCharacter.
49659 1
Print Column
Column read by 49664 while printing. Read by DrawDecorativeLine, PrintScreenCharacter and RecordResultStorageDecorative.
51886 1
Room Flag
Set by a display record's code to skip the disguise check at CheckCharacterDisguise. Cleared by ProcessDisplayRecord_RunFollowingCode, tested by 51820, and set by 57163, 57608 and 57664.
52008 4
Saved Index Registers
52020 saves IX here and IY at 52010. RunDisplayRecordCode brings both back before the next display record runs. Used by RunDisplayRecordCode and 52020.
52089 2
Token Select Flag
Bit mask GetDisplayAddressBasedOnFlag rotates to pick a token word. Bit 7 selects the table at 50305. 52090 keeps the room parameter copied back to RoomDisplayParameter. Used by ReadHighByteSource and GetDisplayAddressBasedOnFlag.
52235 3
Script Command Counter
Count of script commands ProcessScriptCommandWithCounter has run. ProcessCharacterAction clears it, and DispatchCharacterScript stops the script when it reaches 10. 52237 records whether the character was found in the display list. Used by ProcessCharacterAction, DispatchCharacterScript and ProcessScriptCommandWithCounter.
53338 10
Table: Tokens
Tokens read by ProcessLocationToken.
53348 20
Table: Direction Tokens
Direction Tokens read by GetDirectionToken.
53468 1
Location Token Processing Flag
Flag that enables location token processing in ProcessLocationToken. When set to 1 location token data is processed and when 0 processing is skipped. Read by ProcessLocationToken and ParseInputNumber.
54729 10
Table: Object Attribute Description Text Tokens
Object Attribute Description Text Tokens read by PrintObjectAttributeDescription.
54968 7
Flags: Parser Workspace
54968 is cleared at the game entry point. 54968+5 holds the parser pointer for the routines below. Read by GameEntryPoint, ParseInput, ReleaseNextDisplayRecord and RecordParserFailure.
55447 1
Quotation Mark Flag
Set while the command line is inside quotation marks. Set by ReadCommandLine_Loop, toggled by 55542 and 55560, and read by ReadCommandLine_CommandMarkerLeave.
55747 2
Word: Saved Input Pointer
Input pointer saved while the dictionary is measured. Written by SkipSpaces_SaveInputPointer and read by SkipSpaces_ReadInputPointer.
55858 2
Word: Dictionary Address
Address in the dictionary text, saved while a word is matched. Written by 55888 and read by SkipSpaces_MeasureDictionary.
56575 2
Word: Looked-Up Room Record
Room record 56612 stores after the lookup. Read by DispatchScheduleMarker and 58611.
56577 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 255. DispatchScheduleMarker reads it. The high byte stays zero.
57707 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.
62606 2
Flags: Fill Seeds
One byte for each fill direction. DrawingFill records whether a seed is already saved for that row. Read by DrawingFill.
62987 1
Flags: Drawing Ink
Ink byte stored by DrawingFill and shifted into the attribute of the plotted pixel by PlotPixel.