Routines
Address
Description
68A2
Transition
68F4
Enter room
691A
Squash stack, goto main
6920
Set hero sprite for room
6939
Set-up movable items
69C9
Reset non-player visible characters
69DC
Set-up doors
6A12
Get door
6A27
Wipe visible tiles
6A35
Set-up room
6AB5
Expand object
6B42
Plot interior tiles
7AC9
Process player input - fire
7B36
Pick up item
7B8B
Drop item
7BB5
Drop item, tail part
7BD0
Calculate exterior item isometric position
7BE4
Drop item, interior
7BF2
Calculate interior item isometric position
7C26
Item to itemstruct
7C33
Draw all items
7C46
Draw item
7C82
Find nearby item
7CBE
Plot bitmap
7CD4
Screen wipe
7CE9
Next scanline down
7D15
Queue message
7D2F
Plot glyph
7D30
Plot single glyph
7D48
Message display
7D87
Wipe message
7D99
Next message
9D78
Main loop set-up
9D7B
Main loop
9DCF
Check morale
9DE5
Keyscan BREAK
9E07
Process player input
9E98
Picking lock
9EB2
Cutting wire
9F21
In permitted area
A007
In permitted area (end bit)
A01A
Within camp bounds
A035
Wave morale flag
A071
Set morale flag screen attributes
A082
Next scanline up
A095
Interior delay loop
A09E
Ring bell
A0C9
Plot ringer
A0D2
Increase morale
A0DC
Set morale
A0E0
Decrease morale
A0E9
Increase morale by 10, score by 50
A0F2
Increase morale by 5, score by 5
A0F9
Increase score
A10B
Plot score
A11D
Play speaker
A15F
Set game window attributes
A1A0
Dispatch timed event
A1C3
Event: Night time
A1D3
Event: Another day dawns
A1E7
Event: Wake up
A1F0
Event: Go to roll call
A1F9
Event: Go to breakfast time
A202
Event: Breakfast time
A206
Event: Go to exercise time
A215
Event: Exercise time
A219
Event: Go to time for bed
A228
Event: New red cross parcel
A264
Event: Time for bed
A26A
Event: Search light
A289
Wake up
A2E2
End of breakfast
A33F
Set hero route
A344
Set hero route (force)
A351
Go to time for bed
A35F
Set prisoners and guards route (variant "A")
A373
Set prisoners and guards route (variant "B")
A38C
Set character route
A3BB
Set route
A3ED
Store route
A3F3
Character -> bed (state)
A3F8
Character -> bed (vischar)
A404
Character -> bed (common)
A420
Character sits
A444
Character sleeps
A462
Character sit/sleep (common)
A479
Select room and plot
A47F
Hero sits
A489
Hero sleeps
A491
Hero sit/sleep (common)
A4A9
Set route: "go to yard"
A4B7
Set route: "go to yard" reversed
A4C5
Set route: "go to breakfast"
A4D3
Character event: breakfast (state)
A4D8
Character event: breakfast (vischar)
A4E4
Character event: breakfast (common)
A4FD
Go to roll call
A50B
Screen reset
A51C
Escaped
A58C
Keyscan all
A59C
Join item to escapeitem
A5A3
Item to escapeitem
A5BF
screenlocstring plot
A7C9
Get supertiles
A80A
Plot bottommost tiles
A819
Plot topmost tiles
A826
Plot horizontal tiles (common)
A8A2
Plot all tiles
A8CF
Plot rightmost tiles
A8E7
Plot leftmost tiles
A8F4
Plot vertical tiles (common)
A9A0
Plot tile, then advance
A9AD
Plot tile
A9E4
Shunt map left
AA05
Shunt map right
AA26
Shunt map up-right
AA4B
Shunt map up
AA6C
Shunt map down
AA8D
Shunt map down-left
AAB2
Move map
AB6B
Choose game window attributes
ABA0
Zoombox
ABF9
Zoombox: fill
AC6F
Zoombox: draw border
ACFC
Zoombox: draw tile
AD59
Searchlight movement
ADBD
Night-time
AE78
Searchlight caught
AEB8
Searchlight: plot
AF8F
Touch
AFDF
Collision
B107
Accept bribe
B14C
Bounds check
B1C7
Multiply by 8
B1D4
Is door locked?
B1F5
Door handling
B252
Door in range?
B295
Multiply by 4
B29F
Interior bounds check
B2FC
Reset outdoors
B32D
Door handling: interior
B387
Action: Red cross parcel
B3A8
Action: Bribe
B3C4
Action: Poison
B3E1
Action: Uniform
B3F6
Action: Shovel
B417
Action: Wiresnips
B495
Action: Lockpick
B4AE
Action: Red key
B4B2
Action: Yellow key
B4B6
Action: Green key
B4B8
Action: Key
B4D0
Get nearest door
B5CE
Animate
B71B
Calculate vischar isometric position (from vischar)
B729
Calculate vischar isometric position (from state)
B75A
Reset game
B79B
Reset map and characters
B83B
Searchlight mask test
B866
Plot sprites
B89C
Get next drawable
B916
Render mask buffer
BACD
Multiply
BADC
Mask against tile
BAF7
Vischar visible
BB98
Restore tiles
BCAA
Select tile set
C41C
Spawn characters
C47E
Purge invisible characters
C4E0
Spawn character
C5D3
Reset visible character
C651
Get target
C6A0
Move a character
C79A
Move towards
C7B9
Get character struct
C7C6
Character event
C892
Automatics
C918
Character behaviour
CA11
Vischar move X
CA49
Vischar move Y
CA81
Target reached
CB23
Get target, assign position
CB2D
Route ended
CB61
Handle target
CB75
Multiply by 1
CB79
Get route
CB85
Random nibble
CB98
Solitary
CC37
Guards follow suspicious character
CCAB
Hostiles pursue
CCCD
Is item discoverable?
CCFB
Is item discoverable (interior)
CD31
Item discovered
DB9E
Mark nearby items
DBEB
Get next drawable itemstruct
DC41
Set-up item plotting
DD02
Item visible
E102
Plot masked sprite (24px)
E29F
Plot masked sprite (16px) (x is zero)
E2A2
Plot masked sprite (16px)
E3FA
Flip 24 masked pixels
E40F
Flip 16 masked pixels
E420
Set-up vischar plotting
E542
Position to tinypos
E550
Divide by eight with rounding
E555
Divide by eight
EED3
Plot game window
EF9A
Event: Roll call
EFCB
Action: Papers
EFFC
User confirm
F068
Jump to main
F163
Main
F1E0
Plot statics and menu text
F206
Plot static tiles, horizontal
F209
Plot static tiles, vertical
F20B
Plot static tiles
F257
Wipe full screen and attributes
F271
Check menu keys
F335
Wipe game window
F350
Choose keys
F408
Set menu item attributes
F41C
Menu key scan
F4B7
Menu screen
F52C
Frequency for semitone
FDE1
Loaded
FE00
Input routine: Keyboard
FE47
Input routine: Protek
FE7E
Input routine: Kempston
FEA3
Input routine: Fuller
FECD
Input route: Sinclair