Contact Sam Cruise Routines
Address Description
24832 Deal with Sam while he's transfixed by Lana
24914 Prepare for the next game mode
24925 Reset a gangster's location and restart the command list
24951 'J' pressed - joystick
25039 Add a random number of bucks to Sam's total
25074 Check whether a gangster is close enough to Sam to pick him up
25081 Make the gangster at no. 15 lie in wait for Sam
25088 Make a sound effect
25118 Control the sniper while active
25307 Control the sniper
25385 Make a gangster chase Sam
25420 Control a banknote
25539 Check whether Sam has somersaulted onto a banknote
25600 Copy source sprite tiles over target sprite tiles
25618 Prepare sprite tiles used by Sam when somersaulting or rolling
25784 'R' pressed - forward roll
25789 'S' pressed - somersault
25918 Check whether Sam can roll or somersault from his current location
25944 Determine Sam's location
26002 Check whether Sam has been hit by a bullet
26075 Move and draw the bullets
26224 Update the sniper's sprite tile references
26328 Check whether Sam is within firing range of the sniper
26352 Make the sound effect of Sam being hit by a bullet
27892 Check whether Sam is at the right place to pick up a telephone
28150 Set A=1
28160 Print a message
28186 Print a number
28295 Adjust Sam's cash supply and print the new amount
28337 Increment the score and decrement Sam's cash supply
28357 Add a message to the message queue
28616 Randomly select a message number
28635 'M' pressed - toggle message speed
28646 Make the sound effect of a sniper firing
28660 Update the telephone icon
28703 Show or hide an icon in the icon panel
28760 Initialise the icon panel, score box and message line
28803 Check whether a character is on a roof with edges on each side
28842 Check whether a policeman can spot Sam
28886 Check whether a character is visible to passers-by
28942 Check whether a character is close enough to Sam to pick him up
29004 Check whether a character is immobilised by a blown fuse
29052 Make a policeman switch a light on if possible
29072 Set a character's destination to Sam's current location
29088 Set a policeman's destination to Sam's current location
29100 Send a policeman to Sam's last known whereabouts
29149 Make a gangster or policeman pick Sam up
29218 Make a policeman start chasing Sam if appropriate
29332 Check whether Sam's disguise is known to the police
29354 Control a policeman (1)
29361 Control a policeman (2)
29559 Make a policeman chase Sam or go to his last known whereabouts if appropriate
29578 Check whether Sam or a gangster is inside a region
29597 Check whether a gangster should start chasing Sam
29668 Show or hide the fuse, door, light bulb or phone in the icon panel (1)
29716 Clear the message line and display the first aid kits
29733 Show or hide the fuse, door, light bulb or phone in the icon panel (2)
29854 Check whether Sam is standing next to a telephone
29866 'F' pressed - fuse
29912 Deal with Sam
29952 Process the event table
30017 Initialise the events and objects for a new game
30043 Initialise an event or object for a new game
30053 Make the cash bonus/key sound effect
30070 'L' pressed - light on/off
30092 'B' pressed - raise/lower blind
30116 Check whether Sam is standing next to a fuse that has not been blown yet
30146 Deal with Sam when his arm is raised or his knees are bent
30154 Add an urgent message to the message queue
30160 Determine the interval between the last message and the next
30198 Ask Sam 'WHO'S THERE?' when he takes or makes a phone call
30211 Check whether Sam has found something and update the icon panel
30396 Deal with a character who is at the entrance to a building
30429 Check whether Sam is standing next to a ringing telephone
30458 'T' pressed - telephone
30511 Check whether a character can answer the telephone that Sam is calling
30575 Deal with Sam when he's on the phone and has been asked 'WHO'S THERE?'
30627 Check whether there is a telephone message for Sam
30675 Deal with Sam when he's on the phone
30822 Prepare for a cutscene
30972 Check whether a message is in the message queue
30989 Display a cutscene
31126 Collect a keypress during the game (or simulate one in demo mode)
31204 'G' pressed - get object
31236 Send the police after Sam
31244 Place a telephone call
31255 Check whether Sam has dialled a valid telephone number
31284 Queue the message 'I HUNG UP' (unused)
31289 Check whether Sam has entered a house through the front door without a key
31319 Make a gangster walk up or down until Sam arrives
31338 Make a gangster walk up and down while watching for Sam
31362 Make a gangster chase and pick up Sam
31414 Increment the score and decrement Sam's cash supply at regular intervals
31458 Prepare the phone messages, events and objects for a new game
31476 Deal with Sam when he's being carried by a gangster or policeman
31580 Deal with a character who is standing next to the jail cell door
31594 Let Sam out of jail if necessary
31642 Make a policeman arrest Sam, and end the game if he cannot pay his bail
31670 Control the hook while it's flying
31713 'C' pressed - use hook
31808 Check whether a character will soon be entering or leaving the hotel
31944 Collect a character's destination coordinates from a command list
31960 Take the hook and budgie from Sam
31998 Check whether Sam should be chased by the police
32009 Set the attribute bytes for Sam's current disguise
59136 Copy a play area tile into the back buffer
59148 Print a tile
59368 Move a row of the screen left, right, up or down
59406 Scroll the screen left 8 columns
59461 Scroll the screen right 8 columns
59516 Scroll the screen up 6 rows
59575 Scroll the screen down 6 rows
59635 Superimpose sprite tiles onto a tile of the play area
59848 Update the SRB for a character's current animatory state and location
59861 Update a character's animatory state and location and update the SRB
60032 Update the display
60082 Get the keypress offset of the last key pressed (1)
60121 Get the ASCII code of the last key pressed
60146 Get the keypress offset of the last key pressed (2)
60152 Check whether a character is on the sidewalk or road
60179 Obtain descriptors for a character's current location
60293 Make a character stand up if he's lying down
60315 Make a character move up
60320 Make a character move down
60334 Make a character move right
60347 Make a character move left
60506 Move a character from the midstride or mid-action position and update the SRB
60521 Make a sound effect
60539 Move Sam from the midstride or mid-action position and scroll the screen if necessary
60626 'Q' pressed - up
60631 'A' pressed - down
60636 'P' pressed - right
60641 'O' pressed - left
60720 Obtain location descriptors for a character standing next to a closed door
60726 Obtain an identifier for a character's current location
60812 Determine the next move a character should make to reach his destination
61440 Perform various main loop tasks
61483 Main loop
61568 Update the icon panel, draw the bullets, and scan the event table
61600 Start (continued)
61603 Populate pages 126 and 127 (unused)
61612 Start the game (unused)
61618 Return to BASIC (unused)
61630 End a cutscene
61696 Open or close a door and update the screen refresh buffer
61764 Close any doors that need closing
61791 Collect one byte from a command list
61809 Copy two bytes from a command list into a character's buffer
61823 Get a random number
61838 Cycle a character buffer group forwards and scroll the screen right 8 columns
61882 Cycle a character buffer group backwards and scroll the screen left 8 columns
61923 Check for keypresses when Sam is on the phone
61948 Move the characters
62080 Terminate a command
62099 Check whether the door that a character is standing next to is closed
62120 Check whether a character can open a door
62192 'K' pressed - knock on or open a door
62212 Make Sam raise his arm
62216 Deal with Sam when he has knocked on or is opening a door
62264 Make a character knock on a door or open it with a key
62278 Control a character who is knocking on or opening a door (1)
62297 Control a character who has knocked on a door and is waiting for an answer
62325 Control a character who is knocking on or opening a door (2)
62339 Control a character who is knocking on or opening a door (3)
62368 Update the SRB for a window
62468 Decrement and check the blown fuse delay counters
62518 Check whether a character is standing next to a light switch
62597 Make a character flip a light switch off or on occasionally
62694 Make a character flip a light switch on or off occasionally
62880 Make a character flip a light switch off occasionally
62892 Guide a character up or down staircases
62926 Guide a character across a floor to his destination
62966 Make a character consider switching a light off (unused)
62971 Guide a character from one spot on the sidewalk or road to another
62976 Make a character go to a location
63110 Make a character stop running and restart the command list
63118 Check whether a gangster is midstride or has his arm raised
63128 Check whether a character is midstride
63138 Calculate the x-coordinate of the front column of a character's sprite
63152 Check whether a character is standing next to a light switch or window blind
63198 Restart the command list
63209 Make a character walk up or down
63281 Make a character drop Sam
63304 Make a character walk up and down until somebody knocks on a door
63386 Initialise a cat's interruptible subcommand
63403 Initialise and execute an interruptible subcommand
63409 Change the primary command routine address
63423 Make a character open a door that has been knocked on
63437 Open a door
63450 Collect the window flags for a play area location
63472 Initialise the character buffers for character groups 215-221
63520 Make a character walk up and down for a while
63530 Control a cat
63558 Make a cat run up or down
63614 Initialise the character buffers for characters 222-230
63662 Prepare for demo mode or a new game
63749 Check whether a character is in the correct spot to enter a building
63774 Check whether a character should enter a building or knock first
63784 Prepare the sprite tiles used by a character when lying down
63838 Change Sam's disguise
63954 Knock a character over
63981 Initialise an uninterruptible subcommand if possible
63994 Initialise an uninterruptible subcommand
64005 Deal with a character who has been knocked over
64121 Check whether there are any messages remaining in the message queue
64131 Deal with a character who has nearly recovered from being knocked over
64162 Check whether a falling character has hit anyone on the head
64218 'D' pressed - change disguise
64227 Move a falling character to the next point in his descent
64331 Control a character who has stepped off the roof of a building
64338 Deal with a character who is about to step off the roof of a building
64512 Deal with a character who is stepping onto or over the roof of no. 19
64549 Add or remove the rope above the roof of no. 19
64582 Generate the table of mirrored values of 0-255
64599 Hide the play area
64618 Scroll the screen up and down 7 times
64740 Make a sound effect