Routines
Address
Description
5B1B
Game Entry Point Alias
9921
Action: Sherlock
9C6A
Handler: Find Character Action
9C77
Execute Character Action
9CA2
Character Action: Basil Phipps
9CCE
Check Object In Character Location
9CE9
Process Character Action With Text
9CF2
Process Character Action Parameter
9D13
Character Action: Watson
9D30
Character Action: Chief Constable Strak
9D48
Character Action: Local Police Man 01
9D73
Character Action: Local Police Man 02
9D95
Character Action: Inspector Lestrade Helper
9DFF
Character Action: Inspector Lestrade
9E4A
Check Character State
9EC1
Character Action: Daphne Strachan
9ECB
Character Action: Cook
9ED1
Character Action: Gardener
9F1E
Update Character State And Location
9FC9
Print Text Token And Return
A040
Game Entry Point
A0DB
Check Character Schedule
A0E7
Handle Game State Based On Parameter
A0F7
Fetch Object Pointer From Stack
A104
Increment Pointer And Compare
A11C
Allocate Memory
A1AF
Move IX To HL And Jump
A1B5
Traverse Linked List
A1C7
Process Memory Entry
A20C
Calculate Pointer Offset
A25D
Check Text Token Match
A277
Process Text Token
A296
Clear Display Lines
A2A2
Print Newline
A2AB
Clear Buffer
A2B1
Calculate Object Table Offset
A2BD
Extract Object Attributes
A2E4
Process Object Display
A360
Check And Reset Character State
A37D
Process Object Display
A4AB
Point To Location Data Plus One
A4BC
Point To Object Attribute Byte
A4CD
Compare Location Data
A59F
Print Text And Handle Control Characters
A5C4
Process Text Stream
A5CD
Process Text Command
A63A
Print Character And Return Zero
A63F
Set Time Period To 60 Minutes
A643
Set Time Period To 30 Minutes
A647
Print Character With Time Period
A65C
Return Immediately
A65D
Process Text Token And Call Handler
A66C
Fetch Next Text Token
A679
Calculate Pointer Offset From IX
A684
Fetch Text Token And Return Pointer
A68C
Check Time-Period: Not 6 AM
A694
Check Time-Period: Not Morning/ Midday
A69C
Check Time-Period: Not Afternoon
A6A4
Check Time-Period: Not 7 PM
A6AC
Check Time-Period: Not Late Night/ Evening
A6BB
Skip Text Token Based On Type
A6D3
Process Text Token Loop
A702
Set Bit 0 Of A00D
A709
Process Text Token And Call Handler
A711
Fetch Text Token And Call BF1C
A720
Process Object From Current Character ID
A72C
Process Object From Room Display Parameter
A736
Print Character And Return
A73B
Process Object From Room Graphics Parameter
A745
Process Location Data If Valid
A751
Process Object Attribute
A75B
Process Text Token With Offset
A771
Process Text Token If Non-Zero
A780
Get Character Pronoun Token
A78E
Get Room Display Pronoun Token
A793
Process Object And Check Token
A7AC
Process Object From Room Display Parameter
A7B4
Fetch Text Token And Process Object
A7BA
Check Object Attribute With Flag
A7C5
Check Object Has Special Description
A7D0
Check Token Match And Set Flag
A7EB
Print Token Based On Parameters
A80E
Process Text Token With Attributes
A82F
Process Object Or Print Token
A83A
Get Common Word And Process
A840
Get Common Word
A852
Toggle Lowercase Handling
A880
Extract Token From Text
A92F
Process Text Token Format
A95B
Process Format Data Byte
A990
Rotate And Extract Character Code
A9B7
Print Character
AAB2
Routine at AAB2
AB52
Routine at AB52
AB91
Routine at AB91
ABF3
Routine at ABF3
AC24
Routine at AC24
AC41
Routine at AC41
ACA6
Copy Display Data To Display Buffer
ACCC
Process Text Token And Save State
ACFB
Routine at ACFB
AE59
Copy Display Data If Zero
AE6A
Initialise Character Data Structure
AE7F
Routine at AE7F
AEA9
Routine at AEA9
AEB6
Routine at AEB6
AEC5
Routine at AEC5
AEEA
Initialise Character Search
AEF1
Routine at AEF1
AF38
Routine at AF38
AF4E
Routine at AF4E
AF52
Routine at AF52
AF56
Routine at AF56
AF67
Routine at AF67
AFB3
Search Command Handler Table
AFE1
Check Bit And Jump
AFFA
Routine at AFFA
AFFF
Routine at AFFF
B00B
Routine at B00B
B015
Handle Game State
B01C
Routine at B01C
B033
Routine at B033
B049
Routine at B049
B09A
Routine at B09A
B0A3
Routine at B0A3
B0AC
Initialise Character Timer
B0C6
Routine at B0C6
B0D7
Load Game State
B0E4
Save Game State
B0EE
Calculate Location Offset
B0FD
Process Character Data
B135
Routine at B135
B13F
Routine at B13F
B151
Routine at B151
B15B
Routine at B15B
B191
Initialise Display Buffer
B39D
Process Display Pointer
B4A3
Check Flag And Set Display
B4FD
Process Display Pointer
B517
Check And Process Objects
B54A
Check Flag And Set Display Parameter
B6DA
Process Display Entry
B6F0
Process Display Entry Alternate
B6FD
Process Location Display
B772
Extract Character Attribute
B77F
Process Text Token Stream
B91F
Check Object In A036
B936
Process Script Display
B9FA
Copy Pointer To Stack
BA20
Process Character Display
BBE5
Print Text Based On Flag
BC21
Check Object Attribute
BC46
Process Game Status Entries
BC74
Process Game Status Entries With Counter
BC9C
Process Game Status Entries Alternate
BCC9
Check Bit And Process
BD06
Process Object Pointer
BD4B
Set Object Table Pointer
BD51
Search Object Table
BD7E
Calculate Object Pointer Offset
BE5A
Advance Pointer And Check Bit
BE72
Process Entry With Counter
BF08
Check Bit And Process Entry
BF1C
Process Text Token Entry
BF45
Process Text Token Data
BF79
Handler: Date Bar
BFA4
Convert Number To ASCII
BFB0
Convert Number To String
BFC6
Populate Day Of The Week
BFD9
Handler: Game Clock
C00C
Get Time Period
C03B
Check Input Port
C040
Save Game
C0DF
Load Game
C10F
Clear Screen
C129
Initialise Screen Display
C142
Reset Screen Display
C14A
Draw Decorative Line
C1A8
Print Date Bar
C1C0
Print String And Wait For Keypress
C1CB
Print String
C1D8
Error: Out Of Memory
C1E1
Check TV Flag And Process
C1FC
Process Character Input
C240
Validate Keypress
C249
Handle Backspace Key
C271
Scroll Screen Up
C29C
Scroll Screen Down
C2BA
Process Screen Character
C306
Scroll Screen And Reset Display
C316
Update Screen Display
C37D
Advance Screen Position
C388
Print Character
C415
Wait For Keypress
C41F
Get Keypress
C45E
Check Display Parameter
C493
Check Display Flag Bit 3
C4B2
Check Display Flag Bit 2
C4D1
Process Display Action
C821
Check Object Location Match
C863
Get Object Location
C86E
Check Object Mother
C8A7
Get Object Attribute
C8AF
Get Object Mother ID
C8BE
Test Object Has Special Description
C8C6
Process Object Attribute
C8EF
Set Object Pointers
C929
Process Object Display Logic
C989
Process Object Display With Pointer
C996
Process Object Display Entry
CB2C
Save And Restore Pointers
CB43
Process Display With Location Check
CB7B
Get Display Address Based On Flag
CBA7
Check Flag And Jump To Newline
CBC2
Process Character Display
CC0E
Find Character
CC29
Set Character Pointer And ID
CC37
Process Character Action
CC78
Script Interpreter
CCC7
Execute Character Command
CCF3
Handle Command Type 0E/0C/0B/0A
CD24
Handle Push Stack
CD47
Handle Pop Stack
CD82
Set Character Script Error
CD8B
Terminate Character Script
CD95
Handle Display Text
CDA1
Handle Display Room Description
CE3B
HandleRoomDisplay
CE4F
Clear Room Display Parameters
CE6A
Handle Simple Action
CE83
Get Current Script State
CE8F
Continue Script Execution
CEB8
Process Script Command With Counter
CEDE
Process Room Display Parameter
CEFE
Advance Script Pointer By Command Size
CF43
Clear Script Command Flags
CF80
Allocate Memory And Store Character
CFB6
Find Character Script Entry
CFCF
Get Script Pointer
D008
Get Script Pointer From Timetable
D026
Update Script Pointer
D045
Is Sherlock Wearing The China Man Disguise?
D04F
Adjust Object Table For Sum
D078
Check Object Visibility
D0D0
Write Token To Buffer
D0DD
Process Location Token
D102
Process Location Token Display
D1B2
Process Object Display With Check
D1DB
Jump To Handler
D1DC
Calculate Handler Offset
D206
Fetch Next Object
D21C
Fetch Next Object With ID
D224
Fetch Location Data Pointer
D237
Fetch Object Data Pointer
D249
Process Object Location Recursively
D26C
Process Object From A034
D275
Check Character ID Range
D29D
Get Character Attribute
D2A4
Get Character Attribute With Sign
D2F2
Get Object Attribute Value
D33C
Fetch Current Character Location
D349
Search Two-Byte Length Table
D34E
Search Three-Byte Length Table
D36A
Process Object Entry
D39B
Process Object Entry Alternate
D3E8
Check Object Has Special Description
D405
Check Object Attribute With Flag
D471
Process Object Display Type
D495
Is The Character Wearing The China Man Disguise?
D4A7
Print Object List
D4CC
Count Objects In Location
D4EF
Check Object Match Criteria
D51A
Print Object List With Formatting
D526
Print Formatted Object List
D57C
Find Next Matching Object
D590
Print Object Description
D5D3
Print Object Attribute Description
D5EF
Get Location Exit Data
D5FB
Get Direction Token
D60B
Print Location Exits
D671
Find Next Valid Exit
D68C
Print Location Exits With Formatting
DC15
Return Zero
DC6C
Check Character ID
DD0B
Routine at DD0B
DD35
Routine at DD35
DF5B
Print Object Description Text
DFCC
Routine at DFCC
E03A
Routine at E03A
E151
Lookup And Print Display Text
E17B
Routine at E17B
E619
Routine at E619
E63E
Routine at E63E
E686
Routine at E686
E691
Process Character Attribute
E6BC
Routine at E6BC
F1C1
Update Object Location
F1D6
Routine at F1D6
F3C2
Routine at F3C2
F490
Routine at F490
F514
Routine at F514
F525
Routine at F525
F536
Routine at F536
F540
Routine at F540
F54A
Routine at F54A
F555
Decrement E With Wrap
F55E
Increment D With Wrap
F565
Decrement D With Wrap
F56E
Process Location Update
F5FB
Routine at F5FB