Memory map
Address
Description
5B00
Message 0x37: 'A VOICE SAID 'ED - TELL THE OIL MAN THAT THE KEY TO THE FAT MANS HOUSE IS AT NO 31 AND THAT THE BOSS WANTS TO SEE YOU BOTH AT NO 19''
5B46
Message 0x38: 'DAISY SAID 'LANA RANG - SHE HAD TO GET OUT IN A HURRY - OH AND I HEARD NOISES IN THE CEILING''
5B7E
Message 0x39: 'OK ED - THE FAT MAN HAS THE KEY TO NO 27'
5B91
Message 0x3A: 'DAISY SAID 'LANA RANG - HER NEW NUMBERS 7162. THE POLICE WERE HERE''
5BBB
Message 0x46: 'SOMEONE BELOW SAID 'CRUISE WAS DRESSED AS THE OIL MAN. DONT LET ANYONE PAST''
5BE8
Message 0x47: 'THERES A SAFE WITH 4 LOCKS'
5D60
Message 0x3F: 'DAISY SAID 'SAM - A GANGSTER'S WATCHING FOR YOU OUTSIDE THE POLICE STATION''
5D92
Message 0x4C: 'DAISY SAID 'LANA RANG - THAT FAT MAN HAS TWO KEYS NOT JUST ONE ''
5DB0
Message 0x40: 'A VOICE SAID 'OK FATS THE HOOK'S AT NO 74 AND ALS GUARDING IT''
5DD3
Message 0x42: 'A VOICE SAID 'OK LANA THE KEY TO 74'S IN THE ROOM PAST THE CATWALK BUT THERE'S A GUARD''
5E05
Message 0x43: 'SOMEONE HIT ME. I PLAYED DEAD. TWO MEN WALKED OFF. ONE SAID 'HEY DON AINT YOU SCARED THAT CRUISE WILL GET UP TO YOUR ROOM WHEN ALS ON THE PHONE ?''
5E61
Message 0x44: 'DAISY SAID 'ALS NUMBER'S 6124''
5E75
Message 0x45: 'TECHNICAL SERVICES HERE. TO USE A HOOK GET TO RIGHT PLACE AND PRESS C'
5EA6
Message 0x48: 'LANA ANSWERED 'OOH SAM! YOUVE GOT THE BIRD. SEE YOU IN YOUR OFFICE''
5EC7
Message 0x49: 'I STARED AT THE LOVELY LANA WAS IT THOSE RUBY LIPS OR THE SLIM AUTOMATIC THAT TRANSFIXED ME? SHE SAID 'THANK YOU FOR THE BUDGIE SAM . ITS PRICELESS. IVE ALREADY KILLED ONCE FOR IT. AND NOW ITS GOODBYE SAM ''
5F69
Message 0x4A: 'SHE'S IN JAIL NOW. ANOTHER CASE SOLVED. BUT NOW THE MOB KNOWS IVE GOT THE BUDGIE AND THEYRE AFTER ME . .'
5FC2
Message 0x4B: 'SHE FIRED'
5FCC
Message 0x61: 'JOYSTICK?'
5FD6
Unused
5FE0
Event table
60F3
Unused
6100
Deal with Sam while he's transfixed by Lana
6152
Prepare for the next game mode
615C
Unused
615D
Reset a gangster's location and restart the command list
6177
'J' pressed - joystick
61BB
Keypress offset patch table for keys 0-9 (Kempston/Cursor/None)
61C5
Keypress offset patch table for keys 0-9 (Int2)
61CF
Add a random number of bucks to Sam's total
61EA
Command list: Keep guard at no. 15
61F2
Check whether a gangster is close enough to Sam to pick him up
61F9
Make the gangster at no. 15 lie in wait for Sam
6200
Make a sound effect
6211
Unused
6212
Potential x-coordinates for the sniper
6219
Unused
621E
Control the sniper while active
62DA
Unused
62DB
Control the sniper
6329
Make a gangster chase Sam
6332
Unused
6333
Banknote animation table
634C
Control a banknote
63C3
Check whether Sam has somersaulted onto a banknote
6400
Copy source sprite tiles over target sprite tiles
6412
Prepare sprite tiles used by Sam when somersaulting or rolling
647B
Unused
647C
Animation phase table for Sam when rolling
6494
Animation phase table for Sam when somersaulting
64B8
'R' pressed - forward roll
64BD
'S' pressed - somersault
653E
Check whether Sam can roll or somersault from his current location
6558
Determine Sam's location
6585
Unused
6586
Sprite tile references susceptible to bullet impact
658F
Unused
6592
Check whether Sam has been hit by a bullet
65DB
Move and draw the bullets
666E
Unused
6670
Update the sniper's sprite tile references
66D8
Check whether Sam is within firing range of the sniper
66F0
Make the sound effect of Sam being hit by a bullet
66F8
Unused
6700
Message 0x03: 'PRESS'
6706
Message 0x04: 'KEY'
670A
Message 0x05: 'PLAY'
670F
Message 0x06: ' RIGHT '
6717
Message 0x07: ' WHEN'
671D
Message 0x08: 'RATCATCHER'
6728
Message 0x09: 'POLICE CHIEF'
6735
Message 0x0A: 'CHICAGO BEARS'
6743
Message 0x0B: 'REVENUE MAN'
674C
Message 0x0C: 'VIOLIN CASE MAKER'
675E
Message 0x0D: 'GARBAGE MAN'
6767
Message 0x0E: 'JAMES GANG'
6772
Message 0x0F: 'RENT COLLECTOR'
6781
Message 0x10: 'MAKE COFFEE'
678D
Message 0x11: 'TAPDANCE'
6796
Message 0x12: 'SCUBA DIVE'
67A1
Message 0x13: 'PLAY POKER'
67A9
Message 0x14: 'TYPE'
67AE
Message 0x15: 'ICE-SKATE'
67B8
Message 0x16: 'WOLFWHISTLE'
67C4
Message 0x17: 'PLAY THE HARMONICA'
67D0
Message 0x18: 'JUST ANOTHER DAY AT THE SAM CRUISE DETECTIVE AGENCY/I WAS TEACHING THE ROACHES TO {verb} WHEN'
67E5
Message 0x19: ' BEGAN '
67ED
Unused
6800
Message 0x64: ' THE '
6806
Message 0x65: 'CRUISE '
680E
Message 0x66: 'NO '
6812
Message 0x67: 'I '
6815
Message 0x68: 'AL '
6819
Message 0x69: 'BUD '
681E
Message 0x6A: 'CHAD '
6824
Message 0x6B: 'DON '
6829
Messages 0x6C and 0x6D: 'ED ' and 'FRED '
682F
Message 0x6E: 'GUS '
6834
Message 0x6F: 'SAM '
6839
Message 0x70: 'JUST ANOTHER DAY AT THE SAM CRUISE DETECTIVE AGENCY'
685F
Message 0x71: ' A '
6863
Message 0x72: 'DAISY '
686A
Message 0x73: ' MAN'
686F
Message 0x74: ' AND '
6875
Message 0x75: 'WAS '
687A
Message 0x76: ' TO '
687F
Message 0x77: ' AND DAISY RAN OFF WITH THE {person/people}/TAKE MY ADVICE KID/DONT BECOME A PRIVATE EYE/IT'LL ONLY BREAK YOUR HEART'
68D4
Message 0x78: ' WHEN I CAME TO '
68DD
Messages 0x79 and 0x7A: ' THE' and 'THE'
68E2
Message 0x7B: 'ONE '
68E7
Message 0x7C: 'SAID '
68ED
Message 0x7D: ' A VOICE SAID ''
68F7
Message 0x7E: ' YOU'
68FC
Message 0x7F: 'ING'
6900
Message 0x20: 'JUST ANOTHER DAY AT THE SAM CRUISE DETECTIVE AGENCY/I'M WORKING ON A CASE RIGHT NOW BUT IF YOU WANT TO PLAY THEN PRESS A KEY.'
692D
Message 0x21: 'JUST ANOTHER DAY AT THE SAM CRUISE DETECTIVE AGENCY/I WAS TEACHING THE ROACHES TO {verb} WHEN THE PHONE RANG. IT WAS A DAME NAMED LANA. SHE SAID TO MEET HER ON THE TOP FLOOR OF THE HOTEL ROYALE. SO BEGAN / THE CASE OF THE BALI BUDGIE'
6992
Message 0x22: 'I WAS BROKE AGAIN AND DAISY RAN OFF WITH THE {person/people}/TAKE MY ADVICE KID/DONT BECOME A PRIVATE EYE/IT'LL ONLY BREAK YOUR HEART'
69A1
Message 0x23: ' WHEN I CAME TO MY WALLET WAS GONE AND DAISY RAN OFF WITH THE {person/people}/TAKE MY ADVICE KID/DONT BECOME A PRIVATE EYE/IT'LL ONLY BREAK YOUR HEART'
69B1
Message 0x24: ' WHEN I CAME TO SOMEONE HAD TAKEN ${tens digit}0'
69C5
Message 0x25: 'A VOICE SAID 'WHO'S THERE?''
69D1
Message 0x26: 'PRESS A KEY TO PLAY'
69E9
Message 0x27: 'I HUNG UP'
69F2
Message 0x28: ''{name}' I SAID '
69F9
Message 0x29: 'I LIFTED THE PHONE '
6A05
Message 0x2A: 'I DIALLED {number}'
6A0E
Message 0x2B: 'A VOICE SAID 'THERES NOONE HERE''
6A1D
Message 0x2C: 'A VOICE SAID 'GET LOST - I'M TRYING TO SLEEP''
6A39
Message 0x2D: 'A VOICE SAID 'BE RIGHT WITH YOU''
6A44
Message 0x2E: 'I DUNNO NO {name}'
6A4E
Message 0x2F: ' THE NUMBER WAS UNOBTAINABLE'
6A64
Message 0x30: 'AT THE JAIL THEY THREW THE BOOK AT ME AND DAISY RAN OFF WITH THE {person/people}/TAKE MY ADVICE KID/DONT BECOME A PRIVATE EYE/IT'LL ONLY BREAK YOUR HEART'
6A80
Message 0x31: 'IT BEGAN RINGING'
6A87
Message 0x32: 'DAISY SAID 'NO MESSAGES SAM ''
6A97
Message 0x33: 'A VOICE SAID 'OK CRUISE WE'RE COMING''
6AA8
Message 0x34: ' THE BAIL WAS ${tens digit}0'
6AB3
Message 0x35: 'THERE'S A MAN'S BODY ON THE FLOOR'
6ACB
Message 0x63: 'I HAD TO GO TO HOSPITAL AND DAISY RAN OFF WITH THE {person/people}/TAKE MY ADVICE KID/DONT BECOME A PRIVATE EYE/IT'LL ONLY BREAK YOUR HEART'
6ADC
Message 0x1A: 'DAISY SAID ''
6AE0
Message 0x1B: 'LANA ANSWERED 'OOH SAM! '
6AF5
Message 0x1C: 'LANA RANG - '
6AFE
Unused
6B00
Phone numbers
6B4B
Ringing phone messages
6B72
Phone messages for Sam
6B96
Unused
6B98
Initial ringing phone locations
6BA5
Initial locations of phones with messages for Sam
6BB1
Message 0x41: 'LANA ANSWERED 'OOH SAM! BUD SAID HE'D MEET ME ALONE IN THE HOTELS RIGHT HAND GREEN ROOM. I'M SCARED - WILL YOU GO INSTEAD?''
6BFD
Unused
6C01
LSBs of addresses of messages 0x01-0x4C
6C4D
Unused
6C61
LSBs of addresses of messages 0x61-0x81
6C82
Unused
6CC8
Message 0x1D: 'LANA '
6CCE
Message 0x1E: 'ING '
6CD1
Message 0x1F: 'THAT'
6CD6
Message 0x80: 'SOMEONE '
6CDC
Message 0x81: 'FAT'
6CE0
Unused
6CF4
Check whether Sam is at the right place to pick up a telephone
6D00
Unused
6D01
MSBs of addresses of messages 0x01-0x4C
6D4D
Unused
6D61
MSBs of addresses of messages 0x61-0x81
6D82
Unused
6DF6
Set
A
=1
6DFF
Unused
6E00
Print a message
6E1A
Print a number
6E84
Unused
6E87
Adjust Sam's cash supply and print the new amount
6EAE
Unused
6EB1
Increment the score and decrement Sam's cash supply
6EC3
Unused
6EC5
Add a message to the message queue
6FC3
Unused
6FC4
Message display interval
6FC5
Last used random message numbers
6FC7
Unused
6FC8
Randomly select a message number
6FDB
'M' pressed - toggle message speed
6FE6
Make the sound effect of a sniper firing
6FF0
Unused
6FF4
Update the telephone icon
701E
Unused
701F
Show or hide an icon in the icon panel
7032
Graphic data for the telephone when ringing
7043
Unused
7045
Graphic data for the telephone when not ringing
7056
Unused
7058
Initialise the icon panel, score box and message line
7083
Check whether a character is on a roof with edges on each side
70A9
Unused
70AA
Check whether a policeman can spot Sam
70D5
Unused
70D6
Check whether a character is visible to passers-by
710C
Unused
710E
Check whether a character is close enough to Sam to pick him up
714B
Unused
714C
Check whether a character is immobilised by a blown fuse
717B
Unused
717C
Make a policeman switch a light on if possible
718C
Unused
7190
Set a character's destination to Sam's current location
71A0
Set a policeman's destination to Sam's current location
71AC
Send a policeman to Sam's last known whereabouts
71DD
Make a gangster or policeman pick Sam up
720A
Vertical and horizontal ranges within which Sam can be spotted by a policeman
7222
Make a policeman start chasing Sam if appropriate
7294
Check whether Sam's disguise is known to the police
72AA
Control a policeman (1)
72B1
Control a policeman (2)
7376
Unused
7377
Make a policeman chase Sam or go to his last known whereabouts if appropriate
738A
Check whether Sam or a gangster is inside a region
739D
Check whether a gangster should start chasing Sam
73C0
Unused
73C3
Locations of fuses
73CF
x-coordinates of doors
73E4
Show or hide the fuse, door, light bulb or phone in the icon panel (1)
7414
Clear the message line and display the first aid kits
7423
Unused
7425
Show or hide the fuse, door, light bulb or phone in the icon panel (2)
749B
Unused
749E
Check whether Sam is standing next to a telephone
74AA
'F' pressed - fuse
74C6
Unused
74C8
Addresses of Sam-handling routines
74D8
Deal with Sam
7500
Process the event table
7541
Initialise the events and objects for a new game
755B
Initialise an event or object for a new game
7564
Unused
7565
Make the cash bonus/key sound effect
7576
'L' pressed - light on/off
758C
'B' pressed - raise/lower blind
75A3
Unused
75A4
Check whether Sam is standing next to a fuse that has not been blown yet
75C2
Deal with Sam when his arm is raised or his knees are bent
75C9
Urgent message number
75CA
Add an urgent message to the message queue
75D0
Determine the interval between the last message and the next
75F6
Ask Sam 'WHO'S THERE?' when he takes or makes a phone call
7603
Check whether Sam has found something and update the icon panel
76BC
Deal with a character who is at the entrance to a building
76DD
Check whether Sam is standing next to a ringing telephone
76F9
Unused
76FA
'T' pressed - telephone
772F
Check whether a character can answer the telephone that Sam is calling
776E
Unused
776F
Deal with Sam when he's on the phone and has been asked 'WHO'S THERE?'
77A2
Unused
77A3
Check whether there is a telephone message for Sam
77D3
Deal with Sam when he's on the phone
7866
Prepare for a cutscene
78F9
Unused
78FC
Check whether a message is in the message queue
790D
Display a cutscene
797C
Unused
7980
Keypress offsets to use for Sam in demo mode
7986
Locations for Sam to visit in demo mode
7996
Collect a keypress during the game (or simulate one in demo mode)
79E4
'G' pressed - get object
7A04
Send the police after Sam
7A0C
Place a telephone call
7A17
Check whether Sam has dialled a valid telephone number
7A34
Queue the message 'I HUNG UP' (unused)
7A39
Check whether Sam has entered a house through the front door without a key
7A57
Make a gangster walk up or down until Sam arrives
7A6A
Make a gangster walk up and down while watching for Sam
7A82
Make a gangster chase and pick up Sam
7AB5
Unused
7AB6
Increment the score and decrement Sam's cash supply at regular intervals
7AE2
Prepare the phone messages, events and objects for a new game
7AF4
Deal with Sam when he's being carried by a gangster or policeman
7B5A
Unused
7B5C
Deal with a character who is standing next to the jail cell door
7B6A
Let Sam out of jail if necessary
7B9A
Make a policeman arrest Sam, and end the game if he cannot pay his bail
7BB6
Control the hook while it's flying
7BE1
'C' pressed - use hook
7C3F
Unused
7C40
Check whether a character will soon be entering or leaving the hotel
7CC7
Unused
7CC8
Collect a character's destination coordinates from a command list
7CD8
Take the hook and budgie from Sam
7CFE
Check whether Sam should be chased by the police
7D09
Set the attribute bytes for Sam's current disguise
7D1C
Object/key/cash/message location table
7D59
Message 0x3B: 'LANA ANSWERED 'OOH SAM! THEY KILLED MY FIANCE AND STOLE THE BUDGIE''
7D7A
Message 0x3C: 'LANA ANSWERED 'OOH SAM! THAT CROOK THE FAT MAN'S JUST MOVED INTO NO 15''
7D9B
Message 0x3D: 'SOMEONE GROWLED 'NO KEY EH!''
7DAB
Message 0x3E: 'IT ALL WENT BLACK. AS I FELL SOMEONE FAT PUSHED PAST ME SHOUTING ' YOULL NOT GET THE KEY WHEN I'M STILL STANDING''
7DFF
Unused
7E00
Mirrored values of 0x00-0xFF
7F00
Screen refresh buffer
7F60
Message buffer
7F81
Submessage indicator and message addresses
7F91
Unused
7F92
Message 0x02: '{number}'
7F97
Phone table entry address
7F99
Time that Sam last lifted a ringing telephone
7F9A
ID of the telephone that Sam is calling
7F9B
Telephone call status flags
7F9C
Score
7F9E
Bucks
7FA0
Time the last message was displayed
7FA2
Blown fuse delay counters
7FA8
Icon panel status flags
7FA9
Main loop task timer
7FAA
Door knock status flags
7FB4
Blown fuse indicator
7FB5
Unused
7FB6
Fuse flags
7FB7
Index of the current message in the message queue
7FB8
Message queue
7FC0
Bullet buffer 1
7FC4
Bullet buffer 2
7FC8
Last value seen in the system variable FRAMES
7FC9
Current disguise
7FCA
Number string buffer
7FD0
Message 0x01: '{tens digit}/{name}'
7FD2
Message number to watch in the message queue
7FD3
ID of the telephone Sam is holding
7FD4
Time when the score was last incremented
7FD6
Unused
7FDB
Location the police should head for when looking for Sam
7FDE
Random number seed
7FE0
Unused
7FE7
Bullet timer
7FE8
Disguise status flags
7FE9
Object inventory
7FEA
Key inventory
7FEB
Police flags
7FEC
High score
7FEE
Game mode indicator
7FEF
Lives (first aid kits)
7FF0
Door status flags
7FFA
Input device indicator
7FFB
Number of the character just moved (0xD7-0xE5)
7FFC
Sam's status flags
7FFD
Last key pressed
7FFE
x-coordinate of the leftmost column of the play area on screen
7FFF
y-coordinate of the topmost row of the play area on screen
8000
Play area graphic data (tiles 0x00-0xFF, base page 0x80)
8800
Play area graphic data (tiles 0x00-0xFF, base page 0x88)
9000
Play area graphic data (tiles 0x00-0xFF, base page 0x90)
9800
Play area graphic data (tiles 0x00-0xFF, base page 0x98)
A000
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 1/8)
A015
Mask value 1/8
A016
Special location handler routine address
A018
Unused
A019
Direction indicators for a character facing left and going left
A01C
T values (6|y)
A01E
Play area tile back buffer byte 1/8
A01F
T values (6|y)
A100
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 2/8)
A115
Mask value 2/8
A116
Special location handler routine address
A118
Unused
A119
Direction indicators for a character facing right and going right
A11C
T' values (6|y)
A11E
Play area tile back buffer byte 2/8
A11F
T' values (6|y)
A200
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 3/8)
A215
Mask value 3/8
A216
Special location handler routine address
A218
Direction indicators for a character facing left and going up
A21C
T values (6|y-1)
A21E
Play area tile back buffer byte 3/8
A21F
T values (6|y-1)
A300
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 4/8)
A315
Mask value 4/8
A316
Special location handler routine address
A318
Direction indicators for a character facing right and going up
A31C
T' values (6|y-1)
A31E
Play area tile back buffer byte 4/8
A31F
T' values (6|y-1)
A400
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 5/8)
A415
Mask value 5/8
A416
Special location handler routine address
A418
Direction indicators for a character facing left and going down
A41C
T values (6|y-2)
A41E
Play area tile back buffer byte 5/8
A41F
T values (6|y-2)
A500
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 6/8)
A515
Mask value 6/8
A516
Special location handler routine address
A518
Direction indicators for a character facing right and going down
A51C
T' values (6|y-2)
A51E
Play area tile back buffer byte 6/8
A51F
T' values (6|y-2)
A600
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 7/8)
A615
Mask value 7/8
A616
Special location handler routine address
A618
Unused
A61C
T values (6|y-3)
A61E
Play area tile back buffer byte 7/8
A61F
T values (6|y-3)
A700
Play area graphic data (tiles 0x00-0x14, base page 0xA0, byte 8/8)
A715
Mask value 8/8
A716
Unused
A71C
T' values (6|y-3)
A71E
Play area tile back buffer byte 8/8
A71F
T' values (6|y-3)
A800
Play area attribute data
A81C
T values (6|y-4)
A81E
Play area tile back buffer attribute byte
A81F
T values (6|y-4)
A900
Play area attribute data
A91C
T' values (6|y-4)
A91E
Unused
A91F
T' values (6|y-4)
AA00
Play area attribute data
AA1C
T values (6|y-5)
AA1E
Unused
AA1F
T values (6|y-5)
AB00
Play area attribute data
AB1C
T' values (6|y-5)
AB1E
Unused
AB1F
T' values (6|y-5)
AC00
T values (6|y)
AD00
T' values (6|y)
AE00
T values (6|y-1)
AF00
T' values (6|y-1)
B000
T values (6|y-2)
B100
T' values (6|y-2)
B200
T values (6|y-3)
B300
T' values (6|y-3)
B400
T values (6|y-4)
B500
T' values (6|y-4)
B600
T values (6|y-5)
B700
T' values (6|y-5)
B800
Z values (0<=y<=5)
B820
Play area tile attribute address LSBs (0<=y<=5)
B840
Window flags (0<=y<=5)
B860
Location descriptors (x-coordinate 66)
B865
Unused
B867
Location descriptors (x-coordinate 67)
B86C
Unused
B870
Location descriptors (x-coordinate 68)
B877
Unused
B879
Location descriptors (x-coordinate 69)
B87E
Unused
B880
Z'' values (8|x)
B8E6
Location descriptors (x-coordinates 13, 197)
B8F7
Location descriptor (x-coordinate 38)
B8FA
Location descriptors (x-coordinates 40, 112, 208)
B900
Z values (6<=y<=11)
B920
Play area tile attribute address LSBs (6<=y<=11)
B940
5th floor window flags (6<=y<=11)
B960
Location descriptors (x-coordinate 91)
B969
Unused
B96B
Location descriptors (x-coordinate 90)
B974
Unused
B978
Location descriptors (x-coordinate 76)
B97E
Unused
B980
Z'' values (8|x-1)
B9E6
Location descriptors (x-coordinates 22, 149, 205, 222)
B9F7
Location descriptors (x-coordinate 39)
B9FE
Unused
BA00
Z values (12<=y<=17)
BA20
Play area tile attribute address LSBs (12<=y<=17)
BA40
4th floor window flags (12<=y<=17)
BA60
Location descriptor (x-coordinate 74)
BA64
Location descriptors (x-coordinate 77)
BA6A
Location descriptors (x-coordinate 81)
BA72
Location descriptors (x-coordinate 78)
BA77
Unused
BA7A
Location descriptors (x-coordinate 82)
BA80
Z'' values (8|x-2)
BAE6
Location descriptors (x-coordinates 32, 57, 103, 125, 150, 207)
BAF3
Unused
BAF4
Location descriptors (x-coordinates 53, 62, 100, 254)
BB00
Z values (18<=y<=23)
BB20
Play area tile attribute address LSBs (18<=y<=23)
BB40
3rd floor window flags (18<=y<=23)
BB60
Unused
BB62
Location descriptors (x-coordinate 92)
BB67
Unused
BB78
Location descriptor (x-coordinate 83)
BB7C
Location descriptor (x-coordinate 86)
BB80
Z'' values (8|x-3)
BBE6
Location descriptors (x-coordinates 43, 115, 211)
BBFA
Unused
BC00
Z values (24<=y<=29)
BC20
Play area tile attribute address LSBs (24<=y<=29)
BC40
2nd floor window flags (24<=y<=29)
BC60
Unused
BC6E
Location descriptors (x-coordinate 75)
BC74
Unused
BC80
Z'' values (8|x-4)
BCE6
Location descriptors (x-coordinates 42, 114, 210)
BCF8
Unused
BCFC
Location descriptor (x-coordinate 71)
BD00
Z values (30<=y<=35)
BD20
Play area tile attribute address LSBs (30<=y<=35)
BD40
1st floor window flags (30<=y<=35)
BD60
Location descriptors (x-coordinates 126, 151, 182, 183)
BD6B
Unused
BD75
Location descriptor (x-coordinate 118)
BD79
Unused
BD7B
Location descriptor (x-coordinate 124)
BD7F
Unused
BD80
Z'' values (8|x-5)
BDE6
Location descriptors (x-coordinates 41, 113, 209)
BDF1
Unused
BE00
Z values (36<=y<=41)
BE20
Play area tile attribute address LSBs (36<=y<=41)
BE40
Window flags (36<=y<=41)
BE60
Location descriptors (x-coordinates 45, 117, 213)
BE77
Location descriptors (x-coordinate 135)
BE80
Z'' values (8|x-6)
BEE6
Location descriptors (x-coordinates 44, 116, 212)
BEFD
Location descriptor (x-coordinate 133)
BF00
Z' values
BF66
Location descriptor (x-coordinate 80)
BF69
Unused
BF6A
Location descriptor (x-coordinate 65)
BF6D
Unused
BF71
Location descriptors (x-coordinate 190)
BF7E
Unused
BF80
Z'' values (8|x-7)
BFE6
Location descriptors (x-coordinate 88)
BFED
Location descriptors (x-coordinate 89)
BFF8
Unused
BFFA
Location descriptors (x-coordinate 79)
BFFF
Unused
C000
Play area foreground tile references
C0FE
Unused
C100
Play area foreground tile references
C1FE
Unused
C201
Location descriptors (x-coordinate 136)
C214
Location descriptors (x-coordinate 137)
C22C
Unused
C22E
Location descriptors (x-coordinate 138)
C242
Unused
C243
Location descriptors (x-coordinate 139)
C24E
Unused
C258
Location descriptors (x-coordinate 148)
C25D
Location descriptors (x-coordinates 152, 232, 248)
C262
Unused
C264
Location descriptors (x-coordinates 153, 233, 249)
C271
Unused
C272
Location descriptors (x-coordinates 154, 234, 250)
C27F
Unused
C280
Location descriptors (x-coordinate 155, 235, 251)
C298
Unused
C299
Location descriptors (x-coordinates 156, 236, 252)
C2B1
Unused
C2B2
Location descriptors (x-coordinates 157, 237, 253)
C2BB
Location descriptors (x-coordinates 158, 238)
C2C6
Unused
C2C8
Location descriptors (x-coordinate 181)
C2D4
Location descriptors (x-coordinate 175)
C2E1
Unused
C2E2
Location descriptors (x-coordinate 177)
C2EE
Unused
C2EF
Location descriptors (x-coordinate 178)
C2F8
Unused
C2F9
Location descriptors (x-coordinate 15)
C300
Unused
C301
Location descriptors (x-coordinate 179)
C30C
Location descriptors (x-coordinate 180)
C319
Location descriptors (x-coordinate 184)
C320
Location descriptors (most x-coordinates)
C330
Keypress offset table
C380
Location descriptors (x-coordinates 223, 239)
C391
Location descriptor (x-coordinate 225)
C394
Location descriptor (x-coordinate 226)
C397
Unused
C398
Location descriptors (x-coordinates 7, 231, 247)
C3A4
Location descriptor (x-coordinates 6, 230, 246)
C3A7
Location descriptor (x-coordinates 9, 193)
C3AA
Location descriptors (x-coordinates 11, 195)
C3BE
Location descriptors (x-coordinates 10, 194)
C3C9
Location descriptors (x-coordinates 12, 196)
C3D5
Location descriptors (x-coordinates 16, 224, 240)
C3DB
Location descriptors (x-coordinates 14, 30, 198)
C3F2
Location descriptor (x-coordinates 21, 147, 204)
C3F5
Location descriptor (x-coordinates 23, 206)
C3F9
Unused
C400
Location descriptors (all x-coordinates, z=4)
C500
Location descriptor address LSBs
C600
Location descriptor address MSBs
C700
Sprite graphic data
D700
Character buffers for character group 0xD7
D77D
Unused
D77E
Sprite tile references (tile 0, animatory states 0x00-0x7F) and graphic data (UDG byte 1/8)
D800
Character buffers for character group 0xD8
D87D
Unused
D87E
Sprite tile references (tile 1, animatory states 0x00-0x7F) and graphic data (mask byte 1/8)
D900
Character buffers for character group 0xD9
D97D
Unused
D97E
Sprite tile references (tile 2, animatory states 0x00-0x7F) and graphic data (UDG byte 2/8)
DA00
Character buffers for character group 0xDA
DA7D
Unused
DA7E
Sprite tile references (tile 3, animatory states 0x00-0x7F) and graphic data (mask byte 2/8)
DB00
Character buffers for character group 0xDB
DB7D
Unused
DB7E
Sprite tile references (tile 4, animatory states 0x00-0x77) and graphic data (UDG byte 3/8)
DBF8
Unused
DC00
Character buffers for character group 0xDC
DC7D
Unused
DC7E
Sprite tile references (tile 5, animatory states 0x00-0x77) and graphic data (mask byte 3/8)
DCF8
Unused
DD00
Character buffers for character group 0xDD
DD7D
Unused
DD7E
Sprite tile references (tile 6, animatory states 0x00-0x77) and graphic data (UDG byte 4/8)
DDF8
Unused
DE00
Character buffer for character 0xDE
DE20
Initialisation parameters for character 0xDE
DE3E
Sprite tile references used by Sam in disguise
DE4E
Unused
DE7E
Sprite tile references (tile 7, animatory states 0x00-0x77) and graphic data (mask byte 4/8)
DEF8
Unused
DF00
Character buffer for character 0xDF
DF20
Initialisation parameters for character 0xDF
DF3E
Sprite tile references for Sam in disguise 0
DF4D
Unused
DF50
Sprite tile graphic data for Sam in disguise (byte pairs 1/8)
DF7E
Sprite tile references (tile 8, animatory states 0x00-0x77) and graphic data (UDG byte 5/8)
DFF8
Unused
E000
Character buffer for character 0xE0
E020
Initialisation parameters for character 0xE0
E03E
Sprite tile references for Sam in disguise 1
E04D
Unused
E050
Sprite tile graphic data for Sam in disguise (byte pairs 2/8)
E07E
Sprite tile references (tile 9, animatory states 0x00-0x77) and graphic data (mask byte 5/8)
E0F8
Unused
E100
Character buffer for character 0xE1
E120
Initialisation parameters for character 0xE1
E13E
Sprite tile references for Sam in disguise 2
E14D
Unused
E150
Sprite tile graphic data for Sam in disguise (byte pairs 3/8)
E17E
Sprite tile references (tile 10, animatory states 0x00-0x77) and graphic data (UDG byte 6/8)
E1F8
Unused
E200
Character buffer for character 0xE2
E220
Initialisation parameters for character 0xE2
E23E
Sprite tile references for Sam in disguise 3
E24D
Unused
E250
Sprite tile graphic data for Sam in disguise (byte pairs 4/8)
E27E
Sprite tile references (tile 11, animatory states 0x00-0x77) and graphic data (mask byte 6/8)
E2F8
Unused
E300
Character buffer for character 0xE3
E320
Initialisation parameters for character 0xE3
E33E
Sprite tile references for Sam in disguise 4
E34D
Unused
E350
Sprite tile graphic data for Sam in disguise (byte pairs 5/8)
E37E
Sprite tile references (tile 12, animatory states 0x00-0x77) and graphic data (UDG byte 7/8)
E3F8
Unused
E400
Character buffer for character 0xE4
E420
Initialisation parameters for character 0xE4
E43E
Sprite tile references for Sam in disguise 5
E44D
Unused
E450
Sprite tile graphic data for Sam in disguise (byte pairs 6/8)
E47E
Sprite tile references (tile 13, animatory states 0x00-0x77) and graphic data (mask byte 7/8)
E4F8
Unused
E500
Character buffer for character 0xE5
E520
Initialisation parameters for character 0xE5
E53E
Sprite tile references for Sam in disguise 6
E54D
Unused
E550
Sprite tile graphic data for Sam in disguise (byte pairs 7/8)
E57E
Sprite tile references (tile 14, animatory states 0x00-0x77) and graphic data (UDG byte 8/8)
E5F8
Unused
E600
Character buffer for Sam
E620
Initialisation parameters for Sam
E63E
Sprite tile references for Sam in disguise 7
E64D
Unused
E650
Sprite tile graphic data for Sam in disguise (byte pairs 8/8)
E67E
Sprite tile graphic data (mask byte 8/8)
E6F1
Unused
E700
Copy a play area tile into the back buffer
E70C
Print a tile
E7E6
Unused
E7E8
Move a row of the screen left, right, up or down
E80D
Unused
E80E
Scroll the screen left 8 columns
E842
Unused
E845
Scroll the screen right 8 columns
E879
Unused
E87C
Scroll the screen up 6 rows
E8B4
Unused
E8B7
Scroll the screen down 6 rows
E8F0
Unused
E8F3
Superimpose sprite tiles onto a tile of the play area
E9BF
Unused
E9C8
Update the SRB for a character's current animatory state and location
E9D5
Update a character's animatory state and location and update the SRB
EA80
Update the display
EAB2
Get the keypress offset of the last key pressed (1)
EAD8
Unused
EAD9
Get the ASCII code of the last key pressed
EAED
Unused
EAF2
Get the keypress offset of the last key pressed (2)
EAF8
Check whether a character is on the sidewalk or road
EB13
Obtain descriptors for a character's current location
EB83
Unused
EB85
Make a character stand up if he's lying down
EB9B
Make a character move up
EBA0
Make a character move down
EBAE
Make a character move right
EBBB
Make a character move left
EC58
Unused
EC5A
Move a character from the midstride or mid-action position and update the SRB
EC69
Make a sound effect
EC7B
Move Sam from the midstride or mid-action position and scroll the screen if necessary
ECD0
Unused
ECD2
'Q' pressed - up
ECD7
'A' pressed - down
ECDC
'P' pressed - right
ECE1
'O' pressed - left
ECFD
Unused
ED00
Addresses of keypress handling routines
ED2A
Unused
ED30
Obtain location descriptors for a character standing next to a closed door
ED36
Obtain an identifier for a character's current location
ED8A
Unused
ED8C
Determine the next move a character should make to reach his destination
EF02
Unused
EF0A
Region identifier tables
F000
Perform various main loop tasks
F01A
Unused
F02B
Main loop
F07F
Unused
F080
Update the icon panel, draw the bullets, and scan the event table
F09D
Unused
F0A0
Start (continued)
F0A3
Populate addresses 7E00-7FFF (unused)
F0AC
Start the game (unused)
F0B2
Return to BASIC (unused)
F0BE
End a cutscene
F0F9
Unused
F100
Open or close a door and update the screen refresh buffer
F144
Close any doors that need closing
F15E
Unused
F15F
Collect one byte from a command list
F171
Copy two bytes from a command list into a character's buffer
F17F
Get a random number
F18E
Cycle a character buffer group forwards and scroll the screen right 8 columns
F1BA
Cycle a character buffer group backwards and scroll the screen left 8 columns
F1E3
Check for keypresses when Sam is on the phone
F1FC
Move the characters
F280
Terminate a command
F293
Check whether the door that a character is standing next to is closed
F2A7
Unused
F2A8
Check whether a character can open a door
F2DD
Unused
F2E1
Key ownership flags
F2F0
'K' pressed - knock on or open a door
F304
Make Sam raise his arm
F308
Deal with Sam when he has knocked on or is opening a door
F336
Unused
F338
Make a character knock on a door or open it with a key
F346
Control a character who is knocking on or opening a door (1)
F359
Control a character who has knocked on a door and is waiting for an answer
F375
Control a character who is knocking on or opening a door (2)
F383
Control a character who is knocking on or opening a door (3)
F39B
Unused
F3A0
Update the SRB for a window
F401
Unused
F404
Decrement and check the blown fuse delay counters
F436
Check whether a character is standing next to a light switch
F485
Make a character flip a light switch off or on occasionally
F4E6
Make a character flip a light switch on or off occasionally
F4FB
Unused
F500
Fixture locations
F5A0
Make a character flip a light switch off occasionally
F5AC
Guide a character up or down staircases
F5CD
Unused
F5CE
Guide a character across a floor to his destination
F5F6
Make a character consider switching a light off (unused)
F5FB
Guide a character from one spot on the sidewalk or road to another
F600
Make a character go to a location
F686
Make a character stop running and restart the command list
F68D
Unused
F68E
Check whether a gangster is midstride or has his arm raised
F698
Check whether a character is midstride
F6A1
Unused
F6A2
Calculate the x-coordinate of the front column of a character's sprite
F6B0
Check whether a character is standing next to a light switch or window blind
F6DC
Unused
F6DE
Restart the command list
F6E5
Unused
F6E9
Make a character walk up or down
F731
Make a character drop Sam
F748
Make a character walk up and down until somebody knocks on a door
F79A
Initialise a cat's interruptible subcommand
F7AB
Initialise and execute an interruptible subcommand
F7B0
Unused
F7B1
Change the primary command routine address
F7BF
Make a character open a door that has been knocked on
F7CD
Open a door
F7DA
Collect the window flags for a play area location
F7F0
Initialise the character buffers for character groups 0xD7-0xDD
F81F
Unused
F820
Make a character walk up and down for a while
F82A
Control a cat
F846
Make a cat run up or down
F87E
Initialise the character buffers for characters 0xDE-0xE6
F8AE
Prepare for demo mode or a new game
F905
Check whether a character is in the correct spot to enter a building
F91E
Check whether a character should enter a building or knock first
F928
Prepare the sprite tiles used by a character when lying down
F95D
Unused
F95E
Change Sam's disguise
F9D1
Unused
F9D2
Knock a character over
F9ED
Initialise an uninterruptible subcommand if possible
F9FA
Initialise an uninterruptible subcommand
FA04
Unused
FA05
Deal with a character who has been knocked over
FA79
Check whether there are any messages remaining in the message queue
FA82
Unused
FA83
Deal with a character who has nearly recovered from being knocked over
FAA2
Check whether a falling character has hit anyone on the head
FAD8
Unused
FADA
'D' pressed - change disguise
FAE3
Move a falling character to the next point in his descent
FB43
Unused
FB46
Landing y-coordinates
FB4B
Control a character who has stepped off the roof of a building
FB52
Deal with a character who is about to step off the roof of a building
FC00
Deal with a character who is stepping onto or over the roof of no. 19
FC25
Add or remove the rope above the roof of no. 19
FC43
Unused
FC46
Generate the table of mirrored values of 0x00-0xFF
FC57
Hide the play area
FC6A
Scroll the screen up and down 7 times
FCE2
Unused
FCE4
Make a sound effect
FCF2
Unused
FCF4
Command list: Patrol duty
FCFC
Command list: Jail cell duty
FD0C
Region definitions used by the gangster on the catwalk
FD16
Command list: Keep guard on the catwalk
FD26
Region definitions used by Al at no. 74
FD30
Command list: Guard the hook at no. 74
FD44
Region definitions used by the gangster at no. 19
FD4E
Command list: Keep guard at no. 19
FD64
Region definitions used by the gangster in game mode 4
FD6E
Command list: Chase Sam for ever
FD76
Command list: Control a banknote
FD78
Command list: Control a banknote (unless Sam's got the hook)
FD7A
Command list: Control the sniper
FD7C
Region definitions used by the gangster outside the police station
FD86
Command list: Keep guard outside the police station
FD96
Command list: Patrol duty (demo mode)
FDA0
Command list: Control the fat man
FDAC
Command list: Go to Sam's office
FDB4
Command list: No. 31 walkabout
FDC4
Command list: No. 15 walkabout
FDD0
Command list: Shops walkabout
FDDE
Unused
FDDF
Command list: Hotel walkabout
FDE9
Unused
FDEA
Command list: No. 15 walkabout
FDF8
Command list: No. 74 walkabout
FE06
Command list: Hotel walkabout
FE0A
Command list: Hotel walkabout
FE14
Command list: Apartment building walkabout
FE22
Unused
FE23
Command list: Front door duty at no. 15
FE33
Unused
FE34
Command list: Control Daisy
FE46
Unused
FE49
Command list: Apartment building walkabout
FE57
Unused
FE58
Command list: Front door duty at no. 74
FE76
Unused
FE77
Command list: Front door duty at no. 31
FE87
Unused
FE92
Command list: Control a cat
FE94
Command list: Do nothing
FE96
Command list: Walk up and down for ever
FE9A
Command list: Apartment building walkabout
FEA0
Command list: Apartment building walkabout
FEAE
Initialisation parameters for character group 0xD7
FECC
Initialisation parameters for character group 0xD8
FEEA
Initialisation parameters for character group 0xD9
FF08
Initialisation parameters for character group 0xDA
FF26
Initialisation parameters for character group 0xDB
FF44
Initialisation parameters for character group 0xDC
FF62
Initialisation parameters for character group 0xDD
FF80
Location descriptors (x-coordinate 176)
FF93
Unused
FF98
Building entrance x-coordinates
FFB6
Door locations
FFC0
Locations affected by blown fuses
FFE0
Game status buffer template