{
 "schema": 1,
 "platform": "spectrum",
 "game": "where-time-stood-still",
 "part": "bank-01",
 "build": "",
 "source": "control file",
 "regions": {
  "exclude": [
   [
    0,
    16383,
    "ROM"
   ],
   [
    0,
    49151,
    "The game"
   ]
  ],
  "extra": [],
  "elsewhere": [
   [
    0,
    49151,
    "The game"
   ]
  ]
 },
 "blocks": [
  {
   "start": 49152,
   "end": 50175,
   "type": "Byte"
  },
  {
   "start": 50176,
   "end": 51199,
   "type": "Byte"
  },
  {
   "start": 51200,
   "end": 52223,
   "type": "Byte"
  },
  {
   "start": 52224,
   "end": 53247,
   "type": "Byte"
  },
  {
   "start": 53248,
   "end": 53307,
   "type": "Byte"
  },
  {
   "start": 53308,
   "end": 53441,
   "type": "Byte"
  },
  {
   "start": 53442,
   "end": 53654,
   "type": "Byte"
  },
  {
   "start": 53655,
   "end": 54022,
   "type": "Byte"
  },
  {
   "start": 54023,
   "end": 54110,
   "type": "Byte"
  },
  {
   "start": 54111,
   "end": 54464,
   "type": "Byte"
  },
  {
   "start": 54465,
   "end": 54831,
   "type": "Byte"
  },
  {
   "start": 54832,
   "end": 55246,
   "type": "Byte"
  },
  {
   "start": 55247,
   "end": 55254,
   "type": "Byte"
  },
  {
   "start": 55255,
   "end": 55440,
   "type": "Byte"
  },
  {
   "start": 55441,
   "end": 56049,
   "type": "Byte"
  },
  {
   "start": 56050,
   "end": 56957,
   "type": "Byte"
  },
  {
   "start": 56958,
   "end": 57216,
   "type": "Byte"
  },
  {
   "start": 57217,
   "end": 57308,
   "type": "Byte"
  },
  {
   "start": 57309,
   "end": 57343,
   "type": "Byte"
  },
  {
   "start": 57344,
   "end": 57707,
   "type": "Byte"
  },
  {
   "start": 57708,
   "end": 58097,
   "type": "Byte"
  },
  {
   "start": 58098,
   "end": 58385,
   "type": "Byte"
  },
  {
   "start": 58386,
   "end": 58433,
   "type": "Word"
  },
  {
   "start": 58434,
   "end": 58451,
   "type": "Word"
  },
  {
   "start": 58452,
   "end": 58575,
   "type": "Word"
  },
  {
   "start": 58576,
   "end": 58623,
   "type": "Word"
  },
  {
   "start": 58624,
   "end": 59267,
   "type": "Byte"
  },
  {
   "start": 59268,
   "end": 59743,
   "type": "Byte"
  },
  {
   "start": 59744,
   "end": 59923,
   "type": "Byte"
  },
  {
   "start": 59924,
   "end": 60864,
   "type": "Byte"
  },
  {
   "start": 60865,
   "end": 61439,
   "type": "Byte"
  },
  {
   "start": 61440,
   "end": 61654,
   "type": "Byte"
  },
  {
   "start": 61655,
   "end": 62057,
   "type": "Byte"
  },
  {
   "start": 62058,
   "end": 62073,
   "type": "Byte"
  },
  {
   "start": 62074,
   "end": 62097,
   "type": "Byte"
  },
  {
   "start": 62098,
   "end": 62465,
   "type": "Byte"
  },
  {
   "start": 62466,
   "end": 62774,
   "type": "Byte"
  },
  {
   "start": 62775,
   "end": 62942,
   "type": "Byte"
  },
  {
   "start": 62943,
   "end": 63821,
   "type": "Byte"
  },
  {
   "start": 63822,
   "end": 64315,
   "type": "Byte"
  },
  {
   "start": 64316,
   "end": 64581,
   "type": "Byte"
  },
  {
   "start": 64582,
   "end": 64717,
   "type": "Byte"
  },
  {
   "start": 64718,
   "end": 65047,
   "type": "Byte"
  },
  {
   "start": 65048,
   "end": 65089,
   "type": "Byte"
  },
  {
   "start": 65090,
   "end": 65535,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 49152,
   "name": "ground_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "ground_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "ground_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52224,
   "name": "ground_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53248,
   "name": "area_grounds",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53308,
   "name": "ground_area_00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53442,
   "name": "ground_area_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53655,
   "name": "ground_area_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54023,
   "name": "ground_area_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54111,
   "name": "ground_area_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54465,
   "name": "ground_area_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54832,
   "name": "ground_area_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55247,
   "name": "after_ground_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55255,
   "name": "ground_area_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55441,
   "name": "ground_area_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56050,
   "name": "ground_area_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56958,
   "name": "ground_area_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57217,
   "name": "ground_area_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57309,
   "name": "ground_area_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57344,
   "name": "ground_area_13_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57708,
   "name": "ground_area_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58098,
   "name": "animation_choice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58386,
   "name": "animations_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58434,
   "name": "animations_2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58452,
   "name": "animations",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58576,
   "name": "animations_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58624,
   "name": "scripts",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59268,
   "name": "scripts_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59744,
   "name": "frames_jarret",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59924,
   "name": "pictures_jarret",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60865,
   "name": "pictures_jarret_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61440,
   "name": "pictures_jarret_2_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61655,
   "name": "masks_jarret",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62058,
   "name": "two_piece_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62074,
   "name": "frames_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62098,
   "name": "pictures_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62466,
   "name": "masks_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62775,
   "name": "frames_dirk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62943,
   "name": "pictures_dirk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63822,
   "name": "pictures_dirk_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64316,
   "name": "mask_dirk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64582,
   "name": "unnamed_fc46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64718,
   "name": "pictures_dirk_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65048,
   "name": "frames_2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65090,
   "name": "pictures_2d",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 49152,
   "type": "line",
   "text": "The ground of the area loaded, rows 0 to 15 of 64: a byte for each cell 16 units square, 64 cells to a row, the row by the place across and the cell by the place down ($90DE). Under $72 a cell is a height; $72 to $7E are special ground with routines of their own ($9267). Unpacked from the area's record by $87CF; zeros at the hand-over."
  },
  {
   "address": 50176,
   "type": "line",
   "text": "The ground of the area loaded, rows 16 to 31 of 64: a byte for each cell 16 units square, 64 cells to a row, the row by the place across and the cell by the place down ($90DE). Under $72 a cell is a height; $72 to $7E are special ground with routines of their own ($9267). Unpacked from the area's record by $87CF; zeros at the hand-over."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "The ground of the area loaded, rows 32 to 47 of 64: a byte for each cell 16 units square, 64 cells to a row, the row by the place across and the cell by the place down ($90DE). Under $72 a cell is a height; $72 to $7E are special ground with routines of their own ($9267). Unpacked from the area's record by $87CF; zeros at the hand-over."
  },
  {
   "address": 52224,
   "type": "line",
   "text": "The ground of the area loaded, rows 48 to 63 of 64: a byte for each cell 16 units square, 64 cells to a row, the row by the place across and the cell by the place down ($90DE). Under $72 a cell is a height; $72 to $7E are special ground with routines of their own ($9267). Unpacked from the area's record by $87CF; zeros at the hand-over."
  },
  {
   "address": 53248,
   "type": "line",
   "text": "Four bytes for each area: the address of its packed ground, then two offsets written into $90DE ($90E2, $90F0) and $9230 ($9237, $9244), across and down, added to a place before its cell is found. Areas 0 and 1 share their ground. The entry for area 15 would be the first four bytes of the packed data at $D03C, and so an address of $00FF; no route, record or object is in area 15."
  },
  {
   "address": 53308,
   "type": "line",
   "text": "Area 0 and 1's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 53442,
   "type": "line",
   "text": "Area 2's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 53655,
   "type": "line",
   "text": "Area 3's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 54023,
   "type": "line",
   "text": "Area 4's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 54111,
   "type": "line",
   "text": "Area 5's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 54465,
   "type": "line",
   "text": "Area 6's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 54832,
   "type": "line",
   "text": "Area 7's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 55247,
   "type": "line",
   "text": "Eight bytes after area 7's packed ground, which fills the grid with its last run, before area 8's."
  },
  {
   "address": 55255,
   "type": "line",
   "text": "Area 8's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 55441,
   "type": "line",
   "text": "Area 9's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 56050,
   "type": "line",
   "text": "Area 10's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 56958,
   "type": "line",
   "text": "Area 11's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 57217,
   "type": "line",
   "text": "Area 12's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 57309,
   "type": "line",
   "text": "Area 13's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Area 13's packed ground, continued."
  },
  {
   "address": 57708,
   "type": "line",
   "text": "Area 14's ground, packed: a byte with bit 7 set is a count (its low seven bits) and the next byte is repeated that many times; any other byte is one cell. $87CF unpacks it until bank 1's $D000 is reached, so a last run may end part-way and the next area's data can begin inside it. The data runs on into the table at $E2F2: the area's last cells are unpacked from its first fifteen bytes."
  },
  {
   "address": 58098,
   "type": "line",
   "text": "Which animation an actor plays, read by $8FDA when its action (+$0C) changes: twelve bytes for each of 24 values of its animation state (+$0D), one for each action. The byte is the animation's number in the actor's list (bit 7 to play it backwards from its last frame); the byte two after it (one after, played backwards), unless $FF, becomes the actor's new state."
  },
  {
   "address": 58386,
   "type": "line",
   "text": "The animations of types $14 to $17 (actor class 6, bank 3's $EAC8): 24 words, each the address of a script."
  },
  {
   "address": 58434,
   "type": "line",
   "text": "The animations of type $2D (class 11): 9 scripts."
  },
  {
   "address": 58452,
   "type": "line",
   "text": "The animations of the four characters and most other types (classes 0 to 4 and 7 to 10): 62 scripts, numbers 0 to 61."
  },
  {
   "address": 58576,
   "type": "line",
   "text": "The animations of types $10 to $13 (class 5): 24 scripts, several shared with the list at $E454."
  },
  {
   "address": 58624,
   "type": "line",
   "text": "The animation scripts, 85 of them to $E95F: a count of frames n, three bytes (the fourth, at +3, names in its high nibble the event at the animation's end, $9052, $F for none), then n frames of four bytes: the moves across, down and in height, signed, and the sprite frame shown (+$1B, bit 7 mirrored), whose low nibble is also the leader's scroll step ($98FF). The scripts at $E628, $E650 and $E784 to $E79C are in none of the four lists."
  },
  {
   "address": 59268,
   "type": "line",
   "text": "Animation scripts, continued: the first four, $E784 to $E79F, are in none of the four lists."
  },
  {
   "address": 59744,
   "type": "line",
   "text": "Jarret's (class 0)'s sprite frames, 30 of six bytes each ($A493): the width (3 for 16 pixels, 4 for 24), the rows, and the addresses of the picture and its mask."
  },
  {
   "address": 59924,
   "type": "line",
   "text": "Jarret's pictures, two or three bytes a row by the frame's width, from the top; frames that end and begin with the same blank rows overlap."
  },
  {
   "address": 60865,
   "type": "line",
   "text": "Jarret's pictures, continued (frames 16 on in the order they lie)."
  },
  {
   "address": 61440,
   "type": "line",
   "text": "Continued from pictures_jarret_2 ($EDC1): its bytes from $F000."
  },
  {
   "address": 61655,
   "type": "line",
   "text": "Jarret's masks, five shared by his frames ($F0D7, $F137, $F198, $F1E0, $F222)."
  },
  {
   "address": 62058,
   "type": "line",
   "text": "For types $14 to $17, drawn in two pieces ($A725), four bytes for each frame: the first piece's frame, then the step across and down to the second and its frame."
  },
  {
   "address": 62074,
   "type": "line",
   "text": "Types $14 to $17's (class 6)'s sprite frames, 4 of six bytes each ($A493): the width (3 for 16 pixels, 4 for 24), the rows, and the addresses of the picture and its mask."
  },
  {
   "address": 62098,
   "type": "line",
   "text": "The pictures of types $14 to $17."
  },
  {
   "address": 62466,
   "type": "line",
   "text": "The masks of types $14 to $17 ($F402, $F46E, $F4DD)."
  },
  {
   "address": 62775,
   "type": "line",
   "text": "Dirk's (class 2)'s sprite frames, 28 of six bytes each ($A493): the width (3 for 16 pixels, 4 for 24), the rows, and the addresses of the picture and its mask. Frame 26 takes the shared mask at $FB3C as its picture and $FE18, the start of type $2D's frame list, as its mask."
  },
  {
   "address": 62943,
   "type": "line",
   "text": "Dirk's pictures, two or three bytes a row by the frame's width, from the top; the masks of frames 18 and 24 at $F6FC."
  },
  {
   "address": 63822,
   "type": "line",
   "text": "Dirk's pictures, continued."
  },
  {
   "address": 64316,
   "type": "line",
   "text": "The mask most of Dirk's frames share, 64 bytes; then the pictures of his frames 27, 22 and 23."
  },
  {
   "address": 64582,
   "type": "line",
   "text": "136 bytes between Dirk's pictures that none of bank 1's frame lists names."
  },
  {
   "address": 64718,
   "type": "line",
   "text": "The pictures of Dirk's frames 20 and 21, then masks ($FD47, $FD86, $FDCF)."
  },
  {
   "address": 65048,
   "type": "line",
   "text": "Type $2D's (class 11)'s sprite frames, 7 of six bytes each ($A493): the width (3 for 16 pixels, 4 for 24), the rows, and the addresses of the picture and its mask. Frames 0 to 4 have the mask built at $8521."
  },
  {
   "address": 65090,
   "type": "line",
   "text": "The pictures of type $2D, then its two masks ($FF75, $FFBD). The mask at $FFBD is 69 bytes by its frame's size and would run past $FFFF."
  }
 ]
}