The blocks listed here were generated from a snapshot taken after execution of initialisation code. The PC register holds a value of 34438.
Page Byte Address Description
15 18 03858
Graphics: Set 01 (ROM data)
91 0 23296
Unused
105 120 27000
Table of graphic sets' start addresses
105 146 27026
Unused
105 150 27030
Bitmap data mirror image lookup table
106 150 27286
Graphics: Set 03
108 142 27790
Graphics: Set 05
109 174 28078
Graphics: Set 04
110 214 28374
Graphics: Set 07
112 174 28846
Graphics: Set 06
114 174 29358
Graphics: Set 09
116 30 29726
Graphics: Set 08
117 46 29998
Graphics: Set 10
119 206 30670
Graphics: Set 11
122 22 31254
Graphics: Set 12
126 86 32342
Graphics: Set 02
133 54 34102
Unused
133 159 34207
Index of current level
133 160 34208
Game flags
133 161 34209
Cannon's (level 4) ammunition counter
133 162 34210
Current time / lives
133 163 34211
Score data
133 169 34217
Current border colour
133 170 34218
Index of current character's current room
133 171 34219
Control input bitmap
133 172 34220
Berk's current power
133 173 34221
Interaction data for Berk
133 176 34224
Remaining duration of Berk's current power
133 178 34226
Attribute of current character
133 179 34227
Timer figure blink duration counter
133 180 34228
Data for clawed foot (level 3)
133 182 34230
Temporary store for room dimension data
133 187 34235
Temporary store for width of entity's current room
133 188 34236
Table of data addresses (current level)
133 208 34256
Miscellaneous data 1
133 228 34276
Unused
133 229 34277
Position (address) in script data currently running
133 231 34279
Data for drawing to display
133 235 34283
Unused
133 237 34285
Store for script instruction loop data
133 246 34294
Store for graphic layout loop data
133 250 34298
Joystick-mode flag
133 251 34299
Current high score
133 253 34301
Table of data addresses (level 1)
134 17 34321
Table of data addresses (level 2)
134 37 34341
Table of data addresses (level 3)
134 57 34361
Table of data addresses (level 4)
134 77 34381
Unused / stack
134 122 34426
Unused
134 134 34438
Display main menu and handle main game loop
135 115 34675
Pause
135 127 34687
Table of start addresses of levels' state data for complex entities
135 135 34695
Copy state data for all resettable complex entities into table of initial-state data for complex entities
135 191 34751
Reset all game data in preparation for new game
136 48 34864
Copy start addresses of current level's data blocks and clean up old data
136 85 34901
Script routine: (48, 49) Return
136 86 34902
Unused routine
136 100 34916
If fire pressed, or character-swap-pending flag set, then swap characters
136 161 34977
Script data: Berk turning to face left
136 181 34997
Script data: Berk turning to face right
136 201 35017
Script data: Berk interacting with a door behind him
136 229 35045
Script data: Berk interacting with a door in front of him
137 1 35073
Script data: Berk turning (facing into screen to facing out of screen)
137 33 35105
Script data: Berk turning (facing out of screen to facing into screen)
137 63 35135
Script data: Berk picking up an entity on floor behind him
137 77 35149
Script data: Berk picking up an entity above and behind him
137 91 35163
Script data: Berk picking up an entity that is above floor and below Berk's top edge and behind him
137 115 35187
Script data: Berk picking up an entity on floor in front of him
137 133 35205
Script data: Berk putting an entity down on floor in front of him
137 147 35219
Script data: Berk putting an entity down on floor behind him
137 163 35235
Script data: Berk putting an entity down above floor behind him
137 179 35251
Script data: Berk starting to walk right
137 191 35263
Script data: Berk starting to walk left
137 203 35275
Script data: Berk's power expiring
137 211 35283
Script data: Berk banging head (while jumping)
137 219 35291
Script data: Berk starting to fall to the left
137 255 35327
Script data: Berk starting to fall to the right
138 89 35417
Script data: Berk starting to fly
138 113 35441
Script data: Berk jumping
138 165 35493
Script data: Berk eating an entity
138 187 35515
Script data: Berk gaining floating power
138 195 35523
Script data: Berk being thrown left by hatch (level 3)
138 249 35577
Change direction Berk is facing depending upon relative position of Drutt
139 103 35687
Current position in Berk's script data
139 105 35689
Update state of Berk and store current position in script data
139 151 35735
Update state of Berk depending upon currently selected character, control input and currently active power
140 168 36008
Make Berk eat the entity he is holding, if edible, and exit calling routine
140 196 36036
Update state of Berk (forward pressed)
141 20 36116
If Berk is not horizontally aligned with entity at IY then move Berk closer and exit calling routine
141 200 36296
Make Berk drop the entity he is holding and load IY with its complex state data address
142 15 36367
If Berk is neither facing into the screen nor walking then exit calling routine and have Berk turn into screen
142 33 36385
Script routine: (59) Have Berk interact appropriately with a door behind him
142 38 36390
Script routine: (58) Have Berk interact appropriately with a door in front of him
142 119 36471
Script routine: (56) Give Berk power corresponding to entity eaten
142 190 36542
Update state of Berk (floating power active)
143 2 36610
Script routine: (57) Cycle attributes (full-screen), clear display buffers and paint red areas outside current room
143 8 36616
Cycle attributes (full-screen), clear display buffers and paint red areas outside current room
143 17 36625
State data for Drutt upon returning to level 1
143 30 36638
Advance to next level and if back to level 1 then exit calling routine and make Berk start falling
143 145 36753
Set Berk's horizontal position to match level 1's entry door
143 170 36778
Initialise script data positions for flying skeleton creature and bat (level 1)
143 183 36791
Update states of all level 1 entities
143 193 36801
Current position in script data for Boni's kidnap
143 195 36803
Script data: Boni's kidnap
144 23 36887
Execute script data for Boni's kidnap and handle Trap Door opening and closing
144 57 36921
Open Trap Door if Berk is near the left side of the Trap Door room
144 83 36947
Advance HL to next script instruction and start executing
144 86 36950
Script routine: (36) Remove Boni from level 1
144 93 36957
Script routine: (37) Remove flying skeleton creature from level 1, and terminate script processing
144 102 36966
Close the Trap Door if Berk is not in room 1 and Drutt is in room 4 (level 1)
144 120 36984
Script routine: (38) Close the Trap Door
144 126 36990
Script routine: (39) Open the Trap Door
144 132 36996
Close the Trap Door
144 140 37004
Open the Trap Door
144 152 37016
Current position in bat's script data
144 154 37018
Script data: Bat (level 1)
144 198 37062
Update state of bat (level 1) and store current position in script data
144 221 37085
Update state of bat (level 1)
145 85 37205
Graphic layout data: Bat (level 1)
146 204 37580
Table of current positions in spiders' script data
146 210 37586
Update the states of the spiders (level 1) and store current positions in script data
147 7 37639
Update the state of a spider (level 1)
147 86 37718
Script routine: (41) Move spider up one character and, if home, reset its timer and make it wait
147 121 37753
Script routine: (42) Decrease remaining time until spider next descends and if zero, start descent
147 146 37778
Script routine: (40) Move spider down one character, and if at bottom, advance it to bounce / climb up mode
147 160 37792
Script data: Spiders (level 1)
147 240 37872
Graphic layout data: Spiders (level 1)
148 121 38009
Update states of all level 2 entities
148 134 38022
Current position in Bubo's script data
148 136 38024
Script data: Bubo
148 166 38054
Update state of Bubo (level 2) and store current position in script data
148 186 38074
Update state of Bubo
149 21 38165
Script routine: (61) Fire Bubo's projectile
149 75 38219
Update state of Bubo's projectile
149 233 38377
Start level 2 key falling if Bubo's projectile is in place below it
150 16 38416
Table of initial positions in ape-beasts' script data
150 24 38424
Table of current positions in ape-beasts' script data
150 32 38432
Script data: Ape-beast walking right
150 50 38450
Script data: Ape-beast walking left
150 68 38468
Reset current positions in ape-beasts' script data to initial values
150 80 38480
Update states of ape-beasts (level 2) and store current positions in script data
150 140 38540
Update state of an ape-beast
150 154 38554
Script routine: (60) Check position of ape-beast and turn if appropriate
150 192 38592
Update states of stalactites (level 2)
151 100 38756
Move entity at IX down one character
151 110 38766
Graphic layout data: Ape-beast (level 2)
152 84 38996
Graphic layout data: Bubo (level 2)
152 219 39131
Graphic layout data: Bubo's projectile (level 2)
152 225 39137
Update states of all level 3 entities
152 238 39150
Hatch state index (level 3)
152 239 39151
Update state of hatch (level 3)
153 110 39278
Update state of clawed foot (level 3)
154 160 39584
Table of coloured creatures' properties
154 175 39599
Miscellaneous data (coloured creatures)
154 177 39601
Update states of coloured creatures
155 19 39699
Count coloured creatures in slots and return if all are home
155 80 39760
Present reward for getting coloured creatures home
155 96 39776
Update state of large yellow creature (level 3)
155 253 39933
Unused routine
155 254 39934
Set large yellow creature's mode to "returning home", and set Berk-has-been-killed flag
156 8 39944
Set graphic layout data address for entity at IY to BC
156 15 39951
Move entity at IY down two characters
156 25 39961
Move entity at IY up two characters
156 35 39971
Move entity IY such that its left edge is up to two characters closer to entity IX's
156 62 39998
Set large yellow creature's mode to "returning home", move one step closer to home and return
156 72 40008
Move entity at IY one step closer to home position
156 104 40040
Graphic layout data: Architecture (level 3)
157 0 40192
Graphic layout data: Edible eyes (level 3)
157 62 40254
Graphic layout data: Coloured creatures (level 3)
157 128 40320
Graphic layout data: Clawed foot (level 3)
157 250 40442
Graphic layout data: Large yellow creature (level 3)
160 130 41090
Graphic layout data: Hatch (level 3)
160 215 41175
Graphic layout data: Weight (level 3)
160 251 41211
Update states of all level 4 entities
161 14 41230
Current position in skeleton's script data
161 16 41232
Script data: Skeleton (level 4) idling
161 24 41240
Unused
161 64 41280
Script data: Skeleton (level 4) stepping forward (left)
161 102 41318
Script data: Skeleton (level 4) stepping back (right)
161 138 41354
Reset skeleton to initial state
161 165 41381
Update state of skeleton (level 4) and store current position in script data
161 196 41412
Table of addresses of attribute data in skeleton's graphic layout data blocks
161 208 41424
Update state of skeleton (dying)
162 26 41498
Kill Berk if he collides with skeleton
162 78 41550
Script routine: (63) Have skeleton advance or retreat based upon positions of Berk and yellow skull
162 145 41617
Script routine: (64) Set random (1 to 10) number of iterations in following loop script instruction
162 161 41633
Update state of ghost
163 39 41767
Update state of cannon and projectile
163 233 41961
Update state of cannon's projectile
164 80 42064
Update states of drips (level 4)
164 249 42233
Addresses of graphic layout data for drips (level 4)
165 11 42251
Set a drip's (level 4) stage to A
165 26 42266
Update state of flying skeleton creature (level 4)
165 141 42381
Update state of snake (level 4)
165 246 42486
Open snake's mouth and set Berk-has-been-killed flag if snake and Berk have collided
166 9 42505
Move entity at IX right one character
166 16 42512
Set graphic layout data address for entity at IX to BC
166 23 42519
Graphic layout data: Cannon (level 4)
166 152 42648
Graphic layout data: Snake (level 4)
167 2 42754
Graphic layout data: Ghost (level 4)
167 149 42901
Graphic layout data: Skeleton (level 4)
168 120 43128
Graphic layout data: Sausages (level 4)
168 138 43146
State data for simple entities (level 1)
169 69 43333
State data for complex entities (level 1)
171 39 43815
Room dimension data (level 1)
171 95 43871
Horizontal room connectivity map (level 1)
171 105 43881
Unused
171 106 43882
Vertical room connectivity map (level 1)
171 120 43896
State data for simple entities (level 2)
171 217 43993
State data for complex entities (level 2)
173 148 44436
Room dimension data (level 2)
173 184 44472
Horizontal room connectivity map (level 2)
173 194 44482
Unused
173 195 44483
Vertical room connectivity map (level 2)
173 199 44487
State data for simple entities (level 3)
174 64 44608
State data for complex entities (level 3)
176 60 45116
Room dimension data (level 3)
176 96 45152
Horizontal room connectivity map (level 3)
176 108 45164
Unused
176 109 45165
Vertical room connectivity map (level 3)
176 115 45171
State data for simple entities (level 4)
176 218 45274
State data for complex entities (level 4)
179 36 45860
Room dimension data (level 4)
179 62 45886
Horizontal room connectivity map (level 4)
179 70 45894
Unused
179 71 45895
Vertical room connectivity map (level 4)
179 75 45899
Populate primary display buffer with layout data for current character's current room
179 141 45965
Populate primary display buffer with graphic layout data for entity whose simple / complex state data is at address in IX
179 175 45999
Advance graphic layout data pointer by two bytes, and process data
180 90 46170
Table of multiples of 96
180 138 46218
Jump to appropriate graphic layout routine
180 164 46244
Table of addresses of graphic layout data handling routines
180 204 46284
Graphic layout routine: (237) Set new pending sound
180 215 46295
Graphic layout routine: (242) Set current attribute
180 226 46306
Graphic layout routine: (244) Set current graphic set index
180 237 46317
Graphic layout routine: (236) Set graphic index in next instruction to value randomly selected from list
181 11 46347
Graphic layout routine: (245) Decrease timer value, and if zero, reset and write random graphic index from list into next instruction
181 27 46363
Graphic layout routine: (246) Decrease timer value, and if zero, reset and write random attribute from list into next instruction
181 49 46385
Reset timer to initial value then load E with random value from sequence (in graphic layout data)
181 82 46418
Graphic layout routine: (255) Load HL with stored coordinates and return from drawing
181 91 46427
Graphic layout routine: (250) Adjust x- and y-coordinates for drawing without storing
181 106 46442
Graphic layout routine: (254) Adjust x- and y-coordinates for drawing and set as new base coordinates
181 124 46460
Graphic layout routine: (251) Process graphic layout data at following address and return when complete
181 145 46481
Graphic layout routine: (248) Jump to graphic layout data address
181 159 46495
Graphic layout routine: (249) Jump to time-weighted, randomly selected graphic layout data address in list
181 223 46559
Graphic layout routine: (243) Increment index, n, and jump to n-th address in following list
181 241 46577
Graphic layout routine: (247) Jump to randomly selected graphic layout data address from list
182 2 46594
Graphic layout routine: (253) Jump to graphic layout data address selected from list, based upon width of Berk's carried entity
182 7 46599
Unused routine
182 19 46611
Graphic layout routine: (238) Start loop (1 / 2)
182 36 46628
Graphic layout routine: (239) End loop (1 / 2)
182 55 46647
Graphic layout routine: (240) Start loop (2 / 2)
182 72 46664
Graphic layout routine: (241) End loop (2 / 2)
182 91 46683
Current keyboard controls
182 98 46690
Table of attribute file addresses for main menu strings
182 118 46710
Table of main menu strings
182 238 46830
Display and handle main menu
183 98 46946
Draw joystick "J" (main menu) in colour depending upon joystick mode
183 120 46968
If "K" pressed then redefine controls
183 195 47043
Set carry flag if Kempston interface not present, or Kempston joystick moved / fire pressed
183 212 47060
Set zero flag if key whose index is in A matches a direction, or the Berk / Drutt key
183 223 47071
Set attribute and location and print double-height character in E
183 236 47084
Print keyboard controls on main menu
184 16 47120
"THROUGH the TRAPDOOR" string
184 36 47140
Print "THROUGH the TRAPDOOR" string
184 49 47153
"SORRY BERK, BUT YOUR TIME IS UP" string
184 81 47185
Print "SORRY BERK, BUT YOUR TIME IS UP" string
184 94 47198
"HOME SWEET HOME" string
184 109 47213
Print "HOME SWEET HOME" string
184 137 47241
Reset show-score flag and draw timer figures bar
184 198 47302
If show-score flag reset then draw pair of timer figure eyes (closed) at attribute file address IX and advance IX by two bytes
184 211 47315
If show-score flag reset then draw pair of timer figure eyes (open, random frame) at attribute file address IX and advance IX by two bytes
184 219 47323
Draw a timer figure's eye (random frame) at attribute file address in IX and advance IX by one byte
184 251 47355
If show-score flag is reset then return to calling routine, else return to routine that called calling routine
185 3 47363
Update eyes of a randomly selected timer figure, increase timer tick counter and process timer figure blinking
185 71 47431
Select a remaining timer figure at random and update its eyes to a random (open-eyed) frame
185 108 47468
Increase timer tick counter and reduce remaining time if counter > 767
185 139 47499
Update scores and display
185 229 47589
Score / total / high score string
186 12 47628
Print score / total / high score string in current character's colours
186 66 47682
Print a double-height text character
186 93 47709
Print half of a double-height text character
186 125 47741
Convert number in HL to string at IY
186 156 47772
Convert a digit of numeric data to its string equivalent
186 172 47788
Read keyboard and load pressed key character into A
186 237 47853
Return values from keyboard reading routine
187 21 47893
Check for control key press and store
187 58 47930
If joystick mode is on, then read joystick input
187 70 47942
Wait for current key to be released and another to be pressed, storing in A
187 83 47955
Wait for key-press, store pressed key code in A and play main menu sound
187 94 47966
Table of addresses of script handling routines
187 224 48096
Advance HL to next script instruction and execute
188 5 48133
Script routine: (04) If current character and target entity are in the same room then set pending sound
188 14 48142
Script routine: (62) Move entity at IX into room to the left, if appropriate
188 20 48148
Script routine: (16) Have Berk hold an entity, and position it appropriately between his hands
188 26 48154
Script routine: (17) Have Berk put down an entity in front of him, if appropriate
188 30 48158
Script routine: (18) Have Berk put down an entity behind him, if appropriate
188 84 48212
Script routine: (10) Reset walking-left and walking-right flags
188 88 48216
Script routine: (12) Reset walking-left flag and set walking-right flag
188 92 48220
Script routine: (11) Set walking-left flag and reset walking-right flag
188 106 48234
Script routine: (07) Reset Berk's facing-into-screen, facing-left and facing-right flags
188 110 48238
Script routine: (06) Set Berk's facing-into-screen flag, and reset his facing-left and facing-right flags
188 114 48242
Script routine: (13) Set Berk's facing-left flag, and reset his facing-into-screen and facing-right flags
188 118 48246
Script routine: (14) Set Berk's facing-right flag, and reset his facing-into-screen and facing-left flags
188 132 48260
Script routine: (09) Reset must-process-current-script-data flag for entity at IX
188 139 48267
Script routine: (08) Set must-process-current-script-data flag for entity at IX
188 146 48274
Script routine: (15) Jump to new address if Berk is carrying something
188 157 48285
Script routine: (01) Load HL (script data pointer) with new address
188 167 48295
Script routine: (23) Start loop (1 / 3)
188 179 48307
Script routine: (24) End loop (1 / 3)
188 196 48324
Script routine: (25) Start loop (2 / 3)
188 208 48336
Script routine: (26) End loop (2 / 3)
188 225 48353
Script routine: (27) Start loop (3 / 3)
188 237 48365
Script routine: (28) End loop (3 / 3)
188 254 48382
Load A with script instruction parameter then advance HL to next instruction
189 4 48388
Decrease remaining time for current power and if zero, exit calling routine and run script data for removal of power
189 33 48417
Remove Berk's current power and reset sweet / mushroom / edible eyes / sausage to its original position
189 103 48487
Script routine: (32) Update Berk's position and state (flying) depending upon control input
189 183 48567
Script routine: (35) Move entity at IX (and any carried entities) down one character
189 209 48593
Move entity right one character, and into new room if appropriate
190 1 48641
Move entity left one character, and into new room if appropriate
190 46 48686
Script routine: (22) Move carried entity behind Berk as he faces into screen
190 52 48692
Script routine: (21) Move carried entity in front of Berk as he faces out of screen
190 58 48698
Script routine: (19) Move carried entity to Berk's left as he faces left
190 64 48704
Script routine: (20) Move carried entity to Berk's right as he faces right
190 70 48710
Move carried entity in front of Berk as he faces out of screen
190 75 48715
Move carried entity behind Berk as he faces into screen
190 87 48727
Move carried entity to Berk's right as he faces right
190 98 48738
Move carried entity to Berk's left as he faces left
190 120 48760
Load A, D and E with positional data for a carried entity or return
190 151 48791
Unused routine
190 210 48850
Have Berk hold an entity, and position it appropriately between his hands
191 24 48920
Script routine: (29) Make Berk start falling, and drop his carried entity if appropriate
191 38 48934
Script routine: (30) Check Berk's fall velocity, and react to landing
191 80 48976
Script routine: (31) React to Berk's landing
191 98 48994
Table of addresses of Berk's jump script data
191 114 49010
Script routine: (33) Advance Berk's jump and select next phase if current phase complete
191 133 49029
Graphic layout data: Architecture (level 4)
194 41 49705
Graphic layout data: Architecture (level 3)
195 88 50008
Graphic layout data: Architecture (level 1), part 1
196 128 50304
Graphic layout data: Boni
196 183 50359
Graphic layout data: Architecture (level 1), part 2
197 128 50560
Graphic layout data: Sweets (level 1)
197 147 50579
Graphic layout data: Architecture (level 1), part 3
197 231 50663
Graphic layout data: Doors
198 104 50792
Graphic layout data: Miscellaneous, part 2
198 113 50801
Graphic layout data: Architecture (level 2)
200 71 51271
Graphic layout data: Mushroom
200 86 51286
Graphic layout data: Flying skeleton creature
201 27 51483
Graphic layout data: Explosion (Bubo's projectile, fallen drips and firing cannon, level 4)
201 62 51518
Current position in Drutt's script data
201 64 51520
Script data: Drutt facing out of screen (falling)
201 68 51524
Script data: Drutt facing out of screen
201 82 51538
Script data: Move Drutt and any pushed entity right by a hop of size four
201 106 51562
Script data: Move Drutt and any pushed entity right by a hop of size three
201 128 51584
Script data: Move Drutt and any pushed entity left by a hop of size four
201 152 51608
Script data: Move Drutt and any pushed entity left by a hop of size three
201 174 51630
Script data: Drutt swapping depth levels
201 218 51674
Script data: Drutt jumping
201 250 51706
Script data: Drutt eating a worm
202 20 51732
Reset Drutt to initial state
202 27 51739
Update states of Drutt and worm and store current positions in script data
202 53 51765
Update state of Drutt
202 67 51779
Script routine: (43) Select next action for Drutt depending upon control input
202 178 51890
Table of addresses of script data for Drutt's actions
202 192 51904
Randomly select script data for rightward hop of size three or four, and execute
202 212 51924
Randomly select script data for leftward hop of size three or four, and execute
202 232 51944
Start Drutt jumping
202 242 51954
Point HL at script data for Drutt swapping depth levels and execute
202 248 51960
Move Drutt closer to the worm and eat it if close enough
203 61 52029
Script routine: (44) Move entity up one character
203 70 52038
Script routine: (45) Move entity down one character
203 79 52047
Script routine: (46) Move Drutt, or entity he is pushing left one character and start pushed entity falling if appropriate
203 85 52053
Move Drutt, or entity he is pushing left one character and start pushed entity falling if appropriate
203 130 52098
Advance position of entity pushed left by Drutt
203 174 52142
Script routine: (47) Move Drutt, or entity he is pushing right one character and start pushed entity falling if appropriate
203 180 52148
Move Drutt, or entity he is pushing right one character and start pushed entity falling if appropriate
203 225 52193
Advance position of entity pushed right by Drutt
204 19 52243
Script routine: (50) Advance Drutt's jump and select next phase if current phase complete
204 85 52309
Script routine: (51) Swap Drutt's current depth level if possible
204 91 52315
Swap Drutt's current depth level if possible
204 147 52371
Graphic layout data: Drutt
205 246 52726
Current position in worm's script data
205 248 52728
Worm's age
205 249 52729
Script data: Worm
206 101 52837
Update state of worm and store current position in script data
206 124 52860
Update state of worm
206 134 52870
Script routine: (53) Move worm left if possible, otherwise choose new direction
206 153 52889
Script routine: (54) Move worm right if possible, otherwise choose new direction
206 172 52908
Execute script data for worm choosing next direction
206 178 52914
Script routine: (55) Choose new direction and start crawling (worm)
206 231 52967
Script routine: (52) Increase worm's age and decrease time until direction change, or react to Drutt's presence
207 65 53057
Increase worm's age and set its depth to zero if it has expired
207 91 53083
Attempt to spawn a new worm
207 167 53159
Pathfinding data table
207 179 53171
Unused
207 202 53194
Load A with value indicating which direction room A lies relative to room in state data at IX
208 61 53309
Add entry to pathfinding data table for room B in direction A
208 69 53317
Set zero flag if room B has an entry in pathfinding data table, otherwise reset
208 85 53333
Load A with direction index in pathfinding data table entry at address in IX, restore registers and return
208 92 53340
Graphic layout data: Worm
209 73 53577
Cycle attributes (long, full-screen) and clear display buffers
209 77 53581
Cycle attributes (short, full-screen) and clear display buffers
209 145 53649
Fill top 22 rows of attribute file with attribute value in A
209 163 53667
Set Berk-has-been-killed flag
209 172 53676
Table of Berk's reset complex state data addresses
209 180 53684
Berk's reset complex state data
209 219 53723
If Berk has been killed then reset his position and state, flash screen and decrease time / lives
210 22 53782
Set each value in primary display buffer within play area to zero
210 54 53814
Advance DE by 2 × A bytes and load word at this location into DE
210 65 53825
Copy room dimension data entry for current character / entity's current room to temporary store location
210 127 53887
Paint red areas outside accessible areas of current character's current room
210 208 53968
Print red cell to current attribute file position (outside play area) and mark as unused in display buffers
210 227 53987
Reset complex state data for first entity of class A to that stored in initial-state table
211 3 54019
Point IY at first entry in current level's complex state data that has class A
211 18 54034
Draw contents of primary display buffer to display
211 128 54144
Draw a graphic character block to display
211 203 54219
Data for pseudo-random number generator
211 206 54222
Load A with a pseudo-random number between 0 and the higher of 2 and A (input)
212 11 54283
Move entity at IX into new room (left or right) if it is at the edge of its current room
212 41 54313
Move entity at IX into room to the right, if appropriate
212 76 54348
Move entity at IX into room to the left, if appropriate
212 111 54383
Move entity at IX into room to right of its current room and update position of carried entity if moving entity is Berk
212 126 54398
Set entity's position to be left-hand side of new room to right
212 147 54419
Move entity at IX into room to left of its current room and update position of carried entity if moving entity is Berk
212 162 54434
Set entity's position to be right-hand side of new room to left
212 184 54456
Paint red areas outside current character's room if IX points to current character's complex state data
212 208 54480
Set room of entity at IX to B, store room size data for new room and load E with entity's width minus one
212 227 54499
Unused routine
212 233 54505
Load B with index of room to right of an entity's current room
213 5 54533
Unused routine
213 11 54539
Load B with index of room to left of an entity's current room
213 41 54569
Check entity at IX for collision with another (impassable / pushable) entity immediately to the right
213 138 54666
Check entity at IX for collision with another (impassable / pushable) entity immediately to the left
213 236 54764
Check entity at IX for collision with another entity at next depth level out of screen whose interaction-(11,6) flag is set
213 240 54768
Check entity at IX for collision with another entity at same depth whose interaction-(11,6) flag is set
214 94 54878
Check entity at IX for collision with another entity (only those defined before, and in reverse order) at same depth level whose interaction-(11,7) flag is set
214 106 54890
Check entity at IX for collision with another entity (in reverse order) at next depth level into screen whose interaction-(11,7) flag is set
214 218 55002
Unused routine
214 238 55022
Cached control input
214 239 55023
Handle Drutt's jump, and load E with jump state index as appropriate
215 1 55041
Handle Berk's jump, and load E with jump state index as appropriate
215 147 55187
Set character-swap-pending flag
215 156 55196
Handle vertical component of character's jump, and load E with jump state index as appropriate
216 125 55421
Increase current velocity of character's jump if less than 7
216 137 55433
Change entity's room up one if appropriate
216 220 55516
Set can-fall flag and set initial velocity factor of 2 for entity defined at address in IX
216 229 55525
Move all falling entities down by distances appropriate to their current velocity factors
217 64 55616
Change entity's room down one if appropriate
217 146 55698
Graphic layout data: Berk
219 146 56210
Graphic layout data: Berk walking left
221 155 56731
Graphic layout data: Berk facing out of screen
223 250 57338
Graphic layout data: Berk facing into screen
224 201 57545
Graphic layout data: Berk body parts
227 7 58119
Graphic layout data: Berk in action
232 150 59542
Unused
232 151 59543
Unused routine
232 194 59586
Unused
232 209 59601
If current character is in same room as target entity at IX then set pending sound to A
232 242 59634
Table of sound parameters
233 74 59722
Set sound of index A as pending if appropriate, then play and clear pending sound
233 173 59821
Table of initial-state data for complex entities
236 133 60549
Unused
239 128 61312
Display buffer 1
247 192 63424
Display buffer 2