Saboteur
Routines
Address
Description
6289
Show title picture (two ninjas)
6590
Tile screen 0 30x17 tiles, 510 bytes - background
734A
Proceed to the next room token (redirect to
B702
)
734D
Room token #0E: Put one tile at the given address; params: 3 bytes (tile, address)
7359
Room token #0D: Set border color; params: 1 byte
7361
Room token #?? - Draw frame with one tile; params: 1 byte - UNUSED
7381
Room token #01: Fill to down; params: 4 bytes (count, filler, address)
7395
Room token #0A: Fill to down-right; params: 4 bytes (count, filler, address)
739A
Room token #0B: Fill to down-left; params: 4 bytes (count, filler, address)
739F
Room token #02: Fill to right; params: 4 bytes (count, filler, address)
73A4
Room token #06: Fill triangle from wide top
73C5
Room token #07: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
73EB
Room token #08: Fill triangle from wide bottom; params: 4 bytes (filler, count, address)
73EF
Room token #09: Fill triangle from wide top
73F3
Room token #04: Fill whole Tile screen 0 with one tile; params: 1 byte (filler)
7406
Room token #05: Copy block of tiles; params: 6 bytes (width, height, srcaddr, address)
742B
Room token #0C: Copy block of tiles N times; params: 6 bytes (srcaddr, width, count, address)
7452
Room token #03: Fill rectangle; params: 5 bytes (filler, width, height, address)
7472
Routine at 7472
749E
Decreasing Energy
74CD
Draw NEAR/HELD item
7918
Room procedure (for 19 rooms with a guard)
791B
Rooms
7C9C
/
92EF
initialization
9C44
Process a dog
9CA8
Part of Dog processing
9D5C
Set update flags for Dog, 4x3 tiles
9D75
Draw Dog facing left in tilemap
9D8B
?? something about Dog
9DCD
Initialize a dog
9DD9
Decrease Energy by B
A0DF
Room
94AB
initialization
A0E8
Room
7DA9
initialization
A0ED
Room
7E8C
initialization
A0F2
Room
920A
initialization
A0F7
Room
8F84
initialization
A0FC
Room
8B71
initialization
A101
Room
8739
initialization
A106
Room
858F
initialization
A10B
Room
84EE
initialization
A110
Room
99A6
initialization
A115
Room
97F8
initialization
A11A
Room
94CF
initialization
A11F
Room
9B51
initialization
A124
Room
9F3A
initialization
A129
Room
9F7E
initialization
A12E
Room
9EB8
initialization
A133
Room
9B19
initialization
A138
Room
9DF5
initialization
A13D
?? UNUSED??
A142
Room
7A17
initialization
A14A
Room
7D5A
initialization
A14F
Room
7F48
initialization
A154
Room
7EF2
initialization
A15F
Room
909F
initialization
A16A
Room
8FBD
initialization
A16F
Room
92A7
initialization
A174
Room
8B25
initialization
A179
Room
8526
initialization
A17E
?? UNUSED??
A183
Room
95D6
initialization
A188
Room
968A
initialization
A18D
Finish Room
97A6
initialization
A192
Room
9A9A
initialization
A197
Room
9552
initialization
A19C
Room
9BE7
initialization
A1A1
Room
8D5C
initialization
A1A6
Room
7C2E
initialization
A1AF
Finish room initialization
A1B5
Room
7F9C
initialization
A1C0
Room
8162
initialization
A1CB
Room
80A7
initialization
A1D6
Room
9B9D
initialization
A353
Room
81E5
initialization
A35C
Room
7E05
initialization
A361
Room
83ED
initialization
A366
Room
924E
initialization
A36B
Room
91BA
initialization
A370
Room
90DB
initialization
A375
Room
8802
initialization
A37A
Room
8608
initialization
A37F
Room
844E
initialization
A384
Room
9739
initialization
A389
Room
9A5A
initialization
A38E
Room
80F6
initialization
A3B5
?? something about Ninja and Guard
A3D1
?? something about Ninja and Guard
A3EE
?? something about Ninja and Guard
A418
?? something about Ninja and Guard
A434
?? something about Guard
A75B
Set update flags for Guard, 6x7 tiles
A775
Translate Ninja tile A into Guard tile, using
A787
table
AC44
Reset Guard data and Dog data
ACCA
Draw game screen frames and indicator text
AED1
Print string with standard font
AEF0
Routine at AEF0
AF9C
Routine at AF9C
B005
Print table of records
B040
Routine at B040
B148
Draw tile map on the screen
B2E8
Mirror byte if needed
B2FE
Exchange $7239 (Ninja direction) and $71CD (dog direction)
B30F
Exchange $7239 (Ninja direction) and $7347 (Guard direction)
B320
Object procedure: flip trigger "D": set/remove wall in room
9739
B32A
Object procedure: flip trigger "E": set/remove wall in room
97A6
B334
Object procedure: flip trigger "C": set/remove wall in room
8D5C
B33E
Object procedure: flip trigger "B": set/remove wall in room
8F20
B348
Object procedure: flip trigger "A": set/remove wall in room
7F48
B368
Room
97A6
initialization
B371
Play melody ??; HL = melody address
B38F
Room token #00: Barrel, 3x3 tiles
7C21
; params: 2 bytes (address)
B3B0
Routine at B3B0
B40A
Initialize a guard
B41F
Standard room procedure (for 63 rooms)
B422
Standard room initialization (for 60 rooms)
B425
Rooms
7C9C
/
92EF
initialization (redirect from
791B
)
B42E
Room
79C6
initialization
B437
UNUSED: Room XXXX initialization
B446
Room
B513
procedure (initial Room)
B44C
Room procedure (for 19 rooms with a guard) (redirect from
7918
)
B452
Room procedure (for 18 rooms with a dog)
B458
Room procedure (for 5 rooms with a guard and a dog)
B461
Turret initialization
B47A
Room procedure (for 2 rooms with a turret and a dog)
B483
Room procedure (for 14 rooms with a turret)
B489
Process turret
B4DE
Increase PAY value by B * 100
B4FA
Processing in initial room - the boat moving
B532
Movement handler for initial room (B8CE handler)
B596
Routine at B596
B59E
Routine at B59E
B5C7
Routine at B5C7
B66A
Current Room changed, entering the new Room
B702
Proceed to the next room token
B724
Finish room initialization
B77B
Game loop start
B83C
Increase Energy a bit
B851
Set initial data in Table of Objects
B86C
?? Adjust table
751B
by DE
B889
Routine at B889
B8D0
Update Ninja on tilemap
B937
Standard room procedure (redirect from
B41F
)
BAD5
Routine at BAD5
BBAE
Routine at BBAE
BBBB
Set update flags for Ninja, 6x7 tiles
BBD4
Movement handler: Ninja punching
BBDF
Read Input
BC0D
Routine at BC0D
BC55
Movement handler: Ninja standing
BD33
Routine at BD33
BD37
Fire pressed, Ninja standing, no object nearby
BDAF
Ninja standing (redirect)
BDB2
Routine at BDB2
BDDD
Routine at BDDD
BE0D
?? Movement handler
BE5A
Ninja sit, and then fall and DIE
BE63
Movement handler (B8CE handler): Ninja dead
BE71
Time is out
BEB3
Movement handler: Game Over
BF7B
Routine at BF7B
BFB0
Set movement handler = HL, set Ninja sprite = DE
BFBA
Routine at BFBA
BFD5
Escaped; clear screen, show final messages, then Game Over
C094
?? Movement handler (helicopter?)
C12E
Ninja on ladder
C13D
Routine at C13D
C1B6
Movement handler ?? (B8CE handler)
C226
Ninja standing
C22F
Movement handler (B8CE handler): Ninja sitting
C24B
Movement handler (B8CE handler): Ninja walking
C2FA
Going to room at Right
C319
Going to room at Left
C339
Movement handler (B8CE handler): Ninja jumping
C392
Check if tile is a ladder
C3BB
Move LEFT one tile
C3CF
Move RIGHT one tile
C3D9
Movement handler (B8CE handler): Ninja on ladder
C498
Move DOWN one tile
C4A4
Routine at C4A4
C4A7
?? Movement handler
C4DE
?? Movement handler
C4E8
Routine at C4E8
C4F6
Movement handler (used in initial room)
C50D
Movement handler ??
C57B
Routine at C57B
C5A0
Switch Ninja to standing (redirect)
C5A3
Check for falling
C5C6
Movement handler: Ninja falling down
C604
Going to room Down from current
C623
Going to room Up from current
C643
Ninja falling
C64C
Room
791E
(room with pier) initialization
C671
Room
93DF
/
947C
(room right from Train) initialization
C681
Room
982B
initialization
C6A5
Room 7C9C procedure (tunnel Train)
C6E2
Movement handler (B8CE handler): Train moving left
C70C
Movement handler (B8CE handler): Train moving right
DE68
Find record for the current room in
DE84
table
DEC1
Clear strings on the screen
DF37
Routine at DF37
DF60
Main menu
DFD4
Clear LASTK and do RST $38 once
DFDB
Highlight Menu item
DFE6
Unhighlight Menu item
DFF1
Joystick selected in Main menu
E004
Keyboard selected in Main menu
E015
Protek selected in Main menu
E04D
Clear key buffer playing melody
E097
Redefine Keys
E2A7
Start Mission
E440
Play next note in melody
F913
Routine at F913
F973
Room
84A8
initialization
F9A1
Sound ??
F9B9
Pause, then wait for any key pressed
F9E4
Routine at F9E4
F9E7
Start point after loading
F9F9
Routine at F9F9
FA11
Routine at FA11
FA28
Routine at FA28
FA31
Decrease Energy by B + Sound