Page Byte Address Description
64 0 4000
Screen
91 0 5B00
Variables
91 77 5B4D
Data block at 5B4D
96 0 6000
Sprites
156 80 9C50
Data block at 9C50
156 86 9C56
Draw game screen
157 64 9D40
Calculate address in the mini-map (MiniMap table)
157 86 9D56
Calculate address in the mini-map (MiniMap table) and Get
157 95 9D5F
Check value in the mini-map (MiniMap table), if row and column in range 0..31
157 121 9D79
Calculate address in the mini-map (MiniMap table) and Set
157 132 9D84
Random
157 164 9DA4
Data block at 9DA4
157 165 9DA5
Fill block at HL with A
157 170 9DAA
Prepare the mini-map (MiniMap table)
159 129 9F81
Routine at 9F81
160 59 A03B
Routine at A03B
160 245 A0F5
Calculate address ???
161 41 A129
Calculate address and Get ???
161 50 A132
Data block at A132
161 76 A14C
Get screen attribute address
161 100 A164
Convert char coords HL to ZX screen address
161 118 A176
Draw tile 16x8 at the screen
161 135 A187
Draw tile 8x8 at the screen
161 147 A193
Routine at A193
162 126 A27E
Table of objects on the map; each record is 4 bytes wide
164 27 A41B
Data block at A41B
164 221 A4DD
Relief construction blocks, 8x8 tiles = 64x64 pixels
172 93 AC5D
Relief mini-map 32x32 = 1024 bytes
176 93 B05D
Data block at B05D
176 125 B07D
Table of objects on the screen
176 169 B0A9
Draw static objects on the screen; prepare LB07D table
177 108 B16C
Sprites for objects
177 212 B1D4
Routine at B1D4
178 16 B210
Data block at B210
178 19 B213
Routine at B213
178 192 B2C0
Octopus delay and process
178 206 B2CE
Draw tile 8x8 with XOR
178 219 B2DB
Draw tile 16x8 with XOR
178 238 B2EE
Sprite 8x8 address, 8 bytes
178 246 B2F6
Sprite 16x16, 32 bytes; first lower part then upper
179 22 B316
Data block at B316
179 23 B317
Process Octopus, draw if needed
179 93 B35D
Draw Octopus sprite
179 146 B392
Unused?
179 160 B3A0
Routine at B3A0
180 112 B470
Routine at B470
181 114 B572
Copy records forward
181 126 B57E
Routine at B57E
181 152 B598
Copy records backward
181 164 B5A4
Routine at B5A4
181 224 B5E0
Routine at B5E0
182 118 B676
Unused
182 134 B686
Routine at B686
183 15 B70F
Routine at B70F
183 55 B737
Routine at B737
183 185 B7B9
Unused
183 187 B7BB
Routine at B7BB
184 54 B836
Routine at B836
184 55 B837
Routine at B837
184 133 B885
Routine at B885
185 114 B972
Routine at B972
186 100 BA64
Routine at BA64
189 131 BD83
Routine at BD83
189 169 BDA9
Data block at BDA9
189 186 BDBA
Routine at BDBA
189 233 BDE9
Unused
189 234 BDEA
Routine at BDEA
190 64 BE40
Routine at BE40
190 88 BE58
Routine at BE58
190 109 BE6D
Routine at BE6D
190 133 BE85
Routine at BE85
190 154 BE9A
Routine at BE9A
190 178 BEB2
Routine at BEB2
190 199 BEC7
Routine at BEC7
190 219 BEDB
Routine at BEDB
191 160 BFA0
Data block at BFA0
191 176 BFB0
Routine at BFB0
192 7 C007
Data block at C007
192 9 C009
Routine at C009
192 146 C092
Data block at C092
194 10 C20A
Record templates
196 49 C431
Routine at C431
196 92 C45C
Routine at C45C
196 129 C481
Routine at C481
196 213 C4D5
Delay ??
196 231 C4E7
Data block at C4E7
196 240 C4F0
Data block at C4F0
197 0 C500
Unused
217 144 D990
Game
218 57 DA39
Clear screen, fill attributes with A
218 89 DA59
Print char and shift current position right
218 152 DA98
Print string
218 173 DAAD
Prepare game screen and some variables
219 194 DBC2
Initialize variables depending of Game level
220 9 DC09
Texts for indicator panel
220 128 DC80
Tiles 8x8
221 240 DDF0
Blocks of 14 bytes to copy to 5B27, blocks aligned to 16 bytes
222 46 DE2E
Update gauge indicator on the screen
222 62 DE3E
Update Depth indicator
222 85 DE55
Data block at DE55
222 93 DE5D
Update Oxygen indicator
222 133 DE85
Print decimal number
222 217 DED9
Print high score number
222 229 DEE5
Print score number
222 241 DEF1
Print HELD number
222 253 DEFD
Data block at DEFD
223 37 DF25
Table: Angle 0..15 -> (DX, DY)
223 69 DF45
Data block at DF45
223 213 DFD5
Routine at DFD5
226 168 E2A8
Routine at E2A8
226 219 E2DB
Read keyboard input
227 59 E33B
Diver object record
227 100 E364
Routine at E364
228 27 E41B
Routine at E41B
228 58 E43A
Diver explosion ??
228 118 E476
Process objects on the screen - like take Oxygen or pick up pearls
229 210 E5D2
DE = (L5B33) - HELD
229 224 E5E0
Dividers used to print decimal number, see PrintDec
229 236 E5EC
Play melody
230 4 E604
Melodies
230 21 E615
Play melody $E60B
230 28 E61C
Melodies
230 69 E645
Play melody $E629
230 82 E652
Sprites divers on the boat
230 130 E682
Routine at E682
230 171 E6AB
Routine at E6AB
231 103 E767
Routine at E767
233 21 E915
Routine at E915
233 176 E9B0
Routine at E9B0
233 209 E9D1
Data block at E9D1
233 218 E9DA
Score table, 160 bytes
234 122 EA7A
Routine at EA7A
234 222 EADE
Routine at EADE
235 130 EB82
Routine at EB82
235 219 EBDB
Routine at EBDB
235 238 EBEE
Texts used for indicator panel
236 124 EC7C
Redefine keys
236 235 ECEB
Sound??
237 35 ED23
UDG symbols $90..$93 used for Redefine keys
237 67 ED43
Text for Redefine keys
237 213 EDD5
Melody
237 223 EDDF
Starting point
238 28 EE1C
Routine at EE1C
238 173 EEAD
Routine at EEAD
239 58 EF3A
Data block at EF3A
239 127 EF7F
Message at EF7F
239 147 EF93
Data block at EF93
239 154 EF9A
Message at EF9A
239 166 EFA6
Unused
240 0 F000
Buffer??