![]() |
Sprites |
Every sprite record, 89 of them end to end from SPRITE128 to the variables at CONTROL, with the font among them at FONT. Each is drawn from its own bytes the way the drawing code (DRAW_OBJECT) 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: FIND_SPRITE 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. Sprites marked never drawn are named only by graphics nothing places, and 3 records no graphic number reaches at all.
| Sprite | Entry | What it shows | Size | Width byte | Graphics |
|---|---|---|---|---|---|
| SPRITE128 $6F2F | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 128 | |
| SPRITE129 $6FC1 | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 129 | |
| SPRITE130 $7053 | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 130 | |
| SPRITE131 $70E5 | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 131 | |
| SPRITE132 $7177 | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 132 | |
| SPRITE133 $7209 | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 133 | |
| SPRITE134 $729B | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 134 | |
| SPRITE135 $732D | a piece of the pentagram | 24 by 24 pixels; 146 bytes | $03 | 135 | |
| SPRITE74 $73BF | a dark patch on the ground | 32 by 16 pixels; 130 bytes | $04 | 74 | |
| SPRITE75 $7441 | a hand reaching out of a dark patch | 32 by 16 pixels; 130 bytes | $04 | 75 | |
| SPRITE137 $74C3 | the stone block crumbling, first stage | 32 by 27 pixels; 218 bytes | $04 | 137 | |
| SPRITE138 $759D | the stone block crumbling, second stage | 32 by 27 pixels; 218 bytes | $04 | 138 | |
| SPRITE139 $7677 | the stone block crumbling, last stage | 32 by 27 pixels; 218 bytes | $04 | 139 | |
| SPRITE86 $7751 | a horned head | 32 by 24 pixels; 194 bytes | $04 | 86, 92-93 | |
| SPRITE168 $7813 | a lumbering figure, walking | 24 by 25 pixels; 152 bytes | $03 | 168 | |
| SPRITE169 $78AB | a lumbering figure, walking | 24 by 25 pixels; 152 bytes | $03 | 169 | |
| SPRITE170 $7943 | a lumbering figure from behind, walking | 24 by 29 pixels; 176 bytes | $03 | 170 | |
| SPRITE171 $79F3 | a lumbering figure from behind, walking | 24 by 28 pixels; 170 bytes | $03 | 171 | |
| SPRITE80 $7A9D | a witch on a broomstick | 32 by 24 pixels; 194 bytes | $04 | 80 | |
| SPRITE81 $7B5F | a witch on a broomstick, from behind | 32 by 24 pixels; 194 bytes | $04 | 81 | |
| SPRITE167 $7C21 | a pointed blob | 24 by 21 pixels; 128 bytes | $03 | 167 | |
| SPRITE164 $7CA1 | a pointed blob | 24 by 24 pixels; 146 bytes | $03 | 164, 166 | |
| SPRITE165 $7D33 | a pointed blob | 24 by 26 pixels; 158 bytes | $03 | 165 | |
| SPRITE160 $7DD1 | a clawed, winged beast | 32 by 23 pixels; 186 bytes | $04 | 160, 162 | |
| SPRITE161 $7E8B | a clawed, winged beast | 32 by 23 pixels; 186 bytes | $04 | 161 | |
| SPRITE163 $7F45 | a clawed, winged beast | 32 by 23 pixels; 186 bytes | $04 | 163 | |
| SPRITE48 $7FFF | a ghost | 24 by 26 pixels; 158 bytes | $03 | 48, 50 | |
| SPRITE49 $809D | a ghost | 24 by 26 pixels; 158 bytes | $03 | 49, 51 | |
| SPRITE64 $813B | a puff of smoke | 16 by 14 pixels; 58 bytes | $02 | 64 | |
| SPRITE65 $8175 | a puff of smoke | 24 by 13 pixels; 80 bytes | $03 | 65, 67 | |
| SPRITE66 $81C5 | a puff of smoke | 24 by 17 pixels; 104 bytes | $03 | 66, 68-69 | |
| SPRITE70 $822D | a puff breaking up | 24 by 16 pixels; 98 bytes | $03 | 70-71 | |
| SPRITE149 $828F | a bolt | 16 by 16 pixels; 66 bytes | $02 | 149 | |
| SPRITE150 $82D1 | a bolt | 16 by 16 pixels; 66 bytes | $02 | 150 | |
| SPRITE151 $8313 | a bolt | 16 by 16 pixels; 66 bytes | $02 | 151 | |
| SPRITE16 $84AD | a spider | 32 by 18 pixels; 146 bytes | $04 | 16-17, 89 | |
| SPARE_SPRITEA $853F | 8 bytes that are not a sprite | No graphic number reaches it: never drawn | |||
| SPARE_SPRITEB $8547 | a tree stump with roots | 32 by 24 pixels; 194 bytes | $04 | No graphic number reaches it: never drawn | |
| SPRITE63 $8609 | a smooth block | 32 by 28 pixels; 226 bytes | $04 | 63, 82 | |
| SPRITE30 $86EB | a toothed trap | 32 by 21 pixels; 170 bytes | $04 | 30-31 | |
| SPRITE23 $8795 | a bed of spikes | 32 by 28 pixels; 226 bytes | $04 | 23, 28 | |
| SPRITE22 $8877 | a little Sabreman | 16 by 17 pixels; 70 bytes | $02 | 22 | |
| SPRITE11 $88BD | a stone block | 32 by 29 pixels; 234 bytes | $04 | 11, 78-79, 84-85, 87-88, 91, 121-127, 136, 140-143 | |
| SPRITE58 $89A7 | a piece of the panel's scroll-work | 16 by 16 pixels; 66 bytes | $02 | 58 | |
| SPRITE59 $89E9 | a piece of the panel's scroll-work | 16 by 11 pixels; 46 bytes | $02 | 59 | |
| SPARE_SPRITEC $8A17 | a piece of scroll-work | 16 by 16 pixels; 66 bytes | $02 | No graphic number reaches it: never drawn | |
| SPRITE60 $8A59 | a piece of the panel's scroll-work | 16 by 16 pixels; 66 bytes | $02 | 60-61 | |
| SPRITE62 $8A9B | a piece of the panel's scroll-work | 16 by 8 pixels; 34 bytes | $02 | 62 | |
| SPRITE73 $8ABD | a table | 40 by 34 pixels; 342 bytes | $05 | 73 | |
| SPRITE120 $8C13 | the well | 40 by 32 pixels; 322 bytes | $05 | 120 | |
| SPRITE112 $8D55 | a rough stone | 32 by 39 pixels; 314 bytes | $04 | 112-115 | |
| SPRITE116 $8E8F | a finished pillar | 32 by 51 pixels; 410 bytes | $04 | 116-119 | |
| SPRITE90 $9029 | the bucket | 24 by 24 pixels; 146 bytes | $03 | 90 | |
| SPRITE144 $90BB | a rune stone | 24 by 24 pixels; 146 bytes | $03 | 144, 152 | |
| SPRITE145 $914D | a rune stone | 24 by 24 pixels; 146 bytes | $03 | 145, 153 | |
| SPRITE146 $91DF | a rune stone | 24 by 24 pixels; 146 bytes | $03 | 146, 154 | |
| SPRITE147 $9271 | a rune stone | 24 by 24 pixels; 146 bytes | $03 | 147, 155 | |
| SPRITE148 $9303 | a rune stone | 24 by 24 pixels; 146 bytes | $03 | 148, 156 | |
| SPRITE0 $9395 | 0 by 0: nothing is drawn | $00 | 0-1, 24-27, 83, 94-111, 157-159 | ||
| SPRITE42 $9397 | his body | 24 by 27 pixels; 164 bytes | $03 | 42 | |
| SPRITE41 $943B | his body | 24 by 27 pixels; 164 bytes | $03 | 41, 43 | |
| SPRITE40 $94DF | his body | 24 by 27 pixels; 164 bytes | $03 | 40 | |
| SPRITE45 $9583 | his body, the other view | 24 by 34 pixels; 206 bytes | $03 | 45, 47 | |
| SPRITE44 $9651 | his body, the other view | 24 by 34 pixels; 206 bytes | $03 | 44 | |
| SPRITE46 $971F | his body, the other view | 24 by 34 pixels; 206 bytes | $03 | 46 | |
| SPRITE34 $97ED | his legs | 24 by 15 pixels; 92 bytes | $03 | 34 | |
| SPRITE21 $9849 | his legs | 24 by 15 pixels; 92 bytes | $03 | 21, 29, 33, 35 | |
| SPRITE18 $98A5 | his legs | 24 by 15 pixels; 92 bytes | $03 | 18, 20, 32 | |
| SPRITE19 $9901 | his legs, the other view | 24 by 18 pixels; 110 bytes | $03 | 19, 37, 39 | |
| SPRITE36 $996F | his legs, the other view | 24 by 18 pixels; 110 bytes | $03 | 36 | |
| SPRITE38 $99DD | his legs, the other view | 24 by 18 pixels; 110 bytes | $03 | 38 | |
| SPRITE2 $9A4B | a side of the text screens' border | 24 by 24 pixels; 146 bytes | $03 | 2 | |
| SPRITE3 $9ADD | the short piece closing the border's top and bottom | 16 by 24 pixels; 98 bytes | $02 | 3 | |
| SPRITE4 $9B3F | a length of the border's top and bottom | 24 by 24 pixels; 146 bytes | $03 | 4 | |
| SPRITE5 $9BD1 | a corner of the border | 24 by 24 pixels; 146 bytes | $03 | 5 | |
| SPRITE6 $9C63 | a tree: the first pillar of a doorway in the trees | 24 by 55 pixels; 332 bytes | $03 | 6 | |
| SPRITE7 $9DAF | a tree: the second pillar of a doorway in the trees | 16 by 40 pixels; 162 bytes | $02 | 7 | |
| SPRITE10 $9E51 | a tree stump | 32 by 25 pixels; 202 bytes | $04 | 10, 72, 76-77 | |
| SPRITE12 $9F1B | a tree in a line of trees | 16 by 43 pixels; 174 bytes | $02 | 12 | |
| SPRITE13 $9FC9 | a tree in a line of trees | 16 by 53 pixels; 214 bytes | $02 | 13 | |
| SPRITE14 $A09F | a tree in a line of trees | 16 by 53 pixels; 214 bytes | $02 | 14 | |
| SPRITE15 $A175 | a tree in a line of trees | 16 by 50 pixels; 202 bytes | $02 | 15 | |
| SPRITE54 $A23F | a piece of ruined stone wall | 16 by 26 pixels; 106 bytes | $02 | 54 | |
| SPRITE53 $A2A9 | a piece of ruined stone wall | 16 by 31 pixels; 126 bytes | $02 | 53 | |
| SPRITE52 $A327 | a column in a stone wall | 16 by 33 pixels; 134 bytes | $02 | 52 | |
| SPRITE55 $A3AD | a piece of ruined stone wall | 16 by 24 pixels; 98 bytes | $02 | 55 | |
| SPRITE56 $A40F | a piece of ruined stone wall | 16 by 27 pixels; 110 bytes | $02 | 56 | |
| SPRITE9 $A47D | the second half of a stone arch | 24 by 36 pixels; 218 bytes | $03 | 9 | |
| SPRITE8 $A557 | the first half of a stone arch | 24 by 49 pixels; 296 bytes | $03 | 8 | |
| SPRITE57 $A67F | the end of a stone wall | 16 by 34 pixels; 138 bytes | $02 | 57 |
43 characters of 8 by 8 pixels at FONT, for the codes $30 to $5A: the digits; a full stop, a percent sign and a copyright sign; 4 blank characters ($3D, $3E, $3F, $40); and the capital letters. Each is eight bytes, the top row first, as the print routine (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 print routine's base is 384 bytes below the font, so that the codes land on these characters; for the score and the lives 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 | ![]() 1 | ![]() 2 | ![]() 3 | ![]() 4 | ![]() 5 | ![]() 6 | ![]() 7 | ![]() 8 | ![]() 9 | ![]() $3A |
![]() $3B | ![]() $3C | ![]() $3D | ![]() $3E | ![]() $3F | ![]() $40 | ![]() A | ![]() B | ![]() C | ![]() D | ![]() E |
![]() F | ![]() G | ![]() H | ![]() I | ![]() J | ![]() K | ![]() L | ![]() M | ![]() N | ![]() O | ![]() P |
![]() Q | ![]() R | ![]() S | ![]() T | ![]() U | ![]() V | ![]() W | ![]() X | ![]() Y | ![]() Z |