Memory map
Page
Byte
Address
Label
Description
91
0
5B00
PRINTER_BUFFER
The printer buffer, unused
91
128
5B80
LOADER
The loader's routine: unscramble the game and start it
91
171
5BAB
PRINTER_BUFFER_END
The rest of the printer buffer, unused
92
0
5C00
SYSTEM_VARIABLES
The system variables
92
176
5CB0
NMIADD
The dispatcher's jump
92
177
5CB1
NMIADD_HIGH
The rest of the system variables
92
203
5CCB
BASIC_PROGRAM
The BASIC loader, and the game's stack
94
0
5E00
ENTRY
Where the loader enters the game
94
4
5E04
TOWN
The town map
98
4
6204
DRAW_ORDER
The drawing order
98
164
62A4
BUILDING_TABLE
Building table
99
52
6334
BOX_TABLE
Box table
99
124
637C
BOXES0
Boxes for cell type 0
99
125
637D
BOXES1
Boxes for cell types 1-2
99
142
638E
BOXES7
Boxes for cell types 7, 15, 23
99
167
63A7
BOXES4
Boxes for cell types 4, 12, 20
99
188
63BC
BOXES5
Boxes for cell types 5, 13, 21
99
209
63D1
BOXES6
Boxes for cell types 6, 14, 22
99
230
63E6
BOXES3
Boxes for cell types 3, 11, 19, 29, 31
99
251
63FB
BOXES8
Boxes for cell types 8, 16, 24
100
20
6414
BOXES9
Boxes for cell types 9, 17, 25
100
53
6435
BOXES18
Boxes for cell type 18
100
78
644E
BOXES10
Boxes for cell type 10
100
143
648F
BOXES26
Boxes for cell types 26, 28
100
168
64A8
BOXES27
Boxes for cell type 27
100
189
64BD
BOXES30
Boxes for cell type 30
100
218
64DA
BOXES32
Boxes for cell type 32
100
247
64F7
BOXES33
Boxes for cell type 33
101
16
6510
BOXES34
Boxes for cell type 34
101
41
6529
BOXES35
Boxes for cell type 35
101
66
6542
TILE_EDGES
The edge picture under each tile
101
118
6576
BUILDING14
Building for cell type 7
101
150
6596
BUILDING15
Building for cell type 7 turned round
101
182
65B6
BUILDING22
Building for cell type 11
101
214
65D6
BUILDING23
Building for cell type 11 turned round
101
246
65F6
BUILDING70
Building for cell type 35
102
22
6616
BUILDING71
Building for cell type 35 turned round
102
54
6636
BUILDING68
Building for cell type 34
102
86
6656
BUILDING69
Building for cell type 34 turned round
102
118
6676
BUILDING66
Building for cell type 33
102
150
6696
BUILDING67
Building for cell type 33 turned round
102
182
66B6
BUILDING64
Building for cell type 32
102
214
66D6
BUILDING65
Building for cell type 32 turned round
102
246
66F6
BUILDING62
Building for cell type 31
103
22
6716
BUILDING63
Building for cell type 31 turned round
103
54
6736
BUILDING60
Building for cell type 30
103
86
6756
BUILDING61
Building for cell type 30 turned round
103
118
6776
BUILDING58
Building for cell type 29
103
150
6796
BUILDING59
Building for cell type 29 turned round
103
182
67B6
BUILDING56
Building for cell type 28
103
214
67D6
BUILDING57
Building for cell type 28 turned round
103
246
67F6
BUILDING8
Building for cell type 4
104
22
6816
BUILDING9
Building for cell type 4 turned round
104
54
6836
BUILDING10
Building for cell type 5
104
86
6856
BUILDING11
Building for cell type 5 turned round
104
118
6876
BUILDING12
Building for cell type 6
104
150
6896
BUILDING13
Building for cell type 6 turned round
104
182
68B6
BUILDING6
Building for cell type 3
104
214
68D6
BUILDING7
Building for cell type 3 turned round
104
246
68F6
BUILDING16
Building for cell type 8, type 8 turned round
105
22
6916
BUILDING36
Building for cell type 18, type 18 turned round
105
54
6936
BUILDING20
Building for cell type 10, type 10 turned round
105
86
6956
BUILDING52
Building for cell type 26
105
118
6976
BUILDING53
Building for cell type 26 turned round
105
150
6996
BUILDING4
Building for cell type 2, type 2 turned round
105
182
69B6
BUILDING2
Building for cell type 1, type 1 turned round
105
214
69D6
BUILDING30
Building for cell type 15, type 15 turned round
105
246
69F6
BUILDING24
Building for cell type 12
106
22
6A16
BUILDING25
Building for cell type 12 turned round
106
54
6A36
BUILDING26
Building for cell type 13
106
86
6A56
BUILDING27
Building for cell type 13 turned round
106
118
6A76
BUILDING28
Building for cell type 14
106
150
6A96
BUILDING29
Building for cell type 14 turned round
106
182
6AB6
BUILDING54
Building for cell type 27
106
214
6AD6
BUILDING55
Building for cell type 27 turned round
106
246
6AF6
BUILDING32
Building for cell type 16, type 16 turned round
107
22
6B16
BUILDING34
Building for cell type 17, type 17 turned round
107
54
6B36
BUILDING18
Building for cell type 9, type 9 turned round
107
86
6B56
BUILDING40
Building for cell type 20
107
118
6B76
BUILDING41
Building for cell type 20 turned round
107
150
6B96
BUILDING38
Building for cell type 19
107
182
6BB6
BUILDING39
Building for cell type 19 turned round
107
214
6BD6
BUILDING44
Building for cell type 22
107
246
6BF6
BUILDING45
Building for cell type 22 turned round
108
22
6C16
BUILDING42
Building for cell type 21
108
54
6C36
BUILDING43
Building for cell type 21 turned round
108
86
6C56
BUILDING50
Building for cell type 25, type 25 turned round
108
118
6C76
BUILDING48
Building for cell type 24, type 24 turned round
108
150
6C96
BUILDING46
Building for cell type 23, type 23 turned round
108
182
6CB6
PANEL_CHARS
The panel's frame
108
222
6CDE
FONT
The font
110
54
6E36
TILE_TABLE
Tile table
110
158
6E9E
GRAPHICS
Graphic table
111
218
6FDA
SPRITE0
Sprite for graphics 0-1, 23, 31
111
220
6FDC
EDGE_TABLE
Edge table
111
228
6FE4
EDGE0
Edges 0-1
111
249
6FF9
EDGE2
Edge 2
112
14
700E
EDGE3
Edge 3
112
23
7017
SPRITE152
Sprite for graphic 152
112
233
70E9
SPRITE153
Sprite for graphic 153
113
63
713F
SPRITE154
Sprite for graphic 154
113
161
71A1
SPRITE155
Sprite for graphic 155
114
19
7213
SPRITE156
Sprite for graphic 156
114
101
7265
SPRITE157
Sprite for graphic 157
114
151
7297
SPRITE2
Sprite for graphic 2
115
49
7331
SPRITE136
Sprite for graphic 136
115
219
73DB
SPRITE137
Sprite for graphics 137, 139
116
175
74AF
SPRITE138
Sprite for graphic 138
117
113
7571
ICONS
The carried things' pictures
118
145
7691
SPRITE118
Sprite for graphic 118
119
53
7735
SPRITE119
Sprite for graphic 119
119
223
77DF
SPRITE122
Sprite for graphic 122
120
125
787D
SPRITE123
Sprite for graphic 123
121
27
791B
SPRITE126
Sprite for graphic 126
121
197
79C5
SPRITE127
Sprite for graphic 127
122
111
7A6F
PANEL_ICONS
The compass, the headings and a life
123
47
7B2F
SPRITE12
Sprite for graphics 12, 131-132
123
113
7B71
SPRITE13
Sprite for graphics 13, 130, 133
123
179
7BB3
SPRITE14
Sprite for graphics 14, 129, 134
123
245
7BF5
SPRITE15
Sprite for graphics 15, 128, 135
124
55
7C37
SPRITE3
Sprite for graphic 3
124
121
7C79
SPRITE106
Sprite for graphics 106-107
125
65
7D41
SPRITE96
Sprite for graphics 96, 98, 144
126
69
7E45
SPRITE97
Sprite for graphics 97, 99, 145
127
73
7F49
SPRITE5
Sprite for graphics 5, 9
127
165
7FA5
SPRITE4
Sprite for graphics 4, 8
128
25
8019
SPRITE7
Sprite for graphics 7, 11
128
117
8075
SPRITE6
Sprite for graphics 6, 10
129
13
810D
SPRITE108
Sprite for graphics 108, 150
129
219
81DB
SPRITE114
Sprite for graphic 114
130
157
829D
SPRITE115
Sprite for graphic 115
131
89
8359
SPRITE48
Sprite for graphics 48, 80, 140
131
143
838F
SPRITE49
Sprite for graphics 49, 81
131
197
83C5
SPRITE50
Sprite for graphics 50, 82
131
251
83FB
SPRITE51
Sprite for graphics 51, 83
132
49
8431
SPRITE52
Sprite for graphics 52, 84, 141
132
115
8473
SPRITE53
Sprite for graphics 53, 55, 85, 87
132
181
84B5
SPRITE54
Sprite for graphics 54, 86
132
247
84F7
SPRITE56
Sprite for graphics 56, 88, 142
133
57
8539
SPRITE57
Sprite for graphics 57, 89
133
123
857B
SPRITE58
Sprite for graphics 58, 90
133
189
85BD
SPRITE59
Sprite for graphics 59, 91
133
255
85FF
SPRITE60
Sprite for graphics 60, 92, 143
134
65
8641
SPRITE61
Sprite for graphics 61, 93
134
131
8683
SPRITE62
Sprite for graphics 62, 94
134
197
86C5
SPRITE63
Sprite for graphics 63, 95
135
7
8707
SPRITE109
Sprite for graphics 109, 151
135
225
87E1
SPRITE110
Sprite for graphic 110
136
187
88BB
SPRITE111
Sprite for graphic 111
137
149
8995
SPRITE104
Sprite for graphics 104-105, 148-149
138
99
8A63
SPRITE72
Sprite for graphic 72
138
221
8ADD
SPRITE73
Sprite for graphics 73, 75
139
87
8B57
SPRITE74
Sprite for graphic 74
139
203
8BCB
SPRITE64
Sprite for graphic 64
140
51
8C33
SPRITE65
Sprite for graphics 65, 67
140
155
8C9B
SPRITE66
Sprite for graphic 66
141
3
8D03
SPRITE77
Sprite for graphics 77, 79
141
141
8D8D
SPRITE78
Sprite for graphic 78
142
7
8E07
SPRITE76
Sprite for graphic 76
142
145
8E91
SPRITE68
Sprite for graphic 68
143
5
8F05
SPRITE69
Sprite for graphics 69, 71
143
127
8F7F
SPRITE70
Sprite for graphic 70
143
255
8FFF
SPRITE124
Sprite for graphic 124
144
169
90A9
SPRITE125
Sprite for graphic 125
145
83
9153
SPRITE121
Sprite for graphic 121
145
241
91F1
SPRITE120
Sprite for graphic 120
146
143
928F
SPRITE117
Sprite for graphic 117
147
63
933F
SPRITE116
Sprite for graphic 116
147
239
93EF
SPRITE112
Sprite for graphic 112
148
171
94AB
SPRITE113
Sprite for graphic 113
149
103
9567
SPRITE100
Sprite for graphics 100-101, 146-147
150
53
9635
SPRITE102
Sprite for graphics 102-103
151
3
9703
SPRITE33
Sprite for graphics 33, 37
151
149
9795
SPRITE42
Sprite for graphics 42, 44
152
45
982D
SPRITE38
Sprite for graphic 38
152
191
98BF
SPRITE32
Sprite for graphic 32
153
81
9951
SPRITE35
Sprite for graphic 35
153
227
99E3
SPRITE34
Sprite for graphics 34, 36
154
117
9A75
SPRITE43
Sprite for graphic 43
155
13
9B0D
SPRITE40
Sprite for graphic 40
155
165
9BA5
SPRITE41
Sprite for graphics 41, 45
156
61
9C3D
SPRITE39
Sprite for graphic 39
156
213
9CD5
SPRITE46
Sprite for graphic 46
157
109
9D6D
SPRITE47
Sprite for graphic 47
158
5
9E05
SPRITE30
Sprite for graphic 30
158
157
9E9D
SPRITE22
Sprite for graphic 22
159
47
9F2F
SPRITE19
Sprite for graphic 19
159
145
9F91
SPRITE18
Sprite for graphics 18, 20
159
243
9FF3
SPRITE17
Sprite for graphics 17, 21
160
85
A055
SPRITE16
Sprite for graphic 16
160
183
A0B7
SPRITE27
Sprite for graphic 27
161
31
A11F
SPRITE26
Sprite for graphics 26, 28
161
135
A187
SPRITE25
Sprite for graphics 25, 29
161
239
A1EF
SPRITE24
Sprite for graphic 24
162
87
A257
TILE0
Tiles 0, 42
162
200
A2C8
TILE1
Tile 1
163
57
A339
TILE2
Tile 2
163
170
A3AA
TILE3
Tile 3
164
27
A41B
TILE47
Tile 47
164
156
A49C
TILE48
Tile 48
165
29
A51D
TILE4
Tile 4
165
142
A58E
TILE5
Tile 5
166
15
A60F
TILE6
Tile 6
166
144
A690
TILE7
Tile 7
167
17
A711
TILE8
Tile 8
167
146
A792
TILE9
Tile 9
168
19
A813
TILE10
Tile 10
168
148
A894
TILE11
Tile 11
169
21
A915
TILE12
Tile 12
169
150
A996
TILE13
Tile 13
170
23
AA17
TILE14
Tile 14
170
152
AA98
TILE15
Tile 15
171
25
AB19
TILE16
Tile 16
171
154
AB9A
TILE17
Tile 17
172
27
AC1B
TILE18
Tile 18
172
156
AC9C
TILE19
Tile 19
173
29
AD1D
TILE20
Tile 20
173
158
AD9E
TILE22
Tile 22
174
15
AE0F
TILE21
Tile 21
174
144
AE90
TILE24
Tile 24
175
17
AF11
TILE25
Tile 25
175
146
AF92
TILE50
Tile 50
176
19
B013
TILE51
Tile 51
176
148
B094
TILE23
Tile 23
177
21
B115
TILE26
Tile 26
177
150
B196
TILE27
Tile 27
178
23
B217
TILE28
Tile 28
178
152
B298
TILE30
Tile 30
179
25
B319
TILE29
Tile 29
179
154
B39A
TILE31
Tile 31
180
11
B40B
TILE32
Tile 32
180
140
B48C
TILE33
Tile 33
180
253
B4FD
TILE34
Tile 34
181
110
B56E
TILE35
Tile 35
181
223
B5DF
TILE36
Tile 36
182
80
B650
TILE37
Tile 37
182
193
B6C1
TILE38
Tile 38
183
50
B732
TILE39
Tile 39
183
163
B7A3
TILE40
Tile 40
184
20
B814
TILE41
Tile 41
184
133
B885
TILE43
Tile 43
185
6
B906
TILE44
Tile 44
185
135
B987
TILE45
Tile 45
186
8
BA08
TILE46
Tile 46
186
137
BA89
TILE49
Tile 49
187
10
BB0A
BORDER_CHARS
The border's characters
187
170
BBAA
RANDOM
Game variables and the object records
189
254
BDFE
START
The start: the first protection check, and every variable cleared
190
15
BE0F
NEW_GAME
Set up a new game, then run the main loop
190
223
BEDF
PERCENTAGE
Work out the percentage of the game done
191
54
BF36
PRINT_PERCENTAGE
Print the percentage
191
72
BF48
VISIT_CELL
Mark the knight's cell visited, and sound a new one with a building
191
149
BF95
SPAWN_CREATURE
Every 256 turns, bring the creature into the knight's cell
191
241
BFF1
CREATURE_UPDATE
The update routine for the creature (graphics 136-139)
192
44
C02C
STEER_AT_KNIGHT
Step the thing at IX two units towards the knight along each axis
192
87
C057
CLEAR_MONSTERS
Empty the six monster records
192
101
C065
KNIGHT_COLOURS
The knight's colour by his hits
192
105
C069
NEAR_KNIGHT
Is the thing at IX less than C cells from the knight?
192
131
C083
MONSTER112_UPDATE
The update routine for a monster of graphics 112-127
192
209
C0D1
MONSTER_HIT_TABLE
What an antibody does to a monster of graphics 112-127
192
217
C0D9
MONSTER_TOO_FAR
Forget a monster that is too far from the knight
192
222
C0DE
HIT_DESTROYS
An antibody's strike that destroys the monster: 2500 points
192
237
C0ED
HIT_CHANGES
An antibody's strike that changes the monster into the next kind: 2000 points
193
1
C101
HIT_SPLITS
An antibody's strike that splits the monster in two: 1500 points
193
82
C152
HIT_DEMOTES
An antibody's strike that turns the monster into one of graphics 64-79: 1000 points
193
100
C164
APPEARING_UPDATE
The update routine for a monster appearing (graphics 128-131)
193
156
C19C
NEAREST_VILLAIN
Which villain is nearest the thing at IX?
193
185
C1B9
VILLAIN_DISTANCE
How far is the villain at IY from the thing at IX?
193
219
C1DB
STOCK_BUILDINGS
Stock the buildings with finds, then the third protection check
193
253
C1FD
DRAW_VILLAINS
Draw the four villains on the panel
194
138
C28A
SCREEN_LINE_UP
Move a screen address up one pixel line
194
154
C29A
PRINT_HEADING
Print the heading on the panel: north, or south with the town turned round
194
196
C2C4
HEADING_ORDER
The heading's characters, in the order printed
194
200
C2C8
PRINT_COMPASS
Draw the compass on the panel
194
223
C2DF
COMPASS_ORDER
The compass's characters, a block of two by two at a time
194
231
C2E7
SCORE_TEXT
The panel's heading, an attribute and then the text
194
237
C2ED
ADD_SCORE
Add BC to the score, and print it
195
20
C314
PRINT_BCD
Print B bytes of BCD from DE, two digits a byte
195
50
C332
BLIP_BY_TURN
The creature's blip: a note chosen by the turn counter
195
77
C34D
BLIP_PITCHES
Pitches for the blips: the creature's, and four for the villains that are never read
195
157
C39D
ENDING_BEEP
A note for the ending, a little lower each time
195
170
C3AA
BUMP_SOUND
The bump: a warble as something walks into a wall
195
189
C3BD
EFFECT_NOTE
Play this turn's note of the sound effect under way
195
216
C3D8
EFFECT_TABLE
The sound effects
195
244
C3F4
FIRE_SOUND
The sound of a throw
196
0
C400
FOOTSTEP
A footstep
196
53
C435
PUFF_SOUND
The sound of a puff
196
85
C455
APPEAR_SOUND
A monster appearing: a note pitched by its graphic
196
99
C463
ARRIVE_SOUND
The knight appearing: a note that rises
196
113
C471
CLICK
One wave
196
129
C481
PICK_UP_FIND
Taking up a find: which kind of antibody it gives
196
137
C489
PICK_UP_THING
Take up a thing the knight touches, if he has room
196
220
C4DC
COLOUR_CARRIED
Colour the carried things on the panel, flashing an object near its villain
197
47
C52F
THING_COLOURS
Colours of the carried things and of the destroyed villains
197
56
C538
ANTIBODY_STRIKE
Is the thing at IX struck by an antibody?
197
74
C54A
ANTIBODY_TOUCHING
Does the antibody at IY touch the thing at IX?
197
84
C554
OBJECT_STRIKE
Does a thrown object touch its villain?
197
95
C55F
TOUCHING_KNIGHT
Does the thing at IX touch the knight?
197
180
C5B4
NEXT_TURN
Count a turn, and stir the random number
197
206
C5CE
SPAWN_FIND
Every sixteen turns, a find in the knight's cell if its type has any left
198
61
C63D
PLAY_TUNE_ONCE
Play the menu's tune at DE, once, until a key is pressed
198
86
C656
PLAY_TUNE
Play the tune at DE
198
97
C661
PLAY_NOTE
Play one note
198
185
C6B9
NOTES
The notes: two loop counts and a length for each
199
112
C770
TUNE_MENU
Tune: the menu's tune
199
244
C7F4
TUNE_CONTROL_CHOSEN
Tune: a control method chosen
199
248
C7F8
TUNE_GAME_START
Tune: a game starting
200
3
C803
TUNE_GAME_OVER
Tune: game over
200
26
C81A
TUNE_ENDING
Tune: the end of the ending
200
57
C839
TUNE_NEW_LIFE
Tune: a new life
200
63
C83F
DRAW_PANEL_FRAME
Draw the frame round the carried things
200
137
C889
COLOUR_STRIP
Colour a strip two cells wide in the play area's attributes
200
152
C898
COLOUR_KNIGHT
Colour the knight by the hits he has left
200
178
C8B2
FILL_ATTR_RECT
Fill a rectangle of the play area's attributes
200
202
C8CA
MENU
The menu
201
73
C949
FLASH_MENU
Flash the chosen lines on the menu
201
98
C962
MENU_COLOURS
The menu: colours, places and text
201
122
C97A
MENU_TEXT
The menu's text
201
239
C9EF
PRINT_TEXT_SINGLE_COLOUR
Print a string in one colour
201
252
C9FC
PRINT_TEXT
Print a string whose first byte is its colour
202
27
CA1B
TOGGLE_SELECTED
Flash one of B attributes, and steady the rest
202
34
CA22
FLASH_NEXT_ONE
The rest of
TOGGLE_SELECTED
202
43
CA2B
DISPLAY_MENU
Draw the menu
202
85
CA55
DRAW_PLAY_FRAME
Draw the frame round the play area
202
157
CA9D
PRINT_BORDER
Draw the border round the screen
202
229
CAE5
FRAME_PIECES
The layout of the frames, in the border's characters
202
253
CAFD
PRINT_BLOCK_ROW
Print a piece several times along a row
203
9
CB09
PRINT_BLOCK_COLUMN
Print a piece several times down a column
203
25
CB19
PRINT_CHAR
Print a character on the screen
203
62
CB3E
PRINT_BLOCK
Print four characters as a piece two characters square
203
91
CB5B
PRINT_CHAR_COLOURED
Print a character and colour its cell
203
113
CB71
NEXT_CHAR_ROW
Move a screen address down a character row
203
123
CB7B
RANDOM_START_CELL
Choose the cell a new game starts in
203
172
CBAC
NEW_LIFE
Start a new life when the knight's record is empty
204
29
CC1D
PRINT_LIFE_ICON
Print a life's picture on the panel
204
46
CC2E
LIFE_ICON_CODES
The codes of a life's picture
204
54
CC36
START_RECORDS
The knight's two records at a new life
204
86
CC56
GAME_OVER
Game over: the percentage and the score, then the menu, or the ending if the villains are gone
204
228
CCE4
ENDING_RECORDS
The ending's ten records
205
2
CD02
CLEAR_OBJECTS
Empty all 23 object records
205
16
CD10
ENDING_PIT_FRONT
The ending: the front of the pit (graphic 152), and the end of the ending
205
88
CD58
ENDING_VILLAIN
The ending: a villain carried over the pit and sunk into it (graphics 144-151)
205
158
CD9E
STEP_TOWARDS_X
How far an ending picture should move across this turn
205
175
CDAF
END_TEXT
The text after a game
205
223
CDDF
GAME_OVER_PAUSE
Wait about half a second
205
232
CDE8
SPAWN_MONSTER
Bring a monster into a cell next to the knight's
206
121
CE79
MONSTER_RECORD
What a monster starts as
206
137
CE89
WANDERING_MONSTER
The monsters of graphics 64-79: wander, and hurt the knight
206
248
CEF8
NEXT_FRAME_MOD4
Step an object through four frames
207
8
CF08
DRAW_CELLS
Draw the cells round the knight, back to front
207
175
CFAF
LIST_THINGS_IN_CELL
List the things in a cell
207
242
CFF2
SORT_AND_DRAW_THINGS
Draw the listed things, furthest back first
208
160
D0A0
DEPTH_TABLE
Routines for the depth sort's outcomes
208
196
D0C4
DEPTH_KEEP
The candidate stays
208
197
D0C5
DEPTH_SWAP
The other thing becomes the candidate
208
208
D0D0
DEPTH_BY_CORNERS
Order two things whose boxes overlap on both axes
209
93
D15D
DRAW_LIST
The things in a cell, to be drawn
209
125
D17D
TURN_CELL
Turn a cell round with the town
209
142
D18E
TURN_POSITION
Turn a position round with the town
209
157
D19D
DRAW_OUTLINE
Draw a building's outline on the ground
209
250
D1FA
OUTLINE_NEAR_FACES
Draw the edges of a building definition's two faces
210
45
D22D
STEP_RIGHT_UP
Move the drawing position a column right and up
210
50
D232
EDGE_RIGHT_UP
Move the drawing position a column right and up, past the column's tiles
210
75
D24B
EDGE_RIGHT_DOWN
Move the drawing position a column right and down, past the column's tiles
210
80
D250
STEP_RIGHT_DOWN
Move the drawing position a column right and down
210
85
D255
EDGE_LEFT_UP
Move the drawing position a column left and up, past the column's tiles
210
110
D26E
EDGE_LEFT_DOWN
Move the drawing position a column left and down, past the column's tiles
210
115
D273
DRAW_EDGE
Draw the edge picture under one column of a building
210
162
D2A2
CLIP_EDGE
Draw an edge picture that starts below the play area
210
178
D2B2
PUT_EDGE
OR a 16-pixel picture into the buffer
211
86
D356
COLOUR_WALL
Colour a column of wall up to the top of the play area
211
114
D372
DRAW_WALLS
Draw a building's walls
211
194
D3C2
DRAW_WALL_COLUMN
Draw one column of a wall, unless a nearer wall has it
212
21
D415
CLIP_TILE
Draw a tile that starts below the play area
212
37
D425
PUT_TILE
Draw a tile of wall
212
239
D4EF
TILE_MASKS
Masks for a shifted tile's first byte
212
243
D4F3
PROJECT_THING
Where a thing is on the screen
213
8
D508
PROJECT_CELL
Where a cell's corner is on the screen
213
100
D564
LOOK_UP_CELL
The type of a cell of the town
213
137
D589
TABLE_WORD
Look up a word in a table
213
147
D593
DISPATCH
Jump to the routine a table gives for A
213
153
D599
UPDATES
Update routines, by graphic
214
213
D6D5
NO_UPDATE
An update routine that does nothing
214
214
D6D6
VILLAIN_SPARKLES
Send four sparkles out from a villain destroyed
215
10
D70A
SPARKLE_FLY
The update routine for a sparkle from a destroyed villain (graphics 140-143)
215
39
D727
SPEED_BONUS
The update routine for the bonus of graphic 2: a faster walk
215
76
D74C
HITS_BONUS
The update routine for the bonus of graphic 3: all three hits back
215
108
D76C
PLACE_BONUS
Put a bonus near the knight when there is none
215
216
D7D8
VANISHING
The update routine for something vanishing (graphics 12-15)
215
237
D7ED
ANTIBODY_FLIGHT
The update routine for an antibody in flight (graphics 80-95)
216
12
D80C
OBJECT_FLIGHT
The update routine for a thrown object (graphics 8-11)
216
71
D847
VILLAIN_DYING
The update routine for a dying villain (graphics 132-135)
216
101
D865
CHECK_QUEST_DONE
End the game when the four villains are gone and their sparkles have left the screen
216
142
D88E
PLACE_OBJECTS
Put the four objects in random cells at a new game
216
215
D8D7
OBJECT_RECORD
What each of the four objects starts as
216
231
D8E7
PLACE_VILLAINS
Put the four villains in random cells at a new game
217
50
D932
VILLAIN_RECORD
What each of the four villains starts as
217
66
D942
OBJECT_LYING
The update routine for an object lying in the town (graphics 4-7)
217
79
D94F
VILLAIN_WANDER
The update routine for a villain (graphics 96-111)
217
120
D978
FACING_PICTURE
Set a villain's or a monster's picture for its facing
217
163
D9A3
FIND_WANDER
The update routine for a find in a building (graphics 48-63)
217
235
D9EB
UPDATE_TOP
The update routine for the knight's top (graphics 22, 30, 32-47)
218
122
DA7A
UPDATE_KNIGHT
The update routine for the knight's legs (graphics 16-21, 24-29)
218
183
DAB7
KNIGHT_THROWS
Throw the last thing taken up
219
104
DB68
TURN_TOWN
Turn the town round when its key is let go
219
137
DB89
TURN_KNIGHT
Turn the knight, by the controls
220
67
DC43
SWAP_STICK
Turn a stick's directions round with the town
220
96
DC60
KNIGHT_WALKS
Walk, or come to a stop on the grid
220
113
DC71
COAST_TABLE
Routines for coming to a stop, by facing (
KNIGHT_WALKS
)
220
121
DC79
COAST_PLUS_V
Come to a stop facing +V
220
146
DC92
COAST_PLUS_U
Come to a stop facing +U
220
151
DC97
COAST_MINUS_V
Come to a stop facing -V
220
158
DC9E
COAST_MINUS_U
Come to a stop facing -U
220
163
DCA3
STAND_ON_GRID
Stand still, on the grid
220
168
DCA8
WALK_ON
Walk on, speeding up
220
220
DCDC
FACING_LOOKS
How the knight looks for each facing
220
224
DCE0
SET_STEP
Set a record's step from its speed and facing
221
1
DD01
APPLY_STEP
Move a record by its step
221
40
DD28
STEER
Decide whether a walker turns: at a wall, when its count runs out, or towards the knight
221
106
DD6A
TURN_TO_KNIGHT_TABLE
Routines to turn a chaser towards the knight, by where he is (
STEER
)
221
114
DD72
STEER_EITHER
Turn a chaser towards the knight
221
153
DD99
KNIGHT_DIRECTION
Which way is the knight from a record?
221
207
DDCF
WANDER_STEP
Now and then give a wanderer a new random step
221
252
DDFC
RANDOM_STEP
A random step from the bits of a byte
222
13
DE0D
MOVE_SPLIT
Trim a two-way step at the walls, one axis at a time
222
89
DE59
MOVE_CLIPPED
Trim a record's step at the town's walls
222
106
DE6A
MOVE_TABLE
Routines to trim a step at the walls, by facing (
MOVE_CLIPPED
)
222
114
DE72
CLIP_PLUS_V
Trim a step along +V at the walls
222
211
DED3
CLIP_PLUS_U
Trim a step along +U at the walls
223
52
DF34
CLIP_MINUS_V
Trim a step along -V at the walls
223
151
DF97
CLIP_MINUS_U
Cut a step in -U short at the boxes of the cells ahead
223
250
DFFA
CUT_STEP_PLUS_V
Cut a step in +V short at a box of a cell
224
11
E00B
CUT_STEP_MINUS_V
Cut a step in -V short at a box of a cell
224
19
E013
CUT_STEP_PLUS_U
Cut a step in +U short at a box of a cell
224
32
E020
CUT_STEP_MINUS_U
Cut a step in -U short at a box of a cell
224
40
E028
PLACE_IN_CELL
Look up a cell of the town, and where the object is in it
224
99
E063
HIT_BOXES_U
Does the moved object run into a box of a cell? Give the overlap in U
224
135
E087
OVERLAP_U
Do the moved object and a box overlap in U?
224
160
E0A0
HIT_BOXES_V
Does the moved object run into a box of a cell? Give the overlap in V
224
196
E0C4
OVERLAP_V
Do the moved object and a box overlap in V?
224
221
E0DD
NEGATE_HL
HL = -HL
224
229
E0E5
SIGN_EXTEND_A
HL = A, read as a signed number
224
238
E0EE
HL_EQUALS_DE_X_A
HL = DE * A
224
251
E0FB
MAKE_TABLES
Build the drawing tables
225
72
E148
COPY_BUFFER
Copy the play area's pixels from the buffer to the screen
225
173
E1AD
COPY_ATTR_BUFFER
Copy the play area's attributes from the buffer to the screen
226
0
E200
SHOW_PLAY_AREA
Show this turn's play area, and clear the buffers for the next
226
57
E239
READ_KEYS
Read a half-row of the keyboard
226
65
E241
READ_CONTROLS
Read the controls into CONTROLS
227
44
E32C
PAUSE
Pause, when SPACE or CAPS SHIFT is pressed on its own
227
83
E353
TURN_SPRITE
Find an object's sprite, and turn its stored data the way the object wants it
227
214
E3D6
MIRROR_SPRITE
Mirror a sprite's data, whichever way it is stored now
227
217
E3D9
DRAW_SPRITE
Draw one object from the draw list
228
159
E49F
SPRITE_ALIGNED_RUN
The unrolled row of a byte-aligned sprite
228
167
E4A7
SPRITE_ALIGNED_FOUR
The rest of the byte-aligned run
228
201
E4C9
SPRITE_ROW
Start a row of a sprite
228
205
E4CD
SPRITE_SHIFTED_RUN
The unrolled row of a shifted sprite
228
223
E4DF
SPRITE_SHIFTED_FOUR
The rest of the shifted run, and the step to the next row
229
58
E53A
BUFFER_ADDRESS
The buffer address of a pixel position
229
86
E556
CALC_VRAM_ADDR
Display address of a pixel position
229
121
E579
ATTR_ADDRESS
The attribute buffer address of a pixel position
229
150
E596
ADD_HL_A
HL = HL + A
229
157
E59D
CLEAR_SCREEN
Clear the screen
229
168
E5A8
CLR_BITMAP_MEMORY
Clear the display's pixels
229
176
E5B0
CLR_ATTRIBUTE_MEMORY
Set the display's attributes to bright white ink on black paper
229
186
E5BA
CLEAR_MEMORY
Clear BC bytes from HL
229
196
E5C4
BUFFER
The screen buffer: the play area's pixels
230
0
E600
LOADER_LEFTOVER
The tail of the loaded block, left behind by the move (inside the buffer)
232
0
E800
BUFFER_REST
The rest of the screen buffer
240
68
F044
ATTR_BUFFER
The play area's attributes
241
148
F194
ATTR_SPILL
One byte past the attribute buffer
241
149
F195
UNUSED_F195
Unused
242
0
F200
MIRROR_TABLES
Lookup tables for drawing mirrored tiles at an even pixel
248
0
F800
UNUSED_F800
Unused
249
0
F900
REVERSE_TABLE
Each byte with its bits in reverse order
250
0
FA00
SHIFT_TABLES
Lookup tables for drawing at an even pixel