Every sprite record, 78 of them end to end from SPRITE0 to the first instruction of the game at START. Each is drawn from its own bytes the way the drawing code (CALC_PIXEL_XY_AND_RENDER) reads them: a width byte (bits 0-3 the width in bytes), a height byte, then a mask byte and an image byte for each byte of each row, the bottom row first. Where the mask is set the background is cleared, and the image is laid in wherever it is set -- so an image bit shows whether or not the mask is set, a mask bit with no image is black, and where both are clear the background shows through (here, the blue-grey). This is Knight Lore's format (see Knight Lore's sprites).

Bits 6 and 7 of the width byte say whether the bytes are stored mirrored or upside down at the moment: VFLIP_SPRITE_DATA turns a sprite round in place, rewriting its bytes and toggling the bits, whenever it is drawn for an object facing the other way. On the tape every sprite is stored the right way round, with both bits clear, which is how they are drawn here.

Beside each are the graphic numbers that name it (a graphic is an object's first byte, looked up in GRAPHICS); see every graphic for what each is. One record no graphic number reaches: $88B3, which the game never draws. The first record, width and height both zero, is the empty sprite graphics 0 and 1 name; the drawing code sees the zero and draws nothing (FLIP_SPRITE).

The sprites -- The font

The sprites

SpriteEntryWhat it showsSizeWidth byteGraphics
SPRITE0
$792F
nothing0 by 0: nothing is drawn$000-1
SPRITE131SPRITE131
$7931
a small domed pod on a round base24 by 20 pixels; 122 bytes$03131
SPRITE85SPRITE85
$79AB
a tub of oil, on feet40 by 35 pixels; 352 bytes$0585
SPRITE130SPRITE130
$7B0B
a spiky ball32 by 23 pixels; 186 bytes$04130
SPRITE129SPRITE129
$7BC5
a round thing with prongs24 by 25 pixels; 152 bytes$03129
SPRITE124SPRITE124
$7C5D
a little domed robot with feelers24 by 24 pixels; 146 bytes$03124
SPRITE125SPRITE125
$7CEF
a little domed robot with feelers24 by 24 pixels; 146 bytes$03125
SPRITE126SPRITE126
$7D81
a little domed robot with feelers24 by 24 pixels; 146 bytes$03126
SPRITE127SPRITE127
$7E13
a little domed robot with feelers24 by 24 pixels; 146 bytes$03127
SPRITE122SPRITE122
$7EA5
a box with an arrow on its lid32 by 29 pixels; 234 bytes$04122
SPRITE123SPRITE123
$7F8F
a box with an arrow on its lid, the other way32 by 29 pixels; 234 bytes$04123
SPRITE118SPRITE118
$8079
a clockwork mouse24 by 26 pixels; 158 bytes$03118
SPRITE116SPRITE116
$8117
a clockwork mouse24 by 26 pixels; 158 bytes$03116
SPRITE117SPRITE117
$81B5
a clockwork mouse24 by 26 pixels; 158 bytes$03117
SPRITE119SPRITE119
$8253
a clockwork mouse24 by 26 pixels; 158 bytes$03119
SPRITE120SPRITE120
$82F1
a domed column of rings24 by 30 pixels; 182 bytes$03120
SPRITE121SPRITE121
$83A7
a domed column of rings24 by 30 pixels; 182 bytes$03121
SPRITE82SPRITE82
$845D
a hammer32 by 16 pixels; 130 bytes$0482
SPRITE81SPRITE81
$84DF
a glove32 by 18 pixels; 146 bytes$0481
SPRITE80SPRITE80
$8571
sparks24 by 11 pixels; 68 bytes$0380
SPRITE83SPRITE83
$85B5
a hook40 by 17 pixels; 172 bytes$0583
SPRITE88SPRITE88
$8661
a piece of the robot's stand24 by 8 pixels; 50 bytes$0388
SPRITE89SPRITE89
$8693
a piece of the robot's stand24 by 8 pixels; 50 bytes$0389
SPRITE84SPRITE84
$86C5
half of the frame round the light years24 by 22 pixels; 134 bytes$0384
SPRITE11SPRITE11
$874B
a creature's lower half24 by 16 pixels; 98 bytes$0311
SPRITE73SPRITE73
$87AD
a spiked dome24 by 19 pixels; 116 bytes$0373
SPRITE46SPRITE46
$8821
a crown of spikes on a base24 by 24 pixels; 146 bytes$0346
SPARE_SPRITEASPARE_SPRITEA
$88B3
a sloping slab32 by 25 pixels; 202 bytes$04No graphic number reaches it: never drawn
SPRITE74SPRITE74
$897D
a frozen spaceman24 by 32 pixels; 194 bytes$0374
SPRITE86SPRITE86
$8A3F
a bug-eyed creature24 by 25 pixels; 152 bytes$0386, 94
SPRITE28SPRITE28
$8AD7
a block with a raised round top32 by 29 pixels; 234 bytes$0428
SPRITE29SPRITE29
$8BC1
a block tapering to the bottom32 by 27 pixels; 218 bytes$0429
SPRITE30SPRITE30
$8C9B
a plain block32 by 29 pixels; 234 bytes$0430-31, 44-45, 47, 66-71, 128
SPRITE87SPRITE87
$8D85
a bug-eyed creature, the other view24 by 25 pixels; 152 bytes$0387, 95
SPRITE75SPRITE75
$8E1D
three cylinders on a plate32 by 25 pixels; 202 bytes$0475
SPRITE2SPRITE2
$8EE7
a doorway's pillar16 by 62 pixels; 250 bytes$022
SPRITE3SPRITE3
$8FE1
a doorway's other pillar, with the top of the frame24 by 48 pixels; 290 bytes$033
SPRITE13SPRITE13
$9103
a long panel of a hexagon-tiled wall24 by 56 pixels; 338 bytes$0313
SPRITE15SPRITE15
$9255
a short panel of the wall16 by 52 pixels; 210 bytes$0215
SPRITE4SPRITE4
$9327
a corner of the border32 by 32 pixels; 258 bytes$044
SPRITE6SPRITE6
$9429
a length of the border's top and bottom8 by 24 pixels; 50 bytes$016
SPRITE5SPRITE5
$945B
a length of the border's sides, one pixel high24 by 1 pixels; 8 bytes$035
SPRITE10SPRITE10
$9463
a small square: the panel's edge8 by 8 pixels; 18 bytes$0110
SPRITE7SPRITE7
$9475
a piece of the panel's scroll-work16 by 12 pixels; 50 bytes$027
SPRITE8SPRITE8
$94A7
a piece of the panel's scroll-work16 by 16 pixels; 66 bytes$028
SPRITE9SPRITE9
$94E9
a slanting line: the panel's slope16 by 8 pixels; 34 bytes$029
SPRITE72SPRITE72
$950B
a pyramid32 by 24 pixels; 194 bytes$0472
SPRITE12SPRITE12
$95CD
a little robot16 by 17 pixels; 70 bytes$0212
SPRITE25SPRITE25
$9613
the robot's legs, from the front32 by 17 pixels; 138 bytes$0425, 90, 92
SPRITE41SPRITE41
$969D
the robot's top, from the front32 by 16 pixels; 130 bytes$0441, 91, 93
SPRITE24SPRITE24
$971F
the robot's legs, from behind32 by 17 pixels; 138 bytes$0424
SPRITE40SPRITE40
$97A9
the robot's top, from behind32 by 16 pixels; 130 bytes$0440
SPRITE26SPRITE26
$982B
the robot's legs, side-on32 by 17 pixels; 138 bytes$0426-27
SPRITE42SPRITE42
$98B5
the robot's top, side-on32 by 17 pixels; 138 bytes$0442-43
SPRITE20SPRITE20
$993F
the robot's legs32 by 17 pixels; 138 bytes$0420
SPRITE36SPRITE36
$99C9
the robot's top32 by 17 pixels; 138 bytes$0436
SPRITE21SPRITE21
$9A53
the robot's legs32 by 17 pixels; 138 bytes$0421, 23
SPRITE37SPRITE37
$9ADD
the robot's top32 by 17 pixels; 138 bytes$0437, 39
SPRITE22SPRITE22
$9B67
the robot's legs32 by 17 pixels; 138 bytes$0422
SPRITE38SPRITE38
$9BF1
the robot's top32 by 17 pixels; 138 bytes$0438
SPRITE16SPRITE16
$9C7B
the robot's legs32 by 17 pixels; 138 bytes$0416
SPRITE32SPRITE32
$9D05
the robot's top32 by 17 pixels; 138 bytes$0432
SPRITE17SPRITE17
$9D8F
the robot's legs32 by 17 pixels; 138 bytes$0417, 19
SPRITE33SPRITE33
$9E19
the robot's top32 by 17 pixels; 138 bytes$0433, 35
SPRITE18SPRITE18
$9EA3
the robot's legs32 by 17 pixels; 138 bytes$0418
SPRITE34SPRITE34
$9F2D
the robot's top32 by 17 pixels; 138 bytes$0434
SPRITE14SPRITE14
$9FB7
the narrow end of the wall8 by 48 pixels; 98 bytes$0114
SPRITE55SPRITE55
$A019
a sparkle, smallest24 by 20 pixels; 122 bytes$0355-56
SPRITE54SPRITE54
$A093
a sparkle24 by 21 pixels; 128 bytes$0354, 57
SPRITE53SPRITE53
$A113
a sparkle24 by 23 pixels; 140 bytes$0353, 58
SPRITE52SPRITE52
$A19F
a sparkle24 by 24 pixels; 146 bytes$0352, 59, 78, 108
SPRITE49SPRITE49
$A231
a sparkle24 by 24 pixels; 146 bytes$0349, 51, 60, 62, 65, 77, 79, 109, 111
SPRITE48SPRITE48
$A2C3
a sparkle, largest24 by 24 pixels; 146 bytes$0348, 50, 61, 63-64, 76, 110
SPRITE112SPRITE112
$A355
a domed socket on a plinth32 by 25 pixels; 202 bytes$04112-115
SPRITE96SPRITE96
$A41F
a valve: a drum on feet24 by 24 pixels; 146 bytes$0396, 100, 104
SPRITE97SPRITE97
$A4B1
a valve: a cube on feet24 by 23 pixels; 140 bytes$0397, 101, 105
SPRITE98SPRITE98
$A53D
a valve: a point on feet24 by 19 pixels; 116 bytes$0398, 102, 106
SPRITE99SPRITE99
$A5B1
a valve: a ball on feet24 by 21 pixels; 128 bytes$0399, 103, 107

The font

43 characters of 8 by 8 pixels at FONT, for the codes $30 to $5A: the digits, a second nought, a few signs and 3 blank characters ($3D, $3F, $40), and the capital letters. Each is eight bytes, the top row first, as the printer (PRINT_CHAR) copies them into the screen buffer. There is no lower case, and a space is printed as code $3D, the first of the blanks. For text the printer's base is 384 bytes below the font, so that the codes land on these characters; for numbers it is the font itself, so that the digits are codes 0 to 9. Drawn here in white; the game colours text by the attributes it prints with.

0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
$3A
$3A
$3B
$3B
$3C
$3C
$3D
$3D
$3E
$3E
$3F
$3F
$40
$40
A
A
B
B
C
C
D
D
E
E
F
F
G
G
H
H
I
I
J
J
K
K
L
L
M
M
N
N
O
O
P
P
Q
Q
R
R
S
S
T
T
U
U
V
V
W
W
X
X
Y
Y
Z
Z

The character after the 9, code $3A -- a colon where the codes are ASCII -- is the same eight bytes as the 0 (compared at build time). It is there for the light-years clock (RUN_CLOCK): a digit that changes is printed rows out of line, the eight bytes from its character plus a count that runs down from 7 to 0 over seven turns (PRINT_ROLLING_DIGIT), so it rolls down into place from the digit above it like a counter's wheel. A 9 comes after a 0 -- a borrow -- and the character above the 9 is this second nought, so the 9 rolls in from a 0. Here is that roll, read from the font the way the clock reads it, count 7 first:

count 7
7
count 6
6
count 5
5
count 4
4
count 3
3
count 2
2
count 1
1
count 0
0