{
 "schema": 1,
 "platform": "c64",
 "game": "shadowfire",
 "build": "Beyond cassette, 1985 (Ultimate Tape Archive Shadowfire.tap, SHA-1 30554555c373cf3d59939377f138ddf9cbc0a721)",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    3592,
    4071,
    "screen RAM"
   ],
   [
    4088,
    4095,
    "screen RAM"
   ],
   [
    1024,
    2047,
    "runtime: the text screen, never shown (the VIC shows the bitmap at $2000 with its colours at $0C00); the start fills it with spaces"
   ],
   [
    2048,
    2074,
    "not the game's: the machine's power-on pattern; the tape puts only the stub at $081B-$082D in this page"
   ],
   [
    2094,
    2303,
    "not the game's: the power-on pattern after the loader's stub"
   ],
   [
    3592,
    4071,
    "runtime: colour matrix rows 13-24, coloured by clear_panels and each screen's icons"
   ],
   [
    4088,
    4095,
    "runtime: the sprite pointers, set at the restart"
   ],
   [
    8632,
    8711,
    "runtime: the view window's bitmap, row 1 columns 15-24, drawn by draw_view_map"
   ],
   [
    8952,
    9031,
    "runtime: the view window's bitmap, row 2 columns 15-24, drawn by draw_view_map"
   ],
   [
    9056,
    9135,
    "runtime: the portrait window's bitmap, row 2 columns 28-37, drawn by the portrait routines"
   ],
   [
    9272,
    9351,
    "runtime: the view window's bitmap, row 3 columns 15-24, drawn by draw_view_map"
   ],
   [
    9376,
    9455,
    "runtime: the portrait window's bitmap, row 3 columns 28-37, drawn by the portrait routines"
   ],
   [
    9592,
    9671,
    "runtime: the view window's bitmap, row 4 columns 15-24, drawn by draw_view_map"
   ],
   [
    9696,
    9775,
    "runtime: the portrait window's bitmap, row 4 columns 28-37, drawn by the portrait routines"
   ],
   [
    9912,
    9991,
    "runtime: the view window's bitmap, row 5 columns 15-24, drawn by draw_view_map"
   ],
   [
    10016,
    10095,
    "runtime: the portrait window's bitmap, row 5 columns 28-37, drawn by the portrait routines"
   ],
   [
    10232,
    10311,
    "runtime: the view window's bitmap, row 6 columns 15-24, drawn by draw_view_map"
   ],
   [
    10336,
    10415,
    "runtime: the portrait window's bitmap, row 6 columns 28-37, drawn by the portrait routines"
   ],
   [
    10488,
    10527,
    "runtime: the clock's window, bitmap row 7 columns 7-11, cleared by the start and drawn by print_clock and the rolling clock"
   ],
   [
    10552,
    10631,
    "runtime: the view window's bitmap, row 7 columns 15-24, drawn by draw_view_map"
   ],
   [
    10656,
    10735,
    "runtime: the portrait window's bitmap, row 7 columns 28-37, drawn by the portrait routines"
   ],
   [
    10872,
    10951,
    "runtime: the view window's bitmap, row 8 columns 15-24, drawn by draw_view_map"
   ],
   [
    10976,
    11055,
    "runtime: the portrait window's bitmap, row 8 columns 28-37, drawn by the portrait routines"
   ],
   [
    11080,
    11175,
    "runtime: the message ticker's strip, bitmap row 9 columns 1-12, scrolled by ticker_shift"
   ],
   [
    11192,
    11271,
    "runtime: the view window's bitmap, row 9 columns 15-24, drawn by draw_view_map"
   ],
   [
    11296,
    11375,
    "runtime: the portrait window's bitmap, row 9 columns 28-37, drawn by the portrait routines"
   ],
   [
    11512,
    11591,
    "runtime: the view window's bitmap, row 10 columns 15-24, drawn by draw_view_map"
   ],
   [
    12352,
    16191,
    "runtime: bitmap rows 13-24, zero as loaded, drawn by each screen"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 2074,
   "type": "Undefined"
  },
  {
   "start": 2075,
   "end": 2093,
   "type": "Code"
  },
  {
   "start": 2094,
   "end": 2303,
   "type": "Undefined"
  },
  {
   "start": 2304,
   "end": 5631,
   "type": "Byte"
  },
  {
   "start": 5632,
   "end": 5637,
   "type": "Undefined"
  },
  {
   "start": 5638,
   "end": 5658,
   "type": "Code"
  },
  {
   "start": 5659,
   "end": 5663,
   "type": "Undefined"
  },
  {
   "start": 5664,
   "end": 5816,
   "type": "Code"
  },
  {
   "start": 5817,
   "end": 5928,
   "type": "Word"
  },
  {
   "start": 5929,
   "end": 6243,
   "type": "Code"
  },
  {
   "start": 6244,
   "end": 6451,
   "type": "Byte"
  },
  {
   "start": 6452,
   "end": 6575,
   "type": "Code"
  },
  {
   "start": 6576,
   "end": 7007,
   "type": "Byte"
  },
  {
   "start": 7008,
   "end": 7072,
   "type": "Code"
  },
  {
   "start": 7073,
   "end": 7360,
   "type": "Byte"
  },
  {
   "start": 7361,
   "end": 7465,
   "type": "Code"
  },
  {
   "start": 7466,
   "end": 7657,
   "type": "Byte"
  },
  {
   "start": 7658,
   "end": 7685,
   "type": "Code"
  },
  {
   "start": 7686,
   "end": 7925,
   "type": "Byte"
  },
  {
   "start": 7926,
   "end": 8013,
   "type": "Code"
  },
  {
   "start": 8014,
   "end": 8031,
   "type": "Undefined"
  },
  {
   "start": 8032,
   "end": 8122,
   "type": "Code"
  },
  {
   "start": 8123,
   "end": 8191,
   "type": "Undefined"
  },
  {
   "start": 8192,
   "end": 16383,
   "type": "Byte"
  },
  {
   "start": 16384,
   "end": 16982,
   "type": "Code"
  },
  {
   "start": 16983,
   "end": 16983,
   "type": "Undefined"
  },
  {
   "start": 16984,
   "end": 17009,
   "type": "Code"
  },
  {
   "start": 17010,
   "end": 17011,
   "type": "Address"
  },
  {
   "start": 17012,
   "end": 17054,
   "type": "Code"
  },
  {
   "start": 17055,
   "end": 17090,
   "type": "Byte"
  },
  {
   "start": 17091,
   "end": 17092,
   "type": "Address"
  },
  {
   "start": 17093,
   "end": 17093,
   "type": "Byte"
  },
  {
   "start": 17094,
   "end": 17101,
   "type": "Address"
  },
  {
   "start": 17102,
   "end": 17105,
   "type": "Byte"
  },
  {
   "start": 17106,
   "end": 17111,
   "type": "Address"
  },
  {
   "start": 17112,
   "end": 17112,
   "type": "Byte"
  },
  {
   "start": 17113,
   "end": 17875,
   "type": "Code"
  },
  {
   "start": 17876,
   "end": 17889,
   "type": "Byte"
  },
  {
   "start": 17890,
   "end": 18211,
   "type": "Code"
  },
  {
   "start": 18212,
   "end": 18218,
   "type": "Byte"
  },
  {
   "start": 18219,
   "end": 18927,
   "type": "Code"
  },
  {
   "start": 18928,
   "end": 18976,
   "type": "Byte"
  },
  {
   "start": 18977,
   "end": 19008,
   "type": "Address"
  },
  {
   "start": 19009,
   "end": 19042,
   "type": "Byte"
  },
  {
   "start": 19043,
   "end": 21556,
   "type": "Code"
  },
  {
   "start": 21557,
   "end": 21631,
   "type": "Byte"
  },
  {
   "start": 21632,
   "end": 21637,
   "type": "Address"
  },
  {
   "start": 21638,
   "end": 21656,
   "type": "Byte"
  },
  {
   "start": 21657,
   "end": 21658,
   "type": "Address"
  },
  {
   "start": 21659,
   "end": 26280,
   "type": "Code"
  },
  {
   "start": 26281,
   "end": 26327,
   "type": "Undefined"
  },
  {
   "start": 26328,
   "end": 26583,
   "type": "Byte"
  },
  {
   "start": 26584,
   "end": 26931,
   "type": "Undefined"
  },
  {
   "start": 26932,
   "end": 27747,
   "type": "Code"
  },
  {
   "start": 27748,
   "end": 27901,
   "type": "Undefined"
  },
  {
   "start": 27902,
   "end": 28101,
   "type": "Address"
  },
  {
   "start": 28102,
   "end": 28106,
   "type": "Undefined"
  },
  {
   "start": 28107,
   "end": 29310,
   "type": "Code"
  },
  {
   "start": 29311,
   "end": 29313,
   "type": "Undefined"
  },
  {
   "start": 29314,
   "end": 30208,
   "type": "Code"
  },
  {
   "start": 30209,
   "end": 30210,
   "type": "Undefined"
  },
  {
   "start": 30211,
   "end": 30875,
   "type": "Code"
  },
  {
   "start": 30876,
   "end": 30893,
   "type": "Address"
  },
  {
   "start": 30894,
   "end": 32289,
   "type": "Byte"
  },
  {
   "start": 32290,
   "end": 32291,
   "type": "Address"
  },
  {
   "start": 32292,
   "end": 32514,
   "type": "Byte"
  },
  {
   "start": 32515,
   "end": 32516,
   "type": "Address"
  },
  {
   "start": 32517,
   "end": 32553,
   "type": "Byte"
  },
  {
   "start": 32554,
   "end": 32555,
   "type": "Address"
  },
  {
   "start": 32556,
   "end": 32586,
   "type": "Byte"
  },
  {
   "start": 32587,
   "end": 32588,
   "type": "Address"
  },
  {
   "start": 32589,
   "end": 32610,
   "type": "Byte"
  },
  {
   "start": 32611,
   "end": 32612,
   "type": "Address"
  },
  {
   "start": 32613,
   "end": 32634,
   "type": "Byte"
  },
  {
   "start": 32635,
   "end": 32638,
   "type": "Address"
  },
  {
   "start": 32639,
   "end": 32676,
   "type": "Byte"
  },
  {
   "start": 32677,
   "end": 32680,
   "type": "Address"
  },
  {
   "start": 32681,
   "end": 32757,
   "type": "Byte"
  },
  {
   "start": 32758,
   "end": 32759,
   "type": "Address"
  },
  {
   "start": 32760,
   "end": 32779,
   "type": "Byte"
  },
  {
   "start": 32780,
   "end": 32781,
   "type": "Address"
  },
  {
   "start": 32782,
   "end": 32793,
   "type": "Byte"
  },
  {
   "start": 32794,
   "end": 32795,
   "type": "Address"
  },
  {
   "start": 32796,
   "end": 32806,
   "type": "Byte"
  },
  {
   "start": 32807,
   "end": 32808,
   "type": "Address"
  },
  {
   "start": 32809,
   "end": 32846,
   "type": "Byte"
  },
  {
   "start": 32847,
   "end": 32848,
   "type": "Address"
  },
  {
   "start": 32849,
   "end": 32868,
   "type": "Byte"
  },
  {
   "start": 32869,
   "end": 32870,
   "type": "Address"
  },
  {
   "start": 32871,
   "end": 32893,
   "type": "Byte"
  },
  {
   "start": 32894,
   "end": 32895,
   "type": "Address"
  },
  {
   "start": 32896,
   "end": 32917,
   "type": "Byte"
  },
  {
   "start": 32918,
   "end": 32919,
   "type": "Address"
  },
  {
   "start": 32920,
   "end": 32945,
   "type": "Byte"
  },
  {
   "start": 32946,
   "end": 32947,
   "type": "Address"
  },
  {
   "start": 32948,
   "end": 32969,
   "type": "Byte"
  },
  {
   "start": 32970,
   "end": 32971,
   "type": "Address"
  },
  {
   "start": 32972,
   "end": 33007,
   "type": "Byte"
  },
  {
   "start": 33008,
   "end": 33009,
   "type": "Address"
  },
  {
   "start": 33010,
   "end": 33036,
   "type": "Byte"
  },
  {
   "start": 33037,
   "end": 33038,
   "type": "Address"
  },
  {
   "start": 33039,
   "end": 33064,
   "type": "Byte"
  },
  {
   "start": 33065,
   "end": 33066,
   "type": "Address"
  },
  {
   "start": 33067,
   "end": 33080,
   "type": "Byte"
  },
  {
   "start": 33081,
   "end": 33082,
   "type": "Address"
  },
  {
   "start": 33083,
   "end": 33095,
   "type": "Byte"
  },
  {
   "start": 33096,
   "end": 33097,
   "type": "Address"
  },
  {
   "start": 33098,
   "end": 33122,
   "type": "Byte"
  },
  {
   "start": 33123,
   "end": 33124,
   "type": "Address"
  },
  {
   "start": 33125,
   "end": 33142,
   "type": "Byte"
  },
  {
   "start": 33143,
   "end": 33144,
   "type": "Address"
  },
  {
   "start": 33145,
   "end": 33156,
   "type": "Byte"
  },
  {
   "start": 33157,
   "end": 33158,
   "type": "Address"
  },
  {
   "start": 33159,
   "end": 33166,
   "type": "Byte"
  },
  {
   "start": 33167,
   "end": 33186,
   "type": "Address"
  },
  {
   "start": 33187,
   "end": 33200,
   "type": "Byte"
  },
  {
   "start": 33201,
   "end": 33342,
   "type": "Address"
  },
  {
   "start": 33343,
   "end": 33990,
   "type": "Byte"
  },
  {
   "start": 33991,
   "end": 33994,
   "type": "Address"
  },
  {
   "start": 33995,
   "end": 36042,
   "type": "Byte"
  },
  {
   "start": 36043,
   "end": 36044,
   "type": "Address"
  },
  {
   "start": 36045,
   "end": 36103,
   "type": "Byte"
  },
  {
   "start": 36104,
   "end": 36105,
   "type": "Address"
  },
  {
   "start": 36106,
   "end": 36145,
   "type": "Byte"
  },
  {
   "start": 36146,
   "end": 36147,
   "type": "Address"
  },
  {
   "start": 36148,
   "end": 36225,
   "type": "Byte"
  },
  {
   "start": 36226,
   "end": 36227,
   "type": "Address"
  },
  {
   "start": 36228,
   "end": 45539,
   "type": "Byte"
  },
  {
   "start": 45540,
   "end": 45867,
   "type": "Address"
  },
  {
   "start": 45868,
   "end": 48575,
   "type": "Byte"
  },
  {
   "start": 48576,
   "end": 48635,
   "type": "Address"
  },
  {
   "start": 48636,
   "end": 48979,
   "type": "Byte"
  },
  {
   "start": 48980,
   "end": 48993,
   "type": "Address"
  },
  {
   "start": 48994,
   "end": 49043,
   "type": "Byte"
  },
  {
   "start": 49044,
   "end": 49045,
   "type": "Address"
  },
  {
   "start": 49046,
   "end": 49797,
   "type": "Byte"
  },
  {
   "start": 49798,
   "end": 49799,
   "type": "Address"
  },
  {
   "start": 49800,
   "end": 51719,
   "type": "Byte"
  },
  {
   "start": 51720,
   "end": 51725,
   "type": "Address"
  },
  {
   "start": 51726,
   "end": 52625,
   "type": "Byte"
  },
  {
   "start": 52626,
   "end": 52631,
   "type": "Address"
  },
  {
   "start": 52632,
   "end": 53247,
   "type": "Byte"
  },
  {
   "start": 53248,
   "end": 57343,
   "type": "Undefined"
  },
  {
   "start": 57344,
   "end": 65325,
   "type": "Byte"
  },
  {
   "start": 65326,
   "end": 65327,
   "type": "Address"
  },
  {
   "start": 65328,
   "end": 65523,
   "type": "Byte"
  },
  {
   "start": 65524,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "cpu_ddr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1,
   "name": "cpu_port",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 15,
   "name": "basic_flag",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 43,
   "name": "bitmap_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 44,
   "name": "bitmap_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45,
   "name": "matrix_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46,
   "name": "matrix_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47,
   "name": "cram_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 48,
   "name": "cram_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49,
   "name": "picture_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 50,
   "name": "picture_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51,
   "name": "copy_dest",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52,
   "name": "copy_dest_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 55,
   "name": "icon_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 56,
   "name": "icon_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 57,
   "name": "ticker_src",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 58,
   "name": "ticker_src_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59,
   "name": "glyph_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 60,
   "name": "glyph_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61,
   "name": "text_ptr",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 62,
   "name": "text_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63,
   "name": "place_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 64,
   "name": "place_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 65,
   "name": "char_record",
   "type": "ZeroPagePointer",
   "kind": "user"
  },
  {
   "address": 66,
   "name": "char_record_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 69,
   "name": "irq_record",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 70,
   "name": "irq_record_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 71,
   "name": "patrol_ptr",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 72,
   "name": "patrol_ptr_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 73,
   "name": "view_record",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 74,
   "name": "view_record_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 115,
   "name": "text_index",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 116,
   "name": "count_a",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 118,
   "name": "cursor_row",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 119,
   "name": "cursor_col",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 120,
   "name": "fire_flag",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 121,
   "name": "work_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 122,
   "name": "mult_a",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 123,
   "name": "draw_byte",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 124,
   "name": "count_b",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 125,
   "name": "draw_row",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 157,
   "name": "kernal_msg",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 247,
   "name": "work16",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 248,
   "name": "work16_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 249,
   "name": "product",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 250,
   "name": "product_hi",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 251,
   "name": "iris_x_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 252,
   "name": "iris_x",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 253,
   "name": "iris_y_lo",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 254,
   "name": "iris_y",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 768,
   "name": "page3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 788,
   "name": "irq_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 789,
   "name": "irq_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 792,
   "name": "nmi_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 793,
   "name": "nmi_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 806,
   "name": "chrout_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 807,
   "name": "chrout_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 1024,
   "name": "f_0400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1280,
   "name": "f_0500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1536,
   "name": "f_0600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 1792,
   "name": "f_0700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 2075,
   "name": "loader_stub",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2304,
   "name": "canvas_top_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2368,
   "name": "canvas_top_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2432,
   "name": "canvas_bottom_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2496,
   "name": "canvas_bottom_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2560,
   "name": "cursor_sprite",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2624,
   "name": "unused_sprite_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2688,
   "name": "map_icon_0a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2728,
   "name": "pic_tape",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2787,
   "name": "map_icon_kryxix",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2827,
   "name": "fig_0a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2905,
   "name": "map_icon_grey",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2945,
   "name": "map_icon_purple",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2985,
   "name": "map_icon_blue",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3025,
   "name": "basic_leftover",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3072,
   "name": "panel_matrix",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3592,
   "name": "lower_matrix",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3816,
   "name": "f_0EE8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 3992,
   "name": "f_0F98",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4072,
   "name": "matrix_leftover",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4088,
   "name": "sprite_pointers",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 4089,
   "name": "a_0FF9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4090,
   "name": "a_0FFA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4091,
   "name": "a_0FFB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4092,
   "name": "a_0FFC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 4096,
   "name": "colour_source",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4352,
   "name": "colour_source_p1",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4608,
   "name": "colour_source_p2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4864,
   "name": "colour_source_p3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5096,
   "name": "colour_leftover",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5120,
   "name": "font_base",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5122,
   "name": "font",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5380,
   "name": "row_addr_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5405,
   "name": "row_addr_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5430,
   "name": "pic_disc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5489,
   "name": "demo_script",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5490,
   "name": "demo_script_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5597,
   "name": "demo_key_point",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5599,
   "name": "demo_leftover",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5632,
   "name": "tune_request",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5633,
   "name": "sfx_once",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5634,
   "name": "sfx_loop",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5635,
   "name": "pulse_width",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5636,
   "name": "tempo_game",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5637,
   "name": "tempo_title",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5638,
   "name": "play_music",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5641,
   "name": "hook_kernal_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5659,
   "name": "frame_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5660,
   "name": "step_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5661,
   "name": "tempo_now",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5662,
   "name": "length_now",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5663,
   "name": "tune_now",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5664,
   "name": "next_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5683,
   "name": "r_1633",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5684,
   "name": "note_voice2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5687,
   "name": "b_1637",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5737,
   "name": "note_voice3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5740,
   "name": "b_166C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5767,
   "name": "note_voice1",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5769,
   "name": "b_1689",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5797,
   "name": "next_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 5816,
   "name": "r_16B8",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 5817,
   "name": "note_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5929,
   "name": "kernal_irq_music",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5935,
   "name": "music_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 5975,
   "name": "b_1757",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 5990,
   "name": "tune_branch",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 5994,
   "name": "b_176A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6021,
   "name": "arpeggio_voice2",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6036,
   "name": "b_1794",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6049,
   "name": "add_if_not_zero",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6058,
   "name": "b_17AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6084,
   "name": "sweep_voice3",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 6101,
   "name": "tune_1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6179,
   "name": "b_1823",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6190,
   "name": "b_182E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6198,
   "name": "b_1836",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6211,
   "name": "b_1843",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6225,
   "name": "b_1851",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6243,
   "name": "r_1863",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6244,
   "name": "tune_1_notes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6452,
   "name": "tune_2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6473,
   "name": "b_1949",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 6525,
   "name": "r_197D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6526,
   "name": "tune_3",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 6575,
   "name": "r_19AF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 6576,
   "name": "title_notes_a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6720,
   "name": "title_notes_b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6864,
   "name": "title_notes_c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7008,
   "name": "tune_4",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7072,
   "name": "r_1BA0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7073,
   "name": "title_notes_d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7169,
   "name": "title_notes_e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7265,
   "name": "title_notes_f",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7361,
   "name": "tune_5",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7410,
   "name": "r_1CF2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7411,
   "name": "tune_6",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7465,
   "name": "r_1D29",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7466,
   "name": "title_notes_g",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7562,
   "name": "title_notes_h",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7658,
   "name": "tune_7",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7686,
   "name": "title_notes_i",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7806,
   "name": "title_notes_j",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7926,
   "name": "tune_8",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 7986,
   "name": "r_1F32",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 7987,
   "name": "tune_9",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 8032,
   "name": "r_1F60",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8033,
   "name": "tune_9_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8043,
   "name": "voice1_effect",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 8085,
   "name": "b_1F95",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8093,
   "name": "b_1F9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8107,
   "name": "b_1FAB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 8122,
   "name": "r_1FBA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 8123,
   "name": "sweep_pitch",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8124,
   "name": "sweep_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8125,
   "name": "voice2_freq",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8126,
   "name": "a_1FBE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8127,
   "name": "voice2_octave",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8128,
   "name": "a_1FC0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 8129,
   "name": "arpeggio_mask",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8130,
   "name": "voice3_pulse",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8131,
   "name": "add_temp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8132,
   "name": "effect_pending",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8133,
   "name": "voice23_wave",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 8192,
   "name": "panel_row_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8512,
   "name": "panel_row_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8832,
   "name": "panel_row_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9055,
   "name": "panel_row_2_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9056,
   "name": "f_2360",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9136,
   "name": "panel_row_2_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9152,
   "name": "panel_row_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9375,
   "name": "panel_row_3_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9376,
   "name": "f_24A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9456,
   "name": "panel_row_3_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9472,
   "name": "panel_row_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9695,
   "name": "panel_row_4_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 9696,
   "name": "f_25E0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9776,
   "name": "panel_row_4_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9792,
   "name": "panel_row_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10015,
   "name": "panel_row_5_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10016,
   "name": "f_2720",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10096,
   "name": "panel_row_5_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10112,
   "name": "panel_row_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10335,
   "name": "panel_row_6_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10336,
   "name": "f_2860",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10416,
   "name": "panel_row_6_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10432,
   "name": "panel_row_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10487,
   "name": "f_28F7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10488,
   "name": "f_28F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10489,
   "name": "f_28F9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10496,
   "name": "f_2900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10497,
   "name": "f_2901",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10512,
   "name": "f_2910",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10513,
   "name": "f_2911",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10520,
   "name": "f_2918",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10521,
   "name": "f_2919",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10528,
   "name": "panel_row_7_after_clock",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10655,
   "name": "panel_row_7_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10656,
   "name": "f_29A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 10736,
   "name": "panel_row_7_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10752,
   "name": "panel_row_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10975,
   "name": "panel_row_8_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10976,
   "name": "f_2AE0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11056,
   "name": "panel_row_8_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11072,
   "name": "panel_row_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11080,
   "name": "f_2B48",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11176,
   "name": "panel_row_9_after_ticker",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11295,
   "name": "panel_row_9_c27",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11296,
   "name": "f_2C20",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 11376,
   "name": "panel_row_9_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11392,
   "name": "panel_row_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11712,
   "name": "panel_row_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12032,
   "name": "panel_row_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12352,
   "name": "lower_bitmap",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16192,
   "name": "bitmap_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16384,
   "name": "start",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16391,
   "name": "b_4007",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16399,
   "name": "b_400F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16446,
   "name": "b_403E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16448,
   "name": "b_4040",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16468,
   "name": "b_4054",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16521,
   "name": "b_4089",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16531,
   "name": "b_4093",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16541,
   "name": "b_409D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16547,
   "name": "restart",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16808,
   "name": "b_41A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16845,
   "name": "b_41CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16905,
   "name": "b_4209",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16910,
   "name": "b_420E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 16984,
   "name": "b_4258",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17009,
   "name": "rts_vector",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17010,
   "name": "rts_vector_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17011,
   "name": "a_4273",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17012,
   "name": "set_tune",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17020,
   "name": "r_427C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 17021,
   "name": "nmi",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17053,
   "name": "b_429D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17089,
   "name": "a_42C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17091,
   "name": "welcome_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17092,
   "name": "a_42C4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17094,
   "name": "input_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17095,
   "name": "f_42C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 17102,
   "name": "fkey_codes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17106,
   "name": "nmi_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17107,
   "name": "a_42D3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17108,
   "name": "demo_handler_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17109,
   "name": "a_42D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17110,
   "name": "restart_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17111,
   "name": "a_42D7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17112,
   "name": "demo_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17113,
   "name": "draw_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17140,
   "name": "j_42F4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17147,
   "name": "b_42FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17164,
   "name": "b_430C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17188,
   "name": "b_4324",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17205,
   "name": "b_4335",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17220,
   "name": "b_4344",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17240,
   "name": "b_4358",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17247,
   "name": "b_435F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17276,
   "name": "b_437C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17285,
   "name": "j_4385",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17322,
   "name": "b_43AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17331,
   "name": "r_43B3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 17332,
   "name": "frame_icon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17418,
   "name": "b_440A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17422,
   "name": "b_440E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17425,
   "name": "b_4411",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17446,
   "name": "j_4426",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17467,
   "name": "b_443B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17478,
   "name": "b_4446",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17497,
   "name": "r_4459",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 17498,
   "name": "b_445A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17516,
   "name": "draw_box",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17597,
   "name": "s_44BD",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 17599,
   "name": "b_44BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17611,
   "name": "s_44CB",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 17614,
   "name": "b_44CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17630,
   "name": "s_44DE",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 17633,
   "name": "b_44E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17635,
   "name": "b_44E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17651,
   "name": "s_44F3",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 17662,
   "name": "r_44FE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 17663,
   "name": "s_44FF",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 17677,
   "name": "plot_canvas",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17705,
   "name": "b_4529",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17720,
   "name": "b_4538",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17758,
   "name": "b_455E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17765,
   "name": "j_4565",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17770,
   "name": "plot_pixel",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17810,
   "name": "b_4592",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17818,
   "name": "b_459A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17847,
   "name": "b_45B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17856,
   "name": "b_45C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17867,
   "name": "j_45CB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17876,
   "name": "pixel_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 17877,
   "name": "a_45D5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 17878,
   "name": "colour_bits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17882,
   "name": "pixel_keep",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17886,
   "name": "pixel_mask",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 17890,
   "name": "iris_open",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17928,
   "name": "b_4608",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17960,
   "name": "b_4628",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 17967,
   "name": "j_462F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 17983,
   "name": "iris_finer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17990,
   "name": "iris_close",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18020,
   "name": "b_4664",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18052,
   "name": "b_4684",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18059,
   "name": "j_468B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 18065,
   "name": "iris_coarser",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18072,
   "name": "iris_circle",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18088,
   "name": "b_46A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18157,
   "name": "s_46ED",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 18177,
   "name": "b_4701",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18192,
   "name": "r_4710",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 18193,
   "name": "s_4711",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 18211,
   "name": "r_4723",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 18212,
   "name": "iris_radius",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18213,
   "name": "a_4725",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18214,
   "name": "a_4726",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18215,
   "name": "a_4727",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18216,
   "name": "iris_steps",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18217,
   "name": "iris_shift",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18219,
   "name": "print_text",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18241,
   "name": "j_4741",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 18284,
   "name": "b_476C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18305,
   "name": "b_4781",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18310,
   "name": "b_4786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18334,
   "name": "b_479E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18342,
   "name": "b_47A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18365,
   "name": "clear_panels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18367,
   "name": "b_47BF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18369,
   "name": "b_47C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18383,
   "name": "b_47CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18398,
   "name": "b_47DE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18414,
   "name": "b_47EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18435,
   "name": "cell_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18453,
   "name": "b_4815",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18462,
   "name": "b_481E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18495,
   "name": "r_483F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 18496,
   "name": "multiply",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18510,
   "name": "b_484E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18527,
   "name": "b_485F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18539,
   "name": "swap_y",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18547,
   "name": "glyph_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18561,
   "name": "b_4881",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18569,
   "name": "b_4889",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18582,
   "name": "r_4896",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 18583,
   "name": "colour_status_icon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18596,
   "name": "b_48A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18600,
   "name": "a_48A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18603,
   "name": "a_48AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18609,
   "name": "show_portrait",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18619,
   "name": "b_48BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18621,
   "name": "b_48BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18660,
   "name": "b_48E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18743,
   "name": "b_4937",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18769,
   "name": "b_4951",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18776,
   "name": "b_4958",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18826,
   "name": "b_498A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18851,
   "name": "roll_monitor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18857,
   "name": "b_49A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18862,
   "name": "b_49AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 18928,
   "name": "a_49F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18929,
   "name": "pic_width",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18930,
   "name": "pic_height",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18932,
   "name": "bit_set",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18940,
   "name": "bit_clear",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18948,
   "name": "status_icon_cells",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18953,
   "name": "f_4A09",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 18954,
   "name": "status_icon_offsets",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18958,
   "name": "iris_erase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18959,
   "name": "char_code",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18960,
   "name": "a_4A10",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18963,
   "name": "a_4A13",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18965,
   "name": "a_4A15",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18966,
   "name": "a_4A16",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18967,
   "name": "a_4A17",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18968,
   "name": "a_4A18",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18970,
   "name": "text_depth",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18971,
   "name": "a_4A1B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18972,
   "name": "a_4A1C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18973,
   "name": "a_4A1D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18974,
   "name": "colours_only",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18975,
   "name": "font_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 18976,
   "name": "a_4A20",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 18977,
   "name": "portraits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18978,
   "name": "f_4A22",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19008,
   "name": "f_4A40",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 19009,
   "name": "box_corners",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19041,
   "name": "a_4A61",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19042,
   "name": "panel_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19043,
   "name": "draw_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19049,
   "name": "b_4A69",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19106,
   "name": "j_4AA2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 19123,
   "name": "b_4AB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19129,
   "name": "b_4AB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19159,
   "name": "shake_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 19175,
   "name": "b_4AE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19211,
   "name": "b_4B0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19253,
   "name": "leave_to_start_menu",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19280,
   "name": "b_4B50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19297,
   "name": "b_4B61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19300,
   "name": "icon_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 19308,
   "name": "icon_poll",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19342,
   "name": "b_4B8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19362,
   "name": "b_4BA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19365,
   "name": "b_4BA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19378,
   "name": "b_4BB2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19396,
   "name": "icon_test",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19407,
   "name": "b_4BCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19421,
   "name": "b_4BDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19437,
   "name": "b_4BED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19475,
   "name": "b_4C13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19486,
   "name": "b_4C1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19494,
   "name": "b_4C26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19505,
   "name": "b_4C31",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19524,
   "name": "b_4C44",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19542,
   "name": "b_4C56",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19547,
   "name": "j_4C5B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 19604,
   "name": "b_4C94",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19663,
   "name": "b_4CCF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19677,
   "name": "a_4CDD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19678,
   "name": "a_4CDE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 19679,
   "name": "j_4CDF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 19687,
   "name": "b_4CE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19690,
   "name": "screen_ptr",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19706,
   "name": "list_objects_here",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 19748,
   "name": "b_4D24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19771,
   "name": "b_4D3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19784,
   "name": "b_4D48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19797,
   "name": "b_4D55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19808,
   "name": "b_4D60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19859,
   "name": "b_4D93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19904,
   "name": "b_4DC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19910,
   "name": "b_4DC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19928,
   "name": "b_4DD8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19934,
   "name": "b_4DDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19979,
   "name": "b_4E0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 19999,
   "name": "j_4E1F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20010,
   "name": "b_4E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20069,
   "name": "b_4E65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20087,
   "name": "list_objects_carried",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 20134,
   "name": "b_4EA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20146,
   "name": "j_4EB2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20170,
   "name": "b_4ECA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20192,
   "name": "b_4EE0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20205,
   "name": "b_4EED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20218,
   "name": "b_4EFA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20229,
   "name": "b_4F05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20280,
   "name": "b_4F38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20286,
   "name": "b_4F3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20313,
   "name": "b_4F59",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20319,
   "name": "b_4F5F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20364,
   "name": "b_4F8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20386,
   "name": "j_4FA2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20397,
   "name": "b_4FAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20458,
   "name": "b_4FEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20476,
   "name": "list_people_here",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "f_5000",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20508,
   "name": "b_501C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20527,
   "name": "b_502F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20538,
   "name": "b_503A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20550,
   "name": "b_5046",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20614,
   "name": "j_5086",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20625,
   "name": "b_5091",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20686,
   "name": "b_50CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20704,
   "name": "list_team_beacon1",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 20753,
   "name": "b_5111",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20766,
   "name": "b_511E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20779,
   "name": "b_512B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20790,
   "name": "b_5136",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20802,
   "name": "b_5142",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20870,
   "name": "j_5186",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20881,
   "name": "j_5191",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 20948,
   "name": "b_51D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 20966,
   "name": "list_team_beacon2",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 21015,
   "name": "b_5217",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21028,
   "name": "b_5224",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21041,
   "name": "b_5231",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21052,
   "name": "b_523C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21064,
   "name": "b_5248",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21132,
   "name": "j_528C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21143,
   "name": "j_5297",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21210,
   "name": "b_52DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21228,
   "name": "clear_object_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21240,
   "name": "b_52F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21264,
   "name": "b_5310",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21277,
   "name": "set_transporter_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21289,
   "name": "b_5329",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21318,
   "name": "list_route",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21330,
   "name": "b_5352",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21362,
   "name": "b_5372",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21375,
   "name": "j_537F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21405,
   "name": "next_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21416,
   "name": "b_53A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21436,
   "name": "b_53BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21438,
   "name": "next_entity",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21449,
   "name": "b_53C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21461,
   "name": "b_53D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21463,
   "name": "next_icon",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21474,
   "name": "b_53E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21491,
   "name": "b_53F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21493,
   "name": "cursor_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21514,
   "name": "b_540A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21515,
   "name": "b_540B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21527,
   "name": "reset_door_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21531,
   "name": "b_541B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21548,
   "name": "b_542C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21557,
   "name": "screen_no",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21558,
   "name": "character",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21559,
   "name": "location",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21560,
   "name": "chosen_slot",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21561,
   "name": "cancel_choice",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21562,
   "name": "stay_in_choice",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21563,
   "name": "a_543B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21564,
   "name": "a_543C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21566,
   "name": "icon_group",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21567,
   "name": "frame_mode",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21568,
   "name": "objects_here_skip",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21569,
   "name": "objects_carried_skip",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21570,
   "name": "people_skip",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21571,
   "name": "a_5443",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21572,
   "name": "team_here_skip",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21573,
   "name": "team_beacon2_skip",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21574,
   "name": "scan_location",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21575,
   "name": "entity_no",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21576,
   "name": "icon_slot",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21577,
   "name": "carried_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21583,
   "name": "here_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21591,
   "name": "people_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21599,
   "name": "group_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21605,
   "name": "transporter_icons",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21632,
   "name": "more_arrow_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21633,
   "name": "a_5481",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21634,
   "name": "here_icons_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21635,
   "name": "a_5483",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21636,
   "name": "carried_icons_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21637,
   "name": "a_5485",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21638,
   "name": "weight_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21640,
   "name": "beacon_carried",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21641,
   "name": "shake_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21657,
   "name": "irq_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21658,
   "name": "a_549A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21659,
   "name": "irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21743,
   "name": "a_54EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21744,
   "name": "a_54F0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 21745,
   "name": "input_lightpen",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21767,
   "name": "b_5507",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21775,
   "name": "b_550F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21795,
   "name": "b_5523",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21798,
   "name": "input_paddles",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21828,
   "name": "b_5544",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21836,
   "name": "j_554C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21851,
   "name": "b_555B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21854,
   "name": "clamp_cursor_y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21863,
   "name": "b_5567",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21869,
   "name": "j_556D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 21872,
   "name": "input_demo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21899,
   "name": "b_558B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21911,
   "name": "b_5597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21927,
   "name": "b_55A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21943,
   "name": "b_55B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21946,
   "name": "b_55BA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21962,
   "name": "b_55CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 21968,
   "name": "b_55D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22009,
   "name": "j_55F9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22030,
   "name": "j_560E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22049,
   "name": "b_5621",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22057,
   "name": "b_5629",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22060,
   "name": "input_joystick",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22064,
   "name": "input_keyboard",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22066,
   "name": "b_5632",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22093,
   "name": "b_564D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22113,
   "name": "b_5661",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22146,
   "name": "b_5682",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22165,
   "name": "j_5695",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22186,
   "name": "b_56AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22206,
   "name": "b_56BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22239,
   "name": "b_56DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22258,
   "name": "j_56F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22277,
   "name": "b_5705",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22285,
   "name": "b_570D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22297,
   "name": "b_5719",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22300,
   "name": "clamp_cursor",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 22314,
   "name": "b_572A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22323,
   "name": "b_5733",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22344,
   "name": "b_5748",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22356,
   "name": "irq_game",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 22369,
   "name": "b_5761",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22377,
   "name": "b_5769",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22422,
   "name": "b_5796",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22435,
   "name": "b_57A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22448,
   "name": "b_57B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22462,
   "name": "b_57BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22476,
   "name": "b_57CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22491,
   "name": "b_57DB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22497,
   "name": "j_57E1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22510,
   "name": "b_57EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22560,
   "name": "b_5820",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22577,
   "name": "b_5831",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22579,
   "name": "j_5833",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22585,
   "name": "b_5839",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22593,
   "name": "j_5841",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22609,
   "name": "b_5851",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22620,
   "name": "b_585C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22645,
   "name": "j_5875",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 22668,
   "name": "b_588C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22675,
   "name": "b_5893",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22678,
   "name": "b_5896",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22723,
   "name": "b_58C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22731,
   "name": "b_58CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22767,
   "name": "b_58EF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22776,
   "name": "b_58F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22817,
   "name": "b_5921",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22864,
   "name": "b_5950",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22913,
   "name": "b_5981",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 22958,
   "name": "b_59AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23021,
   "name": "b_59ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23048,
   "name": "j_5A08",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23096,
   "name": "b_5A38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23105,
   "name": "b_5A41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23138,
   "name": "b_5A62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23144,
   "name": "b_5A68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23182,
   "name": "b_5A8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23203,
   "name": "b_5AA3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23206,
   "name": "b_5AA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23220,
   "name": "b_5AB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23238,
   "name": "b_5AC6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23258,
   "name": "b_5ADA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23260,
   "name": "b_5ADC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23267,
   "name": "b_5AE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23314,
   "name": "b_5B12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23316,
   "name": "b_5B14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23408,
   "name": "j_5B70",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23421,
   "name": "b_5B7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23442,
   "name": "trigger_call",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 23443,
   "name": "a_5B93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 23447,
   "name": "b_5B97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23450,
   "name": "b_5B9A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23523,
   "name": "b_5BE3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23526,
   "name": "j_5BE6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23548,
   "name": "b_5BFC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23551,
   "name": "b_5BFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23610,
   "name": "b_5C3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23676,
   "name": "j_5C7C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23681,
   "name": "b_5C81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23687,
   "name": "j_5C87",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23698,
   "name": "b_5C92",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23709,
   "name": "j_5C9D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23718,
   "name": "b_5CA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23726,
   "name": "b_5CAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23765,
   "name": "b_5CD5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23832,
   "name": "b_5D18",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23861,
   "name": "b_5D35",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23864,
   "name": "b_5D38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23866,
   "name": "j_5D3A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23870,
   "name": "j_5D3E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23881,
   "name": "b_5D49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23892,
   "name": "b_5D54",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23914,
   "name": "b_5D6A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23937,
   "name": "b_5D81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23948,
   "name": "b_5D8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23950,
   "name": "b_5D8E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23952,
   "name": "b_5D90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23955,
   "name": "j_5D93",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 23965,
   "name": "b_5D9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 23976,
   "name": "b_5DA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24001,
   "name": "b_5DC1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24037,
   "name": "b_5DE5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24048,
   "name": "b_5DF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24062,
   "name": "b_5DFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24124,
   "name": "b_5E3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24135,
   "name": "b_5E47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24176,
   "name": "b_5E70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24223,
   "name": "b_5E9F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24234,
   "name": "b_5EAA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24272,
   "name": "next_patrol",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 24338,
   "name": "b_5F12",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24370,
   "name": "b_5F32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24434,
   "name": "b_5F72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24441,
   "name": "j_5F79",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 24449,
   "name": "b_5F81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24460,
   "name": "b_5F8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24487,
   "name": "b_5FA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24514,
   "name": "b_5FC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24541,
   "name": "b_5FDD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24559,
   "name": "j_5FEF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 24569,
   "name": "b_5FF9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24597,
   "name": "b_6015",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24601,
   "name": "b_6019",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24615,
   "name": "b_6027",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24628,
   "name": "b_6034",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24667,
   "name": "b_605B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24689,
   "name": "j_6071",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 24725,
   "name": "b_6095",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24746,
   "name": "b_60AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24752,
   "name": "b_60B0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24760,
   "name": "b_60B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24763,
   "name": "b_60BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24765,
   "name": "b_60BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24773,
   "name": "b_60C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24783,
   "name": "j_60CF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 24788,
   "name": "b_60D4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24791,
   "name": "b_60D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24821,
   "name": "b_60F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24842,
   "name": "b_610A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24862,
   "name": "b_611E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24874,
   "name": "b_612A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24881,
   "name": "b_6131",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24892,
   "name": "b_613C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24925,
   "name": "b_615D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24953,
   "name": "b_6179",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24972,
   "name": "j_618C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 24983,
   "name": "j_6197",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25000,
   "name": "b_61A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25010,
   "name": "b_61B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25038,
   "name": "b_61CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25041,
   "name": "b_61D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25083,
   "name": "b_61FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25102,
   "name": "b_620E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25113,
   "name": "b_6219",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25131,
   "name": "b_622B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25134,
   "name": "b_622E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25139,
   "name": "b_6233",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25160,
   "name": "b_6248",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25175,
   "name": "b_6257",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25178,
   "name": "j_625A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25196,
   "name": "b_626C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25214,
   "name": "b_627E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25232,
   "name": "b_6290",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25289,
   "name": "b_62C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25301,
   "name": "b_62D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25374,
   "name": "j_631E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25387,
   "name": "b_632B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25411,
   "name": "b_6343",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25435,
   "name": "b_635B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25459,
   "name": "b_6373",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25470,
   "name": "irq_exit",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 25559,
   "name": "ticker_shift",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25564,
   "name": "b_63DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25577,
   "name": "b_63E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25604,
   "name": "unused_in_window",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25619,
   "name": "b_6413",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25627,
   "name": "j_641B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25641,
   "name": "b_6429",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25657,
   "name": "b_6439",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25665,
   "name": "j_6441",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25666,
   "name": "r_6442",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 25667,
   "name": "unused_place_icon",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25698,
   "name": "b_6462",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25701,
   "name": "r_6465",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 25702,
   "name": "icon_offset",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25704,
   "name": "j_6468",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25713,
   "name": "b_6471",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25715,
   "name": "clock_wraps",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 25723,
   "name": "queue_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25748,
   "name": "r_6494",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 25749,
   "name": "bar_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25793,
   "name": "b_64C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25805,
   "name": "kill_entity",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25856,
   "name": "b_6500",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25869,
   "name": "j_650D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 25906,
   "name": "b_6532",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25922,
   "name": "b_6542",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25944,
   "name": "b_6558",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25962,
   "name": "b_656A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 25979,
   "name": "b_657B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26007,
   "name": "b_6597",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26018,
   "name": "b_65A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26040,
   "name": "team_member_at",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26055,
   "name": "b_65C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26072,
   "name": "b_65D8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26083,
   "name": "b_65E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26088,
   "name": "b_65E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26090,
   "name": "list_reachable",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26096,
   "name": "b_65F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26123,
   "name": "b_660B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26133,
   "name": "j_6615",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 26141,
   "name": "b_661D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26145,
   "name": "b_6621",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26166,
   "name": "b_6636",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26194,
   "name": "b_6652",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26206,
   "name": "b_665E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26209,
   "name": "r_6661",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 26210,
   "name": "trigger_zoff",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26219,
   "name": "trigger_squad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26223,
   "name": "b_666F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26237,
   "name": "trigger_8a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26248,
   "name": "trigger_8b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26259,
   "name": "trigger_9a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26270,
   "name": "trigger_9b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26282,
   "name": "bar_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26287,
   "name": "f_66AF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26292,
   "name": "bar_rows_lower",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26297,
   "name": "f_66B9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26301,
   "name": "f_66BD",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26302,
   "name": "bar_length",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26305,
   "name": "a_66C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26306,
   "name": "a_66C2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 26307,
   "name": "bar_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26312,
   "name": "bar_pixel",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26313,
   "name": "bar_colour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26314,
   "name": "bar_strength",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26315,
   "name": "bar_agility",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26316,
   "name": "bars_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26317,
   "name": "bars_weight_only",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26319,
   "name": "ticker_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26320,
   "name": "ticker_shifts",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26321,
   "name": "irq_entity",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26322,
   "name": "ticker_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26323,
   "name": "temp",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26324,
   "name": "temp2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26325,
   "name": "patrol_pos",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26326,
   "name": "patrol_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26327,
   "name": "patrol_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26328,
   "name": "ticker_buffer",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26584,
   "name": "queue_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26600,
   "name": "queue_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26616,
   "name": "ticker_depth",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26617,
   "name": "queue_read",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26618,
   "name": "queue_write",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26619,
   "name": "ticker_glyph",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26627,
   "name": "lock_second",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26628,
   "name": "roll_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26636,
   "name": "f_680C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26644,
   "name": "f_6814",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26652,
   "name": "f_681C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26661,
   "name": "input_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26663,
   "name": "f_6827",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26665,
   "name": "f_6829",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26667,
   "name": "f_682B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26669,
   "name": "f_682D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26671,
   "name": "chain_dir",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26672,
   "name": "view_locations",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26689,
   "name": "view_last",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26706,
   "name": "view_columns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26723,
   "name": "view_rows",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26740,
   "name": "view_dx",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26757,
   "name": "view_dy",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26774,
   "name": "view_next",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26792,
   "name": "ticker_light",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26800,
   "name": "not_running",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26801,
   "name": "roll_digits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26802,
   "name": "team_changed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26803,
   "name": "zoff_escaped",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26804,
   "name": "targets_in_range",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26805,
   "name": "targets_at_dest",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26806,
   "name": "attack_dest",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26807,
   "name": "status_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26839,
   "name": "damage",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26847,
   "name": "weapon_byte",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26848,
   "name": "combat_bits",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26849,
   "name": "speed_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26850,
   "name": "speed_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26851,
   "name": "held_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26852,
   "name": "held_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26853,
   "name": "cursor_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26854,
   "name": "countdown_marks",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26858,
   "name": "trigger_locations",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26864,
   "name": "trigger_routines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26865,
   "name": "f_68F1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 26876,
   "name": "strength_frac",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 26926,
   "name": "demo_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26927,
   "name": "demo_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26928,
   "name": "demo_wait",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26929,
   "name": "demo_index",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26930,
   "name": "leave_request",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26931,
   "name": "demo_fire",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26932,
   "name": "build_directions",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26949,
   "name": "b_6945",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 26959,
   "name": "j_694F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 26987,
   "name": "j_696B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27050,
   "name": "b_69AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27111,
   "name": "b_69E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27112,
   "name": "b_69E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27122,
   "name": "b_69F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27124,
   "name": "b_69F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27173,
   "name": "j_6A25",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27182,
   "name": "b_6A2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27215,
   "name": "r_6A4F",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 27216,
   "name": "draw_view_map",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 27261,
   "name": "b_6A7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27301,
   "name": "b_6AA5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27305,
   "name": "b_6AA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27321,
   "name": "b_6AB9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27324,
   "name": "j_6ABC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27333,
   "name": "b_6AC5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27336,
   "name": "b_6AC8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27383,
   "name": "b_6AF7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27387,
   "name": "j_6AFB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27391,
   "name": "b_6AFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27393,
   "name": "b_6B01",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27471,
   "name": "j_6B4F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27477,
   "name": "b_6B55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27506,
   "name": "b_6B72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27554,
   "name": "b_6BA2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27572,
   "name": "b_6BB4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27575,
   "name": "find_view_locations",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 27577,
   "name": "j_6BB9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27603,
   "name": "b_6BD3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27623,
   "name": "b_6BE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27633,
   "name": "j_6BF1",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27659,
   "name": "b_6C0B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27674,
   "name": "j_6C1A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27680,
   "name": "r_6C20",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 27681,
   "name": "next_cell_row",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 27705,
   "name": "r_6C39",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 27706,
   "name": "shift_f7",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 27710,
   "name": "b_6C3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27718,
   "name": "j_6C46",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 27722,
   "name": "b_6C4A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 27734,
   "name": "unused_nibbles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27748,
   "name": "map_chars",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27758,
   "name": "f_6C6E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27768,
   "name": "map_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27769,
   "name": "f_6C79",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27778,
   "name": "f_6C82",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27779,
   "name": "f_6C83",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27788,
   "name": "iris_open_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27789,
   "name": "exits_mask",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27791,
   "name": "exit_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27792,
   "name": "map_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27793,
   "name": "map_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27794,
   "name": "window_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27795,
   "name": "window_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27796,
   "name": "a_6C94",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27797,
   "name": "a_6C95",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27798,
   "name": "a_6C96",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27799,
   "name": "a_6C97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27802,
   "name": "a_6C9A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 27803,
   "name": "search_location",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27804,
   "name": "search_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27805,
   "name": "search_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 27806,
   "name": "arrows_open2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27807,
   "name": "f_6C9F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27822,
   "name": "arrows_none2",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27823,
   "name": "f_6CAF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27838,
   "name": "arrows_open5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27839,
   "name": "f_6CBF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27854,
   "name": "arrows_none5",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27855,
   "name": "f_6CCF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 27870,
   "name": "move_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27886,
   "name": "scan_handlers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27902,
   "name": "entity_pictures",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27903,
   "name": "entity_pictures_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27904,
   "name": "figure_pictures",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 27905,
   "name": "figure_pictures_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 28102,
   "name": "no_map",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28103,
   "name": "offmap_pictures",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28104,
   "name": "a_6DC8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28105,
   "name": "a_6DC9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28106,
   "name": "a_6DCA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28107,
   "name": "team_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28137,
   "name": "j_6DE9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28148,
   "name": "movement_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28181,
   "name": "b_6E15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28199,
   "name": "b_6E27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28203,
   "name": "b_6E2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28215,
   "name": "b_6E37",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28223,
   "name": "b_6E3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28231,
   "name": "move_exit_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28261,
   "name": "move_by_exit",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28308,
   "name": "b_6E94",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28321,
   "name": "b_6EA1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28364,
   "name": "b_6ECC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28367,
   "name": "choose_syylk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28394,
   "name": "choose_character",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28427,
   "name": "status_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28442,
   "name": "b_6F1A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28479,
   "name": "b_6F3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28482,
   "name": "objects_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28508,
   "name": "b_6F5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28514,
   "name": "j_6F62",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28546,
   "name": "b_6F82",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28549,
   "name": "object_slot_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28585,
   "name": "object_slot_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28633,
   "name": "pick_up",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28686,
   "name": "b_700E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28689,
   "name": "drop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28755,
   "name": "b_7053",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28758,
   "name": "ready",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28771,
   "name": "activate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28811,
   "name": "activate_call",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28812,
   "name": "a_708C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 28816,
   "name": "page_here",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28843,
   "name": "b_70AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28846,
   "name": "b_70AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28858,
   "name": "j_70BA",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28872,
   "name": "b_70C8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28875,
   "name": "page_carried",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28902,
   "name": "b_70E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28905,
   "name": "b_70E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28917,
   "name": "j_70F5",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28931,
   "name": "b_7103",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28934,
   "name": "quit_choice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28950,
   "name": "b_7116",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28953,
   "name": "battle_screen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28980,
   "name": "j_7134",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28988,
   "name": "j_713C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28996,
   "name": "scan_exit_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29026,
   "name": "b_7162",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29030,
   "name": "location_scan",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29043,
   "name": "b_7173",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29049,
   "name": "scan_here",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29061,
   "name": "person_slot_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29109,
   "name": "page_people",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29135,
   "name": "b_71CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29138,
   "name": "attack",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29156,
   "name": "b_71E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29163,
   "name": "j_71EB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29180,
   "name": "b_71FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29210,
   "name": "retreat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29239,
   "name": "b_7237",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29255,
   "name": "defend",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29264,
   "name": "enemy_at",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29276,
   "name": "b_725C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29293,
   "name": "b_726D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29304,
   "name": "b_7278",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29309,
   "name": "b_727D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29314,
   "name": "activate_time_delay",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29340,
   "name": "activate_master_key",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29347,
   "name": "activate_key_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29361,
   "name": "open_door",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29368,
   "name": "b_72B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29377,
   "name": "b_72C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29399,
   "name": "b_72D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29409,
   "name": "b_72E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29415,
   "name": "b_72E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29424,
   "name": "j_72F0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29441,
   "name": "activate_tool_kit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29449,
   "name": "b_7309",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29458,
   "name": "b_7312",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29473,
   "name": "b_7321",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29479,
   "name": "b_7327",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29489,
   "name": "b_7331",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29499,
   "name": "count_exits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29507,
   "name": "b_7343",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29511,
   "name": "b_7347",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29517,
   "name": "activate_beacon",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29542,
   "name": "b_7366",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29547,
   "name": "b_736B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29576,
   "name": "b_7388",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29635,
   "name": "b_73C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29656,
   "name": "j_73D8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29699,
   "name": "b_7403",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29702,
   "name": "activate_ballistic",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29736,
   "name": "b_7428",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29741,
   "name": "j_742D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29750,
   "name": "b_7436",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29804,
   "name": "activate_destruct_card",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29820,
   "name": "b_747C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29823,
   "name": "activate_destruct_unit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29842,
   "name": "b_7492",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29869,
   "name": "activate_object_4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29875,
   "name": "activate_weapon",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29881,
   "name": "start_menu",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29886,
   "name": "j_74BE",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29906,
   "name": "b_74D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29938,
   "name": "b_74F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29951,
   "name": "b_74FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29956,
   "name": "j_7504",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29961,
   "name": "b_7509",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29967,
   "name": "b_750F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29979,
   "name": "j_751B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 29990,
   "name": "old_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30010,
   "name": "b_753A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30066,
   "name": "b_7572",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30079,
   "name": "j_757F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30087,
   "name": "b_7587",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30094,
   "name": "new_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30120,
   "name": "b_75A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30122,
   "name": "b_75AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30152,
   "name": "reset_team_icons",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30159,
   "name": "b_75CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30193,
   "name": "b_75F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30209,
   "name": "no_action_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 30210,
   "name": "a_7602",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 30211,
   "name": "no_action",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30212,
   "name": "print_clock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30255,
   "name": "load_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30280,
   "name": "save_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30302,
   "name": "name_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 30319,
   "name": "b_766F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30335,
   "name": "j_767F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30343,
   "name": "choose_tape",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30363,
   "name": "choose_disk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30383,
   "name": "letter_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30487,
   "name": "add_letter",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30506,
   "name": "b_772A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30509,
   "name": "rub_out",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30523,
   "name": "b_773B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30526,
   "name": "start_file",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30542,
   "name": "b_774E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30544,
   "name": "b_7750",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30552,
   "name": "b_7758",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30583,
   "name": "b_7777",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30589,
   "name": "b_777D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30593,
   "name": "b_7781",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30598,
   "name": "b_7786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30626,
   "name": "b_77A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30646,
   "name": "j_77B6",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30661,
   "name": "b_77C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30700,
   "name": "b_77EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30727,
   "name": "j_7807",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 30748,
   "name": "b_781C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30762,
   "name": "b_782A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30852,
   "name": "music_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30862,
   "name": "b_788E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30865,
   "name": "music_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30873,
   "name": "b_7899",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 30876,
   "name": "screen_table",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30877,
   "name": "f_789D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 30894,
   "name": "icons_team",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30905,
   "name": "icon_team_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30916,
   "name": "icon_team_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30927,
   "name": "icon_team_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30938,
   "name": "icon_team_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30949,
   "name": "icon_team_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30960,
   "name": "icon_team_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30971,
   "name": "icon_team_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30982,
   "name": "icon_team_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30993,
   "name": "end_team",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30997,
   "name": "icons_status",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31008,
   "name": "icon_status_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31019,
   "name": "icon_status_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31030,
   "name": "icon_status_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31041,
   "name": "icon_status_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31052,
   "name": "icon_status_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31063,
   "name": "icon_status_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31074,
   "name": "icon_status_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31085,
   "name": "boxes_status",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31093,
   "name": "icons_movement",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 31104,
   "name": "icon_movement_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31115,
   "name": "icon_movement_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31126,
   "name": "icon_movement_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31137,
   "name": "icon_movement_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31148,
   "name": "icon_movement_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31159,
   "name": "icon_movement_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31170,
   "name": "icon_movement_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31181,
   "name": "icon_movement_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31192,
   "name": "icon_movement_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31203,
   "name": "icon_movement_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31208,
   "name": "a_79E8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31209,
   "name": "a_79E9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31214,
   "name": "boxes_movement",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31230,
   "name": "icons_screen3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31241,
   "name": "end_screen3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31245,
   "name": "icons_objects",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31256,
   "name": "icon_objects_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31267,
   "name": "icon_objects_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31278,
   "name": "icon_objects_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31289,
   "name": "icon_objects_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31300,
   "name": "icon_objects_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31301,
   "name": "a_7A45",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31311,
   "name": "icon_objects_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31322,
   "name": "icon_objects_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31333,
   "name": "icon_objects_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31344,
   "name": "icon_objects_9",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31355,
   "name": "icon_objects_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31366,
   "name": "icon_objects_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31377,
   "name": "icon_objects_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31388,
   "name": "icon_objects_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31399,
   "name": "icon_objects_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31410,
   "name": "icon_objects_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31421,
   "name": "icon_objects_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31432,
   "name": "icon_objects_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31443,
   "name": "icon_objects_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31454,
   "name": "icon_objects_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31465,
   "name": "icon_objects_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31476,
   "name": "icon_objects_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31487,
   "name": "icon_objects_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31498,
   "name": "icon_objects_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31509,
   "name": "boxes_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31525,
   "name": "icons_battle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31536,
   "name": "icon_battle_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31547,
   "name": "icon_battle_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31558,
   "name": "icon_battle_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31569,
   "name": "icon_battle_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31580,
   "name": "icon_battle_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31591,
   "name": "icon_battle_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31602,
   "name": "icon_battle_7",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 31613,
   "name": "icon_battle_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31624,
   "name": "icon_battle_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31635,
   "name": "icon_battle_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31646,
   "name": "icon_battle_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31657,
   "name": "icon_battle_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31668,
   "name": "icon_battle_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31679,
   "name": "icon_battle_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31690,
   "name": "icon_battle_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31701,
   "name": "icon_battle_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31703,
   "name": "f_7BD7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31704,
   "name": "f_7BD8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31705,
   "name": "f_7BD9",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31712,
   "name": "icon_battle_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31723,
   "name": "icon_battle_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31734,
   "name": "icon_battle_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31745,
   "name": "icon_battle_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31756,
   "name": "icon_battle_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31767,
   "name": "icon_battle_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31778,
   "name": "icon_battle_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31789,
   "name": "icon_battle_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31800,
   "name": "boxes_battle",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31816,
   "name": "icons_control_menu",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31827,
   "name": "icon_control_menu_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31838,
   "name": "icon_control_menu_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31849,
   "name": "icon_control_menu_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31860,
   "name": "end_control_menu",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31864,
   "name": "icons_start_menu",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31868,
   "name": "a_7C7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 31875,
   "name": "icon_start_menu_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31886,
   "name": "icon_start_menu_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31897,
   "name": "icon_start_menu_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31908,
   "name": "icon_start_menu_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31919,
   "name": "end_start_menu",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31923,
   "name": "icons_file_name",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 31934,
   "name": "icon_file_name_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31945,
   "name": "icon_file_name_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31956,
   "name": "icon_file_name_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31967,
   "name": "icon_file_name_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31978,
   "name": "icon_file_name_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31989,
   "name": "icon_file_name_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32000,
   "name": "icon_file_name_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32011,
   "name": "icon_file_name_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32022,
   "name": "icon_file_name_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32033,
   "name": "icon_file_name_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32044,
   "name": "icon_file_name_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32055,
   "name": "icon_file_name_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32066,
   "name": "icon_file_name_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32077,
   "name": "icon_file_name_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32088,
   "name": "icon_file_name_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32099,
   "name": "icon_file_name_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32110,
   "name": "icon_file_name_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32121,
   "name": "icon_file_name_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32132,
   "name": "icon_file_name_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32143,
   "name": "icon_file_name_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32154,
   "name": "icon_file_name_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32165,
   "name": "icon_file_name_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32176,
   "name": "icon_file_name_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32187,
   "name": "icon_file_name_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32198,
   "name": "icon_file_name_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32209,
   "name": "icon_file_name_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32220,
   "name": "icon_file_name_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32231,
   "name": "icon_file_name_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32242,
   "name": "icon_file_name_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32253,
   "name": "icon_file_name_30",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32254,
   "name": "a_7DFE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32264,
   "name": "icon_file_name_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32268,
   "name": "a_7E0C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32275,
   "name": "icon_file_name_32",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32276,
   "name": "a_7E14",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32286,
   "name": "end_file_name",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32290,
   "name": "people_icons_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32291,
   "name": "a_7E23",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32292,
   "name": "msg_welcome",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32319,
   "name": "txt_old_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32328,
   "name": "txt_new_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32337,
   "name": "txt_load_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32347,
   "name": "txt_save_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32357,
   "name": "txt_f1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32379,
   "name": "txt_f3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32409,
   "name": "txt_f5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32438,
   "name": "txt_f7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32461,
   "name": "txt_zero",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32463,
   "name": "msg_cannot_run",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32515,
   "name": "ptr_cannot_run",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32516,
   "name": "a_7F04",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32517,
   "name": "msg_no_enemy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32554,
   "name": "ptr_no_enemy",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32555,
   "name": "a_7F2B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32556,
   "name": "msg_no_move",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32587,
   "name": "ptr_no_move",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32588,
   "name": "a_7F4C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32589,
   "name": "msg_door_opened",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32611,
   "name": "ptr_door_opened",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32612,
   "name": "a_7F64",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32613,
   "name": "msg_eliminated",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32635,
   "name": "ptr_eliminated",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32636,
   "name": "a_7F7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32637,
   "name": "clock_text_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32638,
   "name": "a_7F7E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32639,
   "name": "clock_text",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32640,
   "name": "a_7F80",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32642,
   "name": "a_7F82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32643,
   "name": "a_7F83",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32645,
   "name": "txt_enter_name",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32666,
   "name": "file_name",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32677,
   "name": "file_name_ptr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32679,
   "name": "petscii_name_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32680,
   "name": "a_7FA8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32681,
   "name": "petscii_name",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 32689,
   "name": "txt_alphabet",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32743,
   "name": "msg_not_found",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32758,
   "name": "ptr_not_found",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32759,
   "name": "a_7FF7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32760,
   "name": "msg_no_device",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "msg_no_device_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32780,
   "name": "ptr_no_device",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32781,
   "name": "a_800D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32782,
   "name": "tape_prompt",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32784,
   "name": "msg_rescued",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32794,
   "name": "ptr_rescued",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32795,
   "name": "a_801B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32796,
   "name": "msg_executed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32807,
   "name": "ptr_executed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32808,
   "name": "a_8028",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32809,
   "name": "msg_war",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32847,
   "name": "ptr_war",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32848,
   "name": "a_8050",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32849,
   "name": "msg_zoff_captured",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32869,
   "name": "ptr_zoff_captured",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32870,
   "name": "a_8066",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32871,
   "name": "msg_destroyed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32894,
   "name": "ptr_destroyed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32895,
   "name": "a_807F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32896,
   "name": "msg_ship_captured",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32918,
   "name": "ptr_ship_captured",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32920,
   "name": "msg_located",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32946,
   "name": "ptr_located",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32947,
   "name": "a_80B3",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32948,
   "name": "msg_follows",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32970,
   "name": "ptr_follows",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32971,
   "name": "a_80CB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 32972,
   "name": "msg_self_destruct",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33008,
   "name": "ptr_self_destruct",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33009,
   "name": "a_80F1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33010,
   "name": "msg_minutes",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33037,
   "name": "ptr_minutes",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33038,
   "name": "a_810E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33039,
   "name": "msg_one_minute",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33065,
   "name": "ptr_one_minute",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33066,
   "name": "a_812A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33067,
   "name": "msg_escaped",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33081,
   "name": "ptr_escaped",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33082,
   "name": "a_813A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33083,
   "name": "txt_bar_ends",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33087,
   "name": "msg_io_error",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33096,
   "name": "ptr_io_error",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33097,
   "name": "a_8149",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33098,
   "name": "msg_demo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33123,
   "name": "ptr_demo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33124,
   "name": "a_8164",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33125,
   "name": "msg_no_door",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33143,
   "name": "ptr_no_door",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33144,
   "name": "a_8178",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33145,
   "name": "msgs_under_attack",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33157,
   "name": "ptr_under_attack",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33158,
   "name": "a_8186",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33161,
   "name": "scan_on",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33162,
   "name": "person_chosen",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33163,
   "name": "load_flag",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33164,
   "name": "device",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33165,
   "name": "any_door",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33166,
   "name": "name_length",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33167,
   "name": "team_pictures",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33179,
   "name": "load_heading_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33180,
   "name": "a_819C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33181,
   "name": "save_heading_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33182,
   "name": "a_819E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33183,
   "name": "tape_pic_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33184,
   "name": "a_81A0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33185,
   "name": "disc_pic_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33186,
   "name": "a_81A2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33187,
   "name": "dest_slots",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33190,
   "name": "dest_locations",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33193,
   "name": "step_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33194,
   "name": "zoff_cells_upper",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33197,
   "name": "zoff_cells_lower",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33201,
   "name": "words",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33202,
   "name": "words_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33343,
   "name": "word_texts",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33349,
   "name": "a_8245",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33358,
   "name": "a_824E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33365,
   "name": "a_8255",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33371,
   "name": "a_825B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33377,
   "name": "a_8261",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33384,
   "name": "a_8268",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33393,
   "name": "a_8271",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33404,
   "name": "a_827C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33414,
   "name": "a_8286",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33420,
   "name": "a_828C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33427,
   "name": "a_8293",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33435,
   "name": "a_829B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33444,
   "name": "a_82A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33449,
   "name": "a_82A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33455,
   "name": "a_82AF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33465,
   "name": "a_82B9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33472,
   "name": "a_82C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33480,
   "name": "a_82C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33490,
   "name": "a_82D2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33500,
   "name": "a_82DC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33505,
   "name": "a_82E1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33514,
   "name": "a_82EA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33522,
   "name": "a_82F2",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33527,
   "name": "a_82F7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33532,
   "name": "a_82FC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33541,
   "name": "a_8305",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33548,
   "name": "a_830C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33558,
   "name": "a_8316",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33564,
   "name": "a_831C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33577,
   "name": "a_8329",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33583,
   "name": "a_832F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33592,
   "name": "a_8338",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33601,
   "name": "a_8341",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33606,
   "name": "a_8346",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33614,
   "name": "a_834E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33621,
   "name": "a_8355",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33626,
   "name": "a_835A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33636,
   "name": "a_8364",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33642,
   "name": "a_836A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33652,
   "name": "a_8374",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33665,
   "name": "a_8381",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33674,
   "name": "a_838A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33682,
   "name": "a_8392",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33692,
   "name": "a_839C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33700,
   "name": "a_83A4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33709,
   "name": "a_83AD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33722,
   "name": "a_83BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33729,
   "name": "a_83C1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33740,
   "name": "a_83CC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33750,
   "name": "a_83D6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33772,
   "name": "a_83EC",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33785,
   "name": "a_83F9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33803,
   "name": "a_840B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33820,
   "name": "a_841C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33835,
   "name": "a_842B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33836,
   "name": "a_842C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33857,
   "name": "a_8441",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33865,
   "name": "a_8449",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33896,
   "name": "a_8468",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33899,
   "name": "a_846B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33913,
   "name": "a_8479",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33925,
   "name": "a_8485",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33933,
   "name": "a_848D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33960,
   "name": "a_84A8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33963,
   "name": "a_84AB",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33966,
   "name": "a_84AE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33969,
   "name": "a_84B1",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33972,
   "name": "a_84B4",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33975,
   "name": "a_84B7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33978,
   "name": "a_84BA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33991,
   "name": "tile_map_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33992,
   "name": "a_84C8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33993,
   "name": "colour_map_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33994,
   "name": "a_84CA",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 33995,
   "name": "map_row_00",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34027,
   "name": "map_row_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34059,
   "name": "map_row_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34091,
   "name": "map_row_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34123,
   "name": "map_row_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34155,
   "name": "map_row_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34187,
   "name": "map_row_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34219,
   "name": "map_row_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34251,
   "name": "map_row_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34253,
   "name": "a_85CD",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34254,
   "name": "a_85CE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34255,
   "name": "a_85CF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34283,
   "name": "map_row_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34285,
   "name": "a_85ED",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34286,
   "name": "a_85EE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34287,
   "name": "a_85EF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34315,
   "name": "map_row_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34347,
   "name": "map_row_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34379,
   "name": "map_row_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34411,
   "name": "map_row_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34443,
   "name": "map_row_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34475,
   "name": "map_row_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34507,
   "name": "map_row_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34539,
   "name": "map_row_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34571,
   "name": "map_row_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34603,
   "name": "map_row_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34635,
   "name": "map_row_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34667,
   "name": "map_row_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34699,
   "name": "map_row_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34731,
   "name": "map_row_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34763,
   "name": "map_row_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34795,
   "name": "map_row_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34827,
   "name": "map_row_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34859,
   "name": "map_row_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34891,
   "name": "map_row_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34923,
   "name": "map_row_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34955,
   "name": "map_row_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34987,
   "name": "map_row_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35019,
   "name": "colour_map",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36043,
   "name": "blank_pic_ptr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36045,
   "name": "pic_blank_3x2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36104,
   "name": "a_8D08",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36105,
   "name": "a_8D09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36106,
   "name": "pic_blank_map",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36146,
   "name": "a_8D32",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36147,
   "name": "a_8D33",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36148,
   "name": "pic_blank_slot",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36226,
   "name": "a_8D82",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36227,
   "name": "a_8D83",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36228,
   "name": "pic_dead_droid",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36382,
   "name": "team_sevrina",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36612,
   "name": "team_zark",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36842,
   "name": "team_torik",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37072,
   "name": "team_manto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37226,
   "name": "team_maul",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37380,
   "name": "pic_heart",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37439,
   "name": "pic_runner",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37498,
   "name": "arrow2_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37652,
   "name": "arrow2_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37806,
   "name": "arrow2_down_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37960,
   "name": "arrow2_up_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38114,
   "name": "arrow2_down_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38268,
   "name": "pic_arm",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38327,
   "name": "arrow2_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38481,
   "name": "arrow2_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38635,
   "name": "arrow2_up_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38789,
   "name": "monitor_battle",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38848,
   "name": "monitor_movement",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38907,
   "name": "monitor_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38966,
   "name": "portrait_2_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38968,
   "name": "portrait_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 39608,
   "name": "portrait_2_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 39728,
   "name": "portrait_4_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39730,
   "name": "portrait_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40370,
   "name": "portrait_4_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40490,
   "name": "portrait_3_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40492,
   "name": "portrait_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "portrait_3_at_a000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41132,
   "name": "portrait_3_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41252,
   "name": "map_icon_manto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41292,
   "name": "map_icon_sevrina",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41332,
   "name": "map_icon_maul",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41372,
   "name": "map_icon_zark",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41412,
   "name": "map_icon_syylk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41452,
   "name": "map_icon_torik",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41492,
   "name": "map_icon_zoff",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41532,
   "name": "pic_rings",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41572,
   "name": "map_icon_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41612,
   "name": "map_icon_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41652,
   "name": "map_icon_green",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41692,
   "name": "pic_letter_cell",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41704,
   "name": "pic_object_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41782,
   "name": "pic_key_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41860,
   "name": "unused_rings_copy",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41912,
   "name": "pic_destruct_card",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41990,
   "name": "pic_tool_kit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42068,
   "name": "pic_time_delay",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42146,
   "name": "pic_weapon_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42224,
   "name": "pic_weapon_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42302,
   "name": "pic_weapon_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42380,
   "name": "pic_weapon_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42458,
   "name": "pic_weapon_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42536,
   "name": "pic_weapon_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42614,
   "name": "pic_weapon_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42692,
   "name": "pic_weapon_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42770,
   "name": "pic_weapon_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42848,
   "name": "pic_weapon_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42926,
   "name": "pic_weapon_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43004,
   "name": "pic_weapon_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43082,
   "name": "pic_weapon_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43160,
   "name": "pic_weapon_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43238,
   "name": "pic_weapon_46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43316,
   "name": "pic_weapon_47",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43394,
   "name": "pic_weapon_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43472,
   "name": "pic_weapon_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43550,
   "name": "pic_pick_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43609,
   "name": "pic_drop",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43668,
   "name": "arrow2_none_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43822,
   "name": "arrow2_none_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43976,
   "name": "arrow2_none_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44130,
   "name": "arrow2_none_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44284,
   "name": "arrow2_none_up_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44438,
   "name": "arrow2_none_down_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44592,
   "name": "arrow2_none_up_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44746,
   "name": "arrow2_none_down_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44900,
   "name": "arrow5_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44940,
   "name": "arrow5_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44980,
   "name": "arrow5_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45020,
   "name": "arrow5_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45060,
   "name": "arrow5_up_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45100,
   "name": "arrow5_down_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45140,
   "name": "arrow5_up_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45180,
   "name": "arrow5_down_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45220,
   "name": "arrow5_none_up",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45260,
   "name": "arrow5_none_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45300,
   "name": "arrow5_none_down",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45340,
   "name": "arrow5_none_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45380,
   "name": "arrow5_none_up_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45420,
   "name": "arrow5_none_down_left",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45460,
   "name": "arrow5_none_up_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45500,
   "name": "arrow5_none_down_right",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45540,
   "name": "locations_lo",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45541,
   "name": "locations_lo_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45640,
   "name": "f_B248",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 45641,
   "name": "locations_lo_32_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45796,
   "name": "locations_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45797,
   "name": "locations_hi_hi",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 45868,
   "name": "loc_00",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45879,
   "name": "loc_01",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45896,
   "name": "loc_02",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45925,
   "name": "loc_03",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45936,
   "name": "loc_04",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45947,
   "name": "loc_05",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45964,
   "name": "loc_06",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45981,
   "name": "loc_07",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 45998,
   "name": "loc_08",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46008,
   "name": "loc_09",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46026,
   "name": "loc_0a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46039,
   "name": "loc_0b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46050,
   "name": "loc_0c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46061,
   "name": "loc_0d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46074,
   "name": "loc_0e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46087,
   "name": "loc_0f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46109,
   "name": "loc_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46124,
   "name": "loc_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46139,
   "name": "loc_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46160,
   "name": "loc_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46175,
   "name": "loc_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46186,
   "name": "loc_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46195,
   "name": "loc_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46216,
   "name": "loc_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46228,
   "name": "loc_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46239,
   "name": "loc_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46250,
   "name": "loc_1a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46262,
   "name": "loc_1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46277,
   "name": "loc_1c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46290,
   "name": "loc_1d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46303,
   "name": "loc_1e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46316,
   "name": "loc_1f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46340,
   "name": "loc_20",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46362,
   "name": "loc_21",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46381,
   "name": "loc_22",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46395,
   "name": "loc_23",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46410,
   "name": "loc_24",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46425,
   "name": "loc_25",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46440,
   "name": "loc_26",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46469,
   "name": "loc_27",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46487,
   "name": "loc_28",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46511,
   "name": "loc_29",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46531,
   "name": "loc_2a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46554,
   "name": "loc_2b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46566,
   "name": "loc_2c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46577,
   "name": "loc_2d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46593,
   "name": "loc_2e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46608,
   "name": "loc_2f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46621,
   "name": "loc_30",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46636,
   "name": "loc_31",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46661,
   "name": "loc_32",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46672,
   "name": "loc_33",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46684,
   "name": "loc_34",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46697,
   "name": "loc_35",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46709,
   "name": "loc_36",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46722,
   "name": "loc_37",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46740,
   "name": "loc_38",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46753,
   "name": "loc_39",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46780,
   "name": "loc_3a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46803,
   "name": "loc_3b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46816,
   "name": "loc_3c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46829,
   "name": "loc_3d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46840,
   "name": "loc_3e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46856,
   "name": "loc_3f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46868,
   "name": "loc_40",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46881,
   "name": "loc_41",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46906,
   "name": "loc_42",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46925,
   "name": "loc_43",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46938,
   "name": "loc_44",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46947,
   "name": "loc_45",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46956,
   "name": "loc_46",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46969,
   "name": "loc_47",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46978,
   "name": "loc_48",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 46996,
   "name": "loc_49",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47011,
   "name": "loc_4a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47027,
   "name": "loc_4b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47049,
   "name": "loc_4c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47062,
   "name": "loc_4d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47075,
   "name": "loc_4e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47088,
   "name": "loc_4f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47101,
   "name": "loc_50",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47134,
   "name": "loc_51",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47165,
   "name": "loc_52",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47176,
   "name": "loc_53",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47189,
   "name": "loc_54",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47206,
   "name": "loc_55",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47228,
   "name": "loc_56",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47241,
   "name": "loc_57",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47252,
   "name": "loc_58",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47264,
   "name": "loc_59",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47275,
   "name": "loc_5a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47293,
   "name": "loc_5b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47319,
   "name": "loc_5c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47341,
   "name": "loc_5d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47350,
   "name": "loc_5e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47371,
   "name": "loc_5f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47389,
   "name": "loc_60",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47407,
   "name": "loc_61",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47422,
   "name": "loc_62",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47437,
   "name": "loc_63",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47450,
   "name": "loc_64",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47468,
   "name": "loc_65",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47479,
   "name": "loc_66",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47490,
   "name": "loc_67",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47501,
   "name": "loc_68",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47518,
   "name": "loc_69",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47536,
   "name": "loc_6a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47549,
   "name": "loc_6b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47570,
   "name": "loc_6c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47596,
   "name": "loc_6d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47614,
   "name": "loc_6e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47627,
   "name": "loc_6f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47638,
   "name": "loc_70",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47649,
   "name": "loc_71",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47672,
   "name": "loc_72",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47705,
   "name": "loc_73",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47725,
   "name": "loc_74",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47738,
   "name": "loc_75",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47765,
   "name": "loc_76",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47785,
   "name": "loc_77",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47796,
   "name": "loc_78",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47816,
   "name": "loc_79",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47835,
   "name": "loc_7a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47851,
   "name": "loc_7b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47871,
   "name": "loc_7c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47890,
   "name": "loc_7d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47913,
   "name": "loc_7e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47931,
   "name": "loc_7f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47955,
   "name": "loc_80",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47976,
   "name": "loc_81",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 47997,
   "name": "loc_82",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48015,
   "name": "loc_83",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48035,
   "name": "loc_84",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48053,
   "name": "loc_85",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48071,
   "name": "loc_86",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48086,
   "name": "loc_87",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48103,
   "name": "loc_88",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48125,
   "name": "loc_89",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48136,
   "name": "loc_8a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48161,
   "name": "loc_8b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48179,
   "name": "loc_8c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48206,
   "name": "loc_8d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48222,
   "name": "loc_8e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48244,
   "name": "loc_8f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48259,
   "name": "loc_90",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48279,
   "name": "loc_91",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48296,
   "name": "loc_92",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48308,
   "name": "loc_93",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48321,
   "name": "loc_94",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48334,
   "name": "loc_95",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48353,
   "name": "loc_96",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48364,
   "name": "loc_97",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48384,
   "name": "loc_98",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48398,
   "name": "loc_99",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48421,
   "name": "loc_9a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48432,
   "name": "loc_9b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48443,
   "name": "loc_9c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48452,
   "name": "loc_9d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48465,
   "name": "loc_9e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48489,
   "name": "loc_9f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48506,
   "name": "loc_a0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48514,
   "name": "loc_a1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48528,
   "name": "loc_a2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48553,
   "name": "loc_a3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48576,
   "name": "patrol_scripts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48577,
   "name": "f_BDC1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48636,
   "name": "patrol_00",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48654,
   "name": "patrol_01",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48660,
   "name": "patrol_02",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48676,
   "name": "patrol_03",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48694,
   "name": "patrol_04",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48708,
   "name": "patrol_05",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48722,
   "name": "patrol_06",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48738,
   "name": "patrol_07",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48750,
   "name": "patrol_08",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48770,
   "name": "patrol_09",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48786,
   "name": "patrol_0a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48794,
   "name": "patrol_0b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48814,
   "name": "patrol_0c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48828,
   "name": "patrol_0d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48844,
   "name": "patrol_0e",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48852,
   "name": "patrol_0f",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48858,
   "name": "patrol_10",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48864,
   "name": "patrol_11",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48872,
   "name": "patrol_12",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48880,
   "name": "patrol_13",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48888,
   "name": "patrol_14",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48896,
   "name": "patrol_15",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48930,
   "name": "patrol_16",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48936,
   "name": "patrol_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48940,
   "name": "patrol_18",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48946,
   "name": "patrol_19",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48950,
   "name": "patrol_1a",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48956,
   "name": "patrol_1b",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48960,
   "name": "patrol_1c",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48970,
   "name": "patrol_1d",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 48980,
   "name": "patrol_chains",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 48981,
   "name": "f_BF55",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 48994,
   "name": "chain_0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49016,
   "name": "chain_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49020,
   "name": "chain_2",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49024,
   "name": "chain_3",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49028,
   "name": "chain_4",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49032,
   "name": "chain_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49038,
   "name": "chain_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49044,
   "name": "tile_set_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49045,
   "name": "a_BF95",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49046,
   "name": "tile_set",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "tile_set_c000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49798,
   "name": "map_chars_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 49799,
   "name": "a_C287",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49800,
   "name": "map_charset",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 50824,
   "name": "map_charset_128",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51680,
   "name": "leftover_code",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51712,
   "name": "clock_s_units",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51713,
   "name": "clock_s_tens",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51714,
   "name": "clock_m_units",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51715,
   "name": "clock_m_tens",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51716,
   "name": "clock_up",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51717,
   "name": "mission",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51718,
   "name": "destruct_armed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51719,
   "name": "destruct_count",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51720,
   "name": "entity_table_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51721,
   "name": "a_CA09",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51722,
   "name": "kryxix_ptr",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51724,
   "name": "entity8_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51725,
   "name": "a_CA0D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51726,
   "name": "entity_00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51744,
   "name": "entity_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51762,
   "name": "entity_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51780,
   "name": "entity_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51798,
   "name": "entity_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51800,
   "name": "a_CA58",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51816,
   "name": "entity_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51834,
   "name": "entity_06",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51836,
   "name": "a_CA7C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51852,
   "name": "entity_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51859,
   "name": "a_CA93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51870,
   "name": "entity_08",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51877,
   "name": "a_CAA5",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51878,
   "name": "a_CAA6",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51888,
   "name": "entity_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51895,
   "name": "a_CAB7",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51896,
   "name": "a_CAB8",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51906,
   "name": "entity_0a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51924,
   "name": "entity_0b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51931,
   "name": "f_CADB",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51942,
   "name": "entity_0c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51960,
   "name": "entity_0d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51978,
   "name": "entity_0e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51996,
   "name": "entity_0f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52014,
   "name": "entity_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52032,
   "name": "entity_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52050,
   "name": "entity_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52068,
   "name": "entity_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52086,
   "name": "entity_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52104,
   "name": "entity_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52122,
   "name": "entity_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52140,
   "name": "entity_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52158,
   "name": "entity_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52176,
   "name": "entity_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52194,
   "name": "entity_1a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52212,
   "name": "entity_1b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52230,
   "name": "entity_1c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52248,
   "name": "entity_1d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52266,
   "name": "entity_1e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52284,
   "name": "entity_1f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52302,
   "name": "entity_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52320,
   "name": "entity_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52338,
   "name": "entity_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52356,
   "name": "entity_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52374,
   "name": "entity_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52392,
   "name": "entity_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52410,
   "name": "entity_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52428,
   "name": "entity_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52446,
   "name": "entity_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52464,
   "name": "entity_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52482,
   "name": "entity_2a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52500,
   "name": "entity_2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52518,
   "name": "entity_2c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52536,
   "name": "entity_2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52554,
   "name": "entity_2e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52572,
   "name": "entity_2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52590,
   "name": "entity_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52608,
   "name": "entity_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52626,
   "name": "unused_ptr_cbd0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52628,
   "name": "unused_ptr_cd80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52630,
   "name": "objects_ptr",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52631,
   "name": "a_CD97",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52632,
   "name": "object_00",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52633,
   "name": "a_CD99",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52639,
   "name": "object_01",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52640,
   "name": "a_CDA0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52646,
   "name": "object_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52653,
   "name": "object_03",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52654,
   "name": "a_CDAE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52660,
   "name": "object_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52667,
   "name": "object_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52674,
   "name": "object_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52681,
   "name": "object_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52688,
   "name": "object_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52695,
   "name": "object_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52702,
   "name": "object_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52709,
   "name": "object_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52716,
   "name": "object_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52723,
   "name": "object_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52730,
   "name": "object_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52737,
   "name": "object_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52744,
   "name": "object_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52751,
   "name": "object_17",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52758,
   "name": "object_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52765,
   "name": "object_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52772,
   "name": "object_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52779,
   "name": "object_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52786,
   "name": "object_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52793,
   "name": "object_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52800,
   "name": "object_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52807,
   "name": "object_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52814,
   "name": "object_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52821,
   "name": "object_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52828,
   "name": "object_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52835,
   "name": "object_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52842,
   "name": "object_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52849,
   "name": "object_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52856,
   "name": "object_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52863,
   "name": "object_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52870,
   "name": "object_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52877,
   "name": "object_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52884,
   "name": "object_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52891,
   "name": "object_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52898,
   "name": "object_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52905,
   "name": "object_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52912,
   "name": "object_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52919,
   "name": "object_41",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52926,
   "name": "object_42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52933,
   "name": "object_43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52940,
   "name": "object_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52947,
   "name": "object_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52954,
   "name": "object_46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52961,
   "name": "object_47",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52968,
   "name": "object_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52975,
   "name": "object_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52982,
   "name": "object_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52989,
   "name": "object_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52996,
   "name": "object_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53003,
   "name": "object_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53012,
   "name": "unused_cf14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53013,
   "name": "weapon_strength",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53067,
   "name": "summary_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53068,
   "name": "a_CF4C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53095,
   "name": "a_CF67",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53096,
   "name": "a_CF68",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53115,
   "name": "a_CF7B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53117,
   "name": "a_CF7D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53119,
   "name": "no_old_game",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53120,
   "name": "kryxix_follows",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53121,
   "name": "door_picking",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53122,
   "name": "door_opened",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53123,
   "name": "time_lock",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53124,
   "name": "time_lock_owner",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53125,
   "name": "strength_factor",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53175,
   "name": "agility_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53181,
   "name": "agility_fraction",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53187,
   "name": "stamina_fraction",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53193,
   "name": "door_locks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53225,
   "name": "filler_cfe9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53247,
   "name": "after_filler",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "f_D800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55552,
   "name": "f_D900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55579,
   "name": "a_D91B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55582,
   "name": "f_D91E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55656,
   "name": "f_D968",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55808,
   "name": "f_DA00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55816,
   "name": "f_DA08",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56040,
   "name": "f_DAE8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56064,
   "name": "f_DB00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57344,
   "name": "fig_robot_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57422,
   "name": "fig_robot_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57500,
   "name": "fig_robot_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57578,
   "name": "fig_zoff",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57656,
   "name": "fig_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57734,
   "name": "fig_green_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57812,
   "name": "fig_green_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57890,
   "name": "fig_green_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57968,
   "name": "fig_horned_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58046,
   "name": "fig_horned_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58124,
   "name": "fig_horned_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58202,
   "name": "fig_brown_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58280,
   "name": "fig_brown_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58358,
   "name": "fig_brown_c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58436,
   "name": "fig_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58514,
   "name": "fig_kryxix",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58592,
   "name": "fig_manto",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58670,
   "name": "fig_zark",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58748,
   "name": "fig_torik",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58826,
   "name": "fig_syylk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58904,
   "name": "fig_sevrina",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58982,
   "name": "fig_maul",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59060,
   "name": "pic_quit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59119,
   "name": "pic_load",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59178,
   "name": "pic_save",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59237,
   "name": "pic_activate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59296,
   "name": "pic_ready",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59355,
   "name": "pic_defend",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59414,
   "name": "pic_attack",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59473,
   "name": "pic_retreat",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59532,
   "name": "pic_more",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59591,
   "name": "pic_ballistic",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59669,
   "name": "pic_scan",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59728,
   "name": "pic_here",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59768,
   "name": "pic_joystick",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59827,
   "name": "pic_keyboard",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59886,
   "name": "pic_light_pen",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59945,
   "name": "pic_paddle",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59953,
   "name": "j_EA31",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 60004,
   "name": "pic_unused_box",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60063,
   "name": "portrait_1_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60065,
   "name": "portrait_1",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60600,
   "name": "portrait_1_at_ecb8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 60705,
   "name": "portrait_1_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 60825,
   "name": "portrait_5_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60827,
   "name": "portrait_5",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61467,
   "name": "portrait_5_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 61587,
   "name": "portrait_6_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61589,
   "name": "portrait_6",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 62229,
   "name": "portrait_6_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 62349,
   "name": "portrait_0_size",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62351,
   "name": "portrait_0",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 62622,
   "name": "KERNAL_LOADj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 62991,
   "name": "portrait_0_colours",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 63111,
   "name": "pic_scales",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63170,
   "name": "offmap_upper",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63647,
   "name": "offmap_lower",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64124,
   "name": "pic_master_key",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64202,
   "name": "pic_beacon",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64280,
   "name": "pic_dest_fighter",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64358,
   "name": "pic_dest_shuttle_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64436,
   "name": "pic_dest_shuttle_t",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64514,
   "name": "pic_key_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64592,
   "name": "pic_key_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64670,
   "name": "pic_key_00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64748,
   "name": "pic_old_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64807,
   "name": "pic_new_game",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "f_FD30",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 64866,
   "name": "team_syylk",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65017,
   "name": "KERNAL_SETNAMj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65024,
   "name": "KERNAL_SETLFSj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65096,
   "name": "pic_dead",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65326,
   "name": "a_FF2E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 65327,
   "name": "a_FF2F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 65328,
   "name": "pic_return",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65387,
   "name": "pic_rub",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65412,
   "name": "KERNAL_IOINIT",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65446,
   "name": "pic_destruct_unit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65496,
   "name": "KERNAL_SAVE",
   "type": "Predefined",
   "kind": "system"
  }
 ],
 "comments": [
  {
   "address": 0,
   "type": "line",
   "text": "The processor port's data direction register."
  },
  {
   "address": 1,
   "type": "line",
   "text": "The processor port: memory banking in bits 0-2, the cassette motor and switch in bits 3-5."
  },
  {
   "address": 15,
   "type": "line",
   "text": "A byte of BASIC's zero page that the game never writes; it holds 4 at the hand-over and in play. The cursor's left-edge test at $56D3 compares with it (CMP $0F, the byte here, not the value $0F), so the cursor wraps to the right-hand edge when its X falls below 4."
  },
  {
   "address": 43,
   "type": "line",
   "text": "The bitmap byte being drawn (cell_address, draw_picture, draw_box, the map): a pointer, high byte at $2C."
  },
  {
   "address": 44,
   "type": "line",
   "text": "The bitmap pointer's high byte."
  },
  {
   "address": 45,
   "type": "line",
   "text": "The colour matrix byte being drawn (cell_address); also the record pointer the list routines step through the object and entity tables (next_object, next_entity), and the source of the start-up's copy of the game state. High byte at $2E."
  },
  {
   "address": 46,
   "type": "line",
   "text": "The colour matrix (or record) pointer's high byte."
  },
  {
   "address": 47,
   "type": "line",
   "text": "The colour RAM byte being drawn (cell_address), high byte at $30; also kill_entity's object pointer."
  },
  {
   "address": 48,
   "type": "line",
   "text": "The colour RAM pointer's high byte."
  },
  {
   "address": 49,
   "type": "line",
   "text": "The picture draw_picture draws, high byte at $32. show_portrait also reads the portrait's bitmap through it ($4958), and draw_view_map points it at the row of the tile map it is drawing ($6AD5)."
  },
  {
   "address": 50,
   "type": "line",
   "text": "The picture pointer's high byte."
  },
  {
   "address": 51,
   "type": "line",
   "text": "A second pointer: the destination of the start-up's game-state copy ($D000), and the canvas sprite byte plot_canvas sets ($0900 on). High byte at $34."
  },
  {
   "address": 52,
   "type": "line",
   "text": "The second pointer's high byte."
  },
  {
   "address": 55,
   "type": "line",
   "text": "The icon record being drawn or tested (draw_screen, icon_test, the list routines), high byte at $38."
  },
  {
   "address": 56,
   "type": "line",
   "text": "The icon record pointer's high byte."
  },
  {
   "address": 57,
   "type": "line",
   "text": "The message being expanded into the ticker's buffer, taken from the queue: a pointer, high byte at $3A."
  },
  {
   "address": 58,
   "type": "line",
   "text": "Its high byte."
  },
  {
   "address": 59,
   "type": "line",
   "text": "The glyph being printed (glyph_address: $1400 + 6 x code), high byte at $3C; the clock's digits read their glyphs through it as well."
  },
  {
   "address": 60,
   "type": "line",
   "text": "The glyph pointer's high byte."
  },
  {
   "address": 61,
   "type": "line",
   "text": "The string print_text prints, high byte at $3E."
  },
  {
   "address": 62,
   "type": "line",
   "text": "The string pointer's high byte."
  },
  {
   "address": 63,
   "type": "line",
   "text": "The location record build_directions points at, the chosen character's location, high byte at $40. find_view_locations, move_by_exit, location_scan, attack, retreat, count_exits and the door routines read it."
  },
  {
   "address": 64,
   "type": "line",
   "text": "The location record pointer's high byte."
  },
  {
   "address": 65,
   "type": "line",
   "text": "The entity record of the character on show, high byte at $42."
  },
  {
   "address": 66,
   "type": "line",
   "text": "char_record's high byte."
  },
  {
   "address": 69,
   "type": "line",
   "text": "The entity record whose second the interrupt is running (also the team list pointer from $CA08 at the restart), high byte at $46."
  },
  {
   "address": 70,
   "type": "line",
   "text": "irq_record's high byte."
  },
  {
   "address": 71,
   "type": "line",
   "text": "The patrol script or chain being read, from the tables at $BDC0 and $BF54; high byte at $48."
  },
  {
   "address": 72,
   "type": "line",
   "text": "patrol_ptr's high byte."
  },
  {
   "address": 73,
   "type": "line",
   "text": "The entity record the view map's search is testing (the team list pointer $CA08 plus the record's offset), high byte at $4A."
  },
  {
   "address": 74,
   "type": "line",
   "text": "view_record's high byte."
  },
  {
   "address": 115,
   "type": "line",
   "text": "print_text's position in the string."
  },
  {
   "address": 116,
   "type": "line",
   "text": "A working counter: frame_icon's right edge, count_exits' total."
  },
  {
   "address": 118,
   "type": "line",
   "text": "The cell row under the cursor (cursor_cell)."
  },
  {
   "address": 119,
   "type": "line",
   "text": "The cell column under the cursor."
  },
  {
   "address": 120,
   "type": "line",
   "text": "Fire: set to $FF while an icon waits, cleared by the input handler when fire is pressed."
  },
  {
   "address": 121,
   "type": "line",
   "text": "The interrupt's working byte for the high half of a product (recovery, combat damage)."
  },
  {
   "address": 122,
   "type": "line",
   "text": "The multiplier, shifted out a bit at a time by multiply."
  },
  {
   "address": 123,
   "type": "line",
   "text": "The drawing routines' working byte: a colour nibble, a border edge pattern, a bitmap line, a shift."
  },
  {
   "address": 124,
   "type": "line",
   "text": "A second working counter (the frame's passes, the canvas bit, combat's six targets)."
  },
  {
   "address": 125,
   "type": "line",
   "text": "The row being drawn, and the index swap_y exchanges with Y."
  },
  {
   "address": 157,
   "type": "line",
   "text": "The KERNAL's message flag: set to 0 before LOAD and SAVE ($776E) so that the KERNAL prints nothing."
  },
  {
   "address": 247,
   "type": "line",
   "text": "A 16-bit working value, high byte at $F8: multiply's multiplicand, the iris's rotation, shift_f7's map offsets."
  },
  {
   "address": 248,
   "type": "line",
   "text": "work16's high byte."
  },
  {
   "address": 249,
   "type": "line",
   "text": "multiply's 16-bit product, high byte at $FA."
  },
  {
   "address": 250,
   "type": "line",
   "text": "The product's high byte."
  },
  {
   "address": 251,
   "type": "line",
   "text": "iris_circle's across coordinate, its fraction byte: with $FC the whole part, an 8.8 number. The Y it is entered with starts each circle that much beyond the radius at the same angle: half a pixel for $80."
  },
  {
   "address": 252,
   "type": "line",
   "text": "iris_circle's across coordinate, its whole part: the radius X it is entered with, plotted at canvas column $FC + 24."
  },
  {
   "address": 253,
   "type": "line",
   "text": "iris_circle's coordinate down, its fraction byte, with $FE the whole part; 0 at the start of each circle."
  },
  {
   "address": 254,
   "type": "line",
   "text": "iris_circle's coordinate down, its whole part, plotted at canvas row $FE + 21; 0 at the start of each circle."
  },
  {
   "address": 768,
   "type": "line",
   "text": "Page 3, cleared by the start-up's first loop (the STA at $4007), which zeroes BASIC's vectors at $0300-$0313; the game uses none of them."
  },
  {
   "address": 788,
   "type": "line",
   "text": "The KERNAL's interrupt vector, set from the KERNAL's own table at the start ($4012). The game's interrupt goes through $FFFE with the KERNAL switched out, so only the unused music hook at $1609 points it elsewhere."
  },
  {
   "address": 789,
   "type": "line",
   "text": "The interrupt vector's high byte."
  },
  {
   "address": 792,
   "type": "line",
   "text": "The NMI vector, pointed at $427D at the restart (the hardware vector at $FFFA is the one used with the KERNAL out)."
  },
  {
   "address": 793,
   "type": "line",
   "text": "The NMI vector's high byte."
  },
  {
   "address": 806,
   "type": "line",
   "text": "The KERNAL's character-output vector, pointed at the RTS at $4271 so that KERNAL printing does nothing."
  },
  {
   "address": 807,
   "type": "line",
   "text": "The character-output vector's high byte, $42."
  },
  {
   "address": 2075,
   "type": "line",
   "text": "The only bytes the tape puts in $0800-$08FF: SEI, $1F to both CIAs' interrupt control registers ($DC0D, $DD0D), which turns their interrupts off, a read of each to clear any that is pending, CLI, then JMP $4000, the game's start. The rest of the page is the machine's power-on pattern."
  },
  {
   "address": 2304,
   "type": "line",
   "text": "The view screen's grey canvas, four sprites over the map window, each doubled to 48 x 42 pixels: this one, block $24, is sprite 1 at (136, 56), the top left. Loaded as a filled box; iris_open clears a growing circle out of all four and iris_close fills it again."
  },
  {
   "address": 2368,
   "type": "line",
   "text": "Block $25, sprite 2 at (184, 56): the canvas's top right."
  },
  {
   "address": 2432,
   "type": "line",
   "text": "Block $26, sprite 3 at (136, 98): the bottom left."
  },
  {
   "address": 2496,
   "type": "line",
   "text": "Block $27, sprite 4 at (184, 98): the bottom right."
  },
  {
   "address": 2560,
   "type": "line",
   "text": "The cursor, block $28, sprite 0: a multicolour cross-hair."
  },
  {
   "address": 2624,
   "type": "line",
   "text": "Sprite block $29, 64 bytes that no sprite pointer names and nothing reads."
  },
  {
   "address": 2688,
   "type": "line",
   "text": "Entity $0A's map icon: a man's face in dark glasses under a grey hat. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $0A's map icon in entity_pictures."
  },
  {
   "address": 2728,
   "type": "line",
   "text": "A cassette: the file name screen's tape choice. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the file name screen's icon at $7CB3; the tape pointer at $819F."
  },
  {
   "address": 2787,
   "type": "line",
   "text": "Kryxix's map icon: a green head (the manual's green icon on the view screen). A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Kryxix's map icon in entity_pictures."
  },
  {
   "address": 2827,
   "type": "line",
   "text": "Entity $0A's figure: the man in the grey hat and dark glasses, head and shoulders. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $0A's figure in entity_pictures."
  },
  {
   "address": 2905,
   "type": "line",
   "text": "A map icon of white and grey stripes. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $1A, $1B, $1C, $1D, $1E, $1F, $20, $21, $22, $23, $24, $25's map icon in entity_pictures."
  },
  {
   "address": 2945,
   "type": "line",
   "text": "A map icon of purple and cyan stripes. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31's map icon in entity_pictures."
  },
  {
   "address": 2985,
   "type": "line",
   "text": "A map icon of a white ring between blue bars. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $13, $14, $15, $16, $17, $18, $19's map icon in entity_pictures."
  },
  {
   "address": 3025,
   "type": "line",
   "text": "Leftover text from a BASIC DATA line (\",208,2,230 ... 252,230,253,208,227,230,254,76\"), loaded with the game and never read."
  },
  {
   "address": 3072,
   "type": "line",
   "text": "The colour matrix for the upper panel, rows 0-12, 40 bytes a row: each cell's two bitmap colours, one in each nibble. The cells of the six status icons, the view window and the portrait window are recoloured in play; rows 13-24, from $0E08, are coloured by each screen."
  },
  {
   "address": 3592,
   "type": "line",
   "text": "Rows 13-24 of the matrix, the lower half where each screen draws its icons: coloured in play (the panels' colour, then each icon's own)."
  },
  {
   "address": 3816,
   "type": "line",
   "text": "The second of the panel fill's two 256-byte runs (the first from $0E08): with STA $0E08,Y and STA $0EE8,Y, $47EE colours $0E08-$0FE7, rows 13-24, in one loop."
  },
  {
   "address": 3992,
   "type": "line",
   "text": "Matrix row 23's first cell: the objects screen sets the eighty cells of rows 23 and 24 from here to $27."
  },
  {
   "address": 4072,
   "type": "line",
   "text": "Sixteen bytes after the matrix's 1000 cells, never shown: leftover text of a text-to-speech program's pronunciation rules (\"GN) =AY4N(IGN)^=\"), the format of S.A.M.'s Reciter."
  },
  {
   "address": 4088,
   "type": "line",
   "text": "The eight sprite pointers, set at the restart: sprite 0 the cursor, block $28; sprites 1-4 the canvas, $24-$27."
  },
  {
   "address": 4089,
   "type": "line",
   "text": "Sprite 1's pointer."
  },
  {
   "address": 4090,
   "type": "line",
   "text": "Sprite 2's pointer."
  },
  {
   "address": 4091,
   "type": "line",
   "text": "Sprite 3's pointer."
  },
  {
   "address": 4092,
   "type": "line",
   "text": "Sprite 4's pointer."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "The upper panel's colour RAM, rows 0-12, copied to $D800 at the start: the third colour of each bitmap cell. The start copies all 1024 bytes, a page at a time from here, $1100, $1200 and $1300."
  },
  {
   "address": 4352,
   "type": "line",
   "text": "The second page of the copy, rows 6-12 of the panel's colour RAM and on into row 13."
  },
  {
   "address": 4608,
   "type": "line",
   "text": "The third page. From $1208 on, rows 13-24 are never seen: the screens' panels set colour RAM there before they draw."
  },
  {
   "address": 4864,
   "type": "line",
   "text": "The fourth page, the last rows of the lower half, overwritten in play like the third."
  },
  {
   "address": 5096,
   "type": "line",
   "text": "24 bytes after the 1000 cells, copied to colour RAM that the screen does not show: more leftover pronunciation-rule text (\"ROF.)=PROHFEH4SER(P)=\")."
  },
  {
   "address": 5120,
   "type": "line",
   "text": "Two bytes before the first glyph that nothing reads: glyph_address points at $1400 + 6 x the code and prints its rows 2-7."
  },
  {
   "address": 5122,
   "type": "line",
   "text": "The game's font, 43 glyphs of six rows, each row one byte: 0-9 the digits, $0A-$23 the letters A-Z, $24 a space, $25 a full stop, $26 a comma, $27 a percent sign, $28 and $29 thin bars, $2A a colon."
  },
  {
   "address": 5380,
   "type": "line",
   "text": "The bitmap address of each of the 25 cell rows, $2000 + 320 x row: the high bytes here, the low bytes at $151D."
  },
  {
   "address": 5405,
   "type": "line",
   "text": "The low bytes of the 25 cell rows' bitmap addresses."
  },
  {
   "address": 5430,
   "type": "line",
   "text": "A disc: the file name screen's disc choice. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the file name screen's icon at $7CBE; the file name screen's icon at $7DFD; the disc pointer at $81A1."
  },
  {
   "address": 5489,
   "type": "line",
   "text": "The demonstration's script: points the cursor walks to, two bytes each, X then Y. input_demo reads point n at $1571 + 2n, waits at each with fire held, and starts the \"Shadowfire demonstration\" message again every fourth point. 55 points, to $15DE: the last two are Quit on the team screen (point $35, (16, 162)) and Quit on the start menu (point $36), which goes back to the control menu and ends the demonstration."
  },
  {
   "address": 5490,
   "type": "line",
   "text": "The first point's Y."
  },
  {
   "address": 5597,
   "type": "line",
   "text": "Point $36, ($98, $DA): the start menu's Quit icon, the script's last point, and where a key sends the cursor (X = $6C) to end the demonstration early. No point has Y = $FF, the end mark input_demo tests for."
  },
  {
   "address": 5599,
   "type": "line",
   "text": "Leftover text after the script, more of the text-to-speech rules (\"HROUGH)=THRUW(THOSE)=DHOH(THO\"), which input_demo would read as points if it walked on past $15DD."
  },
  {
   "address": 5632,
   "type": "line",
   "text": "The music driver's request byte: the tune to play, 0-9, with bit 7 set by the driver once it has started it. A tune that ends writes the next one here."
  },
  {
   "address": 5633,
   "type": "line",
   "text": "A sound effect to play once on voice 1 (the icon click writes $DE), taken at the next beat of the in-game tune."
  },
  {
   "address": 5634,
   "type": "line",
   "text": "A sound effect repeated on every beat of the in-game tune: $30 normally (set at $4204), $3E while a message scrolls, $0F for a weak character's heartbeat, whose bit 0 makes the driver flip bit 1 each beat, so that it alternates $0E and $0C. 1 silences voice 1 and stops it."
  },
  {
   "address": 5635,
   "type": "line",
   "text": "The in-game tune's pulse width for voices 2 and 3, times 8: 0 is silence. The team screen's arrows step it between 0 and $40."
  },
  {
   "address": 5636,
   "type": "line",
   "text": "Frames per step of the in-game tune."
  },
  {
   "address": 5637,
   "type": "line",
   "text": "Frames per step of the title tunes."
  },
  {
   "address": 5638,
   "type": "line",
   "text": "The music driver's entry, called by the interrupt every frame: JMP $172F."
  },
  {
   "address": 5641,
   "type": "line",
   "text": "Unused by the game, nothing calls it: sets CIA 1's timer A high byte to $4E and points the KERNAL's interrupt vector $0314 at $1729, so that the music would play under the KERNAL's own interrupt."
  },
  {
   "address": 5659,
   "type": "line",
   "text": "Frames into the current step, counted up to the tempo by $1620."
  },
  {
   "address": 5660,
   "type": "line",
   "text": "The step of the tune, counted up to its length by $16A5."
  },
  {
   "address": 5661,
   "type": "line",
   "text": "The tempo $1620 was given."
  },
  {
   "address": 5662,
   "type": "line",
   "text": "The tune length $16A5 was given."
  },
  {
   "address": 5663,
   "type": "line",
   "text": "The tune being played."
  },
  {
   "address": 5664,
   "type": "line",
   "text": "Counts a frame against tempo A: returns Z set on the frame that starts a new step, when the count wraps to 0."
  },
  {
   "address": 5684,
   "type": "line",
   "text": "Plays note A on voice 2 (0 leaves it alone): its frequency from the note table at $16B9, and the note an octave up (12 notes on) kept at $1FBF for the arpeggio; gates the voice with the waveform in $1FC5."
  },
  {
   "address": 5737,
   "type": "line",
   "text": "Plays note A on voice 3, slightly detuned (the frequency's low byte EOR 8), gated with the waveform in $1FC5."
  },
  {
   "address": 5767,
   "type": "line",
   "text": "Plays note A on voice 1 with a sawtooth, gate off and on again. Note 0 is played too, as a frequency of 0."
  },
  {
   "address": 5797,
   "type": "line",
   "text": "Counts a step against tune length A: returns Z set when the tune has reached its end and the count wraps to 0."
  },
  {
   "address": 5817,
   "type": "line",
   "text": "The frequencies of 56 notes, two bytes each, note 0 a rest at 0 and the rest rising by semitones from $0430."
  },
  {
   "address": 5929,
   "type": "line",
   "text": "For the unused hook at $1609: plays a frame of music, then goes on to the KERNAL's interrupt handler at $EA31."
  },
  {
   "address": 5935,
   "type": "line",
   "text": "Every frame: volume 15, no filter, sustain and release 0 on all three voices, then the voice-1 effect ($1F6B). A new request (bit 7 of $1600 clear) restarts the step and frame counts and sets bit 7. Then jumps to the tune's routine through the BCC at $1765, whose operand is written here as 3 x the tune number: 0 lands on the RTS at $1767 (silence), 1-9 on the JMPs from $176A."
  },
  {
   "address": 5990,
   "type": "line",
   "text": "The BCC's operand: 3 x the tune number."
  },
  {
   "address": 5992,
   "type": "line",
   "text": "Two NOPs no tune number reaches."
  },
  {
   "address": 5994,
   "type": "line",
   "text": "The tunes' jumps: 1 $17D5 (in play), 2 $1934, 3 $197E, 4 $1B60, 5 $1CC1, 6 $1CF3, 7 $1DEA (the title's start), 8 $1EF6, 9 $1F33."
  },
  {
   "address": 6021,
   "type": "line",
   "text": "Switches voice 2 between its note and the note an octave up, as frame_count AND A is zero or not."
  },
  {
   "address": 6049,
   "type": "line",
   "text": "Returns A + X when A is not zero, otherwise 0; tune 9's transposition."
  },
  {
   "address": 6064,
   "type": "line",
   "text": "Unused, nothing reaches it: the same pulse sweep as $17C4, for voice 2."
  },
  {
   "address": 6084,
   "type": "line",
   "text": "Gates voice 3 as a pulse wave and widens its pulse by one step ($1FC2), each step of the title tunes."
  },
  {
   "address": 6101,
   "type": "line",
   "text": "The in-game tune: attack and decay $0B on voices 2 and 3, a pulse wave whose width comes from $1603, voice 2's octave arpeggio. On each step: the voice-1 effects ($1602, repeated, and $1601, once, into $1FC4), then a note from $1864 for voice 3 every step and for voice 2 on steps whose bit 1 is clear. 208 steps, then it starts again."
  },
  {
   "address": 6244,
   "type": "line",
   "text": "Tune 1's 208 notes, one per step."
  },
  {
   "address": 6452,
   "type": "line",
   "text": "A title tune: voice 2 from $1A40, voice 3 from $19B0, voice 1 from $1AD0 (attack and decay $49 after the sixth step), with the pulse sweep on voice 3. 96 steps, then tune 3."
  },
  {
   "address": 6526,
   "type": "line",
   "text": "The same three note tables as tune 2, 144 steps of them, then tune 8."
  },
  {
   "address": 6576,
   "type": "line",
   "text": "Tunes 2 and 3's voice 3, 144 notes."
  },
  {
   "address": 6720,
   "type": "line",
   "text": "Tunes 2 and 3's voice 2, 144 notes."
  },
  {
   "address": 6864,
   "type": "line",
   "text": "Tunes 2 and 3's voice 1, 144 notes."
  },
  {
   "address": 7008,
   "type": "line",
   "text": "A title tune: attack and decay $0D, $0D and $09; voice 2 from $1C01, voice 3 from $1C61, voice 1 from $1BA1. 96 steps, then tune 5."
  },
  {
   "address": 7073,
   "type": "line",
   "text": "Tunes 4 and 5's voice 1, 96 notes."
  },
  {
   "address": 7169,
   "type": "line",
   "text": "Tunes 4 and 5's voice 2, 96 notes."
  },
  {
   "address": 7265,
   "type": "line",
   "text": "Tunes 4 and 5's voice 3, 96 notes."
  },
  {
   "address": 7361,
   "type": "line",
   "text": "Tune 4's notes again, the first 72 steps, then tune 6."
  },
  {
   "address": 7411,
   "type": "line",
   "text": "A title tune: voice 3 from $1D2A, voices 2 and 1 both from $1D8A. 96 steps, then tune 2."
  },
  {
   "address": 7466,
   "type": "line",
   "text": "Tunes 6 and 9's voice 3, 96 notes."
  },
  {
   "address": 7562,
   "type": "line",
   "text": "Tunes 6 and 9's voices 1 and 2, 96 notes."
  },
  {
   "address": 7658,
   "type": "line",
   "text": "The start of the title music: pulse widths and voice 1 silenced, a sawtooth for voices 2 and 3 ($1FC5 = $20), then tune 4."
  },
  {
   "address": 7686,
   "type": "line",
   "text": "Tune 8's voice 3, 120 notes."
  },
  {
   "address": 7806,
   "type": "line",
   "text": "Tune 8's voices 1 and 2, 120 notes."
  },
  {
   "address": 7926,
   "type": "line",
   "text": "A title tune: voice 2 and voice 1 from $1E7E, voice 3 from $1E06. 120 steps, then tune 4 again: the title music runs 4, 5, 6, 2, 3, 8 and round."
  },
  {
   "address": 7987,
   "type": "line",
   "text": "A tune nothing requests: a fixed tempo of 8, a voice-1 effect from the step number, voice 2 from $1D2A; the notes of $1D8A transposed by $1F are worked out and then dropped. 128 steps, then tune 6."
  },
  {
   "address": 8014,
   "type": "line",
   "text": "Where a JSR would be expected the byte is $7A, not an instruction of the documented 6502 set (the 6510 runs it as a one-byte NOP and then EOR #$16). Then the pulse sweep, 128 steps and tune 6."
  },
  {
   "address": 8032,
   "type": "line",
   "text": "Tune 9's RTS, reached three ways: on every frame that starts no step (the BNE at $1F38), after a step short of the end ($1F59), and after the last step has requested tune 6."
  },
  {
   "address": 8033,
   "type": "line",
   "text": "Tune 9's voice-1 effect: step number AND 3."
  },
  {
   "address": 8043,
   "type": "line",
   "text": "Voice 1's sound effects, every frame. A new effect byte in $1FC4 sets the pitch step ($1FBC, its bits 0-3 and 7, bit 0 set), the attack and decay (bits 0-6), the starting pitch ($1FBB, bits 5-7 plus $10) and the waveform: a sawtooth, noise when bit 0 is set, a triangle when bit 4 is. Then, while $1FBB is not 0, the pitch climbs by the step each frame until it wraps."
  },
  {
   "address": 8123,
   "type": "line",
   "text": "Voice 1's effect pitch, high byte."
  },
  {
   "address": 8124,
   "type": "line",
   "text": "Voice 1's effect pitch step per frame."
  },
  {
   "address": 8125,
   "type": "line",
   "text": "Voice 2's note frequency, two bytes."
  },
  {
   "address": 8126,
   "type": "line",
   "text": "voice2_freq's high byte."
  },
  {
   "address": 8127,
   "type": "line",
   "text": "Voice 2's note an octave up, two bytes."
  },
  {
   "address": 8128,
   "type": "line",
   "text": "voice2_octave's high byte."
  },
  {
   "address": 8129,
   "type": "line",
   "text": "The mask arpeggio_voice2 tests."
  },
  {
   "address": 8130,
   "type": "line",
   "text": "The title tunes' voice-3 pulse width, widened each step."
  },
  {
   "address": 8131,
   "type": "line",
   "text": "The working byte of add_if_not_zero."
  },
  {
   "address": 8132,
   "type": "line",
   "text": "The voice-1 effect to start at the next frame."
  },
  {
   "address": 8133,
   "type": "line",
   "text": "The waveform voices 2 and 3 are gated with: $40 pulse in play, $20 sawtooth in the title tunes."
  },
  {
   "address": 8192,
   "type": "line",
   "text": "Bitmap row 0 of the upper panel, as loaded: the panel's top edge: the frame lines over the status block (columns 0-13), the view window (14-25) and the portrait monitor (26-39)."
  },
  {
   "address": 8512,
   "type": "line",
   "text": "Bitmap row 1 of the upper panel, as loaded: the upper halves of Syylk's, Manto's and Zark's status icons (columns 1-2, 4-5 and 7-8) and the top of a readout at columns 10-13; the view window, columns 15-24, is drawn in play from here to row 10."
  },
  {
   "address": 8832,
   "type": "line",
   "text": "Bitmap row 2 of the upper panel, as loaded: the lower halves of those three icons, the readout's lines and the top of the monitor's frame; the portrait window, columns 28-37, is drawn in play from here to row 9."
  },
  {
   "address": 9055,
   "type": "line",
   "text": "Row 2, column 27's last line, just left of the portrait window. roll_monitor's LDA $235F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 9056,
   "type": "line",
   "text": "The portrait window's first byte in row 2 (excluded: drawn in play). roll_monitor stores here, STA $2360,X."
  },
  {
   "address": 9136,
   "type": "line",
   "text": "Row 2 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 9152,
   "type": "line",
   "text": "Bitmap row 3 of the upper panel, as loaded: the frame between the two rows of icons and the bottom of the readout."
  },
  {
   "address": 9375,
   "type": "line",
   "text": "Row 3, column 27's last line, just left of the portrait window. roll_monitor's LDA $249F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 9376,
   "type": "line",
   "text": "The portrait window's first byte in row 3 (excluded: drawn in play). roll_monitor stores here, STA $24A0,X."
  },
  {
   "address": 9456,
   "type": "line",
   "text": "Row 3 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 9472,
   "type": "line",
   "text": "Bitmap row 4 of the upper panel, as loaded: the upper halves of Sevrina's, Maul's and Torik's status icons and the first of two small bars at columns 10-13."
  },
  {
   "address": 9695,
   "type": "line",
   "text": "Row 4, column 27's last line, just left of the portrait window. roll_monitor's LDA $25DF,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 9696,
   "type": "line",
   "text": "The portrait window's first byte in row 4 (excluded: drawn in play). roll_monitor stores here, STA $25E0,X."
  },
  {
   "address": 9776,
   "type": "line",
   "text": "Row 4 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 9792,
   "type": "line",
   "text": "Bitmap row 5 of the upper panel, as loaded: the lower halves of those three icons and the second small bar."
  },
  {
   "address": 10015,
   "type": "line",
   "text": "Row 5, column 27's last line, just left of the portrait window. roll_monitor's LDA $271F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 10016,
   "type": "line",
   "text": "The portrait window's first byte in row 5 (excluded: drawn in play). roll_monitor stores here, STA $2720,X."
  },
  {
   "address": 10096,
   "type": "line",
   "text": "Row 5 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 10112,
   "type": "line",
   "text": "Bitmap row 6 of the upper panel, as loaded: the frame under the icons and the top of the clock's frame (columns 6-12)."
  },
  {
   "address": 10335,
   "type": "line",
   "text": "Row 6, column 27's last line, just left of the portrait window. roll_monitor's LDA $285F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 10336,
   "type": "line",
   "text": "The portrait window's first byte in row 6 (excluded: drawn in play). roll_monitor stores here, STA $2860,X."
  },
  {
   "address": 10416,
   "type": "line",
   "text": "Row 6 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 10432,
   "type": "line",
   "text": "Bitmap row 7 of the upper panel, as loaded: the red light at column 3, which flashes while a message runs, and the clock's frame either side of its window (columns 7-11, drawn in play)."
  },
  {
   "address": 10487,
   "type": "line",
   "text": "Row 7, column 6's last line, just left of the clock. The start clears the clock's window with STA $28F7,X, X from $28 down to 1."
  },
  {
   "address": 10488,
   "type": "line",
   "text": "The clock's minutes' tens cell (excluded, drawn in play); the rolling clock scrolls its lines 1-7 through $28F8,X and $28F9,X."
  },
  {
   "address": 10489,
   "type": "line",
   "text": "The minutes' tens cell's line 1, where each new row of the digit comes in."
  },
  {
   "address": 10496,
   "type": "line",
   "text": "The minutes' units cell."
  },
  {
   "address": 10497,
   "type": "line",
   "text": "The minutes' units' line 1."
  },
  {
   "address": 10512,
   "type": "line",
   "text": "The seconds' tens cell."
  },
  {
   "address": 10513,
   "type": "line",
   "text": "The seconds' tens' line 1."
  },
  {
   "address": 10520,
   "type": "line",
   "text": "The seconds' units cell, rolled every second."
  },
  {
   "address": 10521,
   "type": "line",
   "text": "The seconds' units' line 1."
  },
  {
   "address": 10528,
   "type": "line",
   "text": "Row 7 after the clock's window: the clock frame's right side, the view window's frame and the monitor's left side."
  },
  {
   "address": 10655,
   "type": "line",
   "text": "Row 7, column 27's last line, just left of the portrait window. roll_monitor's LDA $299F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 10656,
   "type": "line",
   "text": "The portrait window's first byte in row 7 (excluded: drawn in play). roll_monitor stores here, STA $29A0,X."
  },
  {
   "address": 10736,
   "type": "line",
   "text": "Row 7 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 10752,
   "type": "line",
   "text": "Bitmap row 8 of the upper panel, as loaded: the clock frame's bottom, the top of the ticker's frame and the first of three small lamps at column 26."
  },
  {
   "address": 10975,
   "type": "line",
   "text": "Row 8, column 27's last line, just left of the portrait window. roll_monitor's LDA $2ADF,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 10976,
   "type": "line",
   "text": "The portrait window's first byte in row 8 (excluded: drawn in play). roll_monitor stores here, STA $2AE0,X."
  },
  {
   "address": 11056,
   "type": "line",
   "text": "Row 8 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 11072,
   "type": "line",
   "text": "Bitmap row 9 of the upper panel, as loaded: the ticker's frame either side of its window (columns 1-12, drawn in play) and the second lamp."
  },
  {
   "address": 11080,
   "type": "line",
   "text": "The ticker's strip, twelve cells (excluded, drawn in play): ticker_shift rolls rows 2-7 of the cells one bit left at a time, ROL $2B48,X."
  },
  {
   "address": 11176,
   "type": "line",
   "text": "Row 9 after the ticker's window: the ticker frame's right side, the view window's frame and the second lamp."
  },
  {
   "address": 11295,
   "type": "line",
   "text": "Row 9, column 27's last line, just left of the portrait window. roll_monitor's LDA $2C1F,X takes X from 1 up, so it reads the window, not this byte; the symbol is that instruction's base."
  },
  {
   "address": 11296,
   "type": "line",
   "text": "The portrait window's first byte in row 9 (excluded: drawn in play). roll_monitor stores here, STA $2C20,X."
  },
  {
   "address": 11376,
   "type": "line",
   "text": "Row 9 after the portrait window: the monitor frame's right edge, columns 38-39."
  },
  {
   "address": 11392,
   "type": "line",
   "text": "Bitmap row 10 of the upper panel, as loaded: the ticker frame's bottom, the third lamp and the last cell row of the view window."
  },
  {
   "address": 11712,
   "type": "line",
   "text": "Bitmap row 11 of the upper panel, as loaded: the bottom edges of the view window's frame and of the monitor."
  },
  {
   "address": 12032,
   "type": "line",
   "text": "Bitmap row 12 of the upper panel, as loaded: the panel's lower edge, coloured lines across the screen."
  },
  {
   "address": 12352,
   "type": "line",
   "text": "Rows 13-24 of the bitmap, zero as loaded: each screen draws its icons here."
  },
  {
   "address": 16192,
   "type": "line",
   "text": "The 192 bytes after the bitmap's 8000, which the screen does not show and nothing reads."
  },
  {
   "address": 16384,
   "type": "line",
   "text": "The game's first instruction, where the loader's stub at $081B jumps. Resets the stack, clears page 3, copies the KERNAL's 32-byte vector table ($FD30, the KERNAL is still switched in) to $0314, points the character-output vector at an RTS, makes the processor port's two low bits outputs, and with all RAM switched in ($01 = $14) copies the game state $CA00-$CFFF to $D000-$D5FF under the I/O chips, the copy a new game is restored from. Then, with I/O back ($01 = $35): copies $1000-$13FF to colour RAM, fills the text screen $0400-$07FF with spaces, blacks the border and background, clears the clock's bitmap cells $28F8-$291F and colours two strips of colour RAM. Falls into the restart at $40A3. Its bytes also serve $4AD7's screen shake as a table of random scroll values."
  },
  {
   "address": 16547,
   "type": "line",
   "text": "The restart entry, also where RUN/STOP with RESTORE returns through $42D6. Masks both CIAs' interrupts and clears them, sets $68B0 = 1, $42C1 = 0 and the music driver's request byte $1600 = 7, sets the keyboard port directions, VIC bank 0, matrix at $0C00 and bitmap at $2000 ($D018 = $38), multicolour bitmap mode, the five sprites (0 the cursor, 1-4 the doubled view-screen canvas at $0900-$09FF), starts the welcome message ($7E24) through $647B, installs the raster interrupt at $549B and the NMI at $427D, picks up the team list pointer $CA08 into $45/$46, waits for raster $80 and starts the raster interrupt at line $F8. Then the control menu ($41BD): shows portrait 6 on the right-hand monitor, closes the iris if it is open, clears the panels, draws screen 6 (the four control choices), and waits for F1, F3, F5 or F7; when the music driver's byte $1600 reads $82 first, the demonstration starts instead."
  },
  {
   "address": 16905,
   "type": "line",
   "text": "Read the keyboard's row lines with every column driven low ($DC00 = 0): F1 gives $EF, F3 $DF, F5 $BF, F7 $F7, and so does any other key on the same row line, Z or space for F1, for example."
  },
  {
   "address": 16925,
   "type": "line",
   "text": "Nothing pressed for long enough: start the demonstration. The input handler becomes the demo's $5570, the demo script pointer $692E comes from $1571, and $42D8 = 1 marks demo mode, which stops the music being changed through $4274."
  },
  {
   "address": 16983,
   "type": "line",
   "text": "A stray CLI: the instruction after the JMP is never reached."
  },
  {
   "address": 16984,
   "type": "line",
   "text": "F-key X (0-3) pressed: the input handler for keyboard, joystick, paddles or light pen comes from the table at $42C6."
  },
  {
   "address": 17009,
   "type": "line",
   "text": "An RTS, the address the start-up puts in the character-output vector $0326 so that KERNAL printing does nothing."
  },
  {
   "address": 17010,
   "type": "line",
   "text": "The word $4271, copied to $0326/$0327."
  },
  {
   "address": 17011,
   "type": "line",
   "text": "rts_vector_ptr's high byte."
  },
  {
   "address": 17012,
   "type": "line",
   "text": "Sets the music driver's request byte $1600 from A, except in the demonstration ($42D8 non-zero), which leaves the music alone."
  },
  {
   "address": 17021,
   "type": "line",
   "text": "The NMI handler (RESTORE). Masks CIA 2's interrupts, then tests the keyboard's row line 7, where RUN/STOP is: if it is low, resets the stack and returns into the restart at $40A3 (the address in $42D6/$42D7, pushed under a copy of the flags for the RTI); if not, returns to where it was."
  },
  {
   "address": 17055,
   "type": "line",
   "text": "Bytes no code reaches: three fragments that read as raster-interrupt stubs (INC $D02B, INC $D020 with an acknowledge, INC $D02A), each ending in JMP $FFFF with a word after it. A leftover from development."
  },
  {
   "address": 17084,
   "type": "line",
   "text": "Five zero bytes nothing reads."
  },
  {
   "address": 17089,
   "type": "line",
   "text": "Set to 0 at the restart; nothing reads it."
  },
  {
   "address": 17090,
   "type": "line",
   "text": "Unused: the byte after $42C1 that nothing reads or writes."
  },
  {
   "address": 17091,
   "type": "line",
   "text": "Pointer to the welcome message at $7E24, printed at the restart."
  },
  {
   "address": 17092,
   "type": "line",
   "text": "The welcome message pointer's high byte."
  },
  {
   "address": 17093,
   "type": "line",
   "text": "Unused: the byte between the welcome pointer and the input handlers that nothing reads or writes."
  },
  {
   "address": 17094,
   "type": "line",
   "text": "The four input handlers, chosen on the control menu by F1-F7: keyboard $5630, digital joystick $562C, analog joystick (paddles) $5526, light pen $54F1. The interrupt calls the chosen one every frame through the JMP at $54EE."
  },
  {
   "address": 17095,
   "type": "line",
   "text": "The input handlers read one byte on, for their high bytes."
  },
  {
   "address": 17102,
   "type": "line",
   "text": "The row-line values of F1 ($EF), F3 ($DF), F5 ($BF) and F7 ($F7). The scan at $420C starts at X = 4 and so also tests the byte after, $42D2, the NMI pointer's low byte $7D: two keys held together on row lines 1 and 7 (left SHIFT and W, say) would match it and take the input handler from $42CE/$42CF, $DFEF."
  },
  {
   "address": 17106,
   "type": "line",
   "text": "The NMI handler's address, $427D."
  },
  {
   "address": 17107,
   "type": "line",
   "text": "The NMI pointer's high byte."
  },
  {
   "address": 17108,
   "type": "line",
   "text": "The demonstration's input handler, $5570."
  },
  {
   "address": 17109,
   "type": "line",
   "text": "The demonstration handler pointer's high byte."
  },
  {
   "address": 17110,
   "type": "line",
   "text": "The restart address $40A3, where the NMI handler's RTI goes when RUN/STOP is held."
  },
  {
   "address": 17111,
   "type": "line",
   "text": "The restart pointer's high byte."
  },
  {
   "address": 17112,
   "type": "line",
   "text": "1 while the demonstration plays, 0 in a real game."
  },
  {
   "address": 17113,
   "type": "line",
   "text": "Draws a picture at cell column X, row Y. The picture at ($31) starts with its width in cells and height in cell rows, then the bitmap, row by row (width x 8 bytes for each cell row, written $140 apart), then the colours, packed three bytes to two cells: cell A takes byte 0 as its screen colours and byte 1's low nibble as its colour RAM; cell B takes (byte 1 >> 4) | (byte 2 << 4) as screen colours and byte 2's high nibble as colour RAM. Every icon, panel and portrait goes through it. Y swaps with $7D through $486B, so one register indexes both the source and the screen. Entered at $4324 with $4A1E set, it draws only the colours and leaves the registers on the stack."
  },
  {
   "address": 17188,
   "type": "line",
   "text": "The colour pass, also entered from $4922 to colour a portrait whose bitmap is already drawn."
  },
  {
   "address": 17332,
   "type": "line",
   "text": "Draws the selection frame around the icon at cell X, Y whose size is in $49F1/$49F2: a rectangle of multicolour pixels through $456A, one or (when $543F bit 1 is set) three pixels further out, drawn twice in colour $45D4 = 3 and so on down to 0, which leaves it erased, so the frame flashes. Returns early when $543F is 0, leaving the frame drawn."
  },
  {
   "address": 17516,
   "type": "line",
   "text": "Draws a rounded panel border at cell X-1, Y-1, $49F1 cells wide and $49F2 high: the four corner glyphs from $4A40 ORed into the bitmap, the top and bottom edges as $55 pairs, the sides as $01 and $40 columns. Called for each box listed after a screen's icons."
  },
  {
   "address": 17597,
   "type": "line",
   "text": "ORs the 8-byte corner glyph ending at $4A40+X into the cell at ($2B)."
  },
  {
   "address": 17611,
   "type": "line",
   "text": "Draws a horizontal edge: $55 in two rows (from $7B) of each of $49F1 cells."
  },
  {
   "address": 17630,
   "type": "line",
   "text": "Draws a vertical edge: ORs $7B into all 8 rows of each of $49F2 cells, one cell row down each time."
  },
  {
   "address": 17651,
   "type": "line",
   "text": "Moves the bitmap pointer $2B one cell right (8 bytes)."
  },
  {
   "address": 17663,
   "type": "line",
   "text": "Moves the bitmap pointer $2B one cell row down ($140 bytes)."
  },
  {
   "address": 17677,
   "type": "line",
   "text": "Sets (carry set) or clears (carry clear) one pixel of the view-screen canvas, the four sprites at $0900-$09FF shown as one 48 x 42 picture: X is the column (0-47), Y the row (0-41). X from 24 moves to the right-hand sprite ($40 on), Y from 21 to the lower pair ($80 on); the byte is row x 3 + column / 8 and the bit comes from $49F4 or $49FC."
  },
  {
   "address": 17770,
   "type": "line",
   "text": "With carry clear, sets the multicolour pixel at X (0-159), Y (0-199) of the bitmap to the colour $45D4 (0-3) through the masks at $45DA and $45DE; with carry set, reads it, returning its colour (0-3) in A. Rows come from the tables at $1504/$151D."
  },
  {
   "address": 17876,
   "type": "line",
   "text": "The colour (0-3) $456A plots in."
  },
  {
   "address": 17877,
   "type": "line",
   "text": "Pixel row within the cell, kept by $456A."
  },
  {
   "address": 17878,
   "type": "line",
   "text": "The four colours as full bytes ($00, $55, $AA, $FF), masked to the pixel by $45DE."
  },
  {
   "address": 17882,
   "type": "line",
   "text": "Masks that keep everything but pixel 0-3 of a byte."
  },
  {
   "address": 17886,
   "type": "line",
   "text": "Masks that select pixel 0-3 of a byte."
  },
  {
   "address": 17890,
   "type": "line",
   "text": "Opens the iris on the view screen: clears circles of radius 0 to $12 out of the grey sprite canvas through $4698, so that the map drawn in the bitmap behind it shows through a growing round hole, with the step count and shift growing at radius 8 and $11 so the larger circles have no gaps; then sets $6C8C = 1 (the iris is open)."
  },
  {
   "address": 17983,
   "type": "line",
   "text": "For iris_open: one more halving of each step ($4729) and twice as many steps ($4728), so that the bigger circles have no gaps. iris_close undoes it through iris_coarser."
  },
  {
   "address": 17990,
   "type": "line",
   "text": "Closes the iris: sets the canvas's pixels again in circles from radius $13 down to 1 ($4A0E = 1), the reverse of $45E2, and sets $6C8C = 0."
  },
  {
   "address": 18065,
   "type": "line",
   "text": "For iris_close: one halving fewer for each step ($4729) and half as many steps ($4728), the reverse of iris_finer."
  },
  {
   "address": 18072,
   "type": "line",
   "text": "Clears (or with $4A0E set, sets) the canvas pixels on a circle of radius X around the canvas centre (24, 21), by the shift-and-add rotation on the 8.8 coordinates at $FB-$FE: x -= y >> k, then y += x >> k (s_46ED returns the shift negated), for $4728 steps, with k in $4729. Y is the fraction the across coordinate starts with: 0, or $80 for a circle half a pixel further out, and the iris routines alternate the two."
  },
  {
   "address": 18157,
   "type": "line",
   "text": "Returns, in $F7/$F8, minus the 16-bit value there shifted right by $4729, rounded toward zero: a positive value is shifted and then negated ($470D), a negative one negated, shifted and left positive. $0500 shifted by 3 gives $FF60."
  },
  {
   "address": 18193,
   "type": "line",
   "text": "Negates the 16-bit value $F7/$F8."
  },
  {
   "address": 18212,
   "type": "line",
   "text": "The radius being drawn."
  },
  {
   "address": 18213,
   "type": "line",
   "text": "The fraction each circle's across coordinate starts with, $00 or $80 in turn ($4613), so that every other circle is half a pixel larger."
  },
  {
   "address": 18214,
   "type": "line",
   "text": "Steps left in the circle."
  },
  {
   "address": 18215,
   "type": "line",
   "text": "Set while $46ED is shifting a negative value."
  },
  {
   "address": 18216,
   "type": "line",
   "text": "Steps in one circle: $33, doubled at radius 8 and $11."
  },
  {
   "address": 18217,
   "type": "line",
   "text": "The rotation's shift: 3, one more at radius 8 and $11."
  },
  {
   "address": 18218,
   "type": "line",
   "text": "An RTS no code reaches."
  },
  {
   "address": 18219,
   "type": "line",
   "text": "Prints the string at ($3D) at cell column X, row $7D, six-line glyphs from the font at $1400 (address $1400 + code x 6 through $4873). Codes: 0-$37 a glyph, $38 the end of the string, $39 a new line, $80 and up a word from the word list (the pointer at $81B1 + 2 x (code - $80)), which is printed in place and can itself hold words."
  },
  {
   "address": 18365,
   "type": "line",
   "text": "Clears the lower half of the screen, cell rows 13-24: zeroes the bitmap rows and sets the screen colours to $4A62 and colour RAM to 5 (green)."
  },
  {
   "address": 18435,
   "type": "line",
   "text": "Sets the screen pointers for cell column X, row Y: the bitmap byte in $2B/$2C (from the row tables at $1504/$151D, plus X x 8), the colour matrix byte in $2D/$2E ($0C00 + 40 Y + X) and the colour RAM byte in $2F/$30 ($D800 + 40 Y + X)."
  },
  {
   "address": 18496,
   "type": "line",
   "text": "Multiplies A by Y, eight bits by eight: the 16-bit product in A (low) and Y (high)."
  },
  {
   "address": 18539,
   "type": "line",
   "text": "Exchanges Y with $7D, keeping A. The drawing routines use it to run a source and a destination index in one register."
  },
  {
   "address": 18547,
   "type": "line",
   "text": "Points $3B/$3C at the glyph for code $4A0F: the font base $4A1F/$4A20 ($1400) plus six times the code."
  },
  {
   "address": 18583,
   "type": "line",
   "text": "Colours character A's status icon in the command panel, a block of 2 x 2 cells, with Y in both the colour matrix and colour RAM. The block's address low byte comes from $4A04 + A and is written into the operands of the two STAs below (the code rewrites itself); the four cell offsets come from $4A0A-$4A0D."
  },
  {
   "address": 18600,
   "type": "line",
   "text": "The low byte of the colour matrix STA's address, written from $4A04 for the character's icon."
  },
  {
   "address": 18603,
   "type": "line",
   "text": "The low byte of the colour RAM STA's address, written from $4A04 as well."
  },
  {
   "address": 18609,
   "type": "line",
   "text": "Puts the portrait of character $5436 on the right-hand monitor (cell column 28, row 2, 10 x 8 cells): blanks the area, clearing each cell's top line and rolling it down through $49A3; then, in seven passes, copies one pixel line of all 80 cells, line 7 first and line 1 last, into the top line of each cell and rolls the rows down a line, so the picture rolls on like a television; then colours it from the colour pointer through $4324. Line 0 of each cell is never copied: the monitor repeats line 1 there (live)."
  },
  {
   "address": 18851,
   "type": "line",
   "text": "Moves eight rows of the monitor down one bitmap line at a time, from line $7B down to $4A1C, after waiting for raster line $64: the picture rolls on like a television."
  },
  {
   "address": 18928,
   "type": "line",
   "text": "Which half of a three-byte colour pair the picture drawer is on."
  },
  {
   "address": 18929,
   "type": "line",
   "text": "Width of the picture or box being drawn, in bytes (cells x 8 while drawing) or cells."
  },
  {
   "address": 18930,
   "type": "line",
   "text": "Height of the picture or box, in cell rows."
  },
  {
   "address": 18932,
   "type": "line",
   "text": "The eight single-bit masks, left pixel first, for the canvas."
  },
  {
   "address": 18940,
   "type": "line",
   "text": "The eight masks that clear one bit."
  },
  {
   "address": 18948,
   "type": "line",
   "text": "The low byte of each character's status icon in the colour matrix ($0C29, $0CA1, $0C2C, $0CA4, $0C2F, $0CA7): the six icons in two rows of three at the panel's top left, columns 1, 4 and 7 of cell rows 1 and 4."
  },
  {
   "address": 18953,
   "type": "line",
   "text": "The sixth character's icon cell ($A7). $4897's loop reads its cell offsets as $4A09 + X with X from 4 down to 1, so the offsets are the four bytes after it."
  },
  {
   "address": 18954,
   "type": "line",
   "text": "The four cells of a status icon, read last first: +$29, +$28, +1, +0."
  },
  {
   "address": 18958,
   "type": "line",
   "text": "0 while the iris opens, clearing canvas pixels; 1 while it closes, setting them again."
  },
  {
   "address": 18959,
   "type": "line",
   "text": "The code of the glyph being printed."
  },
  {
   "address": 18960,
   "type": "line",
   "text": "Cleared by $45E2; nothing reads it."
  },
  {
   "address": 18963,
   "type": "line",
   "text": "Set to $14 by $45E2; nothing reads it."
  },
  {
   "address": 18965,
   "type": "line",
   "text": "Frame width in pixels."
  },
  {
   "address": 18966,
   "type": "line",
   "text": "Frame height in pixels."
  },
  {
   "address": 18967,
   "type": "line",
   "text": "Frame left edge, in pixels."
  },
  {
   "address": 18968,
   "type": "line",
   "text": "Frame top edge, in pixels."
  },
  {
   "address": 18970,
   "type": "line",
   "text": "How many words deep the printer is."
  },
  {
   "address": 18971,
   "type": "line",
   "text": "Roll start line."
  },
  {
   "address": 18972,
   "type": "line",
   "text": "Roll end line."
  },
  {
   "address": 18973,
   "type": "line",
   "text": "Line counter for the portrait roll."
  },
  {
   "address": 18974,
   "type": "line",
   "text": "Set while $42D9 is entered at $4324 for colours alone."
  },
  {
   "address": 18975,
   "type": "line",
   "text": "The font's base, $1400."
  },
  {
   "address": 18976,
   "type": "line",
   "text": "The font pointer's high byte."
  },
  {
   "address": 18977,
   "type": "line",
   "text": "Two pointers per portrait, its bitmap (10 x 8 cells, 640 bytes) and its packed colours (120 bytes), for portraits 0-7 (6 and 7 the same picture). $4A22 is the same table read one byte on."
  },
  {
   "address": 18978,
   "type": "line",
   "text": "The portrait table read one byte on, for the high byte of each pointer."
  },
  {
   "address": 19008,
   "type": "line",
   "text": "The portrait table's last byte ($F3, the high byte of $F315). The border code reads $4A40 + X with X from 1, so the corner glyphs start after it."
  },
  {
   "address": 19009,
   "type": "line",
   "text": "The four corner glyphs of a panel border, 8 bytes each ($4A41, $4A49, $4A51, $4A59), each read backwards from its last byte."
  },
  {
   "address": 19041,
   "type": "line",
   "text": "Set to 1 while the transporter routines close and open the iris again, then 0; nothing reads it."
  },
  {
   "address": 19042,
   "type": "line",
   "text": "The screen colour byte $47BD gives the lower panels."
  },
  {
   "address": 19043,
   "type": "line",
   "text": "Draws screen A (0-8, from the table at $789C) and makes it current ($5435): for each icon record (11 bytes: picture pointer, cell column and row, flags, text pointer, text column and row, handler) draws the picture through $42D9 and prints its text through $472B, until a record starting $FFFF; then draws each panel border listed after it (4 bytes: width, height, column, row, up to another $FFFF) through $446C. Leaves $543F = 3, or 0 when the screen has no borders."
  },
  {
   "address": 19159,
   "type": "line",
   "text": "Zoff V explodes: with the sprites off, for 256 frames sets the vertical and horizontal fine scroll from the bytes of the code at $4000 and $5000 (any byte, used as a random number) and flashes the border and background through the 16 colours at $5489, then puts the scroll back and falls into $4B35."
  },
  {
   "address": 19253,
   "type": "line",
   "text": "Ends what is on screen and goes to the start menu: closes the iris if it is open and shows portrait 6, sets $CF7F, clears the leave request $6932, drops the saved icon pointer if a two-step choice was under way, and jumps to $74B9."
  },
  {
   "address": 19300,
   "type": "line",
   "text": "The command loop every screen runs: clears $68B2 and the icon group $543E, then (at $4B6C) checks each frame for a reason to leave and, if none, tests the cursor against the current screen's icons. Leaves for the start menu when $6932 asks or the mission is over ($CA05 = 0, or $1F with every objective met), shakes the screen when Zoff V has been destroyed without being captured ($CA05 bits 2-3 = %01), returns to the team screen when the character on show is no longer able to act, and redraws the team screen when a character has died ($68B2). Then $4BC4 tests the icons in turn."
  },
  {
   "address": 19308,
   "type": "line",
   "text": "The loop's entry for callers that wait for an icon inside a two-step choice ($4C9C, $7378, $7418): the same tests as $4B64 without clearing the group."
  },
  {
   "address": 19378,
   "type": "line",
   "text": "A door has just been opened ($CF82, set by the lock-picking in the interrupt): with the view screen open, redraw the door icons through $5417, then clear the flag."
  },
  {
   "address": 19396,
   "type": "line",
   "text": "Tests the icon at ($37) against the cursor cell ($76 row, $77 column). It is skipped unless flag bit 0 (enabled) is set. An icon without flag bit 1 must also carry every bit of the mask at $545F for the choice under way ($543E): $05 when there is none, so a plain icon needs bit 2 as well as bit 0. An icon with flag bit 1 can be chosen only when no choice is under way. Inside the icon's rectangle, draws the flashing frame through $43B4 and waits; fire (cleared $78) selects it. A selected icon that has a text label writes $DE to the sound driver's byte $1601. An icon with flag bit 1 starts a two-step choice: its flags' bits 2-7 become the group, the frame stays, and the loop runs again for the second icon (an object, a character, a direction), whose handler records the choice and returns; the first icon's handler then runs, unless $5439 cancels. Any other icon's handler runs at once through the JMP at $4CDC, whose operand is written here."
  },
  {
   "address": 19677,
   "type": "line",
   "text": "The operand of the JMP at $4CDC, the chosen icon's handler: low byte."
  },
  {
   "address": 19678,
   "type": "line",
   "text": "The chosen icon's handler: high byte."
  },
  {
   "address": 19679,
   "type": "line",
   "text": "Next icon: $53D7 steps $37 on; at the list's end the loop starts again."
  },
  {
   "address": 19690,
   "type": "line",
   "text": "Points $37/$38 at the first icon record of the current screen $5435, through the table at $789C."
  },
  {
   "address": 19706,
   "type": "line",
   "text": "Fills the left-hand column of the objects screen (screen 4, icon records from $5482) with the objects lying in the current location $5437, from the 7-byte object records at ($CD96), skipping the first $5440 of them for paging. Each icon gets the object's picture and the flag bits that let a command choose it: bit 3 (Pick-up) when object flag 3 is clear and the object weighs less than 255 minus the weight the character carries (entity byte 7), bit 5 (Ready for use) when object flag 1 is set, bit 6 (Activate) when object flag 2 is set, each with bit 0 (enabled). Objects 0-2, the two transporter beacons and the transporter, get no flags unless the character is 2, Manto. $544F records which object each icon shows. Eight icons hold objects; the ninth is the page arrow ($5480, flags $FD) when more objects follow or a later page is showing, and a blank otherwise. A skip that runs past the last object starts again at the first."
  },
  {
   "address": 20087,
   "type": "line",
   "text": "The same for the middle column (five icons from $5484, a sixth for the page arrow): the objects carried by character $5436 (object flag 0 set, byte 1 the carrier), skipping $5441 of them. Each gets bit 4 (Drop), bit 5 (Ready for use) when object flag 1 is set, and bit 6 (Activate) when object flag 2 is set and it is not object 0 or 1, the beacons. $5449 records them. First puts the picture of the object held ready (entity byte 8, 0 for none) into the icon record at $7A44, below the Ready icon."
  },
  {
   "address": 20476,
   "type": "line",
   "text": "Fills the battle screen's location scan (screen 5, icon records from $7E22) with the entities standing in location $5446 that are alive (entity flag 1 clear), starting $5442 records into the entity table: each icon shows the entity's figure from the table at $6CFE. $5457 records which entity is in each, $FF for an empty icon. Eight icons hold entities; the ninth is the page arrow when the list was full, or a blank."
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Not a table: shake_screen reads the bytes from here (LDA $5000,X at $4AFF) as random numbers, and this address is the last byte of the STA at $4FFE. The rest of list_people_here: walks the entity records from the page start, putting each living entity standing in $5446 into the next icon, until eight are shown or the fiftieth record is passed; blank icons fill the rest."
  },
  {
   "address": 20704,
   "type": "line",
   "text": "For the transporter: fills the objects screen's left column with the entities standing in beacon 1's location (object 0's byte 1, $CD99), their figures and flags $81 (group bit 7, for choosing whom to beam), skipping $5444 of them. If the beacon is being carried ($CD98 bit 0) sets $5488 and leaves the icons blank. $544F records the entities."
  },
  {
   "address": 20966,
   "type": "line",
   "text": "The same for the middle column (five icons) and beacon 2 (object 1, its location $CDA0), with $5445 for paging, $5449 for the record of entities, and $5488 if that beacon is carried."
  },
  {
   "address": 21228,
   "type": "line",
   "text": "Clears the flags of the eight left-hand and five middle icons of the objects screen, so that none can be chosen (used when a transporter beacon is carried)."
  },
  {
   "address": 21277,
   "type": "line",
   "text": "Puts the three destinations of Manto's ballistic control into the objects screen's left-hand icons, from the table at $5465 (picture pointer and flags for each icon) until the icon list's end."
  },
  {
   "address": 21318,
   "type": "line",
   "text": "Unused: nothing calls it except $717F, which nothing reaches. Fills the battle screen's icons from the character's route list (entity bytes 10-16) with each step's figure from $6CFE."
  },
  {
   "address": 21405,
   "type": "line",
   "text": "Steps $2D/$2E to the next 7-byte object record and counts it in $5438; returns carry set at the list's $FFFF end."
  },
  {
   "address": 21438,
   "type": "line",
   "text": "Steps $2D/$2E to the next 18-byte entity record and counts it in $5447; returns carry set after the fiftieth."
  },
  {
   "address": 21463,
   "type": "line",
   "text": "Steps $37/$38 to the next 11-byte icon record; returns carry set when it reaches the $FFFF that ends the list."
  },
  {
   "address": 21493,
   "type": "line",
   "text": "Converts the cursor sprite's position into a cell: row ($D001 - $20) / 8 into $76, column ((X with its ninth bit) / 2 - 2) / 4 into $77, in multicolour cells."
  },
  {
   "address": 21527,
   "type": "line",
   "text": "After a lock has been picked ($CF82): every direction icon of screen 2 whose flags have bit 3 set (an exit shown locked) gets flags 5, so it can be chosen, and its twin on screen 5 flags $39."
  },
  {
   "address": 21557,
   "type": "line",
   "text": "The current screen, 0-8."
  },
  {
   "address": 21558,
   "type": "line",
   "text": "The character on show, 0-5 (6 when none)."
  },
  {
   "address": 21559,
   "type": "line",
   "text": "The location of the character on show."
  },
  {
   "address": 21560,
   "type": "line",
   "text": "The slot (object, entity or direction) the second step of a two-step choice picked."
  },
  {
   "address": 21561,
   "type": "line",
   "text": "Set by a handler to cancel the two-step choice under way."
  },
  {
   "address": 21562,
   "type": "line",
   "text": "Set by a handler (a page arrow) to keep the second step going."
  },
  {
   "address": 21563,
   "type": "line",
   "text": "The first icon's width, kept while the second is chosen."
  },
  {
   "address": 21564,
   "type": "line",
   "text": "The first icon's height, kept while the second is chosen."
  },
  {
   "address": 21565,
   "type": "line",
   "text": "Unused: the byte after the first icon's kept height that nothing reads or writes."
  },
  {
   "address": 21566,
   "type": "line",
   "text": "The group of the two-step choice under way, 0 when none."
  },
  {
   "address": 21567,
   "type": "line",
   "text": "How $43B4 draws the frame: 0 drawn and left, 1 flashed once, 3 the large frame."
  },
  {
   "address": 21568,
   "type": "line",
   "text": "How many objects in the location the list skips, for paging."
  },
  {
   "address": 21569,
   "type": "line",
   "text": "How many carried objects the list skips."
  },
  {
   "address": 21570,
   "type": "line",
   "text": "How many entity records the location scan skips, for paging."
  },
  {
   "address": 21571,
   "type": "line",
   "text": "Counts the records the list routines pass; nothing reads it."
  },
  {
   "address": 21572,
   "type": "line",
   "text": "Paging for the first transporter list."
  },
  {
   "address": 21573,
   "type": "line",
   "text": "Paging for the second transporter list."
  },
  {
   "address": 21574,
   "type": "line",
   "text": "The location the battle screen's scan shows."
  },
  {
   "address": 21575,
   "type": "line",
   "text": "The entity the list routines are on."
  },
  {
   "address": 21576,
   "type": "line",
   "text": "The icon the list routines are filling."
  },
  {
   "address": 21577,
   "type": "line",
   "text": "Which object each of the five carried icons shows."
  },
  {
   "address": 21583,
   "type": "line",
   "text": "Which object (or, for the transporter, which entity) each of the eight left-hand icons shows."
  },
  {
   "address": 21591,
   "type": "line",
   "text": "Which entity each of the eight scan icons shows, $FF for none."
  },
  {
   "address": 21599,
   "type": "line",
   "text": "The flag bits an icon needs, by the two-step choice under way ($543E): $05 (bits 0 and 2) when none, then $09, $11, $21, $41 and $81 for groups 1 to 5. Six bytes; the interrupt's search of the eight scan slots at $5457 reads one byte too far, into the first of them ($5ADC)."
  },
  {
   "address": 21605,
   "type": "line",
   "text": "The left-hand icons of the ballistic control, 3 bytes each (picture pointer, icon flags): the three destination pictures $FB18, $FBB4 and $FB66 (flags $81) in the second, fifth and eighth icons, the blank picture $8D34 in the rest."
  },
  {
   "address": 21632,
   "type": "line",
   "text": "The picture of the \"more\" arrow, $E88C."
  },
  {
   "address": 21633,
   "type": "line",
   "text": "The more arrow pointer's high byte."
  },
  {
   "address": 21634,
   "type": "line",
   "text": "The objects screen's first left-hand icon record, $7AB2."
  },
  {
   "address": 21635,
   "type": "line",
   "text": "The left-hand icons pointer's high byte."
  },
  {
   "address": 21636,
   "type": "line",
   "text": "Its first middle icon record, $7A70."
  },
  {
   "address": 21637,
   "type": "line",
   "text": "The middle icons pointer's high byte."
  },
  {
   "address": 21638,
   "type": "line",
   "text": "255 minus the weight the character carries, while the objects are listed."
  },
  {
   "address": 21639,
   "type": "line",
   "text": "Unused: the byte after weight_left that nothing reads or writes."
  },
  {
   "address": 21640,
   "type": "line",
   "text": "Set when a transporter beacon is being carried, so its list is blank."
  },
  {
   "address": 21641,
   "type": "line",
   "text": "The 16 colours the explosion flashes."
  },
  {
   "address": 21657,
   "type": "line",
   "text": "The raster interrupt's address, $549B."
  },
  {
   "address": 21658,
   "type": "line",
   "text": "The interrupt pointer's high byte."
  },
  {
   "address": 21659,
   "type": "line",
   "text": "The raster interrupt, line $F8, every frame. Saves the registers and every zero-page and drawing variable the main program uses, so that it can draw on the screen itself, then jumps to the chosen input handler (operand written at $54EE), which moves the cursor and ends at $5754 for the game's own frame."
  },
  {
   "address": 21742,
   "type": "line",
   "text": "The input handler's jump; its operand is set from $42C6 or $42D4."
  },
  {
   "address": 21743,
   "type": "line",
   "text": "The operand of the JMP at $54EE, low byte: the input handler. It is the one chosen on the control menu, written from input_handlers at $425F, or input_demo ($5570), written at $4221 when the demonstration starts."
  },
  {
   "address": 21744,
   "type": "line",
   "text": "The input handler: high byte."
  },
  {
   "address": 21745,
   "type": "line",
   "text": "Light pen: the cursor follows the pen's latch ($D013, $D014), and any key clears $78 (fire)."
  },
  {
   "address": 21798,
   "type": "line",
   "text": "Analog joystick (paddles): the cursor's row from paddle 1 ($D419), its column from paddle 2 ($D41A); the button on joystick line 1 clears $78."
  },
  {
   "address": 21854,
   "type": "line",
   "text": "Unused: nothing reaches it. Limits A to the cursor's rows $9A-$E6 and stores it as the cursor's Y."
  },
  {
   "address": 21872,
   "type": "line",
   "text": "The demonstration's input: any key ends the demonstration ($6932 = 1, the script restarts at entry $6C). Otherwise the cursor walks one pixel a frame towards the next point of the demo script at $1571 (X in $692E, Y in $692F); there it waits $78 frames with fire pressed ($6933), then takes the next point, every fourth point starting the \"Shadowfire demonstration\" message again. A point with Y = $FF would end the script ($6932), but none has one: the script ends by clicking Quit on the team screen and then on the start menu, which goes back to the control menu (live)."
  },
  {
   "address": 22060,
   "type": "line",
   "text": "Digital joystick in port 1, read through $DC01 (entered with X = 1; the keyboard entry at $5630 uses X = 2). Each direction held moves the cursor faster, its speed ($68E1 across, $68E2 down) rising from 2 to 6 every 10 or 20 frames, and the cursor wraps from one edge of the panel area to the other. Fire clears $78."
  },
  {
   "address": 22064,
   "type": "line",
   "text": "Keyboard control: the same as the joystick with X = 2, so that the masks at $6825-$682D pick keyboard row lines instead of the joystick's bits."
  },
  {
   "address": 22300,
   "type": "line",
   "text": "Keeps the cursor inside rows $9A-$E6 and columns $18-$140, for the paddles and light pen."
  },
  {
   "address": 22356,
   "type": "line",
   "text": "The game's own part of the interrupt, every frame after the input handler. Plays a frame of music ($1606). While the game is not running ($68B0 set: the menus and the start) it skips the status bars, the entity's second of simulation and the clock's roll, and jumps to the ticker ($5FEF), which goes on as in play to the view map's cell, the entity's list of reachable locations and the step to the next entity; after the fiftieth entity it stops there. Otherwise, in order: grows or shrinks the status screen's bars one step, runs one entity's second of simulation (entity $66D1, record at ($45): one of the fifty each frame, so each one once a second), rolls the clock digits, scrolls the ticker, updates one cell of the view screen's map, rebuilds the entity's list of reachable locations, and after the fiftieth entity counts down the time lock, the self-destruct and the mission clock. Ends by restoring everything at $637E."
  },
  {
   "address": 22369,
   "type": "line",
   "text": "The status screen's five bars, one step each frame while $66CC says the screen shows them ($66CD set: only the two weight bars, on the objects screen). Bar 0 is strength, (+4) x the character's strength factor at $CF85 / 256; bar 1 agility, the average of the base at $CFB7 and +5; bar 2 stamina (+6); bar 3 the weight carried (+7), drawn red; bar 4 the weight again, or the strength figure when that is lower, drawn green over bar 3. A dead character's bars all fall to 0."
  },
  {
   "address": 22510,
   "type": "line",
   "text": "Bar X: half its value is the length it should have, $66BE,x the length it has. One step longer draws a column of its colour from $66C3; one step shorter draws colour 0, or bar 3's red where bar 4 retreats over it. Rows from $66AA/$66AF (upper) and $66B4/$66B9 (lower)."
  },
  {
   "address": 22593,
   "type": "line",
   "text": "The time lock ($CF83 seconds left, set by the time delay unit): every entity but the one in $CF84 is frozen, its frame going straight to the view screen at $60CF."
  },
  {
   "address": 22609,
   "type": "line",
   "text": "One entity's second. A dead entity (status bit 1) does nothing."
  },
  {
   "address": 22620,
   "type": "line",
   "text": "Enemies $08-$25 that are neither fighting nor retreating look into every location they can reach (+10 onwards): any living team member there puts them into combat (status 8, defending). Entities $26-$31 never look; Kryxix and Zoff are handled at $5D93."
  },
  {
   "address": 22678,
   "type": "line",
   "text": "A team member's second. Colours the status icon from $68B7 by status (white idle, blue moving, black dead, yellow retreating, orange defending, purple attacking, green picking a lock), and sets the team screen icon's flag bit 0 (enabled), the icon records at $78AE, unless the character is moving or dead (status bits 0-1)."
  },
  {
   "address": 22731,
   "type": "line",
   "text": "Strength below $80: on odd seconds the heartbeat sound ($1602 = $0F) and the status icon flashes grey ($BB), or black below $40."
  },
  {
   "address": 22776,
   "type": "line",
   "text": "Recovery. (255 - strength) x stamina / 256 is added to the strength fraction at $68FC: the weaker the character and the more stamina, the faster. It is halved while defending and quartered while attacking or retreating. Each time the fraction overflows, strength rises by 1 (to at most $FF), and every 32nd such point costs a point of stamina through the fraction at $CFC3."
  },
  {
   "address": 22864,
   "type": "line",
   "text": "Load against strength: the limit is strength x $CF85 / 256. Over it, agility (+5) falls each second by the excess / 16, its remainder taken from the fraction at $CFBD (the four low bits, gathered in reverse order by the LSR/ROL pairs), and not below 0."
  },
  {
   "address": 22958,
   "type": "line",
   "text": "Under the limit: with P = (limit - load) x stamina, agility (+5) rises each second by P / 4096 in whole points, to at most $FF, and bits 8-11 of P, reversed by the LSR/ROL pairs, go into the fraction at $CFBD (at most 15/256 of a point), which carries into agility when it overflows. Stamina is charged through $CFC3, as recovery charges it, in a second whose fraction bits are not all 0: the BEQ at $59D4 tests the last ROL, whether or not a whole point was gained."
  },
  {
   "address": 23048,
   "type": "line",
   "text": "Picking a lock (status $10): the door's counter at $CFC9 + $CF81 falls by 8 a second, from $FF, so about 32 seconds. When it passes 0 the door is open: the counter is set to 0, the character goes idle, $CF82 tells the command loop to redraw the doors, and \"SEVRINA HAS OPENED THE DOOR\" ($7F63) is queued, the name fixed in the text."
  },
  {
   "address": 23096,
   "type": "line",
   "text": "Moving (status bit 0). A team member pays a point of strength every fourth second of walking, through the fraction at $68FC, and dies when it reaches 0."
  },
  {
   "address": 23144,
   "type": "line",
   "text": "Anyone else whose destination is $A3, the Enigma Force's attack craft, has been beamed aboard and leaves play through $64CD: Kryxix queues \"AMBASSADOR KRYXIX HAS BEEN RESCUED\" and sets $CA05 bit 1, Zoff \"ZOFF HAS BEEN CAPTURED\" and bit 4."
  },
  {
   "address": 23206,
   "type": "line",
   "text": "The step countdown (+1) falls by 1 a second; at 0 the entity arrives: countdown 1, status 0 (idle)."
  },
  {
   "address": 23230,
   "type": "line",
   "text": "With the battle screen's location scan on show ($8189), an entity arriving at the scanned location $5446 takes the first empty slot of the eight (its figure drawn in the icon), and one leaving it empties its slot (the blank picture $8D32)."
  },
  {
   "address": 23258,
   "type": "line",
   "text": "Leaving the scanned location: find the entity's slot. The loop runs to nine, so it also tests $545F, the first icon-group mask, which holds 5: Torik, not on show, would overwrite that mask with $FF."
  },
  {
   "address": 23314,
   "type": "line",
   "text": "Arriving: the first slot holding $FF. When the slot found is the ninth ($545F, which only a $FF there could give), the page arrow is drawn after it; filling the eighth slot, the last real one, draws no arrow."
  },
  {
   "address": 23408,
   "type": "line",
   "text": "A team member's arrival at any of the six locations in $68EA runs that location's routine from $68F0, through the JSR at $5B91 whose operand is written here."
  },
  {
   "address": 23442,
   "type": "line",
   "text": "The operand of the JSR at $5B91, written from $68F0 before each call."
  },
  {
   "address": 23443,
   "type": "line",
   "text": "The high byte of the location routine's address, from $68F1."
  },
  {
   "address": 23450,
   "type": "line",
   "text": "Arrived: the location (+2) becomes the destination (+3). A team member who walks into Kryxix's location while he is alive and not yet following queues \"<NAME> HAS LOCATED AMBASSADOR KRYXIX\" (the name token at $8098); if it is Zark, also \"AMBASSADOR KRYXIX FOLLOWS ZARK\", and $CF80 = 1 from then on."
  },
  {
   "address": 23526,
   "type": "line",
   "text": "Combat, for an entity attacking ($0C), defending (8) or retreating (4-7); Kryxix and Zoff never fight. $68E0 keeps the status's combat bits."
  },
  {
   "address": 23551,
   "type": "line",
   "text": "The damage dealt: strength x $CF85 / 256. An enemy hits the six team members with it, the same in its own location and in each adjacent one. A team member hits entities 8-$31 with the weapon held ready (+8): $CF15 gives its strength, the high nibble meant for the same location and the low nibble for adjacent ones, $20 being bare hands. Each nibble x 16 x the damage / 256 goes into $68D7 (same location) and $68D8-$68DE (the seven adjacent), but only $68D7 is read ($5CB3): the high nibble decides the damage in every location in reach. Kryxix and Zoff (6 and 7) are on neither list, so nobody can harm them."
  },
  {
   "address": 23687,
   "type": "line",
   "text": "For each living target standing in one of the attacker's reachable locations (+10 onwards; the first is its own): the same-location damage ($68D7: X stays 0 through the loop) x 4, or x 8 when attacking into the attacker's own destination, comes off the target's strength (+4) and its fraction at $68FC. Strength below 0 kills it through $64CD."
  },
  {
   "address": 23832,
   "type": "line",
   "text": "A target that was idle, moving or picking a lock turns to defend (status 8); a team member hit so queues \"<NAME> UNDER ATTACK\", one of the six token messages from $8179."
  },
  {
   "address": 23892,
   "type": "line",
   "text": "After the round: a defender or retreater with nobody in range goes idle. An attacker with nobody left at its destination advances: defending if it is already there, otherwise moving on (status 1, or 5 while anyone is still in range). A moving entity takes the moving branch at $5A38 and does not fight until it arrives."
  },
  {
   "address": 23955,
   "type": "line",
   "text": "Everyone but the team, outside combat. An enemy with a team member in its own location turns to defend. Kryxix, once he follows ($CF80), walks to Zark's location whenever Zark is elsewhere (a step of 1 second)."
  },
  {
   "address": 24037,
   "type": "line",
   "text": "Patrols, for an entity whose +7 has bit 7 set. +8 picks the patrol script from the table at $BDC0, +7 holds the position in it (bits 0-5) and the direction (bit 6 set: walking it backwards). A script is a length byte, then pairs of a time and a location."
  },
  {
   "address": 24048,
   "type": "line",
   "text": "Waits out the step countdown (+1) first."
  },
  {
   "address": 24098,
   "type": "line",
   "text": "Backwards: the next location is the one two bytes back, and the time is the current pair's time as it stands, where forwards it is multiplied by 4: a patrol walks back four times as fast as it came. At the start of the script, a chained patrol (+5 bit 7) moves to its next script through $5ED0, another turns round."
  },
  {
   "address": 24135,
   "type": "line",
   "text": "Forwards: the next pair, time x 4. At the end of the script, a chained patrol moves on through $5ED0; Zoff, at the end of his, has escaped: he leaves play through $64CD, \"ZOFF HAS ESCAPED\" is queued, six cells of the ship's map at $85CD-$85CF and $85ED-$85EF become $96, and $68B3 = 1, a flag nothing reads. Anyone else turns round."
  },
  {
   "address": 24234,
   "type": "line",
   "text": "Takes the step: +7 = the position and direction, the destination (+3) the pair's location, the step countdown (+1) its time, and status bit 0 (moving)."
  },
  {
   "address": 24272,
   "type": "line",
   "text": "Chooses a chained patrol's next script. +6 (bits 0-6) picks the chain from the table at $BF54, +5 holds the position in it (bits 0-5) and its direction (bit 6). A chain is a length byte, then script numbers; bit 6 of a number reverses the script. The chain is walked forwards and backwards in turn. The new script number goes into +8, and +7 starts it at its beginning forwards ($80), or at its end backwards (its length - 2, with bits 6-7 set), as bit 6 of the entry and the chain's direction (XOR, in $682F) say."
  },
  {
   "address": 24441,
   "type": "line",
   "text": "The time lock holds everything else here."
  },
  {
   "address": 24449,
   "type": "line",
   "text": "The rolling clock: during the frames of entities 1-8, each digit cell moving to a new value scrolls down one pixel row and takes the new digit's next row from $6804/$680C/$6814/$681C, so the digit rolls in over eight frames. The seconds' units ($2918) always roll; $68B1 bits 0, 1 and 2 roll the seconds' tens ($2910), the minutes' units ($2900) and the minutes' tens ($28F8) when they change too."
  },
  {
   "address": 24559,
   "type": "line",
   "text": "The message ticker, every fourth frame: scrolls the strip at $2B48 two bits left ($63D7 twice). While a message runs, the looping voice-1 sound is $3E and the cell at $D91B flashes through the colours at $68A8; when it ends, the sound is $30 (unless the heartbeat $0F is on) and the cell goes black."
  },
  {
   "address": 24628,
   "type": "line",
   "text": "Every eighth shift, the next character: from the buffer at $66D8 ($66CF the position), or, at the end of a message, the next one queued at $67D8/$67E8 (read index $67F9, write index $67FA, sixteen entries). It is expanded into the buffer first: tokens of $80 and over are words from the table at $81B1, nested through the stack ($67F8 the depth), $39 becomes a space ($24), and $38 ends a message or a word. With nothing queued, spaces scroll."
  },
  {
   "address": 24765,
   "type": "line",
   "text": "The character's six glyph rows go into $67FB+2 to +7, for the scroll to shift in."
  },
  {
   "address": 24783,
   "type": "line",
   "text": "The view screen's map, while it is open ($6C8C): one of sixteen location cells a frame (entity numbers $00-$1F); the seventeenth of the tables, two right and two down, is never visited. In frames $10-$1F the cell's location ($6830) is searched for the next living entity after the last one shown ($6896), in turn round all fifty, and that entity's map icon (the first pointer of its four bytes at $6CFE) is drawn at the cell's column $6852 and row $6863. In frames $00-$0F a cell whose occupant changed is blanked ($8D08): so each icon flashes, and a location with several takes them in turn."
  },
  {
   "address": 24983,
   "type": "line",
   "text": "Rebuilds the entity's reachable locations (+10 to +17) through $65EA, then steps to the next entity; after the fiftieth, back to the first."
  },
  {
   "address": 25010,
   "type": "line",
   "text": "Once a second, after the fiftieth entity, when the game is running: the time lock counts down, and while it holds nothing else does."
  },
  {
   "address": 25041,
   "type": "line",
   "text": "The self-destruct, armed ($CA06): $CA07 counts down the seconds. At 0: the music stops, $CA05 bit 2 is set, \"ZOFF V HAS BEEN DESTROYED\" is queued, the kill count $CF67/$CF68 is set to 42, and the first eight entities (the team, Kryxix and Zoff) die through kill_entity unless they are aboard the attack craft ($A3) or dead already. kill_entity counts Kryxix and Zoff as they die, so the count ends at 44 when both were alive aboard Zoff V. Then bit 3 is cleared, so the ship counts as destroyed, not captured."
  },
  {
   "address": 25134,
   "type": "line",
   "text": "At 240, 180, 120 and 60 seconds ($68E6-$68E9): \"4 MINUTES UNTIL DETONATION\" (the digit written into the message at $80F2), down to \"1 MINUTE UNTIL DETONATION\"."
  },
  {
   "address": 25178,
   "type": "line",
   "text": "The mission clock, minutes and seconds in four digits at $CA03, $CA02, $CA01 and $CA00. Counting down, $68B1 records which digits changed for the rolling display."
  },
  {
   "address": 25247,
   "type": "line",
   "text": "Past 00:00 the clock counts up from 00:01 ($CA04 = 1): Kryxix, unless already dead, is executed (status 2, \"AMBASSADOR KRYXIX HAS BEEN EXECUTED\"), and \"WAR HAS BEEN DECLARED BY THE REPUBLIC\" is queued."
  },
  {
   "address": 25301,
   "type": "line",
   "text": "Counting up; at 99:59 it stops at $6473."
  },
  {
   "address": 25374,
   "type": "line",
   "text": "The four digits' glyphs, upside down (row 7 first), into $6804, $680C, $6814 and $681C for the rolling display."
  },
  {
   "address": 25470,
   "type": "line",
   "text": "Puts back every variable the interrupt saved, acknowledges the raster interrupt and returns."
  },
  {
   "address": 25559,
   "type": "line",
   "text": "Shifts the ticker strip one bit left: for each glyph row 2-7, the next bit from $67FB+row goes into the right of twelve cells at $2B48+row, eight bytes apart. Counts the shift in $66D0."
  },
  {
   "address": 25604,
   "type": "line",
   "text": "Unused: nothing calls it. Returns carry set when location A lies inside the rectangle from ($6C92, $6C93) to ($6C94, $6C95), reading the location's coordinates through the tables at $B1E4 and, for locations $80 and over, $B248 rather than the $B2E4 the rest of the game uses. $6C94 and $6C95 are never written. Probably an earlier way of choosing what the view screen's map shows."
  },
  {
   "address": 25667,
   "type": "line",
   "text": "Unused: nothing calls it. Draws the picture at ($31) at the map cell of the location record at ($2D), two cells per step from column $0F and row 1 relative to the corner ($6C96, $6C97), except at the centre cell (column $13, row 5)."
  },
  {
   "address": 25702,
   "type": "line",
   "text": "Y = X x 11, the offset of icon record X in a screen's list."
  },
  {
   "address": 25715,
   "type": "line",
   "text": "Counting up past 99:59: the minutes' tens digit has reached 10. Sets the clock counting down again ($CA04 = 0) and leaves the digits undrawn, so the next second shows 99:59 and the countdown starts over."
  },
  {
   "address": 25723,
   "type": "line",
   "text": "Queues the message at A (low) and Y (high) for the ticker: into $67D8/$67E8 at the write index $67FA, which wraps after 16. Nothing checks for a full queue: sixteen messages waiting at once would bring the write index round to the read index, and the queue would look empty."
  },
  {
   "address": 25749,
   "type": "line",
   "text": "Draws one step of bar X in colour A (0-3): at the bar's length $66BE,x, the pixel (length / 2) AND 3 of cell (length AND $F8) is set to the colour's bit pattern (pixel_keep, pixel_mask, colour_bits from plot_pixel), the same byte into all eight rows of the upper cell at ($2B) and the lower one at ($2D)."
  },
  {
   "address": 25805,
   "type": "line",
   "text": "Entity $66D1, record at ($45), leaves play: killed, or beamed aboard the attack craft, or escaped. A team member's status icon goes black, the team screen icon becomes the picture at ($FF2E), or at ($8D82) for Manto and Maul, and is disabled; $68B2 = 1 redraws the team screen; \"<NAME> HAS BEEN ELIMINATED\" is queued (the name token in $7F65) unless Zoff V has been destroyed; the survivors' count $CF4C falls, and at 0 $CA05 bit 0 is cleared, which ends the mission."
  },
  {
   "address": 25922,
   "type": "line",
   "text": "Anyone else adds one to the count of enemies killed or captured, two decimal digits in $CF67 (tens) and $CF68 (units), so Kryxix rescued and Zoff captured or escaped count too. When the count reaches 44, $CA05 gets bits 2 and 3: Zoff V captured. Kryxix's execution ($62BB) sets his status without coming here, so after it kills alone reach only 43; the self-destruct sets the count to 42 before Kryxix and Zoff die."
  },
  {
   "address": 25962,
   "type": "line",
   "text": "Every object the entity carried (object flag bit 0 set, +1 its number) is dropped where it stands: +1 becomes the location and bit 0 is cleared. Then the entity's status becomes 2, dead."
  },
  {
   "address": 26040,
   "type": "line",
   "text": "Returns carry set when a living member of the team stands in location A."
  },
  {
   "address": 26090,
   "type": "line",
   "text": "Rebuilds +10 to +17 of the entity at ($45): +10 is its own location, then the destination of each exit of that location whose door is open or absent (the door number in bits 3-7 of the exit's second byte, open when $CFC9 holds 0 for it); $FF fills the rest. The exits come from the location record (through $B1E4, or $B2E4 for $80 and over): its third byte is a mask with a bit for each exit, then two bytes for each. Y swaps through $486B between the two records."
  },
  {
   "address": 26210,
   "type": "line",
   "text": "A team member has reached location $4E: Zoff (entity 7) starts his patrol, +7 bit 7."
  },
  {
   "address": 26219,
   "type": "line",
   "text": "Location $41: entities 11 to 18 start patrolling, +7 = $80 each."
  },
  {
   "address": 26237,
   "type": "line",
   "text": "Location $2E: entity 8 starts patrol script $16 from its beginning."
  },
  {
   "address": 26248,
   "type": "line",
   "text": "Location $4C: entity 8 starts patrol script $17."
  },
  {
   "address": 26259,
   "type": "line",
   "text": "Location $4F: entity 9 starts patrol script $18."
  },
  {
   "address": 26270,
   "type": "line",
   "text": "Location $2F: entity 9 starts patrol script $19."
  },
  {
   "address": 26281,
   "type": "line",
   "text": "An RTS nothing reaches, after trigger_9b's own."
  },
  {
   "address": 26282,
   "type": "line",
   "text": "The five status bars' upper cell rows: low bytes here, high bytes at $66AF ($31A0 strength, $3560 agility, $3920 stamina, $3CE0 twice for the two weight bars, which share a row)."
  },
  {
   "address": 26287,
   "type": "line",
   "text": "High bytes of bar_rows."
  },
  {
   "address": 26292,
   "type": "line",
   "text": "The bars' lower cell rows, $140 below: low bytes here, high bytes at $66B9."
  },
  {
   "address": 26297,
   "type": "line",
   "text": "High bytes of bar_rows_lower. Its last byte, $66BD, is also read as bar_length - 1 when bar 4 asks for bar 3's length."
  },
  {
   "address": 26301,
   "type": "line",
   "text": "bar_rows_lower's last high byte. The bar code indexes bar_length from 1, so its STA $66BD,X (X = 5 down to 1) and CMP $66BD,X land on $66BE-$66C2, never here."
  },
  {
   "address": 26302,
   "type": "line",
   "text": "The length each of the five bars has on screen, in half-pixels."
  },
  {
   "address": 26305,
   "type": "line",
   "text": "Bar 3's length, the red weight bar."
  },
  {
   "address": 26306,
   "type": "line",
   "text": "Bar 4's length, the green weight bar."
  },
  {
   "address": 26307,
   "type": "line",
   "text": "The bars' colours: 3 for strength, agility, stamina and the green weight bar, 1 for the red."
  },
  {
   "address": 26312,
   "type": "line",
   "text": "The pixel within the cell for bar_step."
  },
  {
   "address": 26313,
   "type": "line",
   "text": "The colour for bar_step."
  },
  {
   "address": 26314,
   "type": "line",
   "text": "Bar 0's value, strength x $CF85 / 256: also the load limit."
  },
  {
   "address": 26315,
   "type": "line",
   "text": "Bar 1's value."
  },
  {
   "address": 26316,
   "type": "line",
   "text": "Set while the screen on show has the bars (the status screen, and the objects screen's weight bar)."
  },
  {
   "address": 26317,
   "type": "line",
   "text": "Set on the objects screen: only bars 3 and 4 are drawn."
  },
  {
   "address": 26318,
   "type": "line",
   "text": "Unused: the byte between the bar flags and the ticker's position that nothing refers to."
  },
  {
   "address": 26319,
   "type": "line",
   "text": "The position in the ticker's buffer at $66D8."
  },
  {
   "address": 26320,
   "type": "line",
   "text": "Counts the ticker's one-bit shifts: a new character every eight, and the colour of the flashing light."
  },
  {
   "address": 26321,
   "type": "line",
   "text": "The entity whose second the interrupt is running, 0-49; also counts the frames of each second."
  },
  {
   "address": 26322,
   "type": "line",
   "text": "The glyph row ticker_shift is on."
  },
  {
   "address": 26323,
   "type": "line",
   "text": "The interrupt's general working byte (the main program uses it too)."
  },
  {
   "address": 26324,
   "type": "line",
   "text": "A second working byte: the reachable-location index, and list_reachable's exit count."
  },
  {
   "address": 26325,
   "type": "line",
   "text": "Patrols: the position in the script, or the chain's direction bits."
  },
  {
   "address": 26326,
   "type": "line",
   "text": "Patrols: the direction bits, or the chain position."
  },
  {
   "address": 26327,
   "type": "line",
   "text": "The time of the patrol step being taken."
  },
  {
   "address": 26328,
   "type": "line",
   "text": "The message being shown, expanded: 256 bytes, $38 ending it."
  },
  {
   "address": 26584,
   "type": "line",
   "text": "The message queue, sixteen entries: low bytes of the messages' addresses."
  },
  {
   "address": 26600,
   "type": "line",
   "text": "The message queue's high bytes."
  },
  {
   "address": 26616,
   "type": "line",
   "text": "How many words deep the expansion is."
  },
  {
   "address": 26617,
   "type": "line",
   "text": "The queue's read index."
  },
  {
   "address": 26618,
   "type": "line",
   "text": "The queue's write index."
  },
  {
   "address": 26619,
   "type": "line",
   "text": "The next character's glyph rows (+2 to +7), shifted out one bit at a time."
  },
  {
   "address": 26627,
   "type": "line",
   "text": "The seconds' units digit when the time delay unit was activated: written, and read by nothing."
  },
  {
   "address": 26628,
   "type": "line",
   "text": "The rolling clock's incoming rows, eight bytes for each digit: seconds' units here, then $680C, $6814 and $681C. Rows 2-7 hold the new digit's glyph upside down."
  },
  {
   "address": 26636,
   "type": "line",
   "text": "The seconds' tens digit's incoming rows."
  },
  {
   "address": 26644,
   "type": "line",
   "text": "The minutes' units digit's incoming rows."
  },
  {
   "address": 26652,
   "type": "line",
   "text": "The minutes' tens digit's incoming rows."
  },
  {
   "address": 26660,
   "type": "line",
   "text": "Unused: the byte before the input masks that nothing refers to."
  },
  {
   "address": 26661,
   "type": "line",
   "text": "The bits the joystick and keyboard handlers test, two bytes for each test, the joystick's port bits then the keyboard's row lines: $6825 up or down ($03, $66), $6827 left or right ($0C, $90), $6829 down ($02, $24), $682B right ($08, $10), $682D fire ($10, $09)."
  },
  {
   "address": 26663,
   "type": "line",
   "text": "Left or right: the joystick's bits $0C, the keyboard's row lines $90."
  },
  {
   "address": 26665,
   "type": "line",
   "text": "Down: $02, $24."
  },
  {
   "address": 26667,
   "type": "line",
   "text": "Right: $08, $10."
  },
  {
   "address": 26669,
   "type": "line",
   "text": "Fire: $10, $09."
  },
  {
   "address": 26671,
   "type": "line",
   "text": "The direction bit of a patrol chain, for next_patrol."
  },
  {
   "address": 26672,
   "type": "line",
   "text": "The location in each of the view screen's map cells, $FF where there is none: seventeen bytes, the first sixteen filled by find_view_locations."
  },
  {
   "address": 26689,
   "type": "line",
   "text": "The entity each map cell showed last."
  },
  {
   "address": 26706,
   "type": "line",
   "text": "The map cells' cell columns on the screen: a star of the eight directions at distances 1 and 2 around column $13."
  },
  {
   "address": 26723,
   "type": "line",
   "text": "The map cells' cell rows, around row 5."
  },
  {
   "address": 26740,
   "type": "line",
   "text": "Each map cell's offset across from the character's location, -2 to +2."
  },
  {
   "address": 26757,
   "type": "line",
   "text": "Each map cell's offset down, -2 to +2."
  },
  {
   "address": 26774,
   "type": "line",
   "text": "The entity each map cell shows next, the search's starting point."
  },
  {
   "address": 26792,
   "type": "line",
   "text": "The colours of the ticker's flashing light, one per shift."
  },
  {
   "address": 26800,
   "type": "line",
   "text": "Set while the game is not being played (the start, the menus): the interrupt then only plays music and scrolls the ticker."
  },
  {
   "address": 26801,
   "type": "line",
   "text": "Which clock digits roll this second: bit 0 the seconds' tens, bit 1 the minutes' units, bit 2 the minutes' tens."
  },
  {
   "address": 26802,
   "type": "line",
   "text": "Set when a team member dies: the command loop redraws the team screen."
  },
  {
   "address": 26803,
   "type": "line",
   "text": "Set when Zoff escapes; nothing reads it."
  },
  {
   "address": 26804,
   "type": "line",
   "text": "Combat: how many targets the attacker had in reach this second."
  },
  {
   "address": 26805,
   "type": "line",
   "text": "Combat: how many of them stood at the attacker's destination."
  },
  {
   "address": 26806,
   "type": "line",
   "text": "Combat: the attacker's destination."
  },
  {
   "address": 26807,
   "type": "line",
   "text": "The status icon's colour for each status, 0-$1F: $11 idle, $66 moving, $00 dead, $77 retreating, $88 defending, $44 attacking, $55 picking a lock."
  },
  {
   "address": 26839,
   "type": "line",
   "text": "Combat: the damage for each of the attacker's eight reachable locations, the first its own: $68D7 the same-location damage, $68D8-$68DE the adjacent. Only $68D7 is read: the loop at $5CB3 reads it with X 0 for every location, so every target in reach takes the same-location damage, and a weapon's adjacent strength is never used."
  },
  {
   "address": 26847,
   "type": "line",
   "text": "Combat: the strength byte of the weapon used; written, and read by nothing."
  },
  {
   "address": 26848,
   "type": "line",
   "text": "Combat: the attacker's status AND $0C."
  },
  {
   "address": 26849,
   "type": "line",
   "text": "The cursor's speed across, 2 to 6, rising while a direction is held."
  },
  {
   "address": 26850,
   "type": "line",
   "text": "The cursor's speed down."
  },
  {
   "address": 26851,
   "type": "line",
   "text": "Frames a direction across has been held."
  },
  {
   "address": 26852,
   "type": "line",
   "text": "Frames a direction up or down has been held."
  },
  {
   "address": 26853,
   "type": "line",
   "text": "The cursor's X position in two-pixel steps: the sprite's X is twice it. The self-destruct's warnings index from here as well, X = 1 to 4, so their table is the four bytes after it."
  },
  {
   "address": 26854,
   "type": "line",
   "text": "The self-destruct's warnings, in seconds left: 60, 120, 180 and 240."
  },
  {
   "address": 26858,
   "type": "line",
   "text": "Six locations where a team member's every arrival runs a routine, from $68F0: $4E, $41, $2E, $4C, $4F and $2F."
  },
  {
   "address": 26864,
   "type": "line",
   "text": "The six routines for trigger_locations."
  },
  {
   "address": 26865,
   "type": "line",
   "text": "The trigger routines' table read one byte on, for the high bytes."
  },
  {
   "address": 26876,
   "type": "line",
   "text": "Each entity's strength fraction: walking takes $40 a second, recovery adds to it, and wounds come off it."
  },
  {
   "address": 26926,
   "type": "line",
   "text": "The demonstration's next cursor point, X."
  },
  {
   "address": 26927,
   "type": "line",
   "text": "The demonstration's next cursor point, Y."
  },
  {
   "address": 26928,
   "type": "line",
   "text": "Frames the demonstration waits at a point, with fire held."
  },
  {
   "address": 26929,
   "type": "line",
   "text": "The demonstration's position in its script at $1571, two bytes a point."
  },
  {
   "address": 26930,
   "type": "line",
   "text": "Set to leave for the start menu: by a key during the demonstration, or at its end."
  },
  {
   "address": 26931,
   "type": "line",
   "text": "Set while the demonstration holds fire at a point."
  },
  {
   "address": 26932,
   "type": "line",
   "text": "Prepares the movement screen (2) and the battle screen (5) for location A: points $3F at its record and reads its map coordinates into $6C90/$6C91. For each of the eight directions, from bit 7 of the exits mask: a direction with no exit gets the empty arrow pictures ($6CAE for screen 2, $6CCE for screen 5), no flags and the handler at $7601; one with an exit gets the filled arrows ($6C9E, $6CBE), flags $3D on screen 2 and $39 on screen 5 ($08 on both when the exit's door is locked: shown, not selectable), and the next of the eight direction handlers ($6CDE, $6CEE), so handler n always means the location's nth exit. Points the movement screen's description text at the record after the exits, and draws the map through $6A50 unless $6DC6 is set."
  },
  {
   "address": 27216,
   "type": "line",
   "text": "Draws the view screen's map around map position X, Y. $FF, $FF (a place off the map) draws two pictures instead, from $6DC7 and $6DC9. Otherwise a window of 5 x 5 tiles from (X - 1, Y - 1), each tile 2 x 2 cells: its number from the 32 x 32 tile map at ($84C7), its colour from the map at ($84C9), its four characters from the tile set at ($BF94), their bitmaps from ($C286). Rows and columns outside the map are tile $31. Colour RAM is filled with $0E first. Then finds the locations to show through $6BB7."
  },
  {
   "address": 27301,
   "type": "line",
   "text": "Colour RAM under the map, 10 rows of 10 cells from $D837, set to $0E."
  },
  {
   "address": 27324,
   "type": "line",
   "text": "One row of tiles: their four characters into $6C64 (top) and $6C6E (bottom), the tile's colour into all four of its cells at $6C78."
  },
  {
   "address": 27471,
   "type": "line",
   "text": "The row's two character rows into the bitmap from $21B8, eight bytes each, the colours into the screen matrix from $0C36; stops when the bitmap reaches $2E38, ten character rows down."
  },
  {
   "address": 27575,
   "type": "line",
   "text": "For sixteen of the map's seventeen cells (X = 15 down to 0; the last, two right and two down, is left out), looks for a location at the character's coordinates plus the cell's offset ($6874, $6885), searching all $A4 locations, and stores it in $6830, or $FF."
  },
  {
   "address": 27681,
   "type": "line",
   "text": "Steps the map's bitmap pointer ($2B) and colour pointer ($2D) down one cell row."
  },
  {
   "address": 27706,
   "type": "line",
   "text": "Shifts the word at $F7/$F8 left X times: x 32 for a map row, x 4 for a tile, x 8 for a character."
  },
  {
   "address": 27718,
   "type": "line",
   "text": "A tile row outside the map: blank characters."
  },
  {
   "address": 27734,
   "type": "line",
   "text": "Unused: nothing calls it. Splits A into its low nibble, kept in $6C9A, and its high nibble, returned in A."
  },
  {
   "address": 27748,
   "type": "line",
   "text": "The tile row's characters: ten for the upper character row, then ten at $6C6E for the lower."
  },
  {
   "address": 27758,
   "type": "line",
   "text": "The lower character row of the tile row."
  },
  {
   "address": 27768,
   "type": "line",
   "text": "The tile row's colours, the same for the four cells of each tile: twenty bytes, the upper row then the lower."
  },
  {
   "address": 27769,
   "type": "line",
   "text": "The same table one byte on, for the tile's right-hand cell."
  },
  {
   "address": 27778,
   "type": "line",
   "text": "The colours of the lower character row."
  },
  {
   "address": 27779,
   "type": "line",
   "text": "The lower row's right-hand cells."
  },
  {
   "address": 27788,
   "type": "line",
   "text": "Set while the view screen's iris is open, showing the map."
  },
  {
   "address": 27789,
   "type": "line",
   "text": "The exits mask being shifted, a direction a bit."
  },
  {
   "address": 27791,
   "type": "line",
   "text": "How many exits build_directions has met."
  },
  {
   "address": 27792,
   "type": "line",
   "text": "The location's map column, then the window's left column."
  },
  {
   "address": 27793,
   "type": "line",
   "text": "The location's map row, then the row being drawn."
  },
  {
   "address": 27794,
   "type": "line",
   "text": "The window's left column, kept."
  },
  {
   "address": 27795,
   "type": "line",
   "text": "The window's top row, kept."
  },
  {
   "address": 27796,
   "type": "line",
   "text": "Unused_in_window's right edge, never written."
  },
  {
   "address": 27797,
   "type": "line",
   "text": "Unused_in_window's bottom edge, never written."
  },
  {
   "address": 27798,
   "type": "line",
   "text": "Unused_place_icon's corner, never written."
  },
  {
   "address": 27799,
   "type": "line",
   "text": "Unused_place_icon's corner row, never written."
  },
  {
   "address": 27802,
   "type": "line",
   "text": "Unused_nibbles' low nibble."
  },
  {
   "address": 27803,
   "type": "line",
   "text": "The location find_view_locations is testing."
  },
  {
   "address": 27804,
   "type": "line",
   "text": "The coordinates find_view_locations looks for: across."
  },
  {
   "address": 27805,
   "type": "line",
   "text": "And down."
  },
  {
   "address": 27806,
   "type": "line",
   "text": "The movement screen's filled arrow pictures, one for each of the eight directions."
  },
  {
   "address": 27807,
   "type": "line",
   "text": "The movement screen's filled arrows, read one byte on."
  },
  {
   "address": 27822,
   "type": "line",
   "text": "The movement screen's empty arrows."
  },
  {
   "address": 27823,
   "type": "line",
   "text": "The movement screen's empty arrows, one byte on."
  },
  {
   "address": 27838,
   "type": "line",
   "text": "The battle screen's filled arrows."
  },
  {
   "address": 27839,
   "type": "line",
   "text": "The battle screen's filled arrows, one byte on."
  },
  {
   "address": 27854,
   "type": "line",
   "text": "The battle screen's empty arrows."
  },
  {
   "address": 27855,
   "type": "line",
   "text": "The battle screen's empty arrows, one byte on."
  },
  {
   "address": 27870,
   "type": "line",
   "text": "The movement screen's eight exit handlers, $6E47 to $6E63, given in order to a location's exits."
  },
  {
   "address": 27886,
   "type": "line",
   "text": "The battle screen's eight exit handlers, $7144 to $7160."
  },
  {
   "address": 27902,
   "type": "line",
   "text": "Four bytes for each of the fifty entities: its icon on the view screen's map, then its figure for the battle screen's scan and the team lists."
  },
  {
   "address": 27903,
   "type": "line",
   "text": "The same table one byte on."
  },
  {
   "address": 27904,
   "type": "line",
   "text": "The figure pointers, entity_pictures + 2."
  },
  {
   "address": 27905,
   "type": "line",
   "text": "The same, one byte on."
  },
  {
   "address": 28102,
   "type": "line",
   "text": "Set while build_directions must leave the map alone (the door routines rebuilding the arrows)."
  },
  {
   "address": 28103,
   "type": "line",
   "text": "The two pictures for a place off the map: the upper one here, the lower at $6DC9."
  },
  {
   "address": 28104,
   "type": "line",
   "text": "The upper off-map picture's high byte."
  },
  {
   "address": 28105,
   "type": "line",
   "text": "The lower off-map picture."
  },
  {
   "address": 28106,
   "type": "line",
   "text": "The lower off-map picture's high byte."
  },
  {
   "address": 28107,
   "type": "line",
   "text": "The team screen (0), the Quit icon of the status and movement screens and where a move ends: closes the iris, turns the bars off, clears $6C8C and the scan flag $8189, sets the character on show to 6 (none) and shows its portrait, then (at $6DE9, also the entry for a new or old game) clears the panels in colour $68, draws screen 0 and runs the command loop."
  },
  {
   "address": 28148,
   "type": "line",
   "text": "The movement screen (2), from the green icon: bars and scan off, panels in $57. While the character is in combat (status bits 2-3) every arrow icon of screen 2 keeps only flag bit 0, so none can be chosen; otherwise every arrow with an exit (bit 0) gets bit 2 as well. Then draws screen 2 and runs the loop."
  },
  {
   "address": 28231,
   "type": "line",
   "text": "Handlers of the movement screen's arrows, given in turn to the location's exits by build_directions: each loads Y with the offset of its exit's second byte in the location record (4, 6, ... $12) and goes to $6E65."
  },
  {
   "address": 28235,
   "type": "line",
   "text": "Exit 2's arrow, Y = 6."
  },
  {
   "address": 28239,
   "type": "line",
   "text": "Exit 3's arrow, Y = 8."
  },
  {
   "address": 28243,
   "type": "line",
   "text": "Exit 4's arrow, Y = $0A."
  },
  {
   "address": 28247,
   "type": "line",
   "text": "Exit 5's arrow, Y = $0C."
  },
  {
   "address": 28251,
   "type": "line",
   "text": "Exit 6's arrow, Y = $0E."
  },
  {
   "address": 28255,
   "type": "line",
   "text": "Exit 7's arrow, Y = $10."
  },
  {
   "address": 28259,
   "type": "line",
   "text": "Exit 8's arrow, Y = $12."
  },
  {
   "address": 28261,
   "type": "line",
   "text": "Sends the character through the exit at offset Y. The time per unit of distance comes from agility: the average of +5 and the base at $CFB7 (an ADC with no CLC before it, so the sum can be one more), halved, then (127 - that) / 8, made odd: 15 seconds at the lowest agility, 1 at the highest, kept in $81A9. A defender, or an attacker away from the battle screen, cannot move: \"YOU CANNOT MOVE IN COMBAT MODE\". Otherwise the destination (+3) is the exit's first byte and the step countdown (+1) the exit's distance (bits 0-2 of its second byte) times the time per unit. A character not in combat starts moving (status 1) and the team screen comes back; a retreat stays on the battle screen."
  },
  {
   "address": 28367,
   "type": "line",
   "text": "The team screen's six character icons, in team order: each loads its number, 0 Syylk (spelt SYLK in the game's text) here, and goes to $6EEA."
  },
  {
   "address": 28372,
   "type": "line",
   "text": "Sevrina's icon, character 1."
  },
  {
   "address": 28377,
   "type": "line",
   "text": "Manto's icon, character 2."
  },
  {
   "address": 28382,
   "type": "line",
   "text": "Maul's icon, character 3."
  },
  {
   "address": 28387,
   "type": "line",
   "text": "Zark's icon, character 4."
  },
  {
   "address": 28392,
   "type": "line",
   "text": "Torik's icon, character 5."
  },
  {
   "address": 28394,
   "type": "line",
   "text": "Makes character A the one on show ($5436): points $41 at its entity record, keeps its location in $5437, prepares the arrows for it through build_directions and shows its portrait. Falls into the status screen."
  },
  {
   "address": 28427,
   "type": "line",
   "text": "The status screen (1): scan off, the five bars' lengths reset to 0 so that they grow again, panels in $29, draws screen 1, turns the bars on ($66CC) and opens the iris on the view screen if it is not open yet."
  },
  {
   "address": 28482,
   "type": "line",
   "text": "The objects screen (4), from the yellow icon: bars and scan off, both lists from their first page ($5440, $5441), panels in $73, eighty cells of the colour matrix from $0F98 set to $27. Then (at $6F62, where every object handler comes back) lists the objects here and carried, draws screen 4, and the first time round turns on the two weight bars from 0."
  },
  {
   "address": 28549,
   "type": "line",
   "text": "The objects screen's object icons are the second step of Pick-up, Drop, Ready and Activate: each records its slot in $5438 and returns. Slots 0-4 are the five carried objects in the middle column, here; $5449 holds the object in each slot."
  },
  {
   "address": 28555,
   "type": "line",
   "text": "Carried slot 1."
  },
  {
   "address": 28561,
   "type": "line",
   "text": "Carried slot 2."
  },
  {
   "address": 28567,
   "type": "line",
   "text": "Carried slot 3."
  },
  {
   "address": 28573,
   "type": "line",
   "text": "Carried slot 4."
  },
  {
   "address": 28579,
   "type": "line",
   "text": "Slot 5: no icon has this handler."
  },
  {
   "address": 28585,
   "type": "line",
   "text": "Slots 6-13 are the eight objects lying in the location, the left-hand column."
  },
  {
   "address": 28591,
   "type": "line",
   "text": "Slot 7, also the first of the transporter's three destinations."
  },
  {
   "address": 28597,
   "type": "line",
   "text": "Slot 8."
  },
  {
   "address": 28603,
   "type": "line",
   "text": "Slot 9."
  },
  {
   "address": 28609,
   "type": "line",
   "text": "Slot 10, the second transporter destination."
  },
  {
   "address": 28615,
   "type": "line",
   "text": "Slot 11."
  },
  {
   "address": 28621,
   "type": "line",
   "text": "Slot 12."
  },
  {
   "address": 28627,
   "type": "line",
   "text": "Slot 13, the third transporter destination."
  },
  {
   "address": 28633,
   "type": "line",
   "text": "Pick-up, after the object is chosen: unless it is already carried, marks it carried (flag bit 0) by the character on show (+1) and adds its weight (+2) to the character's load (+7). Pick-up is offered only when the total stays under 256 (list_objects_here); nothing compares the load with the character's strength, so an overload only drains agility. Back to the objects screen."
  },
  {
   "address": 28689,
   "type": "line",
   "text": "Drop: clears the carried flag, leaves the object in the character's location, takes its weight off the load, and if it was the object held ready (+8), the character holds nothing ready (0)."
  },
  {
   "address": 28758,
   "type": "line",
   "text": "Ready for use: the object becomes the one held ready (+8), the weapon used in combat, and is picked up through $6FD9 if it was lying in the location."
  },
  {
   "address": 28771,
   "type": "line",
   "text": "Activate: runs the object's own routine, from bytes +5 and +6 of its record, through the JSR at $708A whose operand is written here, with the object's number in $5438. Back to the objects screen."
  },
  {
   "address": 28811,
   "type": "line",
   "text": "The operand of the JSR at $708A, the routine of the object being activated."
  },
  {
   "address": 28812,
   "type": "line",
   "text": "The high byte of the object's routine."
  },
  {
   "address": 28816,
   "type": "line",
   "text": "The left-hand column's page arrow: the next eight entries, of the people at beacon 1 during a transporter choice (group 5), otherwise of the objects in the location. Redraws screen 4; inside a two-step choice it counts a step ($543A) and returns so that the choice goes on."
  },
  {
   "address": 28875,
   "type": "line",
   "text": "The middle column's page arrow: the next five carried objects, or the next five people at beacon 2 during a transporter choice."
  },
  {
   "address": 28934,
   "type": "line",
   "text": "Quit on the objects and battle screens: inside a two-step choice it cancels it ($5439); otherwise back to the status screen."
  },
  {
   "address": 28945,
   "type": "line",
   "text": "Unused: clears the scan flag and goes to the status screen; no icon or jump leads here."
  },
  {
   "address": 28953,
   "type": "line",
   "text": "The battle screen (5), from the red icon: bars off, panels in $25, the location scan starts at the character's own location from the first entity. Then (at $7134, where the battle handlers come back) lists the people there, sets the scan flag $8189, draws screen 5 and runs the loop."
  },
  {
   "address": 28996,
   "type": "line",
   "text": "Handlers of the battle screen's direction icons, the second step of Attack, Retreat and Location scan: each records the offset of its exit's second byte (4, 6, ... $12) in $5446 and returns."
  },
  {
   "address": 29000,
   "type": "line",
   "text": "Exit 2, $5446 = 6."
  },
  {
   "address": 29004,
   "type": "line",
   "text": "Exit 3, $5446 = 8."
  },
  {
   "address": 29008,
   "type": "line",
   "text": "Exit 4, $5446 = $0A."
  },
  {
   "address": 29012,
   "type": "line",
   "text": "Exit 5, $5446 = $0C."
  },
  {
   "address": 29016,
   "type": "line",
   "text": "Exit 6, $5446 = $0E."
  },
  {
   "address": 29020,
   "type": "line",
   "text": "Exit 7, $5446 = $10."
  },
  {
   "address": 29024,
   "type": "line",
   "text": "Exit 8, $5446 = $12."
  },
  {
   "address": 29030,
   "type": "line",
   "text": "Location scan: the location chosen (the exit's destination, or the character's own for the centre icon's $FF) becomes the scanned location $5446 and the scan is rebuilt."
  },
  {
   "address": 29049,
   "type": "line",
   "text": "The centre icon between the arrows: chooses the character's own location ($5446 = $FF), for Attack and Location scan only (flags $29)."
  },
  {
   "address": 29055,
   "type": "line",
   "text": "Unused: calls the unused $5346 and redraws screen 5; no icon or jump leads here."
  },
  {
   "address": 29061,
   "type": "line",
   "text": "The scan's eight people icons: each records its slot in $818A and returns. Nothing reads $818A, and the icons' flags stay 0, so they cannot be chosen."
  },
  {
   "address": 29067,
   "type": "line",
   "text": "People slot 1."
  },
  {
   "address": 29073,
   "type": "line",
   "text": "People slot 2."
  },
  {
   "address": 29079,
   "type": "line",
   "text": "People slot 3."
  },
  {
   "address": 29085,
   "type": "line",
   "text": "People slot 4."
  },
  {
   "address": 29091,
   "type": "line",
   "text": "People slot 5."
  },
  {
   "address": 29097,
   "type": "line",
   "text": "People slot 6."
  },
  {
   "address": 29103,
   "type": "line",
   "text": "People slot 7."
  },
  {
   "address": 29109,
   "type": "line",
   "text": "The scan's page arrow: the next eight entities, then screen 5 again; inside a two-step choice it counts the step and returns."
  },
  {
   "address": 29138,
   "type": "line",
   "text": "Attack, in the direction chosen ($5446; $FF the character's own location): with no living enemy there ($7250), \"NO ENEMY TO ATTACK IN THAT DIRECTION\". Otherwise the destination (+3) is that location, the step countdown the exit's distance x 4 seconds (for the own location the byte read is the one at offset $FF of the record, which matters only if the character later advances), and the status $0C, attacking."
  },
  {
   "address": 29210,
   "type": "line",
   "text": "Retreat through the exit chosen: refused with \"CANNOT RUN IN THAT DIRECTION ENEMY IN THAT LOCATION\" when an enemy is there; otherwise status 5 and the move at $6E65, timed by agility, staying on the battle screen."
  },
  {
   "address": 29255,
   "type": "line",
   "text": "Defend: status 8."
  },
  {
   "address": 29264,
   "type": "line",
   "text": "Returns carry set when a living entity of number 8 or more stands in location $5446; attack ($71EB) and retreat ($7225) call it. The loop runs fifty records from entity 8, so its last eight are the bytes after the entity table, $CD92-$CE21: the three unused pointers at $CD92, then the object records, read as if they were entities. The first gives status $D0 (alive) and location $80, so enemy_at always finds an enemy in location $80; as loaded, the bytes of the object records add $0C, $A2, $08 and $54."
  },
  {
   "address": 29311,
   "type": "line",
   "text": "Three bytes that decode as JMP $C200 and that nothing reaches, before the time delay unit's routine."
  },
  {
   "address": 29314,
   "type": "line",
   "text": "The time delay unit (object 17): a time lock of 120 seconds ($CF83 = $78) in which only the character who activated it ($CF84) acts, and the unit's activate flag (bit 2 of $CE0F) is cleared, so it works once. The clock's seconds' units go into $6803, which nothing reads."
  },
  {
   "address": 29340,
   "type": "line",
   "text": "The master key (object 14): opens the first door among the location's exits, of any colour ($818D = 1)."
  },
  {
   "address": 29347,
   "type": "line",
   "text": "Key cards: the colour is bits 3-4 of a door's number (bits 6-7 of the exit's second byte), and each key opens the first door of its colour among the location's exits: this one colour 0 (objects 5 and 6)."
  },
  {
   "address": 29351,
   "type": "line",
   "text": "Key cards of colour 8, objects 7 and 8."
  },
  {
   "address": 29355,
   "type": "line",
   "text": "Key cards of colour $10, objects 9, 10 and 11."
  },
  {
   "address": 29359,
   "type": "line",
   "text": "Key cards of colour $18, objects 12 and 13."
  },
  {
   "address": 29361,
   "type": "line",
   "text": "The door search: the first exit whose door matches (any door for the master key) has its lock at $CFC9 set to 0, open, whether or not it was locked already; the arrows are then rebuilt without redrawing the map ($6DC6). With no match, \"NO DOOR TO UNLOCK\"."
  },
  {
   "address": 29441,
   "type": "line",
   "text": "The tool kit (object 16), for Sevrina only (character 1; anyone else gets nothing): the first door among the location's exits that is still locked is the one she starts to pick, $CF81, with status $10. With none, \"NO DOOR TO UNLOCK\"."
  },
  {
   "address": 29499,
   "type": "line",
   "text": "Counts the bits of the exits mask of the location at ($3F) into $74."
  },
  {
   "address": 29517,
   "type": "line",
   "text": "A transporter beacon (objects 0 and 1): lists the people standing at beacon 1 (left column) and beacon 2 (middle column), blank where a beacon is being carried, and waits for one of them to be chosen (group 5) or for Quit. The one chosen, standing at one beacon, is sent to the other: destination the other beacon's location, step countdown 1 second, status 1. When it is Manto, the arrows are rebuilt for his location and the iris closes and opens again ($4A61 set meanwhile)."
  },
  {
   "address": 29702,
   "type": "line",
   "text": "The transporter's ballistic control (object 2): offers its three destinations (set_transporter_icons, slots 7, 10 and 13, whose locations are at $81A6: $16, 8 and $A0) and sends the character on show there in 1 second. The search of $81A3 for the slot chosen has no end test; the slot always comes from one of the three icons."
  },
  {
   "address": 29804,
   "type": "line",
   "text": "The self-destruct card (object 15): in the location where the self-destruct unit (object 3) stands, it sets the unit's activate flag (bit 2 of $CDAD)."
  },
  {
   "address": 29823,
   "type": "line",
   "text": "The self-destruct unit (object 3): arms the self-destruct ($CA06) and queues \"SELF DESTRUCTION SEQUENCE INITIATED\". The countdown $CA07 starts at 0, so its first second takes it to 255: the blast comes 256 seconds after arming. Activating it again does nothing."
  },
  {
   "address": 29845,
   "type": "line",
   "text": "Unused: six entries that load 0 to 5 and run into $74AD; nothing leads here."
  },
  {
   "address": 29869,
   "type": "line",
   "text": "Object 4's routine: adds one to the border colour and goes back to the objects screen. Object 4 has no activate flag, so it never runs."
  },
  {
   "address": 29875,
   "type": "line",
   "text": "Every weapon's routine (objects 18-53): takes one off the border colour. No weapon has the activate flag, so it never runs either."
  },
  {
   "address": 29881,
   "type": "line",
   "text": "The start menu (7): plays tune 7 and stops the game ($68B0). Old game can be chosen (flags 5 at $7C7C) unless $CF7F is set (by any way out through $4B35, or a failed load or save) or the mission has failed or succeeded. The mission status, two tokens at $CF7B and $CF7D in the summary text at $CF4B: FAILED and ENIGMA FORCE DEFEATED when the whole team is dead ($CA05 bit 0 clear); SUCCEEDED when every bit of $CA05 is set ($1F); otherwise INCOMPLETE and the first objective missing, counting the low bits of $CA05 that are set: KRYXIX NOT RESCUED, ZOFF V NOT DESTROYED, ZOFF 5 NOT CAPTURED (the game's text has a 5 for the V), ZOFF NOT CAPTURED."
  },
  {
   "address": 29990,
   "type": "line",
   "text": "Old game: tune 1, the team icons and the map put back ($75C8), the game running again, the clock printed; every team member who is dead gets a black status icon and the dead picture, disabled. Then the team screen."
  },
  {
   "address": 30094,
   "type": "line",
   "text": "New game: tune 1, then the whole game state is copied back from the RAM under the I/O chips, $D000-$D5FF to $CA00-$CFFF, with $01 = $34 and interrupts off; then the team icons, the map and the team screen."
  },
  {
   "address": 30152,
   "type": "line",
   "text": "Prints the clock, gives the six team icons their pictures from $818F and flags 5, and puts back the six cells of the ship's map that Zoff's escape changes ($85CD-$85CF, $85ED-$85EF) from $81AA and $81AD."
  },
  {
   "address": 30209,
   "type": "line",
   "text": "The address of the do-nothing handler $7603, given to arrow icons with no exit."
  },
  {
   "address": 30210,
   "type": "line",
   "text": "The do-nothing handler's high byte."
  },
  {
   "address": 30211,
   "type": "line",
   "text": "A handler that does nothing."
  },
  {
   "address": 30212,
   "type": "line",
   "text": "Writes the clock's four digits into the text at $7F7F (\"99:59\") and prints it through print_text at cell column 7, row 7."
  },
  {
   "address": 30255,
   "type": "line",
   "text": "Load game: silence (tune 0), $818B = 1 (load), the LOAD heading on screen 8 ($819B), then the file name screen."
  },
  {
   "address": 30280,
   "type": "line",
   "text": "Save game: $818B = 0 (save) and the SAVE heading ($819D)."
  },
  {
   "address": 30302,
   "type": "line",
   "text": "The file name screen (8): panels in $31, an empty name of eight spaces at $7F9A, no prompt yet ($BA, blank, at $800E), the return icon disabled ($7E0C = 0) until a letter is typed; draws screen 8."
  },
  {
   "address": 30343,
   "type": "line",
   "text": "The tape icon: device 1 ($818C) and the tape picture from $819F in the icon at $7DFD."
  },
  {
   "address": 30363,
   "type": "line",
   "text": "The disc icon: device 8 and the disc picture from $81A1."
  },
  {
   "address": 30383,
   "type": "line",
   "text": "The 26 letter icons, A here to Z at $7713: each loads the game's code for its letter, $0A-$23, and goes to $7717."
  },
  {
   "address": 30487,
   "type": "line",
   "text": "Adds letter A to the name, up to eight, and enables the return icon."
  },
  {
   "address": 30509,
   "type": "line",
   "text": "RUB: takes the last letter off the name."
  },
  {
   "address": 30526,
   "type": "line",
   "text": "The return icon: loads or saves the game state. On tape it first shows PRESS PLAY ON TAPE (loading) or PRESS PLAY AND RECORD ON TAPE (saving). Banks the BASIC and KERNAL ROMs back in, stops the raster interrupt and, on tape, waits for a cassette button. At raster line $F8 it puts back the video chip's default registers $D010-$D018 from the KERNAL's table ($ECC9) and blanks the screen, then calls the KERNAL: IOINIT, a delay, SETLFS and SETNAM (entered at $FE00 and $FDF9, past their vectors), the name turned into PETSCII at $7FA9."
  },
  {
   "address": 30673,
   "type": "line",
   "text": "Saves $CA00-$CFFE through SAVE ($FFD8), or loads it back at $CA00 through the KERNAL's LOAD at $F49E. Error 4: \"FILE NOT FOUND\". Error 5: \"DEVICE NOT PRESSENT\" (so spelt) and $CF7F set; any other error \"IO ERROR\" and $CF7F set."
  },
  {
   "address": 30762,
   "type": "line",
   "text": "Puts the game's screen and interrupt back (bitmap mode, colours at $0C00, the five sprites, the raster interrupt at line $F8, the CIAs' interrupts off, the keyboard ports, $01 = $35) and returns to the file name screen."
  },
  {
   "address": 30852,
   "type": "line",
   "text": "The team screen's up arrow: raises the in-game tune's pulse width byte $1603 by one, to at most $40. The tune sets voices 2 and 3 to that times 8, so at 0, where it starts, they are silent."
  },
  {
   "address": 30865,
   "type": "line",
   "text": "The down arrow: lowers $1603 by one, to 0."
  },
  {
   "address": 30876,
   "type": "line",
   "text": "The nine screens' icon lists: 0 team, 1 status, 2 movement, 3 a one-icon screen, 4 objects, 5 battle, 6 control menu, 7 start menu, 8 file name."
  },
  {
   "address": 30877,
   "type": "line",
   "text": "The screen table read one byte on, for the high bytes of its pointers."
  },
  {
   "address": 30894,
   "type": "line",
   "text": "The team screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7911. The team screen, icon 0 (Syylk): picture team_syylk at column 3, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler choose_syylk $6ECF."
  },
  {
   "address": 30905,
   "type": "line",
   "text": "The team screen, icon 1 (Sevrina): picture team_sevrina at column 11, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6ED4."
  },
  {
   "address": 30916,
   "type": "line",
   "text": "The team screen, icon 2 (Manto): picture team_manto at column 18, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6ED9."
  },
  {
   "address": 30927,
   "type": "line",
   "text": "The team screen, icon 3 (Maul): picture team_maul at column 18, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6EDE."
  },
  {
   "address": 30938,
   "type": "line",
   "text": "The team screen, icon 4 (Zark): picture team_zark at column 25, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6EE3."
  },
  {
   "address": 30949,
   "type": "line",
   "text": "The team screen, icon 5 (Torik): picture team_torik at column 32, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6EE8."
  },
  {
   "address": 30960,
   "type": "line",
   "text": "The team screen, icon 6: picture pic_quit at column 1, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler start_menu $74B9."
  },
  {
   "address": 30971,
   "type": "line",
   "text": "The team screen, icon 7: picture arrow5_up at column 34, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler music_up $7884."
  },
  {
   "address": 30982,
   "type": "line",
   "text": "The team screen, icon 8: picture arrow5_down at column 37, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler music_down $7891."
  },
  {
   "address": 30993,
   "type": "line",
   "text": "The end of the team screen's icons ($FFFF), then a second $FFFF: no panel borders."
  },
  {
   "address": 30997,
   "type": "line",
   "text": "The status screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $796D. The status screen, icon 0: picture pic_arm at column 0, row 14; flags $00, off: it cannot be chosen; the text \"| / |\" ($813B) at column 20, row 14; handler no_action $7603."
  },
  {
   "address": 31008,
   "type": "line",
   "text": "The status screen, icon 1: picture pic_runner at column 0, row 17; flags $00, off: it cannot be chosen; the text \"| / |\" ($813B) at column 20, row 17; handler no_action $7603."
  },
  {
   "address": 31019,
   "type": "line",
   "text": "The status screen, icon 2: picture pic_heart at column 0, row 20; flags $00, off: it cannot be chosen; the text \"| / |\" ($813B) at column 20, row 20; handler no_action $7603."
  },
  {
   "address": 31030,
   "type": "line",
   "text": "The status screen, icon 3: picture pic_scales at column 0, row 23; flags $00, off: it cannot be chosen; the text \"| / |\" ($813B) at column 20, row 23; handler no_action $7603."
  },
  {
   "address": 31041,
   "type": "line",
   "text": "The status screen, icon 4: picture monitor_movement at column 29, row 16; flags $05: chosen on its own; no text (the empty string at $7F02); handler movement_screen $6DF4."
  },
  {
   "address": 31052,
   "type": "line",
   "text": "The status screen, icon 5: picture monitor_battle at column 34, row 16; flags $05: chosen on its own; no text (the empty string at $7F02); handler battle_screen $7119."
  },
  {
   "address": 31063,
   "type": "line",
   "text": "The status screen, icon 6: picture monitor_objects at column 29, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler objects_screen $6F42."
  },
  {
   "address": 31074,
   "type": "line",
   "text": "The status screen, icon 7: picture pic_quit at column 34, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31085,
   "type": "line",
   "text": "The end of the status screen's icons ($FFFF), then its panel borders for draw_box, 4 bytes each (width, height, column, row): 8 x 6 at column 29, row 16; then $FFFF."
  },
  {
   "address": 31093,
   "type": "line",
   "text": "The movement screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $79EE. The movement screen, icon 0: picture arrow2_left at column 1, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31104,
   "type": "line",
   "text": "The movement screen, icon 1: picture arrow2_left at column 6, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31115,
   "type": "line",
   "text": "The movement screen, icon 2: picture arrow2_up at column 11, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31126,
   "type": "line",
   "text": "The movement screen, icon 3: picture arrow2_up_right at column 16, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31137,
   "type": "line",
   "text": "The movement screen, icon 4: picture arrow2_up_right at column 1, row 19; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31148,
   "type": "line",
   "text": "The movement screen, icon 5: picture arrow2_down_left at column 6, row 19; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31159,
   "type": "line",
   "text": "The movement screen, icon 6: picture arrow2_down_left at column 11, row 19; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31170,
   "type": "line",
   "text": "The movement screen, icon 7: picture arrow2_down_right at column 16, row 19; flags $05: chosen on its own; no text (the empty string at $7F02); handler team_screen $6DCB."
  },
  {
   "address": 31181,
   "type": "line",
   "text": "The movement screen, icon 8: picture pic_quit at column 36, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler status_screen $6F0B."
  },
  {
   "address": 31192,
   "type": "line",
   "text": "The movement screen, icon 9: picture monitor_objects at column 36, row 17; flags $05: chosen on its own; no text (the empty string at $7F02); handler objects_screen $6F42."
  },
  {
   "address": 31203,
   "type": "line",
   "text": "The movement screen, icon 10: picture monitor_battle at column 36, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler battle_screen $7119."
  },
  {
   "address": 31208,
   "type": "line",
   "text": "The movement screen's description icon, its text pointer: build_directions points it at the description after the location's exits, so the location's name prints at column 22, row 14. Then the text's place and the handler."
  },
  {
   "address": 31209,
   "type": "line",
   "text": "The description icon's text pointer, high byte."
  },
  {
   "address": 31214,
   "type": "line",
   "text": "The end of the movement screen's icons ($FFFF), then its panel borders for draw_box, 4 bytes each (width, height, column, row): 19 x 9 at column 1, row 14; 12 x 9 at column 22, row 14; 3 x 9 at column 36, row 14; then $FFFF."
  },
  {
   "address": 31230,
   "type": "line",
   "text": "Nothing draws screen 3: no call to draw_screen passes 3. Screen 3's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7A09. Screen 3, icon 0: picture pic_here at column 1, row 15; flags $05: chosen on its own; no text (the empty string at $7F02); handler $6DE9."
  },
  {
   "address": 31241,
   "type": "line",
   "text": "The end of screen 3's icons ($FFFF), then a second $FFFF: no panel borders."
  },
  {
   "address": 31245,
   "type": "line",
   "text": "The objects screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7B15. The objects screen, icon 0: picture pic_drop at column 32, row 17; flags $0B: starts a two-step choice, group 2; no text (the empty string at $7F02); handler drop $7011."
  },
  {
   "address": 31256,
   "type": "line",
   "text": "The objects screen, icon 1: picture pic_pick_up at column 32, row 14; flags $07: starts a two-step choice, group 1; no text (the empty string at $7F02); handler pick_up $6FD9."
  },
  {
   "address": 31267,
   "type": "line",
   "text": "The objects screen, icon 2: picture monitor_movement at column 36, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler movement_screen $6DF4."
  },
  {
   "address": 31278,
   "type": "line",
   "text": "The objects screen, icon 3: picture pic_activate at column 28, row 14; flags $13: starts a two-step choice, group 4; no text (the empty string at $7F02); handler activate $7063."
  },
  {
   "address": 31289,
   "type": "line",
   "text": "The objects screen, icon 4: picture monitor_battle at column 36, row 17; flags $05: chosen on its own; no text (the empty string at $7F02); handler battle_screen $7119."
  },
  {
   "address": 31300,
   "type": "line",
   "text": "The objects screen, icon 5: picture pic_blank_slot at column 28, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler objects_screen $6F42."
  },
  {
   "address": 31301,
   "type": "line",
   "text": "The ready icon's picture pointer, high byte; then the rest of the record."
  },
  {
   "address": 31311,
   "type": "line",
   "text": "The objects screen, icon 6: picture pic_ready at column 28, row 17; flags $0F: starts a two-step choice, group 3; no text (the empty string at $7F02); handler ready $7056."
  },
  {
   "address": 31322,
   "type": "line",
   "text": "The objects screen, icon 7: picture pic_quit at column 36, row 20; flags $FD: chosen on its own, or as the second icon of group 1, or as the second icon of group 2, or as the second icon of group 3, or as the second icon of group 4, or as the second icon of group 5; no text (the empty string at $7F02); handler quit_choice $7106."
  },
  {
   "address": 31333,
   "type": "line",
   "text": "The objects screen, icon 8: picture pic_scales at column 0, row 23; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler objects_screen $6F42."
  },
  {
   "address": 31344,
   "type": "line",
   "text": "The objects screen, icon 9: picture pic_blank_slot at column 22, row 14; flags $11: chosen as the second icon of group 2; no text (the empty string at $7F02); handler object_slot_0 $6F85."
  },
  {
   "address": 31355,
   "type": "line",
   "text": "The objects screen, icon 10: picture pic_blank_slot at column 17, row 14; flags $11: chosen as the second icon of group 2; no text (the empty string at $7F02); handler $6F8B."
  },
  {
   "address": 31366,
   "type": "line",
   "text": "The objects screen, icon 11: picture pic_blank_slot at column 22, row 17; flags $11: chosen as the second icon of group 2; no text (the empty string at $7F02); handler $6F91."
  },
  {
   "address": 31377,
   "type": "line",
   "text": "The objects screen, icon 12: picture pic_blank_slot at column 17, row 17; flags $11: chosen as the second icon of group 2; no text (the empty string at $7F02); handler $6F97."
  },
  {
   "address": 31388,
   "type": "line",
   "text": "The objects screen, icon 13: picture pic_blank_slot at column 22, row 20; flags $11: chosen as the second icon of group 2; no text (the empty string at $7F02); handler $6F9D."
  },
  {
   "address": 31399,
   "type": "line",
   "text": "The objects screen, icon 14: picture pic_blank_slot at column 17, row 20; flags $01: chosen by nothing (bit 0 alone); no text (the empty string at $7F02); handler page_carried $70CB."
  },
  {
   "address": 31410,
   "type": "line",
   "text": "The objects screen, icon 15: picture pic_blank_slot at column 11, row 14; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler object_slot_6 $6FA9."
  },
  {
   "address": 31421,
   "type": "line",
   "text": "The objects screen, icon 16: picture pic_blank_slot at column 6, row 14; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FAF."
  },
  {
   "address": 31432,
   "type": "line",
   "text": "The objects screen, icon 17: picture pic_blank_slot at column 1, row 14; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FB5."
  },
  {
   "address": 31443,
   "type": "line",
   "text": "The objects screen, icon 18: picture pic_blank_slot at column 11, row 17; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FBB."
  },
  {
   "address": 31454,
   "type": "line",
   "text": "The objects screen, icon 19: picture pic_blank_slot at column 6, row 17; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FC1."
  },
  {
   "address": 31465,
   "type": "line",
   "text": "The objects screen, icon 20: picture pic_blank_slot at column 1, row 17; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FC7."
  },
  {
   "address": 31476,
   "type": "line",
   "text": "The objects screen, icon 21: picture pic_blank_slot at column 11, row 20; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FCD."
  },
  {
   "address": 31487,
   "type": "line",
   "text": "The objects screen, icon 22: picture pic_blank_slot at column 6, row 20; flags $09: chosen as the second icon of group 1; no text (the empty string at $7F02); handler $6FD3."
  },
  {
   "address": 31498,
   "type": "line",
   "text": "The objects screen, icon 23: picture pic_more at column 1, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler page_here $7090."
  },
  {
   "address": 31509,
   "type": "line",
   "text": "The end of the objects screen's icons ($FFFF), then its panel borders for draw_box, 4 bytes each (width, height, column, row): 14 x 8 at column 1, row 14; 9 x 8 at column 17, row 14; 11 x 8 at column 28, row 14; then $FFFF."
  },
  {
   "address": 31525,
   "type": "line",
   "text": "The battle screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7C38. The battle screen, icon 0: picture monitor_movement at column 35, row 14; flags $05: chosen on its own; no text (the empty string at $7F02); handler movement_screen $6DF4."
  },
  {
   "address": 31536,
   "type": "line",
   "text": "The battle screen, icon 1: picture pic_attack at column 31, row 14; flags $07: starts a two-step choice, group 1; no text (the empty string at $7F02); handler attack $71D2."
  },
  {
   "address": 31547,
   "type": "line",
   "text": "The battle screen, icon 2: picture monitor_objects at column 35, row 17; flags $05: chosen on its own; no text (the empty string at $7F02); handler objects_screen $6F42."
  },
  {
   "address": 31558,
   "type": "line",
   "text": "The battle screen, icon 3: picture pic_defend at column 31, row 17; flags $05: chosen on its own; no text (the empty string at $7F02); handler defend $7247."
  },
  {
   "address": 31569,
   "type": "line",
   "text": "The battle screen, icon 4: picture pic_quit at column 35, row 20; flags $FD: chosen on its own, or as the second icon of group 1, or as the second icon of group 2, or as the second icon of group 3, or as the second icon of group 4, or as the second icon of group 5; no text (the empty string at $7F02); handler quit_choice $7106."
  },
  {
   "address": 31580,
   "type": "line",
   "text": "The battle screen, icon 5: picture pic_retreat at column 31, row 20; flags $0B: starts a two-step choice, group 2; no text (the empty string at $7F02); handler retreat $721A."
  },
  {
   "address": 31591,
   "type": "line",
   "text": "The battle screen, icon 6: picture pic_scan at column 27, row 20; flags $0F: starts a two-step choice, group 3; no text (the empty string at $7F02); handler location_scan $7166."
  },
  {
   "address": 31602,
   "type": "line",
   "text": "The battle screen, icon 7: picture map_icon_zoff at column 20, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31613,
   "type": "line",
   "text": "The battle screen, icon 8: picture map_icon_zoff at column 23, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31624,
   "type": "line",
   "text": "The battle screen, icon 9: picture map_icon_zoff at column 23, row 17; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31635,
   "type": "line",
   "text": "The battle screen, icon 10: picture map_icon_zoff at column 23, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31646,
   "type": "line",
   "text": "The battle screen, icon 11: picture map_icon_zoff at column 20, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31657,
   "type": "line",
   "text": "The battle screen, icon 12: picture map_icon_zoff at column 17, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31668,
   "type": "line",
   "text": "The battle screen, icon 13: picture map_icon_zoff at column 17, row 17; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31679,
   "type": "line",
   "text": "The battle screen, icon 14: picture map_icon_zoff at column 17, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 31690,
   "type": "line",
   "text": "The battle screen, icon 15: picture pic_here at column 20, row 17; flags $29: chosen as the second icon of group 1, or as the second icon of group 3; no text (the empty string at $7F02); handler scan_here $7179."
  },
  {
   "address": 31701,
   "type": "line",
   "text": "The battle screen, icon 16: picture pic_key_18 at column 11, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler person_slot_0 $7185."
  },
  {
   "address": 31703,
   "type": "line",
   "text": "The first people icon's column and row: the interrupt's scan updates read them (with Y = 11 x the slot) to draw a figure arriving or leaving in that slot."
  },
  {
   "address": 31704,
   "type": "line",
   "text": "The first people icon's row, read with the column."
  },
  {
   "address": 31705,
   "type": "line",
   "text": "The first people icon's flags, which the interrupt's scan updates write for each slot it fills or empties. Then its text pointer, place and handler."
  },
  {
   "address": 31712,
   "type": "line",
   "text": "The battle screen, icon 17: picture pic_key_18 at column 6, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $718B."
  },
  {
   "address": 31723,
   "type": "line",
   "text": "The battle screen, icon 18: picture pic_key_18 at column 1, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $7191."
  },
  {
   "address": 31734,
   "type": "line",
   "text": "The battle screen, icon 19: picture pic_key_18 at column 11, row 17; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $7197."
  },
  {
   "address": 31745,
   "type": "line",
   "text": "The battle screen, icon 20: picture pic_key_18 at column 6, row 17; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $719D."
  },
  {
   "address": 31756,
   "type": "line",
   "text": "The battle screen, icon 21: picture pic_key_18 at column 1, row 17; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $71A3."
  },
  {
   "address": 31767,
   "type": "line",
   "text": "The battle screen, icon 22: picture pic_key_18 at column 11, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $71A9."
  },
  {
   "address": 31778,
   "type": "line",
   "text": "The battle screen, icon 23: picture pic_key_18 at column 6, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler $71AF."
  },
  {
   "address": 31789,
   "type": "line",
   "text": "The battle screen, icon 24: picture pic_key_18 at column 1, row 20; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler page_people $71B5."
  },
  {
   "address": 31800,
   "type": "line",
   "text": "The end of the battle screen's icons ($FFFF), then its panel borders for draw_box, 4 bytes each (width, height, column, row): 14 x 8 at column 1, row 14; 8 x 8 at column 17, row 14; 11 x 8 at column 27, row 14; then $FFFF."
  },
  {
   "address": 31816,
   "type": "line",
   "text": "The control menu's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7C74. The control menu, icon 0: picture pic_keyboard at column 1, row 14; flags $00, off: it cannot be chosen; the text \"PRESS F1 FOR KEYBOARD\" ($7E65) at column 5, row 14; handler no_action $7603."
  },
  {
   "address": 31827,
   "type": "line",
   "text": "The control menu, icon 1: picture pic_joystick at column 1, row 17; flags $00, off: it cannot be chosen; the text \"PRESS F3 FOR DIGITAL JOYSTICK\" ($7E7B) at column 5, row 17; handler no_action $7603."
  },
  {
   "address": 31838,
   "type": "line",
   "text": "The control menu, icon 2: picture pic_paddle at column 1, row 20; flags $00, off: it cannot be chosen; the text \"PRESS F5 FOR ANALOG JOYSTICK\" ($7E99) at column 5, row 20; handler no_action $7603."
  },
  {
   "address": 31849,
   "type": "line",
   "text": "The control menu, icon 3: picture pic_light_pen at column 1, row 23; flags $00, off: it cannot be chosen; the text \"PRESS F7 FOR LIGHT PEN\" ($7EB6) at column 5, row 23; handler no_action $7603."
  },
  {
   "address": 31860,
   "type": "line",
   "text": "The end of the control menu's icons ($FFFF), then a second $FFFF: no panel borders."
  },
  {
   "address": 31864,
   "type": "line",
   "text": "The start menu's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7CAF. The start menu, icon 0: picture pic_old_game at column 1, row 14; flags $00, off: it cannot be chosen; the text \"OLD GAME\" ($7E3F) at column 5, row 14; handler old_game $7526."
  },
  {
   "address": 31868,
   "type": "line",
   "text": "Old game's flags: start_menu writes 5 here (chosen on its own) or 0 (off), as the game can be resumed or not. Then the text pointer, its place and the handler."
  },
  {
   "address": 31875,
   "type": "line",
   "text": "The start menu, icon 1: picture pic_new_game at column 1, row 18; flags $05: chosen on its own; the text \"NEW GAME\" ($7E48) at column 5, row 18; handler new_game $758E."
  },
  {
   "address": 31886,
   "type": "line",
   "text": "The start menu, icon 2: picture pic_load at column 25, row 14; flags $05: chosen on its own; the text \"LOAD GAME\" ($7E51) at column 29, row 14; handler load_game $762F."
  },
  {
   "address": 31897,
   "type": "line",
   "text": "The start menu, icon 3: picture pic_save at column 25, row 18; flags $05: chosen on its own; the text \"SAVE GAME\" ($7E5B) at column 29, row 18; handler save_game $7648."
  },
  {
   "address": 31908,
   "type": "line",
   "text": "The start menu, icon 4: picture pic_quit at column 35, row 21; flags $05: chosen on its own; the mission summary at $CF4B as its text, at column 5, row 21; handler $41EA."
  },
  {
   "address": 31919,
   "type": "line",
   "text": "The end of the start menu's icons ($FFFF), then a second $FFFF: no panel borders."
  },
  {
   "address": 31923,
   "type": "line",
   "text": "The file name screen's icons, 11 bytes each (picture, column, row, flags, text pointer, text column and row, handler), to the $FFFF at $7E1E. The file name screen, icon 0: picture pic_tape at column 1, row 14; flags $05: chosen on its own; the text \"ENTER FILE NAME /  /\" ($7F85) at column 14, row 14; handler choose_tape $7687."
  },
  {
   "address": 31934,
   "type": "line",
   "text": "The file name screen, icon 1: picture pic_disc at column 1, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler choose_disk $769B."
  },
  {
   "address": 31945,
   "type": "line",
   "text": "The file name screen, icon 2: picture pic_quit at column 1, row 22; flags $05: chosen on its own; no text (the empty string at $7F02); handler start_menu $74B9."
  },
  {
   "address": 31956,
   "type": "line",
   "text": "The file name screen, icon 3: picture pic_letter_cell at column 10, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler letter_a $76AF."
  },
  {
   "address": 31967,
   "type": "line",
   "text": "The file name screen, icon 4: picture pic_letter_cell at column 12, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76B3."
  },
  {
   "address": 31978,
   "type": "line",
   "text": "The file name screen, icon 5: picture pic_letter_cell at column 14, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76B7."
  },
  {
   "address": 31989,
   "type": "line",
   "text": "The file name screen, icon 6: picture pic_letter_cell at column 16, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76BB."
  },
  {
   "address": 32000,
   "type": "line",
   "text": "The file name screen, icon 7: picture pic_letter_cell at column 18, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76BF."
  },
  {
   "address": 32011,
   "type": "line",
   "text": "The file name screen, icon 8: picture pic_letter_cell at column 20, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76C3."
  },
  {
   "address": 32022,
   "type": "line",
   "text": "The file name screen, icon 9: picture pic_letter_cell at column 22, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76C7."
  },
  {
   "address": 32033,
   "type": "line",
   "text": "The file name screen, icon 10: picture pic_letter_cell at column 24, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76CB."
  },
  {
   "address": 32044,
   "type": "line",
   "text": "The file name screen, icon 11: picture pic_letter_cell at column 26, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76CF."
  },
  {
   "address": 32055,
   "type": "line",
   "text": "The file name screen, icon 12: picture pic_letter_cell at column 28, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76D3."
  },
  {
   "address": 32066,
   "type": "line",
   "text": "The file name screen, icon 13: picture pic_letter_cell at column 30, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76D7."
  },
  {
   "address": 32077,
   "type": "line",
   "text": "The file name screen, icon 14: picture pic_letter_cell at column 32, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76DB."
  },
  {
   "address": 32088,
   "type": "line",
   "text": "The file name screen, icon 15: picture pic_letter_cell at column 34, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76DF."
  },
  {
   "address": 32099,
   "type": "line",
   "text": "The file name screen, icon 16: picture pic_letter_cell at column 10, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76E3."
  },
  {
   "address": 32110,
   "type": "line",
   "text": "The file name screen, icon 17: picture pic_letter_cell at column 12, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76E7."
  },
  {
   "address": 32121,
   "type": "line",
   "text": "The file name screen, icon 18: picture pic_letter_cell at column 14, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76EB."
  },
  {
   "address": 32132,
   "type": "line",
   "text": "The file name screen, icon 19: picture pic_letter_cell at column 16, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76EF."
  },
  {
   "address": 32143,
   "type": "line",
   "text": "The file name screen, icon 20: picture pic_letter_cell at column 18, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76F3."
  },
  {
   "address": 32154,
   "type": "line",
   "text": "The file name screen, icon 21: picture pic_letter_cell at column 20, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76F7."
  },
  {
   "address": 32165,
   "type": "line",
   "text": "The file name screen, icon 22: picture pic_letter_cell at column 22, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76FB."
  },
  {
   "address": 32176,
   "type": "line",
   "text": "The file name screen, icon 23: picture pic_letter_cell at column 24, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $76FF."
  },
  {
   "address": 32187,
   "type": "line",
   "text": "The file name screen, icon 24: picture pic_letter_cell at column 26, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $7703."
  },
  {
   "address": 32198,
   "type": "line",
   "text": "The file name screen, icon 25: picture pic_letter_cell at column 28, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $7707."
  },
  {
   "address": 32209,
   "type": "line",
   "text": "The file name screen, icon 26: picture pic_letter_cell at column 30, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $770B."
  },
  {
   "address": 32220,
   "type": "line",
   "text": "The file name screen, icon 27: picture pic_letter_cell at column 32, row 20; flags $05: chosen on its own; no text (the empty string at $7F02); handler $770F."
  },
  {
   "address": 32231,
   "type": "line",
   "text": "The file name screen, icon 28: picture pic_letter_cell at column 34, row 20; flags $05: chosen on its own; the text \"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\" ($7FB1) at column 10, row 18; handler $7713."
  },
  {
   "address": 32242,
   "type": "line",
   "text": "The file name screen, icon 29: picture pic_rub at column 6, row 18; flags $05: chosen on its own; no text (the empty string at $7F02); handler rub_out $772D."
  },
  {
   "address": 32253,
   "type": "line",
   "text": "The file name screen, icon 30: picture pic_disc at column 36, row 14; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 32254,
   "type": "line",
   "text": "The device picture pointer's high byte; then the rest of the record."
  },
  {
   "address": 32264,
   "type": "line",
   "text": "The file name screen, icon 31: picture pic_return at column 36, row 18; flags $05: chosen on its own; the text \"\" ($800E) at column 6, row 23; handler start_file $773E."
  },
  {
   "address": 32268,
   "type": "line",
   "text": "The carriage return's flags: name_screen writes 0 (off) and add_letter 5 once a letter is typed. Then the text pointer, its place and the handler."
  },
  {
   "address": 32275,
   "type": "line",
   "text": "The file name screen, icon 32: picture pic_load at column 36, row 22; flags $00, off: it cannot be chosen; no text (the empty string at $7F02); handler no_action $7603."
  },
  {
   "address": 32276,
   "type": "line",
   "text": "The heading picture pointer's high byte; then its column, row, flags, text and handler."
  },
  {
   "address": 32286,
   "type": "line",
   "text": "The end of the file name screen's icons ($FFFF), then a second $FFFF: no panel borders."
  },
  {
   "address": 32290,
   "type": "line",
   "text": "Pointer to the battle screen's first people icon record, $7BD5, for list_people_here and the unused list_route."
  },
  {
   "address": 32291,
   "type": "line",
   "text": "The pointer's high byte."
  },
  {
   "address": 32292,
   "type": "line",
   "text": "Message \"WELCOME ALLY OF THE EMPIRE\", queued at the restart through welcome_ptr ($42C3). Messages are in the game's own codes: 0-9 digits, $0A-$23 letters, $24 space, $39 a new line or a space, $80 and over a word from the table at $81B1, $38 the end."
  },
  {
   "address": 32319,
   "type": "line",
   "text": "Text \"OLD GAME\", the start menu's first icon."
  },
  {
   "address": 32328,
   "type": "line",
   "text": "Text \"NEW GAME\"."
  },
  {
   "address": 32337,
   "type": "line",
   "text": "Text \"LOAD GAME\"."
  },
  {
   "address": 32347,
   "type": "line",
   "text": "Text \"SAVE GAME\"."
  },
  {
   "address": 32357,
   "type": "line",
   "text": "Text \"PRESS F1 FOR KEYBOARD\", the control menu's first line."
  },
  {
   "address": 32379,
   "type": "line",
   "text": "Text \"PRESS F3 FOR DIGITAL JOYSTICK\"."
  },
  {
   "address": 32409,
   "type": "line",
   "text": "Text \"PRESS F5 FOR ANALOG JOYSTICK\"."
  },
  {
   "address": 32438,
   "type": "line",
   "text": "Text \"PRESS F7 FOR LIGHT PEN\"."
  },
  {
   "address": 32461,
   "type": "line",
   "text": "A text of one digit, \"0\", that nothing refers to."
  },
  {
   "address": 32463,
   "type": "line",
   "text": "Message \"CANNOT RUN IN THAT DIRECTION\", a new line ($39), \"ENEMY IN THAT LOCATION\": retreat's refusal. Its end byte at $7F02 doubles as the empty string every icon without a label points to."
  },
  {
   "address": 32515,
   "type": "line",
   "text": "Pointer to msg_cannot_run, which retreat queues."
  },
  {
   "address": 32516,
   "type": "line",
   "text": "ptr_cannot_run's high byte."
  },
  {
   "address": 32517,
   "type": "line",
   "text": "Message \"NO ENEMY TO ATTACK IN THAT DIRECTION\", attack's refusal."
  },
  {
   "address": 32554,
   "type": "line",
   "text": "Pointer to msg_no_enemy."
  },
  {
   "address": 32555,
   "type": "line",
   "text": "ptr_no_enemy's high byte."
  },
  {
   "address": 32556,
   "type": "line",
   "text": "Message \"YOU CANNOT MOVE IN COMBAT MODE\", move_by_exit's refusal to a defender, or to an attacker away from the battle screen."
  },
  {
   "address": 32587,
   "type": "line",
   "text": "Pointer to msg_no_move."
  },
  {
   "address": 32588,
   "type": "line",
   "text": "ptr_no_move's high byte."
  },
  {
   "address": 32589,
   "type": "line",
   "text": "Message \"SEVRINA HAS OPENED THE DOOR\", queued when a picked lock gives: the name is the word $81 written into the message, whoever picks the lock (only Sevrina can)."
  },
  {
   "address": 32611,
   "type": "line",
   "text": "Pointer to msg_door_opened."
  },
  {
   "address": 32612,
   "type": "line",
   "text": "ptr_door_opened's high byte."
  },
  {
   "address": 32613,
   "type": "line",
   "text": "Message \"<name> HAS BEEN ELIMINATED\": kill_entity writes the dead team member's name word ($80 + the character) into this first byte, which holds 0 at the start."
  },
  {
   "address": 32635,
   "type": "line",
   "text": "Pointer to msg_eliminated."
  },
  {
   "address": 32636,
   "type": "line",
   "text": "ptr_eliminated's high byte."
  },
  {
   "address": 32637,
   "type": "line",
   "text": "Pointer to clock_text, which print_clock prints."
  },
  {
   "address": 32638,
   "type": "line",
   "text": "clock_text_ptr's high byte."
  },
  {
   "address": 32639,
   "type": "line",
   "text": "The clock's text, \"99:59\" at the start: print_clock writes the four digits from $CA03-$CA00 into it (the colon, code $2A, stays)."
  },
  {
   "address": 32640,
   "type": "line",
   "text": "The clock's minutes' units digit, written by print_clock."
  },
  {
   "address": 32642,
   "type": "line",
   "text": "The clock's seconds' tens digit."
  },
  {
   "address": 32643,
   "type": "line",
   "text": "The clock's seconds' units digit."
  },
  {
   "address": 32645,
   "type": "line",
   "text": "Text \"ENTER FILE NAME\", the file name screen's prompt beside the tape icon; the eight spaces from $7F9A within it are the name being typed, so the name prints as part of the prompt."
  },
  {
   "address": 32666,
   "type": "line",
   "text": "The file name, eight letters in the game's codes, spaces ($24) at first; add_letter and rub_out write it, and start_file turns it into PETSCII at $7FA9."
  },
  {
   "address": 32675,
   "type": "line",
   "text": "Two end bytes ($38) after the prompt's own, which nothing reads."
  },
  {
   "address": 32677,
   "type": "line",
   "text": "Pointer to file_name; nothing reads it."
  },
  {
   "address": 32679,
   "type": "line",
   "text": "Pointer to petscii_name, given to the KERNAL's SETNAM by start_file."
  },
  {
   "address": 32680,
   "type": "line",
   "text": "petscii_name_ptr's high byte."
  },
  {
   "address": 32681,
   "type": "line",
   "text": "The file name in PETSCII, eight bytes, written by start_file from file_name before a load or save."
  },
  {
   "address": 32689,
   "type": "line",
   "text": "Text of the letters A to Z, spaced, in two rows: the label of the file name screen's last letter icon, which prints every letter over the 26 letter cells."
  },
  {
   "address": 32743,
   "type": "line",
   "text": "Message \"FILE NOT FOUND\", after the KERNAL's error 4."
  },
  {
   "address": 32758,
   "type": "line",
   "text": "Pointer to msg_not_found."
  },
  {
   "address": 32759,
   "type": "line",
   "text": "ptr_not_found's high byte."
  },
  {
   "address": 32760,
   "type": "line",
   "text": "Message \"DEVICE NOT PRESSENT\" (so spelt), after the KERNAL's error 5."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "The end of msg_no_device's text, across the $8000 line."
  },
  {
   "address": 32780,
   "type": "line",
   "text": "Pointer to msg_no_device."
  },
  {
   "address": 32781,
   "type": "line",
   "text": "ptr_no_device's high byte."
  },
  {
   "address": 32782,
   "type": "line",
   "text": "The carriage return icon's text: one word, $BA (thirty spaces) at first; start_file writes $BB (\"PRESS PLAY ON TAPE\") or $BC (\"PRESS PLAY AND RECORD ON TAPE\") here before a tape load or save."
  },
  {
   "address": 32784,
   "type": "line",
   "text": "Message \"AMBASSADOR KRYXIX HAS BEEN RESCUED\", when Kryxix reaches the attack craft."
  },
  {
   "address": 32794,
   "type": "line",
   "text": "Pointer to msg_rescued."
  },
  {
   "address": 32795,
   "type": "line",
   "text": "ptr_rescued's high byte."
  },
  {
   "address": 32796,
   "type": "line",
   "text": "Message \"AMBASSADOR KRYXIX HAS BEEN EXECUTED\", when the clock passes 00:00."
  },
  {
   "address": 32807,
   "type": "line",
   "text": "Pointer to msg_executed."
  },
  {
   "address": 32808,
   "type": "line",
   "text": "ptr_executed's high byte."
  },
  {
   "address": 32809,
   "type": "line",
   "text": "Message \"WAR HAS BEEN DECLARED BY THE REPUBLIC\", queued with msg_executed."
  },
  {
   "address": 32847,
   "type": "line",
   "text": "Pointer to msg_war."
  },
  {
   "address": 32848,
   "type": "line",
   "text": "ptr_war's high byte."
  },
  {
   "address": 32849,
   "type": "line",
   "text": "Message \"ZOFF HAS BEEN CAPTURED\", when Zoff reaches the attack craft."
  },
  {
   "address": 32869,
   "type": "line",
   "text": "Pointer to msg_zoff_captured."
  },
  {
   "address": 32870,
   "type": "line",
   "text": "ptr_zoff_captured's high byte."
  },
  {
   "address": 32871,
   "type": "line",
   "text": "Message \"ZOFF V HAS BEEN DESTROYED\", when the self-destruct goes off."
  },
  {
   "address": 32894,
   "type": "line",
   "text": "Pointer to msg_destroyed."
  },
  {
   "address": 32895,
   "type": "line",
   "text": "ptr_destroyed's high byte."
  },
  {
   "address": 32896,
   "type": "line",
   "text": "Message \"ZOFF V HAS BEEN CAPTURED\". Nothing queues it: the pointer to it at $8096 is never read, so capturing the ship (the forty-fourth enemy gone) passes without a message."
  },
  {
   "address": 32918,
   "type": "line",
   "text": "Pointer to msg_ship_captured, which nothing reads."
  },
  {
   "address": 32920,
   "type": "line",
   "text": "Message \"<name> HAS LOCATED AMBASSADOR KRYXIX\": the team member's name word is written into this first byte ($80, SYLK, at the start)."
  },
  {
   "address": 32946,
   "type": "line",
   "text": "Pointer to msg_located."
  },
  {
   "address": 32947,
   "type": "line",
   "text": "ptr_located's high byte."
  },
  {
   "address": 32948,
   "type": "line",
   "text": "Message \"AMBASSADOR KRYXIX FOLLOWS ZARK\", when Zark finds Kryxix."
  },
  {
   "address": 32970,
   "type": "line",
   "text": "Pointer to msg_follows."
  },
  {
   "address": 32971,
   "type": "line",
   "text": "ptr_follows's high byte."
  },
  {
   "address": 32972,
   "type": "line",
   "text": "Message \"SELF DESTRUCTION SEQUENCE INITIATED\", when the self-destruct unit is activated."
  },
  {
   "address": 33008,
   "type": "line",
   "text": "Pointer to msg_self_destruct."
  },
  {
   "address": 33009,
   "type": "line",
   "text": "ptr_self_destruct's high byte."
  },
  {
   "address": 33010,
   "type": "line",
   "text": "Message \"4 MINUTES UNTIL DETONATION\": the self-destruct's warnings write the digit (4, 3 or 2) into this first byte."
  },
  {
   "address": 33037,
   "type": "line",
   "text": "Pointer to msg_minutes."
  },
  {
   "address": 33038,
   "type": "line",
   "text": "ptr_minutes' high byte."
  },
  {
   "address": 33039,
   "type": "line",
   "text": "Message \"1 MINUTE UNTIL DETONATION\", the last warning."
  },
  {
   "address": 33065,
   "type": "line",
   "text": "Pointer to msg_one_minute."
  },
  {
   "address": 33066,
   "type": "line",
   "text": "ptr_one_minute's high byte."
  },
  {
   "address": 33067,
   "type": "line",
   "text": "Message \"ZOFF HAS ESCAPED\", at the end of Zoff's patrol."
  },
  {
   "address": 33081,
   "type": "line",
   "text": "Pointer to msg_escaped."
  },
  {
   "address": 33082,
   "type": "line",
   "text": "ptr_escaped's high byte."
  },
  {
   "address": 33083,
   "type": "line",
   "text": "Text of two thin bars ($28) a space apart, the status screen's mark at column 20 of each bar's row."
  },
  {
   "address": 33087,
   "type": "line",
   "text": "Message \"IO ERROR\", after any other KERNAL error."
  },
  {
   "address": 33096,
   "type": "line",
   "text": "Pointer to msg_io_error."
  },
  {
   "address": 33097,
   "type": "line",
   "text": "ptr_io_error's high byte."
  },
  {
   "address": 33098,
   "type": "line",
   "text": "Message \"SHADOWFIRE DEMONSTRATION\", queued when the demonstration starts and at every fourth point of its script."
  },
  {
   "address": 33123,
   "type": "line",
   "text": "Pointer to msg_demo."
  },
  {
   "address": 33124,
   "type": "line",
   "text": "ptr_demo's high byte."
  },
  {
   "address": 33125,
   "type": "line",
   "text": "Message \"NO DOOR TO UNLOCK\", from the keys and the tool kit."
  },
  {
   "address": 33143,
   "type": "line",
   "text": "Pointer to msg_no_door."
  },
  {
   "address": 33144,
   "type": "line",
   "text": "ptr_no_door's high byte."
  },
  {
   "address": 33145,
   "type": "line",
   "text": "Six messages of one word each, two bytes apiece: words $C0-$C5, \"<NAME> UNDER ATTACK\" for Syylk to Torik, each with its end byte."
  },
  {
   "address": 33157,
   "type": "line",
   "text": "Pointer to msgs_under_attack; combat adds twice the character's number to it."
  },
  {
   "address": 33158,
   "type": "line",
   "text": "ptr_under_attack's high byte."
  },
  {
   "address": 33159,
   "type": "line",
   "text": "Two zero bytes nothing reads."
  },
  {
   "address": 33161,
   "type": "line",
   "text": "Set while the battle screen's location scan is on show, so that the interrupt updates its people icons."
  },
  {
   "address": 33162,
   "type": "line",
   "text": "The people icon chosen; written by their handlers, and read by nothing."
  },
  {
   "address": 33163,
   "type": "line",
   "text": "1 for a load, 0 for a save."
  },
  {
   "address": 33164,
   "type": "line",
   "text": "The device for loading and saving: 8 (disc) at the start, 1 once the tape icon is chosen, 8 again for the disc icon."
  },
  {
   "address": 33165,
   "type": "line",
   "text": "Set by the master key: open_door then takes a door of any colour."
  },
  {
   "address": 33166,
   "type": "line",
   "text": "How many letters the file name has."
  },
  {
   "address": 33167,
   "type": "line",
   "text": "The six team members' team screen pictures, Syylk to Torik, put back into the team screen's icons by reset_team_icons."
  },
  {
   "address": 33179,
   "type": "line",
   "text": "Pointer to the LOAD heading picture, $E6EF."
  },
  {
   "address": 33180,
   "type": "line",
   "text": "load_heading_ptr's high byte."
  },
  {
   "address": 33181,
   "type": "line",
   "text": "Pointer to the SAVE heading picture, $E72A."
  },
  {
   "address": 33182,
   "type": "line",
   "text": "save_heading_ptr's high byte."
  },
  {
   "address": 33183,
   "type": "line",
   "text": "Pointer to the tape picture, $0AA8, shown on the file name screen once tape is chosen."
  },
  {
   "address": 33184,
   "type": "line",
   "text": "tape_pic_ptr's high byte."
  },
  {
   "address": 33185,
   "type": "line",
   "text": "Pointer to the disc picture, $1536."
  },
  {
   "address": 33186,
   "type": "line",
   "text": "disc_pic_ptr's high byte."
  },
  {
   "address": 33187,
   "type": "line",
   "text": "The ballistic control's three icon slots, 7, 10 and 13, searched for the slot chosen."
  },
  {
   "address": 33190,
   "type": "line",
   "text": "The ballistic control's three destinations, in slot order: $16 (FIGHTER LAUNCH TUBE ONE), $08 (SHUTTLE BAY) and $A0 (SHUTTLE BAY, the lower one)."
  },
  {
   "address": 33193,
   "type": "line",
   "text": "The seconds a move takes per unit of distance, worked out from agility by move_by_exit."
  },
  {
   "address": 33194,
   "type": "line",
   "text": "The ship's map tiles $41, $42 and $43 at $85CD-$85CF, put back by reset_team_icons after Zoff's escape has changed them."
  },
  {
   "address": 33197,
   "type": "line",
   "text": "The map tiles $44, $45 and $46 at $85ED-$85EF, put back the same way."
  },
  {
   "address": 33200,
   "type": "line",
   "text": "A zero byte nothing reads."
  },
  {
   "address": 33201,
   "type": "line",
   "text": "The word table: a pointer for each of the 71 words, codes $80-$C6, that messages and location descriptions use. Words can hold words: $B8, \"AMBASSADOR KRYXIX HAS BEEN\", holds $B9, \"KRYXIX\"."
  },
  {
   "address": 33202,
   "type": "line",
   "text": "The word table read one byte on, for the pointers' high bytes."
  },
  {
   "address": 33343,
   "type": "line",
   "text": "The words themselves, each ending $38, in code order: word $80 \"SYLK \" (Syylk) first, to word $C6 \"UNDER ATTACK\" at $84BA."
  },
  {
   "address": 33349,
   "type": "line",
   "text": "Word $81: \"SEVRINA \"."
  },
  {
   "address": 33358,
   "type": "line",
   "text": "Word $82: \"MANTO \"."
  },
  {
   "address": 33365,
   "type": "line",
   "text": "Word $83: \"MAUL \"."
  },
  {
   "address": 33371,
   "type": "line",
   "text": "Word $84: \"ZARK \"."
  },
  {
   "address": 33377,
   "type": "line",
   "text": "Word $85: \"TORIK \"."
  },
  {
   "address": 33384,
   "type": "line",
   "text": "Word $86: \"FIGHTER \"."
  },
  {
   "address": 33393,
   "type": "line",
   "text": "Word $87: \"PERSONNEL \"."
  },
  {
   "address": 33404,
   "type": "line",
   "text": "Word $88: \"QUARTERS \"."
  },
  {
   "address": 33414,
   "type": "line",
   "text": "Word $89: \"PORT \"."
  },
  {
   "address": 33420,
   "type": "line",
   "text": "Word $8A: \"ENGINE\"."
  },
  {
   "address": 33427,
   "type": "line",
   "text": "Word $8B: \"ENGINEERING \"."
  },
  {
   "address": 33435,
   "type": "line",
   "text": "Word $8C: \"SHUTTLE \"."
  },
  {
   "address": 33444,
   "type": "line",
   "text": "Word $8D: \"SUIT\"."
  },
  {
   "address": 33449,
   "type": "line",
   "text": "Word $8E: \"ROOM \"."
  },
  {
   "address": 33455,
   "type": "line",
   "text": "Word $8F: \"SECURITY \"."
  },
  {
   "address": 33465,
   "type": "line",
   "text": "Word $90: \"CHECK \"."
  },
  {
   "address": 33472,
   "type": "line",
   "text": "Word $91: \"ACCESS \"."
  },
  {
   "address": 33480,
   "type": "line",
   "text": "Word $92: \"ENTRANCE \"."
  },
  {
   "address": 33490,
   "type": "line",
   "text": "Word $93: \"CORRIDOR \"."
  },
  {
   "address": 33500,
   "type": "line",
   "text": "Word $94: \"BAY \"."
  },
  {
   "address": 33505,
   "type": "line",
   "text": "Word $95: \"CONTROL \"."
  },
  {
   "address": 33514,
   "type": "line",
   "text": "Word $96: \"LOCKER \"."
  },
  {
   "address": 33522,
   "type": "line",
   "text": "Word $97: \"ONE \"."
  },
  {
   "address": 33527,
   "type": "line",
   "text": "Word $98: \"TWO \"."
  },
  {
   "address": 33532,
   "type": "line",
   "text": "Word $99: \"CATWALK \"."
  },
  {
   "address": 33541,
   "type": "line",
   "text": "Word $9A: \"ROBOT \"."
  },
  {
   "address": 33548,
   "type": "line",
   "text": "Word $9B: \"MILITARY \"."
  },
  {
   "address": 33558,
   "type": "line",
   "text": "Word $9C: \"AREA \"."
  },
  {
   "address": 33564,
   "type": "line",
   "text": "Word $9D: \"OBSERVATION \"."
  },
  {
   "address": 33577,
   "type": "line",
   "text": "Word $9E: \"DECK \"."
  },
  {
   "address": 33583,
   "type": "line",
   "text": "Word $9F: \"ARMOURY \"."
  },
  {
   "address": 33592,
   "type": "line",
   "text": "Word $A0: \"REPAIRS \"."
  },
  {
   "address": 33601,
   "type": "line",
   "text": "Word $A1: \"AND \"."
  },
  {
   "address": 33606,
   "type": "line",
   "text": "Word $A2: \"CENTRE \"."
  },
  {
   "address": 33614,
   "type": "line",
   "text": "Word $A3: \"XATOR \"."
  },
  {
   "address": 33621,
   "type": "line",
   "text": "Word $A4: \"ZOFF\"."
  },
  {
   "address": 33626,
   "type": "line",
   "text": "Word $A5: \"MARSHALL \"."
  },
  {
   "address": 33636,
   "type": "line",
   "text": "Word $A6: \"POST \"."
  },
  {
   "address": 33642,
   "type": "line",
   "text": "Word $A7: \"BARRACKS \"."
  },
  {
   "address": 33652,
   "type": "line",
   "text": "Word $A8: \"LIEUTENANTS \"."
  },
  {
   "address": 33665,
   "type": "line",
   "text": "Word $A9: \"WARRENS \"."
  },
  {
   "address": 33674,
   "type": "line",
   "text": "Word $AA: \"FLIGHT \"."
  },
  {
   "address": 33682,
   "type": "line",
   "text": "Word $AB: \"COMPUTER \"."
  },
  {
   "address": 33692,
   "type": "line",
   "text": "Word $AC: \"ESCAPE \"."
  },
  {
   "address": 33700,
   "type": "line",
   "text": "Word $AD: \"SCIENCE \"."
  },
  {
   "address": 33709,
   "type": "line",
   "text": "Word $AE: \"INFORMATION \"."
  },
  {
   "address": 33722,
   "type": "line",
   "text": "Word $AF: \"FAILED\"."
  },
  {
   "address": 33729,
   "type": "line",
   "text": "Word $B0: \"INCOMPLETE\"."
  },
  {
   "address": 33740,
   "type": "line",
   "text": "Word $B1: \"SUCCEEDED\"."
  },
  {
   "address": 33750,
   "type": "line",
   "text": "Word $B2: \"ENIGMA FORCE DEFEATED\"."
  },
  {
   "address": 33772,
   "type": "line",
   "text": "Word $B3: \"KRYXIX NOT RESCUED\"."
  },
  {
   "address": 33785,
   "type": "line",
   "text": "Word $B4: \"ZOFF V NOT DESTROYED\"."
  },
  {
   "address": 33803,
   "type": "line",
   "text": "Word $B5: \"ZOFF 5 NOT CAPTURED\"."
  },
  {
   "address": 33820,
   "type": "line",
   "text": "Word $B6: \"ZOFF NOT CAPTURED\"."
  },
  {
   "address": 33835,
   "type": "line",
   "text": "Word $B7: \"\"."
  },
  {
   "address": 33836,
   "type": "line",
   "text": "Word $B8: \"AMBASSADOR KRYXIX HAS BEEN\"."
  },
  {
   "address": 33857,
   "type": "line",
   "text": "Word $B9: \"KRYXIX \"."
  },
  {
   "address": 33865,
   "type": "line",
   "text": "Word $BA: \"                              \"."
  },
  {
   "address": 33896,
   "type": "line",
   "text": "Word $BB: \"PRESS PLAY ON TAPE\"."
  },
  {
   "address": 33899,
   "type": "line",
   "text": "Word $BC: \"PRESS PLAY AND RECORD ON TAPE\"."
  },
  {
   "address": 33913,
   "type": "line",
   "text": "Word $BD: \"PRESS PLAY \"."
  },
  {
   "address": 33925,
   "type": "line",
   "text": "Word $BE: \"ON TAPE\"."
  },
  {
   "address": 33933,
   "type": "line",
   "text": "Word $BF: \"SURVIVING ENIGMA FORCE    \"."
  },
  {
   "address": 33960,
   "type": "line",
   "text": "Word $C0: \"SYLK UNDER ATTACK\"."
  },
  {
   "address": 33963,
   "type": "line",
   "text": "Word $C1: \"SEVRINA UNDER ATTACK\"."
  },
  {
   "address": 33966,
   "type": "line",
   "text": "Word $C2: \"MANTO UNDER ATTACK\"."
  },
  {
   "address": 33969,
   "type": "line",
   "text": "Word $C3: \"MAUL UNDER ATTACK\"."
  },
  {
   "address": 33972,
   "type": "line",
   "text": "Word $C4: \"ZARK UNDER ATTACK\"."
  },
  {
   "address": 33975,
   "type": "line",
   "text": "Word $C5: \"TORIK UNDER ATTACK\"."
  },
  {
   "address": 33978,
   "type": "line",
   "text": "Word $C6: \"UNDER ATTACK\"."
  },
  {
   "address": 33991,
   "type": "line",
   "text": "Points at the tile map, $84CB."
  },
  {
   "address": 33992,
   "type": "line",
   "text": "The tile map pointer's high byte."
  },
  {
   "address": 33993,
   "type": "line",
   "text": "Points at the map's colours, $88CB."
  },
  {
   "address": 33994,
   "type": "line",
   "text": "The colour map pointer's high byte."
  },
  {
   "address": 33995,
   "type": "line",
   "text": "The ship's map, row 0: 32 tile numbers, $31 empty space. Locations on this row: $01 at column 9 (EXHAUST PORT ONE); $05 at column 19 (EXHAUST PORT TWO)."
  },
  {
   "address": 34027,
   "type": "line",
   "text": "The ship's map, row 1: 32 tile numbers, $31 empty space. Locations on this row: $00 at column 4 (FIGHTER PERSONNEL QUARTERS); $02 at column 12 (ENGINE INSPECTION PLATFORM); $03 at column 14 (ENGINEERING CONTROL); $04 at column 16 (ENGINEERING CONTROL); $06 at column 26 (SHUTTLE BAY SUITING ROOM); $07 at column 27 (SHUTTLE BAY SUITING ROOM); $08 at column 29 (SHUTTLE BAY)."
  },
  {
   "address": 34059,
   "type": "line",
   "text": "The ship's map, row 2: 32 tile numbers, $31 empty space. Locations on this row: $09 at column 7 (ENGINEERING WORKSHOP); $0A at column 9 (ENGINE ONE); $0B at column 11 (ENGINE ONE); $0C at column 17 (ENGINE TWO); $0D at column 19 (ENGINE TWO); $0E at column 21 (ENGINEERING SECURITY CHECK)."
  },
  {
   "address": 34091,
   "type": "line",
   "text": "The ship's map, row 3: 32 tile numbers, $31 empty space. Locations on this row: $0F at column 2 (FIGHTER COCKPIT ACCESS); $10 at column 4 (FIGHTER PERSONNEL ENTRANCE); $11 at column 7 (TOOLING ROOM); $12 at column 22 (ENGINEERING SERVICE CORRIDOR); $13 at column 24 (SHUTTLE CONTROL ENTRANCE); $14 at column 26 (SHUTTLE CONTROL); $15 at column 29 (SUIT LOCKER)."
  },
  {
   "address": 34123,
   "type": "line",
   "text": "The ship's map, row 4: 32 tile numbers, $31 empty space. Locations on this row: $16 at column 0 (FIGHTER LAUNCH TUBE ONE); $17 at column 4 (FIGHTER BAY CATWALK); $1F at column 23 (ASSEMBLY AREA OBSERVATION DECK)."
  },
  {
   "address": 34155,
   "type": "line",
   "text": "The ship's map, row 5: 32 tile numbers, $31 empty space. Locations on this row: $18 at column 9 (ROBOT CONTROL); $19 at column 11 (ROBOT SECURITY); $1A at column 13 (ROBOT CONTROL ENTRANCE); $1B at column 15 (STERN CORRIDOR); $1C at column 17 (MILITARY CONTROL ENTRANCE); $1D at column 19 (MILITARY SECURITY); $1E at column 21 (MILITARY CONTROL)."
  },
  {
   "address": 34187,
   "type": "line",
   "text": "The ship's map, row 6: 32 tile numbers, $31 empty space. Locations on this row: $20 at column 0 (FUEL VALVE LOCKER); $21 at column 2 (FIGHTER COCKPIT ACCESS); $22 at column 4 (FIGHTER BAY CATWALK); $23 at column 25 (GUN DECK SECURITY); $24 at column 27 (MILITARY ARMOURY)."
  },
  {
   "address": 34219,
   "type": "line",
   "text": "The ship's map, row 7: 32 tile numbers, $31 empty space. Locations on this row: $25 at column 6 (ROBOT ARMOURY); $26 at column 9 (ROBOT REPAIRS AND WORKSHOP); $27 at column 20 (ASSEMBLY AREA); $28 at column 21 (ASSEMBLY AREA); $29 at column 23 (PAY AND ADMIN)."
  },
  {
   "address": 34251,
   "type": "line",
   "text": "The ship's map, row 8: 32 tile numbers, $31 empty space. Locations on this row: $2A at column 0 (FIGHTER LAUNCH TUBE TWO); $2B at column 4 (FIGHTER BAY CATWALK); $2C at column 6 (ARMOURY SECURITY); $2D at column 8 (ROBOT CENTRE SECURITY); $2E at column 10 (SECURITY CONTROL ENTRANCE); $2F at column 19 (SECURITY CONTROL ENTRANCE); $30 at column 25 (ENGINE OBSERVATION PORT); $31 at column 27 (MAIN ARMAMENT CONTROL)."
  },
  {
   "address": 34253,
   "type": "line",
   "text": "Map row 8's cells 2-4 (with $85ED-$85EF below): Zoff's escape turns all six to tile $96, and reset_team_icons puts them back from $81AA."
  },
  {
   "address": 34254,
   "type": "line",
   "text": "The second of the three cells Zoff's escape changes on row 8."
  },
  {
   "address": 34255,
   "type": "line",
   "text": "The third."
  },
  {
   "address": 34283,
   "type": "line",
   "text": "The ship's map, row 9: 32 tile numbers, $31 empty space. Locations on this row: $32 at column 1 (FIGHTER CONTROL); $A1 at column 2 (FIGHTER BAY ENTRANCE); $33 at column 3 (FIGHTER BAY SECURITY); $3A at column 23 (MILITARY AID STATION)."
  },
  {
   "address": 34285,
   "type": "line",
   "text": "Map row 9's cells 2-4, changed with $85CD-$85CF."
  },
  {
   "address": 34286,
   "type": "line",
   "text": "The second of the three on row 9."
  },
  {
   "address": 34287,
   "type": "line",
   "text": "The third on row 9."
  },
  {
   "address": 34315,
   "type": "line",
   "text": "The ship's map, row 10: 32 tile numbers, $31 empty space. Locations on this row: $34 at column 6 (XATOR SECURITY); $35 at column 8 (ROBOT CENTRE ENTRANCE); $36 at column 12 (ZOFF SECURITY); $37 at column 13 (ZOFF OFFICE); $38 at column 15 (SECURITY CONTROL); $39 at column 17 (MARSHALL CAVNS COMMAND POST); $3B at column 23 (BARRACKS ENTRANCE); $3C at column 24 (BARRACKS SECURITY); $3D at column 26 (BARRACKS ENTRANCE); $3E at column 27 (GUNDECK)."
  },
  {
   "address": 34347,
   "type": "line",
   "text": "The ship's map, row 11: 32 tile numbers, $31 empty space. Locations on this row: $3F at column 2 (FIGHTER BAY ENTRANCE); $40 at column 5 (XATOR SECURITY); $41 at column 13 (MARSHALL XATOR S COMMANDPOST); $42 at column 16 (MARSHALL CAVNS QUARTERS)."
  },
  {
   "address": 34379,
   "type": "line",
   "text": "The ship's map, row 12: 32 tile numbers, $31 empty space. Locations on this row: $43 at column 6 (MARSHALL XATOR QUARTERS); $44 at column 23 (BARRACKS); $45 at column 25 (BARRACKS); $46 at column 27 (ENGINEERING ACCESS CORRIDOR); $47 at column 29 (LIEUTENANTS QUARTERS)."
  },
  {
   "address": 34411,
   "type": "line",
   "text": "The ship's map, row 13: 32 tile numbers, $31 empty space. Locations on this row: $48 at column 0 (ROBOT REPAIR WARRENS); $49 at column 2 (ROBOT SECURITY); $4A at column 3 (ROBOT WARRENS ACCESS CHECK); $4C at column 11 (SECURITY CONTROL ENTRANCE); $4D at column 13 (ZOFF ARMOURY); $4E at column 15 (ZOFF QUARTERS); $4F at column 18 (SECURITY CONTROL ENTRANCE)."
  },
  {
   "address": 34443,
   "type": "line",
   "text": "The ship's map, row 14: 32 tile numbers, $31 empty space. Locations on this row: $4B at column 4 (SPARE HARDWARE LOCKER); $50 at column 14 (SECURITY INTERROGATION CHAMBER); $51 at column 15 (SECURITY INTERROGATION CHAMBER); $52 at column 19 (SECURITY CORRIDOR); $53 at column 25 (BARRACKS SECURITY); $54 at column 27 (FIGHTER CONTROL ACCESS CORRIDOR); $55 at column 29 (BARRACKS BRIEFING ROOM)."
  },
  {
   "address": 34475,
   "type": "line",
   "text": "The ship's map, row 15: 32 tile numbers, $31 empty space. Locations on this row: $56 at column 0 (FIGHTER CONTROL); $57 at column 9 (SECURITY CORRIDOR); $5A at column 24 (OFF DUTY AREA); $5B at column 25 (OFF DUTY LOGGING); $5C at column 27 (OFF DUTY ACCESS AREA)."
  },
  {
   "address": 34507,
   "type": "line",
   "text": "The ship's map, row 16: 32 tile numbers, $31 empty space. Locations on this row: $58 at column 3 (TOOL LOCKER); $59 at column 21 (SECURITY CORRIDOR); $5D at column 29 (LIEUTENANTS QUARTERS)."
  },
  {
   "address": 34539,
   "type": "line",
   "text": "The ship's map, row 17: 32 tile numbers, $31 empty space. Locations on this row: $61 at column 0 (ROBOT CONTROL COMPUTER); $60 at column 2 (WARRENS CONTROL POST); $5F at column 7 (SECURITY CORRIDOR); $5E at column 27 (FLIGHT CONTROL SECURITY CUT OFF)."
  },
  {
   "address": 34571,
   "type": "line",
   "text": "The ship's map, row 18: 32 tile numbers, $31 empty space. Locations on this row: $64 at column 13 (SIGNALLING COMPUTER); $65 at column 16 (COMPUTER REPAIRS ROOM S); $66 at column 23 (SECURITY CORRIDOR); $67 at column 27 (MILITARY CORRIDOR)."
  },
  {
   "address": 34603,
   "type": "line",
   "text": "The ship's map, row 19: 32 tile numbers, $31 empty space. Locations on this row: $62 at column 2 (WARRENS ACCESS CORRIDOR); $63 at column 5 (SECURITY ACCESS CORRIDOR); $68 at column 12 (COMPUTER GUARD POST); $69 at column 17 (WORK SPACE)."
  },
  {
   "address": 34635,
   "type": "line",
   "text": "The ship's map, row 20: 32 tile numbers, $31 empty space. Locations on this row: $6A at column 11 (COMPUTER ACCESS CORRIDOR); $6B at column 13 (TRANSLATION COMPUTER); $6C at column 15 (PROVISIONS AND STORES); $6D at column 19 (NAVIGATORS QUARTERS); $6E at column 25 (SECURITY CORRIDOR ACCESS); $6F at column 27 (MILITARY CORRIDOR)."
  },
  {
   "address": 34667,
   "type": "line",
   "text": "The ship's map, row 21: 32 tile numbers, $31 empty space. Locations on this row: $70 at column 2 (CORRIDOR SECURITY); $71 at column 3 (FLIGHT CONTROL SECURITY CUT OFF); $72 at column 9 (SKY FORTRESS CAPTAINS CABIN); $73 at column 11 (CAPTAINS SECURITY); $74 at column 17 (FLIGHT CENTRE CORRIDOR); $75 at column 27 (MILITARY SECTION RECEPTION)."
  },
  {
   "address": 34699,
   "type": "line",
   "text": "The ship's map, row 22: 32 tile numbers, $31 empty space. Locations on this row: $76 at column 11 (BRIDGE ACCESS CORRIDOR); $77 at column 13 (COMPUTER SECURITY); $78 at column 15 (CANTEEN AND BAR); $79 at column 17 (CANTEEN ACCESS); $7A at column 19 (REST AREA); $7B at column 20 (EXTERNAL OBSERVATION PORT); $7C at column 25 (MILITARY ACCESS BY PASS)."
  },
  {
   "address": 34731,
   "type": "line",
   "text": "The ship's map, row 23: 32 tile numbers, $31 empty space. Locations on this row: $7D at column 1 (ROBOT TO HUMAN LIAISON); $7E at column 3 (LIASON ACCESS); $7F at column 9 (SKY FORTRESS FLIGHT PERSONNEL QUARTERS); $80 at column 25 (MILITARY ACCESS BY PASS); $81 at column 27 (MILITARY SECTION CHECK)."
  },
  {
   "address": 34763,
   "type": "line",
   "text": "The ship's map, row 24: 32 tile numbers, $31 empty space. Locations on this row: $82 at column 3 (ROBOT WARRENS SECURITY CHECK); $83 at column 11 (BRIDGE ACCESS SECURITY); $84 at column 13 (BRIDGE SECURITY); $A2 at column 14 (CAPTAINS WORK AREA); $85 at column 16 (ESCAPE SHUTTLE COMPUTER); $86 at column 18 (PILOT AREA SECURITY); $87 at column 20 (CHART LOCKER); $88 at column 26 (CONNECTING CORRIDOR)."
  },
  {
   "address": 34795,
   "type": "line",
   "text": "The ship's map, row 25: 32 tile numbers, $31 empty space. Locations on this row: $89 at column 8 (OBSERVATION PORT); $8A at column 9 (FLIGHT CONTROL PAY AND ADMIN); $8B at column 11 (CORRIDOR CORNER); $8C at column 14 (SKY FORTRESS BRIDGE); $8D at column 20 (CORRIDOR CORNER)."
  },
  {
   "address": 34827,
   "type": "line",
   "text": "The ship's map, row 26: 32 tile numbers, $31 empty space. Locations on this row: $8E at column 5 (CONNECTING CORRIDOR); $8F at column 12 (FLIGHT CONTROL OBSERVATION PORT); $90 at column 16 (ESCAPE SHUTTLE AIR LOCK); $91 at column 21 (SHUTTLE USER CONTROL); $92 at column 22 (SHUTTLE BAY CORRIDOR); $93 at column 24 (BOW CORRIDOR)."
  },
  {
   "address": 34859,
   "type": "line",
   "text": "The ship's map, row 27: 32 tile numbers, $31 empty space. Locations on this row: $94 at column 5 (SCIENCE CORRIDOR); $95 at column 6 (SCIENCE AND INFORMATION ACCESS); $96 at column 8 (SCIENCE CORRIDOR); $97 at column 13 (FLIGHT CONTROL ARMAMENT COMPUTER); $98 at column 15 (ESCAPE SHUTTLE SUITLOCKER)."
  },
  {
   "address": 34891,
   "type": "line",
   "text": "The ship's map, row 28: 32 tile numbers, $31 empty space. Locations on this row: $99 at column 6 (SCIENCE AND INFORMATION GUARD POST); $9A at column 21 (SUIT LOCKER)."
  },
  {
   "address": 34923,
   "type": "line",
   "text": "The ship's map, row 29: 32 tile numbers, $31 empty space. Locations on this row: $9B at column 6 (INFORMATION CENTRE); $9C at column 8 (SCIENCE CENTRE); $9D at column 14 (ESCAPE SHUTTLE FLIGHT DECK); $9E at column 15 (ESCAPE SHUTTLE NAVIGATION COMPUTER); $9F at column 21 (SHUTTLE BAY SUITING ROOM); $A0 at column 23 (SHUTTLE BAY)."
  },
  {
   "address": 34955,
   "type": "line",
   "text": "The ship's map, row 30: 32 tile numbers, $31 empty space. No location stands on it."
  },
  {
   "address": 34987,
   "type": "line",
   "text": "The ship's map, row 31: 32 tile numbers, $31 empty space. No location stands on it."
  },
  {
   "address": 35019,
   "type": "line",
   "text": "The map's colours, 32 x 32 like the tile map: the screen-matrix byte for each tile's four cells, two colours, one in each nibble. Most tiles are $12."
  },
  {
   "address": 36043,
   "type": "line",
   "text": "Points at the blank 3 x 2 picture after it, $8CCD; nothing reads this pointer."
  },
  {
   "address": 36045,
   "type": "line",
   "text": "A blank picture, black bitmap with colours after it; nothing draws it, and the pointer to it at $8CCB is never read. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells."
  },
  {
   "address": 36104,
   "type": "line",
   "text": "A pointer to the picture that follows it, $8D0A."
  },
  {
   "address": 36105,
   "type": "line",
   "text": "Its high byte, $8D."
  },
  {
   "address": 36106,
   "type": "line",
   "text": "A blank picture, all black: an empty cell of the view screen's map. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the pointer at $8D08."
  },
  {
   "address": 36146,
   "type": "line",
   "text": "A pointer to the picture that follows, $8D34."
  },
  {
   "address": 36147,
   "type": "line",
   "text": "The high byte of $8D34."
  },
  {
   "address": 36148,
   "type": "line",
   "text": "A blank picture, all black: an empty object or person slot. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7A44; the objects screen's icon at $7A70; the objects screen's icon at $7A7B; the objects screen's icon at $7A86; the objects screen's icon at $7A91; the objects screen's icon at $7A9C; the objects screen's icon at $7AA7; the objects screen's icon at $7AB2; the objects screen's icon at $7ABD; the objects screen's icon at $7AC8; the objects screen's icon at $7AD3; the objects screen's icon at $7ADE; the objects screen's icon at $7AE9; the objects screen's icon at $7AF4; the objects screen's icon at $7AFF; the pointer at $8D32; transporter_icons; transporter_icons; transporter_icons; transporter_icons; transporter_icons; transporter_icons."
  },
  {
   "address": 36226,
   "type": "line",
   "text": "A pointer to the next picture, $8D84: kill_entity's icon for Manto or Maul once dead."
  },
  {
   "address": 36227,
   "type": "line",
   "text": "The high byte of $8D84."
  },
  {
   "address": 36228,
   "type": "line",
   "text": "A blank picture, all black: the team screen's icon for Manto or Maul once dead. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the pointer at $8D82."
  },
  {
   "address": 36382,
   "type": "line",
   "text": "Sevrina in full figure, in blue: her team screen icon. A picture of 4 x 6 cells, 230 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78B9; Sevrina's team icon in team_pictures ($818F)."
  },
  {
   "address": 36612,
   "type": "line",
   "text": "Zark in full figure, a bald, muscular man in brown: his team screen icon. A picture of 4 x 6 cells, 230 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78DA; Zark's team icon in team_pictures ($818F)."
  },
  {
   "address": 36842,
   "type": "line",
   "text": "Torik in full figure, in grey and brown armour: his team screen icon. A picture of 4 x 6 cells, 230 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78E5; Torik's team icon in team_pictures ($818F)."
  },
  {
   "address": 37072,
   "type": "line",
   "text": "Manto, a white droid: his team screen icon. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78C4; Manto's team icon in team_pictures ($818F)."
  },
  {
   "address": 37226,
   "type": "line",
   "text": "Maul, a round green droid with a brown band: his team screen icon. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78CF; Maul's team icon in team_pictures ($818F)."
  },
  {
   "address": 37380,
   "type": "line",
   "text": "A heart: the stamina bar's icon on the status screen. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $792B."
  },
  {
   "address": 37439,
   "type": "line",
   "text": "A running figure: the agility bar's icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $7920."
  },
  {
   "address": 37498,
   "type": "line",
   "text": "A filled arrow pointing up. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the movement screen's icon at $798B; arrows_open2, up."
  },
  {
   "address": 37652,
   "type": "line",
   "text": "A filled arrow pointing left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the movement screen's icon at $7975; the movement screen's icon at $7980; arrows_open2, left."
  },
  {
   "address": 37806,
   "type": "line",
   "text": "A filled arrow pointing down and left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the movement screen's icon at $79AC; the movement screen's icon at $79B7; arrows_open2, down-left."
  },
  {
   "address": 37960,
   "type": "line",
   "text": "A filled arrow pointing up and right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the movement screen's icon at $7996; the movement screen's icon at $79A1; arrows_open2, up-right."
  },
  {
   "address": 38114,
   "type": "line",
   "text": "A filled arrow pointing down and right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the movement screen's icon at $79C2; arrows_open2, down-right."
  },
  {
   "address": 38268,
   "type": "line",
   "text": "A flexed arm: the strength bar's icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $7915."
  },
  {
   "address": 38327,
   "type": "line",
   "text": "A filled arrow pointing down. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open2, down."
  },
  {
   "address": 38481,
   "type": "line",
   "text": "A filled arrow pointing right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open2, right."
  },
  {
   "address": 38635,
   "type": "line",
   "text": "A filled arrow pointing up and left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open2, up-left."
  },
  {
   "address": 38789,
   "type": "line",
   "text": "A monitor, the manual's red monitor: the way to the battle screen. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $794C; the movement screen's icon at $79E3; the objects screen's icon at $7A39."
  },
  {
   "address": 38848,
   "type": "line",
   "text": "A monitor, the manual's green monitor: the way to the movement screen. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $7941; the objects screen's icon at $7A23; the battle screen's icon at $7B25."
  },
  {
   "address": 38907,
   "type": "line",
   "text": "A monitor, the manual's yellow monitor: the way to the objects screen. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $7957; the movement screen's icon at $79D8; the battle screen's icon at $7B3B."
  },
  {
   "address": 38966,
   "type": "line",
   "text": "Portrait 2's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 38968,
   "type": "line",
   "text": "Portrait 2 (Manto), the bitmap, 640 bytes for 10 x 8 cells: Manto, a droid's head and body in purple and white. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 39608,
   "type": "line",
   "text": "Portrait 2's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 39728,
   "type": "line",
   "text": "Portrait 4's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 39730,
   "type": "line",
   "text": "Portrait 4 (Zark), the bitmap, 640 bytes for 10 x 8 cells: Zark, bald, with a spacecraft behind him. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 40370,
   "type": "line",
   "text": "Portrait 4's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 40490,
   "type": "line",
   "text": "Portrait 3's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 40492,
   "type": "line",
   "text": "Portrait 3 (Maul), the bitmap, 640 bytes for 10 x 8 cells: a glass dome above a sandy floor. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "Portrait 3's bitmap (Maul's) continues across the $A000 line."
  },
  {
   "address": 41132,
   "type": "line",
   "text": "Portrait 3's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 41252,
   "type": "line",
   "text": "Manto's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Manto's map icon in entity_pictures."
  },
  {
   "address": 41292,
   "type": "line",
   "text": "Sevrina's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Sevrina's map icon in entity_pictures."
  },
  {
   "address": 41332,
   "type": "line",
   "text": "Maul's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Maul's map icon in entity_pictures."
  },
  {
   "address": 41372,
   "type": "line",
   "text": "Zark's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Zark's map icon in entity_pictures."
  },
  {
   "address": 41412,
   "type": "line",
   "text": "Syylk's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Syylk's map icon in entity_pictures."
  },
  {
   "address": 41452,
   "type": "line",
   "text": "Torik's map icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Torik's map icon in entity_pictures."
  },
  {
   "address": 41492,
   "type": "line",
   "text": "Zoff's map icon, a purple head (the manual's magenta or purple icon); the battle screen's eight direction icons also start with it, until build_directions gives them arrows. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7B72; the battle screen's icon at $7B7D; the battle screen's icon at $7B88; the battle screen's icon at $7B93; the battle screen's icon at $7B9E; the battle screen's icon at $7BA9; the battle screen's icon at $7BB4; the battle screen's icon at $7BBF; Zoff's map icon in entity_pictures."
  },
  {
   "address": 41532,
   "type": "line",
   "text": "Two linked rings, like handcuffs. Nothing refers to this picture. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells."
  },
  {
   "address": 41572,
   "type": "line",
   "text": "Entity $08's map icon, a purple square ring. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $08's map icon in entity_pictures."
  },
  {
   "address": 41612,
   "type": "line",
   "text": "Entity $09's map icon, a cyan cross. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $09's map icon in entity_pictures."
  },
  {
   "address": 41652,
   "type": "line",
   "text": "A map icon of a white ring between green bars. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $0B, $0C, $0D, $0E, $0F, $10, $11, $12's map icon in entity_pictures."
  },
  {
   "address": 41692,
   "type": "line",
   "text": "A blank single cell, the background of each of the file name screen's 26 letter icons. A picture of 1 x 1 cells, 12 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the file name screen's icon at $7CD4; the file name screen's icon at $7CDF; the file name screen's icon at $7CEA; the file name screen's icon at $7CF5; the file name screen's icon at $7D00; the file name screen's icon at $7D0B; the file name screen's icon at $7D16; the file name screen's icon at $7D21; the file name screen's icon at $7D2C; the file name screen's icon at $7D37; the file name screen's icon at $7D42; the file name screen's icon at $7D4D; the file name screen's icon at $7D58; the file name screen's icon at $7D63; the file name screen's icon at $7D6E; the file name screen's icon at $7D79; the file name screen's icon at $7D84; the file name screen's icon at $7D8F; the file name screen's icon at $7D9A; the file name screen's icon at $7DA5; the file name screen's icon at $7DB0; the file name screen's icon at $7DBB; the file name screen's icon at $7DC6; the file name screen's icon at $7DD1; the file name screen's icon at $7DDC; the file name screen's icon at $7DE7."
  },
  {
   "address": 41704,
   "type": "line",
   "text": "A grey and cyan shape like a creature's skeleton: object 4, which nothing in the game lets the player use. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 4."
  },
  {
   "address": 41782,
   "type": "line",
   "text": "A key card in grey and purple, door colour $18; the battle screen's eight people icons also start with it, until the scan fills them. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7BD5; the battle screen's icon at $7BE0; the battle screen's icon at $7BEB; the battle screen's icon at $7BF6; the battle screen's icon at $7C01; the battle screen's icon at $7C0C; the battle screen's icon at $7C17; the battle screen's icon at $7C22; the battle screen's icon at $7C2D; objects 12, 13."
  },
  {
   "address": 41860,
   "type": "line",
   "text": "A second copy of the linked rings picture at $A23C (2 x 2 cells, 40 bytes) and 12 bytes after it; nothing points here."
  },
  {
   "address": 41912,
   "type": "line",
   "text": "A red card with a skull and crossbones: the self-destruct card. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 15."
  },
  {
   "address": 41990,
   "type": "line",
   "text": "An assortment of tools in cyan, purple and brown: the tool kit. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 16."
  },
  {
   "address": 42068,
   "type": "line",
   "text": "A green and yellow device: the time delay unit. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 17."
  },
  {
   "address": 42146,
   "type": "line",
   "text": "A weapon: a canister giving off a spray of dots. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 18."
  },
  {
   "address": 42224,
   "type": "line",
   "text": "A weapon: a purple pistol with a green grip. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 19."
  },
  {
   "address": 42302,
   "type": "line",
   "text": "A weapon: a yellow and red gun with a long barrel. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 20, 21, 22, 23, 24."
  },
  {
   "address": 42380,
   "type": "line",
   "text": "A weapon: a round brown body with a handle. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 25, 26, 27, 28, 29."
  },
  {
   "address": 42458,
   "type": "line",
   "text": "A weapon: a long, thin brown and cyan rifle. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 30."
  },
  {
   "address": 42536,
   "type": "line",
   "text": "A weapon: a coiled cyan and yellow shape. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 31."
  },
  {
   "address": 42614,
   "type": "line",
   "text": "A weapon: a red rifle. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 32."
  },
  {
   "address": 42692,
   "type": "line",
   "text": "A weapon: a cyan and purple gun with a triangular stock. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 33."
  },
  {
   "address": 42770,
   "type": "line",
   "text": "A weapon: a purple and yellow gun. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 34."
  },
  {
   "address": 42848,
   "type": "line",
   "text": "A weapon: a green and purple rifle. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 35, 36, 37."
  },
  {
   "address": 42926,
   "type": "line",
   "text": "A weapon: a red and yellow gun. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 38."
  },
  {
   "address": 43004,
   "type": "line",
   "text": "A weapon: a white and green rifle. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 39, 40, 41, 42, 43."
  },
  {
   "address": 43082,
   "type": "line",
   "text": "A weapon: a red frame firing white dashes. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 44."
  },
  {
   "address": 43160,
   "type": "line",
   "text": "A weapon: a scatter of white and cyan dashes. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 45."
  },
  {
   "address": 43238,
   "type": "line",
   "text": "A weapon: a cyan arch with white dashes above it. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 46."
  },
  {
   "address": 43316,
   "type": "line",
   "text": "A weapon: a red and cyan launcher on a stand. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 47, 48."
  },
  {
   "address": 43394,
   "type": "line",
   "text": "A weapon: a cyan and purple launcher on a stand. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 49, 50, 51."
  },
  {
   "address": 43472,
   "type": "line",
   "text": "A weapon: a large grey and purple gun. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 52, 53."
  },
  {
   "address": 43550,
   "type": "line",
   "text": "A red hand closing over a cyan tray: the Pick-up icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7A18."
  },
  {
   "address": 43609,
   "type": "line",
   "text": "An open red hand over a cyan tray: the Drop icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7A0D."
  },
  {
   "address": 43668,
   "type": "line",
   "text": "An empty arrow outline pointing up. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, up."
  },
  {
   "address": 43822,
   "type": "line",
   "text": "An empty arrow outline pointing left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, left."
  },
  {
   "address": 43976,
   "type": "line",
   "text": "An empty arrow outline pointing down. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, down."
  },
  {
   "address": 44130,
   "type": "line",
   "text": "An empty arrow outline pointing right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, right."
  },
  {
   "address": 44284,
   "type": "line",
   "text": "An empty arrow outline pointing up and left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, up-left."
  },
  {
   "address": 44438,
   "type": "line",
   "text": "An empty arrow outline pointing down and left. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, down-left."
  },
  {
   "address": 44592,
   "type": "line",
   "text": "An empty arrow outline pointing up and right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, up-right."
  },
  {
   "address": 44746,
   "type": "line",
   "text": "An empty arrow outline pointing down and right. A picture of 4 x 4 cells, 154 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none2, down-right."
  },
  {
   "address": 44900,
   "type": "line",
   "text": "A small filled arrow pointing up; also the team screen's music-up icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78FB; arrows_open5, up."
  },
  {
   "address": 44940,
   "type": "line",
   "text": "A small filled arrow pointing left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, left."
  },
  {
   "address": 44980,
   "type": "line",
   "text": "A small filled arrow pointing down; also the team screen's music-down icon. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $7906; arrows_open5, down."
  },
  {
   "address": 45020,
   "type": "line",
   "text": "A small filled arrow pointing right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, right."
  },
  {
   "address": 45060,
   "type": "line",
   "text": "A small filled arrow pointing up and left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, up-left."
  },
  {
   "address": 45100,
   "type": "line",
   "text": "A small filled arrow pointing down and left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, down-left."
  },
  {
   "address": 45140,
   "type": "line",
   "text": "A small filled arrow pointing up and right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, up-right."
  },
  {
   "address": 45180,
   "type": "line",
   "text": "A small filled arrow pointing down and right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_open5, down-right."
  },
  {
   "address": 45220,
   "type": "line",
   "text": "A small empty arrow pointing up. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, up."
  },
  {
   "address": 45260,
   "type": "line",
   "text": "A small empty arrow pointing left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, left."
  },
  {
   "address": 45300,
   "type": "line",
   "text": "A small empty arrow pointing down. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, down."
  },
  {
   "address": 45340,
   "type": "line",
   "text": "A small empty arrow pointing right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, right."
  },
  {
   "address": 45380,
   "type": "line",
   "text": "A small empty arrow pointing up and left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, up-left."
  },
  {
   "address": 45420,
   "type": "line",
   "text": "A small empty arrow pointing down and left. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, down-left."
  },
  {
   "address": 45460,
   "type": "line",
   "text": "A small empty arrow pointing up and right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, up-right."
  },
  {
   "address": 45500,
   "type": "line",
   "text": "A small empty arrow pointing down and right. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from arrows_none5, down-right."
  },
  {
   "address": 45540,
   "type": "line",
   "text": "Pointers to the records of locations $00-$7F, two bytes each. build_directions, list_reachable and find_view_locations take locations $80 and over from the second table at $B2E4; the unused unused_in_window takes them from $B248 instead, the middle of this table."
  },
  {
   "address": 45541,
   "type": "line",
   "text": "The first location table read one byte on, for the pointers' high bytes."
  },
  {
   "address": 45640,
   "type": "line",
   "text": "Location $32's pointer, where the unused routine unused_in_window looks for locations $80 and over: it would find locations $32-$55 there."
  },
  {
   "address": 45641,
   "type": "line",
   "text": "Location $32's pointer, high byte: where unused_in_window would take location $80's high byte."
  },
  {
   "address": 45796,
   "type": "line",
   "text": "Pointers to the records of locations $80-$A3."
  },
  {
   "address": 45797,
   "type": "line",
   "text": "The second location table read one byte on."
  },
  {
   "address": 45868,
   "type": "line",
   "text": "Location $00, \"FIGHTER  / PERSONNEL  / QUARTERS\": map column 4, row 1; exits mask %00001000; down to $10, distance 5. The description follows the exits."
  },
  {
   "address": 45879,
   "type": "line",
   "text": "Location $01, \"EXHAUST PORT  / ONE\": map column 9, row 0; exits mask %00001000; down to $0A, distance 5. The description follows the exits."
  },
  {
   "address": 45896,
   "type": "line",
   "text": "Location $02, \"ENGINE / INSPECTION / PLATFORM\": map column 12, row 1; exits mask %00100100; right to $03, distance 5; down-left to $0B, distance 3. The description follows the exits."
  },
  {
   "address": 45925,
   "type": "line",
   "text": "Location $03, \"ENGINEERING  / CONTROL\": map column 14, row 1; exits mask %00100010; right to $04, distance 5; left to $02, distance 5. The description follows the exits."
  },
  {
   "address": 45936,
   "type": "line",
   "text": "Location $04, \"ENGINEERING  / CONTROL\": map column 16, row 1; exits mask %00010010; down-right to $0C, distance 3; left to $03, distance 5. The description follows the exits."
  },
  {
   "address": 45947,
   "type": "line",
   "text": "Location $05, \"EXHAUST PORT  / TWO\": map column 19, row 0; exits mask %00001000; down to $0D, distance 5. The description follows the exits."
  },
  {
   "address": 45964,
   "type": "line",
   "text": "Location $06, \"SHUTTLE BAY  / SUITING / ROOM\": map column 26, row 1; exits mask %00101000; right to $07, distance 2; down to $14, distance 5. The description follows the exits."
  },
  {
   "address": 45981,
   "type": "line",
   "text": "Location $07, \"SHUTTLE BAY  / SUITING / ROOM\": map column 27, row 1; exits mask %00100010; right to $08, distance 5, door 9 (key colour $08); left to $06, distance 2. The description follows the exits."
  },
  {
   "address": 45998,
   "type": "line",
   "text": "Location $08, \"SHUTTLE BAY\": map column 29, row 1; exits mask %00001010; down to $15, distance 5; left to $07, distance 5, door 9 (key colour $08). The description follows the exits."
  },
  {
   "address": 46008,
   "type": "line",
   "text": "Location $09, \"ENGINEERING  / WORKSHOP\": map column 7, row 2; exits mask %00101000; right to $0A, distance 5; down to $11, distance 2. The description follows the exits."
  },
  {
   "address": 46026,
   "type": "line",
   "text": "Location $0A, \"ENGINE ONE\": map column 9, row 2; exits mask %10100010; up to $01, distance 5; right to $0B, distance 5; left to $09, distance 5. The description follows the exits."
  },
  {
   "address": 46039,
   "type": "line",
   "text": "Location $0B, \"ENGINE ONE\": map column 11, row 2; exits mask %01000010; up-right to $02, distance 3; left to $0A, distance 5. The description follows the exits."
  },
  {
   "address": 46050,
   "type": "line",
   "text": "Location $0C, \"ENGINE TWO\": map column 17, row 2; exits mask %00100001; right to $0D, distance 5; up-left to $04, distance 3. The description follows the exits."
  },
  {
   "address": 46061,
   "type": "line",
   "text": "Location $0D, \"ENGINE TWO\": map column 19, row 2; exits mask %10100010; up to $05, distance 5; right to $0E, distance 5, door 8 (key colour $08); left to $0C, distance 5. The description follows the exits."
  },
  {
   "address": 46074,
   "type": "line",
   "text": "Location $0E, \"ENGINEERING  / SECURITY  / CHECK\": map column 21, row 2; exits mask %00010010; down-right to $12, distance 3; left to $0D, distance 5, door 8 (key colour $08). The description follows the exits."
  },
  {
   "address": 46087,
   "type": "line",
   "text": "Location $0F, \"FIGHTER  / COCKPIT / ACCESS\": map column 2, row 3; exits mask %00100000; right to $10, distance 5. The description follows the exits."
  },
  {
   "address": 46109,
   "type": "line",
   "text": "Location $10, \"FIGHTER  / PERSONNEL  / ENTRANCE\": map column 4, row 3; exits mask %10001010; up to $00, distance 5; down to $17, distance 2; left to $0F, distance 5. The description follows the exits."
  },
  {
   "address": 46124,
   "type": "line",
   "text": "Location $11, \"TOOLING ROOM\": map column 7, row 3; exits mask %10000000; up to $09, distance 2. The description follows the exits."
  },
  {
   "address": 46139,
   "type": "line",
   "text": "Location $12, \"ENGINEERING  / SERVICE / CORRIDOR\": map column 22, row 3; exits mask %00110001; right to $13, distance 5; down-right to $1F, distance 3; up-left to $0E, distance 3. The description follows the exits."
  },
  {
   "address": 46160,
   "type": "line",
   "text": "Location $13, \"SHUTTLE  / CONTROL  / ENTRANCE\": map column 24, row 3; exits mask %00100110; right to $14, distance 5; down-left to $1F, distance 3; left to $12, distance 5. The description follows the exits."
  },
  {
   "address": 46175,
   "type": "line",
   "text": "Location $14, \"SHUTTLE  / CONTROL\": map column 26, row 3; exits mask %10000010; up to $06, distance 5; left to $13, distance 5. The description follows the exits."
  },
  {
   "address": 46186,
   "type": "line",
   "text": "Location $15, \"SUIT LOCKER\": map column 29, row 3; exits mask %10000000; up to $08, distance 5. The description follows the exits."
  },
  {
   "address": 46195,
   "type": "line",
   "text": "Location $16, \"FIGHTER  / LAUNCH / TUBE ONE\": map column 0, row 4; exits mask %00001000; down to $20, distance 5. The description follows the exits."
  },
  {
   "address": 46216,
   "type": "line",
   "text": "Location $17, \"FIGHTER BAY  / CATWALK\": map column 4, row 4; exits mask %10001000; up to $10, distance 2; down to $22, distance 5. The description follows the exits."
  },
  {
   "address": 46228,
   "type": "line",
   "text": "Location $18, \"ROBOT  / CONTROL\": map column 9, row 5; exits mask %00101000; right to $19, distance 5; down to $26, distance 5. The description follows the exits."
  },
  {
   "address": 46239,
   "type": "line",
   "text": "Location $19, \"ROBOT  / SECURITY\": map column 11, row 5; exits mask %00100010; right to $1A, distance 5; left to $18, distance 5. The description follows the exits."
  },
  {
   "address": 46250,
   "type": "line",
   "text": "Location $1A, \"ROBOT CONTROL  / ENTRANCE\": map column 13, row 5; exits mask %00100010; right to $1B, distance 5; left to $19, distance 5. The description follows the exits."
  },
  {
   "address": 46262,
   "type": "line",
   "text": "Location $1B, \"STERN / CORRIDOR\": map column 15, row 5; exits mask %00100010; right to $1C, distance 5; left to $1A, distance 5. The description follows the exits."
  },
  {
   "address": 46277,
   "type": "line",
   "text": "Location $1C, \"MILITARY  / CONTROL  / ENTRANCE\": map column 17, row 5; exits mask %00100010; right to $1D, distance 5, door 10 (key colour $08); left to $1B, distance 5. The description follows the exits."
  },
  {
   "address": 46290,
   "type": "line",
   "text": "Location $1D, \"MILITARY  / SECURITY\": map column 19, row 5; exits mask %00110010; right to $1E, distance 5; down-right to $28, distance 7; left to $1C, distance 5, door 10 (key colour $08). The description follows the exits."
  },
  {
   "address": 46303,
   "type": "line",
   "text": "Location $1E, \"MILITARY  / CONTROL\": map column 21, row 5; exits mask %00011010; down-right to $29, distance 7; down to $28, distance 5; left to $1D, distance 5. The description follows the exits."
  },
  {
   "address": 46316,
   "type": "line",
   "text": "Location $1F, \"ASSEMBLY / AREA  / OBSERVATION  / DECK\": map column 23, row 4; exits mask %01010001; up-right to $13, distance 3; down-right to $23, distance 7; up-left to $12, distance 3. The description follows the exits."
  },
  {
   "address": 46340,
   "type": "line",
   "text": "Location $20, \"FUEL VALVE / LOCKER\": map column 0, row 6; exits mask %10101000; up to $16, distance 5; right to $21, distance 5; down to $2A, distance 5. The description follows the exits."
  },
  {
   "address": 46362,
   "type": "line",
   "text": "Location $21, \"FIGHTER  / COCKPIT / ACCESS\": map column 2, row 6; exits mask %00100010; right to $22, distance 5; left to $20, distance 5. The description follows the exits."
  },
  {
   "address": 46381,
   "type": "line",
   "text": "Location $22, \"FIGHTER BAY  / CATWALK\": map column 4, row 6; exits mask %10001010; up to $17, distance 5; down to $2B, distance 5; left to $21, distance 5. The description follows the exits."
  },
  {
   "address": 46395,
   "type": "line",
   "text": "Location $23, \"GUN DECK  / SECURITY\": map column 25, row 6; exits mask %00001001; down to $30, distance 5; up-left to $1F, distance 7. The description follows the exits."
  },
  {
   "address": 46410,
   "type": "line",
   "text": "Location $24, \"MILITARY  / ARMOURY\": map column 27, row 6; exits mask %00001000; down to $31, distance 5, door 11 (key colour $08). The description follows the exits."
  },
  {
   "address": 46425,
   "type": "line",
   "text": "Location $25, \"ROBOT  / ARMOURY\": map column 6, row 7; exits mask %00001000; down to $2C, distance 2. The description follows the exits."
  },
  {
   "address": 46440,
   "type": "line",
   "text": "Location $26, \"ROBOT  / REPAIRS / AND WORKSHOP\": map column 9, row 7; exits mask %10010100; up to $18, distance 5; down-right to $2E, distance 3; down-left to $2D, distance 3. The description follows the exits."
  },
  {
   "address": 46469,
   "type": "line",
   "text": "Location $27, \"ASSEMBLY / AREA\": map column 20, row 7; exits mask %00100100; right to $28, distance 2; down-left to $2F, distance 7. The description follows the exits."
  },
  {
   "address": 46487,
   "type": "line",
   "text": "Location $28, \"ASSEMBLY / AREA\": map column 21, row 7; exits mask %10110011; up to $1E, distance 5; right to $29, distance 5; down-right to $3A, distance 7; left to $27, distance 2; up-left to $1D, distance 7. The description follows the exits."
  },
  {
   "address": 46511,
   "type": "line",
   "text": "Location $29, \"PAY / AND ADMIN\": map column 23, row 7; exits mask %00001011; down to $3A, distance 5; left to $28, distance 5; up-left to $1E, distance 7. The description follows the exits."
  },
  {
   "address": 46531,
   "type": "line",
   "text": "Location $2A, \"FIGHTER  / LAUNCH / TUBE TWO\": map column 0, row 8; exits mask %10010000; up to $20, distance 5; down-right to $32, distance 3. The description follows the exits."
  },
  {
   "address": 46554,
   "type": "line",
   "text": "Location $2B, \"FIGHTER BAY  / CATWALK\": map column 4, row 8; exits mask %10000100; up to $22, distance 5; down-left to $33, distance 3. The description follows the exits."
  },
  {
   "address": 46566,
   "type": "line",
   "text": "Location $2C, \"ARMOURY  / SECURITY\": map column 6, row 8; exits mask %10100000; up to $25, distance 2; right to $2D, distance 5. The description follows the exits."
  },
  {
   "address": 46577,
   "type": "line",
   "text": "Location $2D, \"ROBOT CENTRE  / SECURITY\": map column 8, row 8; exits mask %01101010; up-right to $26, distance 3; right to $2E, distance 5; down to $35, distance 5, door 1 (key colour $00); left to $2C, distance 5. The description follows the exits."
  },
  {
   "address": 46593,
   "type": "line",
   "text": "Location $2E, \"SECURITY  / CONTROL  / ENTRANCE\": map column 10, row 8; exits mask %00010011; down-right to $36, distance 7, door 16 (key colour $10); left to $2D, distance 5; up-left to $26, distance 3. The description follows the exits."
  },
  {
   "address": 46608,
   "type": "line",
   "text": "Location $2F, \"SECURITY  / CONTROL  / ENTRANCE\": map column 19, row 8; exits mask %01000100; up-right to $27, distance 3; down-left to $39, distance 7, door 18 (key colour $10). The description follows the exits."
  },
  {
   "address": 46621,
   "type": "line",
   "text": "Location $30, \"ENGINE / OBSERVATION  / PORT\": map column 25, row 8; exits mask %10110000; up to $23, distance 5; right to $31, distance 5; down-right to $3E, distance 7. The description follows the exits."
  },
  {
   "address": 46636,
   "type": "line",
   "text": "Location $31, \"MAIN / ARMAMENT / CONTROL\": map column 27, row 8; exits mask %10001010; up to $24, distance 5, door 11 (key colour $08); down to $3E, distance 5; left to $30, distance 5. The description follows the exits."
  },
  {
   "address": 46661,
   "type": "line",
   "text": "Location $32, \"FIGHTER  / CONTROL\": map column 1, row 9; exits mask %00100001; right to $A1, distance 2; up-left to $2A, distance 3. The description follows the exits."
  },
  {
   "address": 46672,
   "type": "line",
   "text": "Location $33, \"FIGHTER BAY  / SECURITY\": map column 3, row 9; exits mask %01000010; up-right to $2B, distance 3; left to $A1, distance 2. The description follows the exits."
  },
  {
   "address": 46684,
   "type": "line",
   "text": "Location $34, \"XATOR  / SECURITY\": map column 6, row 10; exits mask %00101100; right to $35, distance 5; down to $43, distance 5, door 2 (key colour $00); down-left to $40, distance 3. The description follows the exits."
  },
  {
   "address": 46697,
   "type": "line",
   "text": "Location $35, \"ROBOT CENTRE  / ENTRANCE\": map column 8, row 10; exits mask %10000010; up to $2D, distance 5, door 1 (key colour $00); left to $34, distance 5. The description follows the exits."
  },
  {
   "address": 46709,
   "type": "line",
   "text": "Location $36, \"ZOFF / SECURITY\": map column 12, row 10; exits mask %00110001; right to $37, distance 2; down-right to $41, distance 3; up-left to $2E, distance 7, door 16 (key colour $10). The description follows the exits."
  },
  {
   "address": 46722,
   "type": "line",
   "text": "Location $37, \"ZOFF OFFICE\": map column 13, row 10; exits mask %00101010; right to $38, distance 5, door 2 (key colour $00); down to $41, distance 2; left to $36, distance 2. The description follows the exits."
  },
  {
   "address": 46740,
   "type": "line",
   "text": "Location $38, \"SECURITY  / CONTROL\": map column 15, row 10; exits mask %00110010; right to $39, distance 5; down-right to $42, distance 3; left to $37, distance 5, door 2 (key colour $00). The description follows the exits."
  },
  {
   "address": 46753,
   "type": "line",
   "text": "Location $39, \"MARSHALL  / CAVNS / COMMAND / POST\": map column 17, row 10; exits mask %01000110; up-right to $2F, distance 7, door 18 (key colour $10); down-left to $42, distance 3; left to $38, distance 5. The description follows the exits."
  },
  {
   "address": 46780,
   "type": "line",
   "text": "Location $3A, \"MILITARY  / AID STATION\": map column 23, row 9; exits mask %10011000; up to $29, distance 5; down-right to $3C, distance 3; down to $3B, distance 2. The description follows the exits."
  },
  {
   "address": 46803,
   "type": "line",
   "text": "Location $3B, \"BARRACKS  / ENTRANCE\": map column 23, row 10; exits mask %10101000; up to $3A, distance 2; right to $3C, distance 2; down to $44, distance 5. The description follows the exits."
  },
  {
   "address": 46816,
   "type": "line",
   "text": "Location $3C, \"BARRACKS  / SECURITY\": map column 24, row 10; exits mask %00100011; right to $3D, distance 5, door 12 (key colour $08); left to $3B, distance 2; up-left to $3A, distance 3. The description follows the exits."
  },
  {
   "address": 46829,
   "type": "line",
   "text": "Location $3D, \"BARRACKS  / ENTRANCE\": map column 26, row 10; exits mask %00100010; right to $3E, distance 3; left to $3C, distance 5, door 12 (key colour $08). The description follows the exits."
  },
  {
   "address": 46840,
   "type": "line",
   "text": "Location $3E, \"GUNDECK\": map column 27, row 10; exits mask %10001011; up to $31, distance 5; down to $46, distance 5; left to $3D, distance 2; up-left to $30, distance 7. The description follows the exits."
  },
  {
   "address": 46856,
   "type": "line",
   "text": "Location $3F, \"FIGHTER BAY  / ENTRANCE\": map column 2, row 11; exits mask %10001000; up to $A1, distance 5, door 3 (key colour $00); down to $49, distance 5. The description follows the exits."
  },
  {
   "address": 46868,
   "type": "line",
   "text": "Location $40, \"XATOR  / SECURITY\": map column 5, row 11; exits mask %01010100; up-right to $34, distance 3; down-right to $43, distance 3, door 2 (key colour $00); down-left to $4A, distance 7. The description follows the exits."
  },
  {
   "address": 46881,
   "type": "line",
   "text": "Location $41, \"MARSHALL  / XATOR S / COMMANDPOST\": map column 13, row 11; exits mask %10001101; up to $37, distance 2; down to $4D, distance 5, door 20 (key colour $10); down-left to $4C, distance 7, door 19 (key colour $10); up-left to $36, distance 3. The description follows the exits."
  },
  {
   "address": 46906,
   "type": "line",
   "text": "Location $42, \"MARSHALL  / CAVNS / QUARTERS\": map column 16, row 11; exits mask %01010001; up-right to $39, distance 3; down-right to $4F, distance 7, door 21 (key colour $10); up-left to $38, distance 3. The description follows the exits."
  },
  {
   "address": 46925,
   "type": "line",
   "text": "Location $43, \"MARSHALL  / XATOR  / QUARTERS\": map column 6, row 12; exits mask %10000001; up to $34, distance 5, door 2 (key colour $00); up-left to $40, distance 3, door 2 (key colour $00). The description follows the exits."
  },
  {
   "address": 46938,
   "type": "line",
   "text": "Location $44, \"BARRACKS\": map column 23, row 12; exits mask %10100000; up to $3B, distance 5; right to $45, distance 5. The description follows the exits."
  },
  {
   "address": 46947,
   "type": "line",
   "text": "Location $45, \"BARRACKS\": map column 25, row 12; exits mask %00001010; down to $53, distance 5; left to $44, distance 5. The description follows the exits."
  },
  {
   "address": 46956,
   "type": "line",
   "text": "Location $46, \"ENGINEERING  / ACCESS  / CORRIDOR\": map column 27, row 12; exits mask %10001000; up to $3E, distance 5; down to $54, distance 5. The description follows the exits."
  },
  {
   "address": 46969,
   "type": "line",
   "text": "Location $47, \"LIEUTENANTS  / QUARTERS\": map column 29, row 12; exits mask %00001000; down to $55, distance 5. The description follows the exits."
  },
  {
   "address": 46978,
   "type": "line",
   "text": "Location $48, \"ROBOT  / REPAIR / WARRENS\": map column 0, row 13; exits mask %00101000; right to $49, distance 5; down to $56, distance 5. The description follows the exits."
  },
  {
   "address": 46996,
   "type": "line",
   "text": "Location $49, \"ROBOT  / SECURITY\": map column 2, row 13; exits mask %10100110; up to $3F, distance 5; right to $4A, distance 2; down-left to $56, distance 7; left to $48, distance 5. The description follows the exits."
  },
  {
   "address": 47011,
   "type": "line",
   "text": "Location $4A, \"ROBOT  / WARRENS  / ACCESS CHECK\": map column 3, row 13; exits mask %01010010; up-right to $40, distance 7; down-right to $4B, distance 3; left to $49, distance 2. The description follows the exits."
  },
  {
   "address": 47027,
   "type": "line",
   "text": "Location $4B, \"SPARE / HARDWARE / LOCKER\": map column 4, row 14; exits mask %00000001; up-left to $4A, distance 3. The description follows the exits."
  },
  {
   "address": 47049,
   "type": "line",
   "text": "Location $4C, \"SECURITY  / CONTROL  / ENTRANCE\": map column 11, row 13; exits mask %01000100; up-right to $41, distance 7, door 19 (key colour $10); down-left to $57, distance 7. The description follows the exits."
  },
  {
   "address": 47062,
   "type": "line",
   "text": "Location $4D, \"ZOFF ARMOURY\": map column 13, row 13; exits mask %10110000; up to $41, distance 5, door 20 (key colour $10); right to $4E, distance 5; down-right to $50, distance 3. The description follows the exits."
  },
  {
   "address": 47075,
   "type": "line",
   "text": "Location $4E, \"ZOFF / QUARTERS\": map column 15, row 13; exits mask %00001110; down to $51, distance 2; down-left to $50, distance 3; left to $4D, distance 5. The description follows the exits."
  },
  {
   "address": 47088,
   "type": "line",
   "text": "Location $4F, \"SECURITY  / CONTROL  / ENTRANCE\": map column 18, row 13; exits mask %00010001; down-right to $52, distance 3; up-left to $42, distance 7, door 21 (key colour $10). The description follows the exits."
  },
  {
   "address": 47101,
   "type": "line",
   "text": "Location $50, \"SECURITY  / INTERROGATION / CHAMBER\": map column 14, row 14; exits mask %01100001; up-right to $4E, distance 3; right to $51, distance 2; up-left to $4D, distance 3. The description follows the exits."
  },
  {
   "address": 47134,
   "type": "line",
   "text": "Location $51, \"SECURITY  / INTERROGATION / CHAMBER\": map column 15, row 14; exits mask %10000010; up to $4E, distance 2; left to $50, distance 2. The description follows the exits."
  },
  {
   "address": 47165,
   "type": "line",
   "text": "Location $52, \"SECURITY  / CORRIDOR\": map column 19, row 14; exits mask %00010001; down-right to $59, distance 7, door 25 (key colour $18); up-left to $4F, distance 3. The description follows the exits."
  },
  {
   "address": 47176,
   "type": "line",
   "text": "Location $53, \"BARRACKS  / SECURITY\": map column 25, row 14; exits mask %10001100; up to $45, distance 5; down to $5B, distance 2; down-left to $5A, distance 3. The description follows the exits."
  },
  {
   "address": 47189,
   "type": "line",
   "text": "Location $54, \"FIGHTER  / CONTROL  / ACCESS  / CORRIDOR\": map column 27, row 14; exits mask %10101000; up to $46, distance 5; right to $55, distance 5, door 13 (key colour $08); down to $5C, distance 2. The description follows the exits."
  },
  {
   "address": 47206,
   "type": "line",
   "text": "Location $55, \"BARRACKS  / BRIEFING / ROOM\": map column 29, row 14; exits mask %10001010; up to $47, distance 5; down to $5D, distance 5; left to $54, distance 5, door 13 (key colour $08). The description follows the exits."
  },
  {
   "address": 47228,
   "type": "line",
   "text": "Location $56, \"FIGHTER  / CONTROL\": map column 0, row 15; exits mask %11001000; up to $48, distance 5; up-right to $49, distance 7; down to $61, distance 5. The description follows the exits."
  },
  {
   "address": 47241,
   "type": "line",
   "text": "Location $57, \"SECURITY  / CORRIDOR\": map column 9, row 15; exits mask %01000100; up-right to $4C, distance 7; down-left to $5F, distance 7. The description follows the exits."
  },
  {
   "address": 47252,
   "type": "line",
   "text": "Location $58, \"TOOL LOCKER\": map column 3, row 16; exits mask %00000100; down-left to $60, distance 3. The description follows the exits."
  },
  {
   "address": 47264,
   "type": "line",
   "text": "Location $59, \"SECURITY  / CORRIDOR\": map column 21, row 16; exits mask %00010001; down-right to $66, distance 7; up-left to $52, distance 7, door 25 (key colour $18). The description follows the exits."
  },
  {
   "address": 47275,
   "type": "line",
   "text": "Location $5A, \"OFF DUTY / AREA\": map column 24, row 15; exits mask %01100000; up-right to $53, distance 3; right to $5B, distance 2. The description follows the exits."
  },
  {
   "address": 47293,
   "type": "line",
   "text": "Location $5B, \"OFF DUTY / LOGGING\": map column 25, row 15; exits mask %10100010; up to $53, distance 2; right to $5C, distance 5; left to $5A, distance 2. The description follows the exits."
  },
  {
   "address": 47319,
   "type": "line",
   "text": "Location $5C, \"OFF DUTY / ACCESS  / AREA\": map column 27, row 15; exits mask %10001010; up to $54, distance 2; down to $5E, distance 5; left to $5B, distance 5. The description follows the exits."
  },
  {
   "address": 47341,
   "type": "line",
   "text": "Location $5D, \"LIEUTENANTS  / QUARTERS\": map column 29, row 16; exits mask %10000000; up to $55, distance 5. The description follows the exits."
  },
  {
   "address": 47350,
   "type": "line",
   "text": "Location $5E, \"FLIGHT  / CONTROL  / SECURITY  / CUT OFF\": map column 27, row 17; exits mask %10001000; up to $5C, distance 5; down to $67, distance 2. The description follows the exits."
  },
  {
   "address": 47371,
   "type": "line",
   "text": "Location $5F, \"SECURITY / CORRIDOR\": map column 7, row 17; exits mask %01000100; up-right to $57, distance 7; down-left to $63, distance 7. The description follows the exits."
  },
  {
   "address": 47389,
   "type": "line",
   "text": "Location $60, \"WARRENS  / CONTROL  / POST\": map column 2, row 17; exits mask %01001010; up-right to $58, distance 3; down to $62, distance 5; left to $61, distance 5. The description follows the exits."
  },
  {
   "address": 47407,
   "type": "line",
   "text": "Location $61, \"ROBOT  / CONTROL  / COMPUTER\": map column 0, row 17; exits mask %10110000; up to $56, distance 5; right to $60, distance 5; down-right to $62, distance 7. The description follows the exits."
  },
  {
   "address": 47422,
   "type": "line",
   "text": "Location $62, \"WARRENS  / ACCESS  / CORRIDOR\": map column 2, row 19; exits mask %10001001; up to $60, distance 5; down to $70, distance 5; up-left to $61, distance 7. The description follows the exits."
  },
  {
   "address": 47437,
   "type": "line",
   "text": "Location $63, \"SECURITY  / ACCESS  / CORRIDOR\": map column 5, row 19; exits mask %01000100; up-right to $5F, distance 7; down-left to $71, distance 7, door 24 (key colour $18). The description follows the exits."
  },
  {
   "address": 47450,
   "type": "line",
   "text": "Location $64, \"SIGNALLING / COMPUTER\": map column 13, row 18; exits mask %00000100; down-left to $68, distance 3. The description follows the exits."
  },
  {
   "address": 47468,
   "type": "line",
   "text": "Location $65, \"COMPUTER  / REPAIRS ROOM S\": map column 16, row 18; exits mask %00010000; down-right to $69, distance 3. The description follows the exits."
  },
  {
   "address": 47479,
   "type": "line",
   "text": "Location $66, \"SECURITY  / CORRIDOR\": map column 23, row 18; exits mask %00010001; down-right to $6E, distance 7, door 27 (key colour $18); up-left to $59, distance 7. The description follows the exits."
  },
  {
   "address": 47490,
   "type": "line",
   "text": "Location $67, \"MILITARY  / CORRIDOR\": map column 27, row 18; exits mask %10001000; up to $5E, distance 2; down to $6F, distance 5. The description follows the exits."
  },
  {
   "address": 47501,
   "type": "line",
   "text": "Location $68, \"COMPUTER  / GUARD POST\": map column 12, row 19; exits mask %01000100; up-right to $64, distance 3; down-left to $6A, distance 3. The description follows the exits."
  },
  {
   "address": 47518,
   "type": "line",
   "text": "Location $69, \"WORK SPACE\": map column 17, row 19; exits mask %00001001; down to $74, distance 5; up-left to $65, distance 3. The description follows the exits."
  },
  {
   "address": 47536,
   "type": "line",
   "text": "Location $6A, \"COMPUTER  / ACCESS  / CORRIDOR\": map column 11, row 20; exits mask %01001000; up-right to $68, distance 3; down to $73, distance 2. The description follows the exits."
  },
  {
   "address": 47549,
   "type": "line",
   "text": "Location $6B, \"TRANSLATION / COMPUTER\": map column 13, row 20; exits mask %00101000; right to $6C, distance 5, door 22 (key colour $10); down to $77, distance 5. The description follows the exits."
  },
  {
   "address": 47570,
   "type": "line",
   "text": "Location $6C, \"PROVISIONS / AND STORES\": map column 15, row 20; exits mask %00001010; down to $78, distance 5; left to $6B, distance 5, door 22 (key colour $10). The description follows the exits."
  },
  {
   "address": 47596,
   "type": "line",
   "text": "Location $6D, \"NAVIGATORS / QUARTERS\": map column 19, row 20; exits mask %00001000; down to $7A, distance 5. The description follows the exits."
  },
  {
   "address": 47614,
   "type": "line",
   "text": "Location $6E, \"SECURITY  / CORRIDOR  / ACCESS\": map column 25, row 20; exits mask %00001001; down to $7C, distance 5; up-left to $66, distance 7, door 27 (key colour $18). The description follows the exits."
  },
  {
   "address": 47627,
   "type": "line",
   "text": "Location $6F, \"MILITARY  / CORRIDOR\": map column 27, row 20; exits mask %10001000; up to $67, distance 5; down to $75, distance 2. The description follows the exits."
  },
  {
   "address": 47638,
   "type": "line",
   "text": "Location $70, \"CORRIDOR  / SECURITY\": map column 2, row 21; exits mask %10100000; up to $62, distance 5; right to $71, distance 2. The description follows the exits."
  },
  {
   "address": 47649,
   "type": "line",
   "text": "Location $71, \"FLIGHT  / CONTROL  / SECURITY  / CUT OFF\": map column 3, row 21; exits mask %01001010; up-right to $63, distance 7, door 24 (key colour $18); down to $7E, distance 5; left to $70, distance 2. The description follows the exits."
  },
  {
   "address": 47672,
   "type": "line",
   "text": "Location $72, \"SKY / FORTRESS / CAPTAINS / CABIN\": map column 9, row 21; exits mask %00100000; right to $73, distance 5, door 26 (key colour $18). The description follows the exits."
  },
  {
   "address": 47705,
   "type": "line",
   "text": "Location $73, \"CAPTAINS / SECURITY\": map column 11, row 21; exits mask %10001010; up to $6A, distance 2; down to $76, distance 2; left to $72, distance 5, door 26 (key colour $18). The description follows the exits."
  },
  {
   "address": 47725,
   "type": "line",
   "text": "Location $74, \"FLIGHT  / CENTRE  / CORRIDOR\": map column 17, row 21; exits mask %10001000; up to $69, distance 5; down to $79, distance 2. The description follows the exits."
  },
  {
   "address": 47738,
   "type": "line",
   "text": "Location $75, \"MILITARY  / SECTION / RECEPTION\": map column 27, row 21; exits mask %10001000; up to $6F, distance 2; down to $81, distance 5. The description follows the exits."
  },
  {
   "address": 47765,
   "type": "line",
   "text": "Location $76, \"BRIDGE / ACCESS  / CORRIDOR\": map column 11, row 22; exits mask %10101000; up to $73, distance 2; right to $77, distance 5; down to $83, distance 5. The description follows the exits."
  },
  {
   "address": 47785,
   "type": "line",
   "text": "Location $77, \"COMPUTER  / SECURITY\": map column 13, row 22; exits mask %10000010; up to $6B, distance 5; left to $76, distance 5. The description follows the exits."
  },
  {
   "address": 47796,
   "type": "line",
   "text": "Location $78, \"CANTEEN / AND BAR\": map column 15, row 22; exits mask %10100000; up to $6C, distance 5; right to $79, distance 5. The description follows the exits."
  },
  {
   "address": 47816,
   "type": "line",
   "text": "Location $79, \"CANTEEN / ACCESS\": map column 17, row 22; exits mask %10100010; up to $74, distance 2; right to $7A, distance 5; left to $78, distance 5. The description follows the exits."
  },
  {
   "address": 47835,
   "type": "line",
   "text": "Location $7A, \"REST AREA\": map column 19, row 22; exits mask %10100010; up to $6D, distance 5; right to $7B, distance 2; left to $79, distance 5. The description follows the exits."
  },
  {
   "address": 47851,
   "type": "line",
   "text": "Location $7B, \"EXTERNAL / OBSERVATION  / PORT\": map column 20, row 22; exits mask %00001010; down to $87, distance 5; left to $7A, distance 2. The description follows the exits."
  },
  {
   "address": 47871,
   "type": "line",
   "text": "Location $7C, \"MILITARY  / ACCESS  / BY PASS\": map column 25, row 22; exits mask %10001000; up to $6E, distance 5; down to $80, distance 2. The description follows the exits."
  },
  {
   "address": 47890,
   "type": "line",
   "text": "Location $7D, \"ROBOT TO / HUMAN / LIAISON\": map column 1, row 23; exits mask %00100000; right to $7E, distance 5. The description follows the exits."
  },
  {
   "address": 47913,
   "type": "line",
   "text": "Location $7E, \"LIASON / ACCESS\": map column 3, row 23; exits mask %10001010; up to $71, distance 5; down to $82, distance 2; left to $7D, distance 5. The description follows the exits."
  },
  {
   "address": 47931,
   "type": "line",
   "text": "Location $7F, \"SKY / FORTRESS / FLIGHT  / PERSONNEL  / QUARTERS\": map column 9, row 23; exits mask %00001000; down to $8A, distance 5. The description follows the exits."
  },
  {
   "address": 47955,
   "type": "line",
   "text": "Location $80, \"MILITARY  / ACCESS  / BY PASS\": map column 25, row 23; exits mask %10110000; up to $7C, distance 2; right to $81, distance 5, door 28 (key colour $18); down-right to $88, distance 3. The description follows the exits."
  },
  {
   "address": 47976,
   "type": "line",
   "text": "Location $81, \"MILITARY  / SECTION / CHECK\": map column 27, row 23; exits mask %10000110; up to $75, distance 5; down-left to $88, distance 3, door 28 (key colour $18); left to $80, distance 5, door 28 (key colour $18). The description follows the exits."
  },
  {
   "address": 47997,
   "type": "line",
   "text": "Location $82, \"ROBOT WARRENS  / SECURITY  / CHECK\": map column 3, row 24; exits mask %10010000; up to $7E, distance 2; down-right to $8E, distance 7, door 29 (key colour $18). The description follows the exits."
  },
  {
   "address": 48015,
   "type": "line",
   "text": "Location $83, \"BRIDGE / ACCESS  / SECURITY\": map column 11, row 24; exits mask %10101000; up to $76, distance 5; right to $84, distance 5; down to $8B, distance 2. The description follows the exits."
  },
  {
   "address": 48035,
   "type": "line",
   "text": "Location $84, \"BRIDGE / SECURITY\": map column 13, row 24; exits mask %00110010; right to $A2, distance 2; down-right to $8C, distance 3; left to $83, distance 5. The description follows the exits."
  },
  {
   "address": 48053,
   "type": "line",
   "text": "Location $85, \"ESCAPE / SHUTTLE  / COMPUTER\": map column 16, row 24; exits mask %00001010; down to $90, distance 5; left to $A2, distance 5. The description follows the exits."
  },
  {
   "address": 48071,
   "type": "line",
   "text": "Location $86, \"PILOT AREA  / SECURITY\": map column 18, row 24; exits mask %00100000; right to $87, distance 5. The description follows the exits."
  },
  {
   "address": 48086,
   "type": "line",
   "text": "Location $87, \"CHART LOCKER\": map column 20, row 24; exits mask %10001010; up to $7B, distance 5; down to $8D, distance 2; left to $86, distance 5. The description follows the exits."
  },
  {
   "address": 48103,
   "type": "line",
   "text": "Location $88, \"CONNECTING / CORRIDOR\": map column 26, row 24; exits mask %01000101; up-right to $81, distance 3, door 28 (key colour $18); down-left to $93, distance 7; up-left to $80, distance 3. The description follows the exits."
  },
  {
   "address": 48125,
   "type": "line",
   "text": "Location $89, \"OBSERVATION  / PORT\": map column 8, row 25; exits mask %00101000; right to $8A, distance 2; down to $96, distance 5. The description follows the exits."
  },
  {
   "address": 48136,
   "type": "line",
   "text": "Location $8A, \"FLIGHT  / CONTROL  / PAY AND  / ADMIN\": map column 9, row 25; exits mask %10100010; up to $7F, distance 5; right to $8B, distance 5; left to $89, distance 2. The description follows the exits."
  },
  {
   "address": 48161,
   "type": "line",
   "text": "Location $8B, \"CORRIDOR  / CORNER\": map column 11, row 25; exits mask %10010010; up to $83, distance 2; down-right to $8F, distance 3; left to $8A, distance 5. The description follows the exits."
  },
  {
   "address": 48179,
   "type": "line",
   "text": "Location $8C, \"SKY FORTRESS / BRIDGE\": map column 14, row 25; exits mask %10000001; up to $A2, distance 2; up-left to $84, distance 3. The description follows the exits."
  },
  {
   "address": 48206,
   "type": "line",
   "text": "Location $8D, \"CORRIDOR  / CORNER\": map column 20, row 25; exits mask %10010000; up to $87, distance 2; down-right to $91, distance 3. The description follows the exits."
  },
  {
   "address": 48222,
   "type": "line",
   "text": "Location $8E, \"CONNECTING / CORRIDOR\": map column 5, row 26; exits mask %00011001; down-right to $95, distance 3; down to $94, distance 2; up-left to $82, distance 7, door 29 (key colour $18). The description follows the exits."
  },
  {
   "address": 48244,
   "type": "line",
   "text": "Location $8F, \"FLIGHT  / CONTROL  / OBSERVATION  / PORT\": map column 12, row 26; exits mask %00010001; down-right to $97, distance 3; up-left to $8B, distance 3. The description follows the exits."
  },
  {
   "address": 48259,
   "type": "line",
   "text": "Location $90, \"ESCAPE  / SHUTTLE  / AIR LOCK\": map column 16, row 26; exits mask %10000100; up to $85, distance 5; down-left to $98, distance 3, door 30 (key colour $18). The description follows the exits."
  },
  {
   "address": 48279,
   "type": "line",
   "text": "Location $91, \"SHUTTLE USER / CONTROL\": map column 21, row 26; exits mask %00101001; right to $92, distance 2; down to $9A, distance 5; up-left to $8D, distance 3. The description follows the exits."
  },
  {
   "address": 48296,
   "type": "line",
   "text": "Location $92, \"SHUTTLE BAY  / CORRIDOR\": map column 22, row 26; exits mask %00100010; right to $93, distance 5; left to $91, distance 2. The description follows the exits."
  },
  {
   "address": 48308,
   "type": "line",
   "text": "Location $93, \"BOW CORRIDOR\": map column 24, row 26; exits mask %01000010; up-right to $88, distance 7; left to $92, distance 5. The description follows the exits."
  },
  {
   "address": 48321,
   "type": "line",
   "text": "Location $94, \"SCIENCE  / CORRIDOR\": map column 5, row 27; exits mask %10110000; up to $8E, distance 2; right to $95, distance 2; down-right to $99, distance 3. The description follows the exits."
  },
  {
   "address": 48334,
   "type": "line",
   "text": "Location $95, \"SCIENCE  / AND  / INFORMATION  / ACCESS\": map column 6, row 27; exits mask %00101011; right to $96, distance 5; down to $99, distance 2; left to $94, distance 2; up-left to $8E, distance 3. The description follows the exits."
  },
  {
   "address": 48353,
   "type": "line",
   "text": "Location $96, \"SCIENCE  / CORRIDOR\": map column 8, row 27; exits mask %10000010; up to $89, distance 5; left to $95, distance 5. The description follows the exits."
  },
  {
   "address": 48364,
   "type": "line",
   "text": "Location $97, \"FLIGHT  / CONTROL  / ARMAMENT / COMPUTER\": map column 13, row 27; exits mask %00000001; up-left to $8F, distance 3. The description follows the exits."
  },
  {
   "address": 48384,
   "type": "line",
   "text": "Location $98, \"ESCAPE  / SHUTTLE  / SUITLOCKER\": map column 15, row 27; exits mask %01001000; up-right to $90, distance 3, door 30 (key colour $18); down to $9E, distance 5. The description follows the exits."
  },
  {
   "address": 48398,
   "type": "line",
   "text": "Location $99, \"SCIENCE  / AND  / INFORMATION  / GUARD POST\": map column 6, row 28; exits mask %10001001; up to $95, distance 2; down to $9B, distance 2; up-left to $94, distance 3. The description follows the exits."
  },
  {
   "address": 48421,
   "type": "line",
   "text": "Location $9A, \"SUIT LOCKER\": map column 21, row 28; exits mask %10001000; up to $91, distance 5; down to $9F, distance 2. The description follows the exits."
  },
  {
   "address": 48432,
   "type": "line",
   "text": "Location $9B, \"INFORMATION  / CENTRE\": map column 6, row 29; exits mask %10100000; up to $99, distance 2; right to $9C, distance 5. The description follows the exits."
  },
  {
   "address": 48443,
   "type": "line",
   "text": "Location $9C, \"SCIENCE  / CENTRE\": map column 8, row 29; exits mask %00000010; left to $9B, distance 5. The description follows the exits."
  },
  {
   "address": 48452,
   "type": "line",
   "text": "Location $9D, \"ESCAPE  / SHUTTLE  / FLIGHT  / DECK\": map column 14, row 29; exits mask %00100000; right to $9E, distance 2. The description follows the exits."
  },
  {
   "address": 48465,
   "type": "line",
   "text": "Location $9E, \"ESCAPE  / SHUTTLE  / NAVIGATION / COMPUTER\": map column 15, row 29; exits mask %10000010; up to $98, distance 5; left to $9D, distance 2. The description follows the exits."
  },
  {
   "address": 48489,
   "type": "line",
   "text": "Location $9F, \"SHUTTLE BAY  / SUITING ROOM\": map column 21, row 29; exits mask %10100000; up to $9A, distance 2; right to $A0, distance 5, door 31 (key colour $18). The description follows the exits."
  },
  {
   "address": 48506,
   "type": "line",
   "text": "Location $A0, \"SHUTTLE BAY\": map column 23, row 29; exits mask %00000010; left to $9F, distance 5, door 31 (key colour $18). The description follows the exits."
  },
  {
   "address": 48514,
   "type": "line",
   "text": "Location $A1, \"FIGHTER BAY  / ENTRANCE\": map column 2, row 9; exits mask %00101010; right to $33, distance 2; down to $3F, distance 5, door 3 (key colour $00); left to $32, distance 2. The description follows the exits."
  },
  {
   "address": 48528,
   "type": "line",
   "text": "Location $A2, \"CAPTAINS / WORK AREA\": map column 14, row 24; exits mask %00101010; right to $85, distance 5; down to $8C, distance 2; left to $84, distance 2. The description follows the exits."
  },
  {
   "address": 48553,
   "type": "line",
   "text": "Location $A3, \"ENIGMA / ATTACK CRAFT\": map position $FF, $FF, off the map (the view screen shows the craft itself), and no exits: only the transporter leaves it."
  },
  {
   "address": 48576,
   "type": "line",
   "text": "Pointers to the thirty patrol scripts, $00-$1D. A script is its length in bytes, the starting location, then pairs of a time and a location: walking forwards, each step takes the pair's time x 4 seconds; walking back, the pair's own time."
  },
  {
   "address": 48577,
   "type": "line",
   "text": "The script table read one byte on."
  },
  {
   "address": 48636,
   "type": "line",
   "text": "Patrol script $00, 18 bytes: from location $0F, 20 s to $10, 8 s to $17, 20 s to $22, 20 s to $21, 20 s to $22, 20 s to $2B, 12 s to $33, 8 s to $A1. Used by entities $15, $19, $1A, $26 start on it; chains 0, 1, 5."
  },
  {
   "address": 48654,
   "type": "line",
   "text": "Patrol script $01, 6 bytes: from location $A1, 20 s to $3F, 20 s to $49. Used by entities $1B start on it; chains 0, 1, 5."
  },
  {
   "address": 48660,
   "type": "line",
   "text": "Patrol script $02, 16 bytes: from location $71, 8 s to $70, 20 s to $62, 20 s to $60, 20 s to $61, 20 s to $56, 20 s to $48, 20 s to $49. Used by entities $1C, $28 start on it; chains 0, 1, 5."
  },
  {
   "address": 48676,
   "type": "line",
   "text": "Patrol script $03, 18 bytes: from location $68, 12 s to $6A, 8 s to $73, 8 s to $76, 20 s to $83, 8 s to $8B, 20 s to $8A, 8 s to $89, 20 s to $96. Used by entities $18, $1D, $29 start on it; chains 0, 2, 5."
  },
  {
   "address": 48694,
   "type": "line",
   "text": "Patrol script $04, 14 bytes: from location $96, 20 s to $95, 8 s to $94, 8 s to $8E, 28 s to $82, 8 s to $7E, 20 s to $71. Used by entities $1E, $2A start on it; chains 0, 2, 5."
  },
  {
   "address": 48708,
   "type": "line",
   "text": "Patrol script $05, 14 bytes: from location $71, 28 s to $63, 28 s to $5F, 28 s to $57, 28 s to $4C, 28 s to $41, 12 s to $36. Used by entities $1F, $2B start on it; chains 0, 2."
  },
  {
   "address": 48722,
   "type": "line",
   "text": "Patrol script $06, 16 bytes: from location $0A, 20 s to $0B, 12 s to $02, 20 s to $03, 20 s to $04, 12 s to $0C, 20 s to $0D, 20 s to $0E. Used by entities $14, $17, $20, $2C start on it; chains 0, 3, 6."
  },
  {
   "address": 48738,
   "type": "line",
   "text": "Patrol script $07, 12 bytes: from location $0E, 12 s to $12, 12 s to $1F, 28 s to $23, 20 s to $30, 28 s to $3E. Used by entities $21, $2D start on it; chains 0, 3, 6."
  },
  {
   "address": 48750,
   "type": "line",
   "text": "Patrol script $08, 20 bytes: from location $88, 12 s to $81, 20 s to $75, 8 s to $70, 20 s to $67, 8 s to $5E, 20 s to $5C, 8 s to $54, 20 s to $46, 20 s to $3E. Used by entities $22, $2E start on it; chains 0, 3, 6."
  },
  {
   "address": 48770,
   "type": "line",
   "text": "Patrol script $09, 16 bytes: from location $69, 20 s to $74, 8 s to $79, 20 s to $7A, 8 s to $7B, 20 s to $87, 8 s to $8D, 12 s to $91. Used by entities $16, $23, $2F start on it; chains 0, 4, 6."
  },
  {
   "address": 48786,
   "type": "line",
   "text": "Patrol script $0A, 8 bytes: from location $91, 8 s to $92, 20 s to $93, 28 s to $88. Used by entities $24, $30 start on it; chains 0, 4, 6."
  },
  {
   "address": 48794,
   "type": "line",
   "text": "Patrol script $0B, 20 bytes: from location $88, 12 s to $80, 12 s to $7C, 20 s to $6E, 28 s to $66, 28 s to $59, 28 s to $52, 12 s to $4F, 28 s to $42, 12 s to $39. Used by entities $25, $31 start on it; chains 0, 4."
  },
  {
   "address": 48814,
   "type": "line",
   "text": "Patrol script $0C, 14 bytes: from location $49, 8 s to $4A, 28 s to $40, 12 s to $34, 20 s to $35, 20 s to $2D, 12 s to $26. Used by chain 0."
  },
  {
   "address": 48828,
   "type": "line",
   "text": "Patrol script $0D, 16 bytes: from location $26, 20 s to $18, 20 s to $19, 20 s to $1A, 20 s to $1B, 20 s to $1C, 20 s to $1D, 28 s to $28. Used by chain 0."
  },
  {
   "address": 48844,
   "type": "line",
   "text": "Patrol script $0E, 8 bytes: from location $28, 20 s to $29, 20 s to $3A, 8 s to $3B. Used by chain 0."
  },
  {
   "address": 48852,
   "type": "line",
   "text": "Patrol script $0F, 6 bytes: from location $3B, 20 s to $44, 20 s to $45. Used by chain 0."
  },
  {
   "address": 48858,
   "type": "line",
   "text": "Patrol script $10, 6 bytes: from location $26, 12 s to $2E, 28 s to $37. Used by chain 0."
  },
  {
   "address": 48864,
   "type": "line",
   "text": "Patrol script $11, 8 bytes: from location $36, 8 s to $37, 20 s to $38, 20 s to $39. Used by chain 0."
  },
  {
   "address": 48872,
   "type": "line",
   "text": "Patrol script $12, 8 bytes: from location $28, 8 s to $27, 12 s to $2F, 28 s to $39. Used by chain 0."
  },
  {
   "address": 48880,
   "type": "line",
   "text": "Patrol script $13, 8 bytes: from location $3E, 8 s to $3D, 20 s to $3C, 8 s to $3B. Used by chain 0."
  },
  {
   "address": 48888,
   "type": "line",
   "text": "Patrol script $14, 8 bytes: from location $5C, 20 s to $5B, 8 s to $53, 20 s to $45. Used by chain 0."
  },
  {
   "address": 48896,
   "type": "line",
   "text": "Patrol script $15, 34 bytes: from location $4E, 4 s to $4D, 4 s to $41, 4 s to $36, 4 s to $2E, 4 s to $2D, 4 s to $35, 4 s to $34, 4 s to $40, 4 s to $4B, 4 s to $49, 4 s to $3F, 4 s to $A1, 4 s to $34, 4 s to $2B, 4 s to $22, 4 s to $21. Used by Zoff, once a team member reaches location $4E: at its end he has escaped."
  },
  {
   "address": 48930,
   "type": "line",
   "text": "Patrol script $16, 6 bytes: from location $41, 8 s to $36, 8 s to $2E. Used by entity $08, from location $2E's trigger."
  },
  {
   "address": 48936,
   "type": "line",
   "text": "Patrol script $17, 4 bytes: from location $41, 8 s to $4C. Used by entity $08, from location $4C's trigger."
  },
  {
   "address": 48940,
   "type": "line",
   "text": "Patrol script $18, 6 bytes: from location $42, 8 s to $39, 8 s to $2F. Used by entity $09, from location $4F's trigger."
  },
  {
   "address": 48946,
   "type": "line",
   "text": "Patrol script $19, 4 bytes: from location $42, 8 s to $4F. Used by entity $09, from location $2F's trigger."
  },
  {
   "address": 48950,
   "type": "line",
   "text": "Patrol script $1A, 6 bytes: from location $2E, 12 s to $36, 12 s to $41. Used by entities $0B, $0C once a team member reaches location $41."
  },
  {
   "address": 48956,
   "type": "line",
   "text": "Patrol script $1B, 4 bytes: from location $4C, 12 s to $41. Used by entities $11, $12 once a team member reaches location $41."
  },
  {
   "address": 48960,
   "type": "line",
   "text": "Patrol script $1C, 10 bytes: from location $2F, 12 s to $39, 12 s to $38, 12 s to $37, 12 s to $41. Used by entities $0D, $0E once a team member reaches location $41."
  },
  {
   "address": 48970,
   "type": "line",
   "text": "Patrol script $1D, 10 bytes: from location $4F, 12 s to $42, 12 s to $38, 12 s to $37, 12 s to $41. Used by entities $0F, $10 once a team member reaches location $41."
  },
  {
   "address": 48980,
   "type": "line",
   "text": "Pointers to the seven patrol chains. A chain is its length, then script numbers, bit 6 set to walk a script backwards; next_patrol walks a chain forwards and back in turn."
  },
  {
   "address": 48981,
   "type": "line",
   "text": "The chain table read one byte on."
  },
  {
   "address": 48994,
   "type": "line",
   "text": "Patrol chain 0: scripts $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0A, $0B, $0C, $0D, $0E, $0F, $10, $11, $12, $13, $14. No entity starts on it."
  },
  {
   "address": 49016,
   "type": "line",
   "text": "Patrol chain 1: scripts $00, $01, $02 backwards. Entity $19 starts on it."
  },
  {
   "address": 49020,
   "type": "line",
   "text": "Patrol chain 2: scripts $03, $04, $05. Entity $18 starts on it."
  },
  {
   "address": 49024,
   "type": "line",
   "text": "Patrol chain 3: scripts $06, $07, $08 backwards. Entity $17 starts on it."
  },
  {
   "address": 49028,
   "type": "line",
   "text": "Patrol chain 4: scripts $09, $0A, $0B. Entity $16 starts on it."
  },
  {
   "address": 49032,
   "type": "line",
   "text": "Patrol chain 5: scripts $00, $01, $02 backwards, $04 backwards, $03 backwards. Entity $15 starts on it."
  },
  {
   "address": 49038,
   "type": "line",
   "text": "Patrol chain 6: scripts $06, $07, $08 backwards, $0A backwards, $09 backwards. Entity $14 starts on it."
  },
  {
   "address": 49044,
   "type": "line",
   "text": "Points at the tile set, $BF96."
  },
  {
   "address": 49045,
   "type": "line",
   "text": "The tile set pointer's high byte."
  },
  {
   "address": 49046,
   "type": "line",
   "text": "The map's 188 tiles, four character numbers each: the top left, top right, bottom left and bottom right of a 2 x 2-cell tile."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "The tile set continues across the $C000 line: the second half of tile $1A, then tiles $1B-$BB."
  },
  {
   "address": 49798,
   "type": "line",
   "text": "Points at the map's characters, $C288."
  },
  {
   "address": 49799,
   "type": "line",
   "text": "The character pointer's high byte."
  },
  {
   "address": 49800,
   "type": "line",
   "text": "The map's characters, 235 of them (0-234), eight bytes each, multicolour: the walls, floors and doors the tiles are built from. draw_view_map copies them into the bitmap; this label covers characters 0-127."
  },
  {
   "address": 50824,
   "type": "line",
   "text": "Characters 128-234 of the map's set."
  },
  {
   "address": 51680,
   "type": "line",
   "text": "32 bytes after the characters that nothing runs or reads. They decode as code (STA $20, JSR $C8DB, JSR $C93F, BNE, ... JMP ($A002), JMP $C097), but $C8DB and $C93F are the map's characters here: code left behind by whatever this memory held before."
  },
  {
   "address": 51712,
   "type": "line",
   "text": "The mission clock, four digits from the seconds' units up: 08 05 09 09 at the start, so it shows 99:58 and counts down a second at a time. It begins the game state that Save writes to tape or disc, $CA00-$CFFE."
  },
  {
   "address": 51713,
   "type": "line",
   "text": "The clock's seconds' tens."
  },
  {
   "address": 51714,
   "type": "line",
   "text": "The clock's minutes' units."
  },
  {
   "address": 51715,
   "type": "line",
   "text": "The clock's minutes' tens."
  },
  {
   "address": 51716,
   "type": "line",
   "text": "0 while the clock counts down; 1 once it has passed 00:00 and counts up, Kryxix executed and war declared."
  },
  {
   "address": 51717,
   "type": "line",
   "text": "The mission's state, one bit for each condition: bit 0 the team still alive (1 at the start), bit 1 Kryxix rescued, bits 2-3 Zoff V destroyed (%01) or captured (%11), bit 4 Zoff captured. $1F, every bit, is success."
  },
  {
   "address": 51718,
   "type": "line",
   "text": "Set by the self-destruct unit: the countdown runs."
  },
  {
   "address": 51719,
   "type": "line",
   "text": "The self-destruct's countdown, from 0, so 256 seconds."
  },
  {
   "address": 51720,
   "type": "line",
   "text": "Points at the entity table, $CA0E: everything that walks the records starts from here."
  },
  {
   "address": 51721,
   "type": "line",
   "text": "The entity table pointer's high byte."
  },
  {
   "address": 51722,
   "type": "line",
   "text": "Points at Kryxix's record, $CA7A; nothing reads it."
  },
  {
   "address": 51724,
   "type": "line",
   "text": "Points at entity 8's record, $CA9E, the first that is not the team, Kryxix or Zoff: where combat and enemy_at start their scans."
  },
  {
   "address": 51725,
   "type": "line",
   "text": "The high byte of entity 8's pointer."
  },
  {
   "address": 51726,
   "type": "line",
   "text": "Entity $00, Syylk, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $DC, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51744,
   "type": "line",
   "text": "Entity $01, Sevrina, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $C8, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51762,
   "type": "line",
   "text": "Entity $02, Manto, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $E6, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51780,
   "type": "line",
   "text": "Entity $03, Maul, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $FF, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51798,
   "type": "line",
   "text": "Entity $04, Zark, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $F0, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51800,
   "type": "line",
   "text": "Zark's location (+2), which Kryxix follows once he has joined him."
  },
  {
   "address": 51816,
   "type": "line",
   "text": "Entity $05, Torik, of the Enigma team: status 1 (moving), arriving in 2 seconds at location $A3, ENIGMA ATTACK CRAFT; strength $D2, agility $FF, stamina $FF, carrying nothing, nothing ready. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51834,
   "type": "line",
   "text": "Entity $06, Ambassador Kryxix, the prisoner: status 1 (moving), arriving in 2 seconds at location $51, SECURITY INTERROGATION CHAMBER; strength $FF; stands where it is. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51836,
   "type": "line",
   "text": "Kryxix's location (+2): a team member arriving there finds him."
  },
  {
   "address": 51852,
   "type": "line",
   "text": "Entity $07, Zoff, the ship's master: status 1 (moving), arriving in 2 seconds at location $4E, ZOFF QUARTERS; strength $FF; his patrol script $15 waits for a team member to reach location $4E. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51859,
   "type": "line",
   "text": "Zoff's patrol byte (+7): bit 7 is set when a team member reaches location $4E, and he starts to walk."
  },
  {
   "address": 51870,
   "type": "line",
   "text": "Entity $08, who appears as a blue-helmeted head: status 1 (moving), arriving in 2 seconds at location $42, MARSHALL CAVNS QUARTERS; strength $C8; stands until a trigger sends it walking; carries object 48. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51877,
   "type": "line",
   "text": "Entity 8's patrol byte (+7), set to $80 by the triggers at locations $2E and $4C."
  },
  {
   "address": 51878,
   "type": "line",
   "text": "Entity 8's patrol script (+8): $16 or $17, from the trigger."
  },
  {
   "address": 51888,
   "type": "line",
   "text": "Entity $09, who appears as a cyan head: status 1 (moving), arriving in 2 seconds at location $41, MARSHALL XATOR S COMMANDPOST; strength $C8; stands until a trigger sends it walking. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51895,
   "type": "line",
   "text": "Entity 9's patrol byte (+7), set to $80 by the triggers at locations $4F and $2F."
  },
  {
   "address": 51896,
   "type": "line",
   "text": "Entity 9's patrol script (+8): $18 or $19."
  },
  {
   "address": 51906,
   "type": "line",
   "text": "Entity $0A, who appears as the man in the grey hat and dark glasses: status 1 (moving), arriving in 2 seconds at location $72, SKY FORTRESS CAPTAINS CABIN; strength $C8; stands where it is; carries object 30. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51924,
   "type": "line",
   "text": "Entity $0B, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $2E, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1A waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51931,
   "type": "line",
   "text": "Entity $0B's patrol byte (+7): trigger_squad sets it and the next seven records' to $80 when a team member reaches location $41."
  },
  {
   "address": 51942,
   "type": "line",
   "text": "Entity $0C, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $2E, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1A waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51960,
   "type": "line",
   "text": "Entity $0D, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $2F, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1C waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51978,
   "type": "line",
   "text": "Entity $0E, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $2F, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1C waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 51996,
   "type": "line",
   "text": "Entity $0F, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $4F, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1D waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52014,
   "type": "line",
   "text": "Entity $10, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $4F, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1D waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52032,
   "type": "line",
   "text": "Entity $11, a green alien, one of the squad: status 1 (moving), arriving in 2 seconds at location $4C, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1B waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52050,
   "type": "line",
   "text": "Entity $12, one of the squad, a green alien on the map but a brown head in the scan: status 1 (moving), arriving in 2 seconds at location $4C, SECURITY CONTROL ENTRANCE; strength $C8; patrol script $1B waits for a team member to reach location $41. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52068,
   "type": "line",
   "text": "Entity $13, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $2D, ROBOT CENTRE SECURITY; strength $D7; stands where it is; carries object 36. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52086,
   "type": "line",
   "text": "Entity $14, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $33, FIGHTER BAY SECURITY; strength $BE; on patrol chain 6 from its first script, $06; carries object 37. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52104,
   "type": "line",
   "text": "Entity $15, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $10, FIGHTER PERSONNEL ENTRANCE; strength $BE; on patrol chain 5 from its first script, $00. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52122,
   "type": "line",
   "text": "Entity $16, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $3C, BARRACKS SECURITY; strength $BE; on patrol chain 4 from its first script, $09. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52140,
   "type": "line",
   "text": "Entity $17, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $0E, ENGINEERING SECURITY CHECK; strength $C3; on patrol chain 3 from its first script, $06. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52158,
   "type": "line",
   "text": "Entity $18, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $81, MILITARY SECTION CHECK; strength $C3; on patrol chain 2 from its first script, $03. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52176,
   "type": "line",
   "text": "Entity $19, a brown-headed guard: status 1 (moving), arriving in 2 seconds at location $73, CAPTAINS SECURITY; strength $C3; on patrol chain 1 from its first script, $00. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52194,
   "type": "line",
   "text": "Entity $1A, a grey robot: status 1 (moving), arriving in 2 seconds at location $0F, FIGHTER COCKPIT ACCESS; strength $7D; on patrol script $00. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52212,
   "type": "line",
   "text": "Entity $1B, a grey robot: status 1 (moving), arriving in 2 seconds at location $40, XATOR SECURITY; strength $7D; on patrol script $01. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52230,
   "type": "line",
   "text": "Entity $1C, a grey robot: status 1 (moving), arriving in 2 seconds at location $19, ROBOT SECURITY; strength $7D; on patrol script $02. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52248,
   "type": "line",
   "text": "Entity $1D, a grey robot: status 1 (moving), arriving in 2 seconds at location $61, ROBOT CONTROL COMPUTER; strength $7D; on patrol script $03. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52266,
   "type": "line",
   "text": "Entity $1E, a grey robot: status 1 (moving), arriving in 2 seconds at location $82, ROBOT WARRENS SECURITY CHECK; strength $7D; on patrol script $04. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52284,
   "type": "line",
   "text": "Entity $1F, a grey robot: status 1 (moving), arriving in 2 seconds at location $89, OBSERVATION PORT; strength $7D; on patrol script $05. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52302,
   "type": "line",
   "text": "Entity $20, a grey robot: status 1 (moving), arriving in 2 seconds at location $0B, ENGINE ONE; strength $7D; on patrol script $06. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52320,
   "type": "line",
   "text": "Entity $21, a grey robot: status 1 (moving), arriving in 2 seconds at location $1F, ASSEMBLY AREA OBSERVATION DECK; strength $7D; on patrol script $07. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52338,
   "type": "line",
   "text": "Entity $22, a grey robot: status 1 (moving), arriving in 2 seconds at location $1D, MILITARY SECURITY; strength $7D; on patrol script $08. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52356,
   "type": "line",
   "text": "Entity $23, a grey robot: status 1 (moving), arriving in 2 seconds at location $7B, EXTERNAL OBSERVATION PORT; strength $7D; on patrol script $09. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52374,
   "type": "line",
   "text": "Entity $24, a grey robot: status 1 (moving), arriving in 2 seconds at location $5E, FLIGHT CONTROL SECURITY CUT OFF; strength $7D; on patrol script $0A. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52392,
   "type": "line",
   "text": "Entity $25, a grey robot: status 1 (moving), arriving in 2 seconds at location $53, BARRACKS SECURITY; strength $7D; on patrol script $0B. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52410,
   "type": "line",
   "text": "Entity $26, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $0F, FIGHTER COCKPIT ACCESS; strength $6E; on patrol script $00. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52428,
   "type": "line",
   "text": "Entity $27, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $40, XATOR SECURITY; strength $6E; +7 is $50, with bit 7 clear, so it never walks its script $01: it stands at location $40 all game. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52446,
   "type": "line",
   "text": "Entity $28, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $19, ROBOT SECURITY; strength $6E; on patrol script $02. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52464,
   "type": "line",
   "text": "Entity $29, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $61, ROBOT CONTROL COMPUTER; strength $64; on patrol script $03. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52482,
   "type": "line",
   "text": "Entity $2A, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $82, ROBOT WARRENS SECURITY CHECK; strength $64; on patrol script $04. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52500,
   "type": "line",
   "text": "Entity $2B, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $89, OBSERVATION PORT; strength $64; on patrol script $05. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52518,
   "type": "line",
   "text": "Entity $2C, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $0B, ENGINE ONE; strength $64; on patrol script $06. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52536,
   "type": "line",
   "text": "Entity $2D, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $1F, ASSEMBLY AREA OBSERVATION DECK; strength $64; on patrol script $07. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52554,
   "type": "line",
   "text": "Entity $2E, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $1D, MILITARY SECURITY; strength $5A; on patrol script $08. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52572,
   "type": "line",
   "text": "Entity $2F, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $7B, EXTERNAL OBSERVATION PORT; strength $5A; on patrol script $09. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52590,
   "type": "line",
   "text": "Entity $30, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $5E, FLIGHT CONTROL SECURITY CUT OFF; strength $5A; on patrol script $0A. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52608,
   "type": "line",
   "text": "Entity $31, a horned purple guard: status 1 (moving), arriving in 2 seconds at location $53, BARRACKS SECURITY; strength $5A; on patrol script $0B. Bytes +10 to +17, the reachable locations, are rebuilt in play."
  },
  {
   "address": 52626,
   "type": "line",
   "text": "Points at $CBD0, entity $19's record; nothing reads it."
  },
  {
   "address": 52628,
   "type": "line",
   "text": "Points at $CD80, the last entity record; nothing reads it."
  },
  {
   "address": 52630,
   "type": "line",
   "text": "Points at the object records, $CD98."
  },
  {
   "address": 52631,
   "type": "line",
   "text": "The object pointer's high byte."
  },
  {
   "address": 52632,
   "type": "line",
   "text": "Object 0, transporter beacon 1: flags $04 (can be activated), in location $A3, ENIGMA ATTACK CRAFT, weight 96, picture pic_beacon, routine activate_beacon."
  },
  {
   "address": 52633,
   "type": "line",
   "text": "Beacon 1's location (+1), where the transporter's left column looks for people."
  },
  {
   "address": 52639,
   "type": "line",
   "text": "Object 1, transporter beacon 2: flags $04 (can be activated), in location $A3, ENIGMA ATTACK CRAFT, weight 96, picture pic_beacon, routine activate_beacon."
  },
  {
   "address": 52640,
   "type": "line",
   "text": "Beacon 2's location (+1)."
  },
  {
   "address": 52646,
   "type": "line",
   "text": "Object 2, the transporter's ballistic control: flags $0C (can be activated, cannot be picked up), in location $A3, ENIGMA ATTACK CRAFT, weight 0, picture pic_ballistic, routine activate_ballistic."
  },
  {
   "address": 52653,
   "type": "line",
   "text": "Object 3, the self-destruct unit: flags $08 (cannot be picked up), in location $A2, CAPTAINS WORK AREA, weight 0, picture pic_destruct_unit, routine activate_destruct_unit."
  },
  {
   "address": 52654,
   "type": "line",
   "text": "The self-destruct unit's location (+1), $A2: the card works only there."
  },
  {
   "address": 52660,
   "type": "line",
   "text": "Object 4, a skeleton-like shape with no use: flags $00 (none), in location $00, FIGHTER PERSONNEL QUARTERS, weight 20, picture pic_object_4, routine activate_object_4."
  },
  {
   "address": 52667,
   "type": "line",
   "text": "Object 5, a key card, colour 0: flags $04 (can be activated), in location $00, FIGHTER PERSONNEL QUARTERS, weight 8, picture pic_key_00, routine activate_key_0."
  },
  {
   "address": 52674,
   "type": "line",
   "text": "Object 6, a key card, colour 0: flags $04 (can be activated), in location $08, SHUTTLE BAY, weight 8, picture pic_key_00, routine activate_key_0."
  },
  {
   "address": 52681,
   "type": "line",
   "text": "Object 7, a key card, colour 8: flags $04 (can be activated), in location $43, MARSHALL XATOR QUARTERS, weight 8, picture pic_key_08, routine $72A7."
  },
  {
   "address": 52688,
   "type": "line",
   "text": "Object 8, a key card, colour 8: flags $04 (can be activated), in location $2F, SECURITY CONTROL ENTRANCE, weight 8, picture pic_key_08, routine $72A7."
  },
  {
   "address": 52695,
   "type": "line",
   "text": "Object 9, a key card, colour $10: flags $04 (can be activated), in location $63, SECURITY ACCESS CORRIDOR, weight 8, picture pic_key_10, routine $72AB."
  },
  {
   "address": 52702,
   "type": "line",
   "text": "Object 10, a key card, colour $10: flags $04 (can be activated), in location $55, BARRACKS BRIEFING ROOM, weight 8, picture pic_key_10, routine $72AB."
  },
  {
   "address": 52709,
   "type": "line",
   "text": "Object 11, a key card, colour $10: flags $04 (can be activated), in location $8C, SKY FORTRESS BRIDGE, weight 8, picture pic_key_10, routine $72AB."
  },
  {
   "address": 52716,
   "type": "line",
   "text": "Object 12, a key card, colour $18: flags $04 (can be activated), in location $09, ENGINEERING WORKSHOP, weight 8, picture pic_key_18, routine $72AF."
  },
  {
   "address": 52723,
   "type": "line",
   "text": "Object 13, a key card, colour $18: flags $04 (can be activated), in location $75, MILITARY SECTION RECEPTION, weight 8, picture pic_key_18, routine $72AF."
  },
  {
   "address": 52730,
   "type": "line",
   "text": "Object 14, the master key: flags $04 (can be activated), in location $72, SKY FORTRESS CAPTAINS CABIN, weight 8, picture pic_master_key, routine activate_master_key."
  },
  {
   "address": 52737,
   "type": "line",
   "text": "Object 15, the self-destruct card: flags $04 (can be activated), in location $4D, ZOFF ARMOURY, weight 8, picture pic_destruct_card, routine activate_destruct_card."
  },
  {
   "address": 52744,
   "type": "line",
   "text": "Object 16, the tool kit: flags $04 (can be activated), in location $A3, ENIGMA ATTACK CRAFT, weight 35, picture pic_tool_kit, routine activate_tool_kit."
  },
  {
   "address": 52751,
   "type": "line",
   "text": "Object 17, the time delay unit: flags $04 (can be activated), in location $64, SIGNALLING COMPUTER, weight 60, picture pic_time_delay, routine activate_time_delay."
  },
  {
   "address": 52758,
   "type": "line",
   "text": "Object 18, a weapon, strength $20: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 20, picture pic_weapon_18, routine activate_weapon."
  },
  {
   "address": 52765,
   "type": "line",
   "text": "Object 19, a weapon, strength $51: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 40, picture pic_weapon_19, routine activate_weapon."
  },
  {
   "address": 52772,
   "type": "line",
   "text": "Object 20, a weapon, strength $83: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 41, picture pic_weapon_20, routine activate_weapon."
  },
  {
   "address": 52779,
   "type": "line",
   "text": "Object 21, a weapon, strength $63: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 41, picture pic_weapon_20, routine activate_weapon."
  },
  {
   "address": 52786,
   "type": "line",
   "text": "Object 22, a weapon, strength $63: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 41, picture pic_weapon_20, routine activate_weapon."
  },
  {
   "address": 52793,
   "type": "line",
   "text": "Object 23, a weapon, strength $63: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 41, picture pic_weapon_20, routine activate_weapon."
  },
  {
   "address": 52800,
   "type": "line",
   "text": "Object 24, a weapon, strength $63: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 41, picture pic_weapon_20, routine activate_weapon."
  },
  {
   "address": 52807,
   "type": "line",
   "text": "Object 25, a weapon, strength $63: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 29, picture pic_weapon_25, routine activate_weapon."
  },
  {
   "address": 52814,
   "type": "line",
   "text": "Object 26, a weapon, strength $F1: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 29, picture pic_weapon_25, routine activate_weapon."
  },
  {
   "address": 52821,
   "type": "line",
   "text": "Object 27, a weapon, strength $F1: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 29, picture pic_weapon_25, routine activate_weapon."
  },
  {
   "address": 52828,
   "type": "line",
   "text": "Object 28, a weapon, strength $F1: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 29, picture pic_weapon_25, routine activate_weapon."
  },
  {
   "address": 52835,
   "type": "line",
   "text": "Object 29, a weapon, strength $F1: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 29, picture pic_weapon_25, routine activate_weapon."
  },
  {
   "address": 52842,
   "type": "line",
   "text": "Object 30, a weapon, strength $F1: flags $03 (carried, can be readied), carried by entity $0A, weight 15, picture pic_weapon_30, routine activate_weapon."
  },
  {
   "address": 52849,
   "type": "line",
   "text": "Object 31, a weapon, strength $82: flags $02 (can be readied), in location $72, SKY FORTRESS CAPTAINS CABIN, weight 12, picture pic_weapon_31, routine activate_weapon."
  },
  {
   "address": 52856,
   "type": "line",
   "text": "Object 32, a weapon, strength $A0: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 85, picture pic_weapon_32, routine activate_weapon."
  },
  {
   "address": 52863,
   "type": "line",
   "text": "Object 33, a weapon, strength $95: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 100, picture pic_weapon_33, routine activate_weapon."
  },
  {
   "address": 52870,
   "type": "line",
   "text": "Object 34, a weapon, strength $4C: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 140, picture pic_weapon_34, routine activate_weapon."
  },
  {
   "address": 52877,
   "type": "line",
   "text": "Object 35, a weapon, strength $8E: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 164, picture pic_weapon_35, routine activate_weapon."
  },
  {
   "address": 52884,
   "type": "line",
   "text": "Object 36, a weapon, strength $EC: flags $03 (carried, can be readied), carried by entity $13, weight 164, picture pic_weapon_35, routine activate_weapon."
  },
  {
   "address": 52891,
   "type": "line",
   "text": "Object 37, a weapon, strength $EC: flags $03 (carried, can be readied), carried by entity $14, weight 164, picture pic_weapon_35, routine activate_weapon."
  },
  {
   "address": 52898,
   "type": "line",
   "text": "Object 38, a weapon, strength $8E: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 140, picture pic_weapon_38, routine activate_weapon."
  },
  {
   "address": 52905,
   "type": "line",
   "text": "Object 39, a weapon, strength $3F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 146, picture pic_weapon_39, routine activate_weapon."
  },
  {
   "address": 52912,
   "type": "line",
   "text": "Object 40, a weapon, strength $3F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 146, picture pic_weapon_39, routine activate_weapon."
  },
  {
   "address": 52919,
   "type": "line",
   "text": "Object 41, a weapon, strength $3F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 146, picture pic_weapon_39, routine activate_weapon."
  },
  {
   "address": 52926,
   "type": "line",
   "text": "Object 42, a weapon, strength $3F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 146, picture pic_weapon_39, routine activate_weapon."
  },
  {
   "address": 52933,
   "type": "line",
   "text": "Object 43, a weapon, strength $3F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 146, picture pic_weapon_39, routine activate_weapon."
  },
  {
   "address": 52940,
   "type": "line",
   "text": "Object 44, a weapon, strength $5C: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 120, picture pic_weapon_44, routine activate_weapon."
  },
  {
   "address": 52947,
   "type": "line",
   "text": "Object 45, a weapon, strength $AA: flags $02 (can be readied), in location $9C, SCIENCE CENTRE, weight 85, picture pic_weapon_45, routine activate_weapon."
  },
  {
   "address": 52954,
   "type": "line",
   "text": "Object 46, a weapon, strength $C2: flags $02 (can be readied), in location $A3, ENIGMA ATTACK CRAFT, weight 64, picture pic_weapon_46, routine activate_weapon."
  },
  {
   "address": 52961,
   "type": "line",
   "text": "Object 47, a weapon, strength $3C: flags $02 (can be readied), in location $42, MARSHALL CAVNS QUARTERS, weight 70, picture pic_weapon_47, routine activate_weapon."
  },
  {
   "address": 52968,
   "type": "line",
   "text": "Object 48, a weapon, strength $3C: flags $03 (carried, can be readied), carried by entity $08, weight 70, picture pic_weapon_47, routine activate_weapon."
  },
  {
   "address": 52975,
   "type": "line",
   "text": "Object 49, a weapon, strength $1F: flags $0A (can be readied, cannot be picked up), in location $3E, GUNDECK, weight 135, picture pic_weapon_49, routine activate_weapon."
  },
  {
   "address": 52982,
   "type": "line",
   "text": "Object 50, a weapon, strength $1F: flags $0A (can be readied, cannot be picked up), in location $3E, GUNDECK, weight 135, picture pic_weapon_49, routine activate_weapon."
  },
  {
   "address": 52989,
   "type": "line",
   "text": "Object 51, a weapon, strength $1F: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 135, picture pic_weapon_49, routine activate_weapon."
  },
  {
   "address": 52996,
   "type": "line",
   "text": "Object 52, a weapon, strength $F6: flags $02 (can be readied), in location $25, ROBOT ARMOURY, weight 156, picture pic_weapon_52, routine activate_weapon."
  },
  {
   "address": 53003,
   "type": "line",
   "text": "Object 53, a weapon, strength $F6: flags $02 (can be readied), in location $24, MILITARY ARMOURY, weight 156, picture pic_weapon_52, routine activate_weapon."
  },
  {
   "address": 53010,
   "type": "line",
   "text": "The $FFFF that ends the object records, where next_object stops."
  },
  {
   "address": 53012,
   "type": "line",
   "text": "A zero nothing reads."
  },
  {
   "address": 53013,
   "type": "line",
   "text": "Each object's strength as a weapon, by object number (the +8 held ready): the high nibble for the attacker's own location, the low for adjacent ones, though combat uses only the high nibble's damage, in every location in reach ($68D7). $20 for objects 0-18, bare hands. Objects that share a picture do not all share a strength: 20 is $83 and 21-24 $63, 25 is $63 and 26-29 $F1, 35 is $8E and 36-37 $EC."
  },
  {
   "address": 53067,
   "type": "line",
   "text": "The start menu's summary, in the game's character codes: the survivors' count, ENEMY KILLED OR CAPTURED and its two digits, MISSION STATUS, then the two status words written at $CF7B and $CF7D. Ends $38."
  },
  {
   "address": 53068,
   "type": "line",
   "text": "The survivors' count: 6 at the start, one less for each team member lost."
  },
  {
   "address": 53095,
   "type": "line",
   "text": "The kill count's tens digit."
  },
  {
   "address": 53096,
   "type": "line",
   "text": "The kill count's units digit."
  },
  {
   "address": 53115,
   "type": "line",
   "text": "The first status word: FAILED, SUCCEEDED or INCOMPLETE ($B0 at the start)."
  },
  {
   "address": 53117,
   "type": "line",
   "text": "The second: the objective missing, or ENIGMA FORCE DEFEATED."
  },
  {
   "address": 53119,
   "type": "line",
   "text": "Set when play is left for the start menu any way but the end of the mission, and by a failed load or save: Old game is then not offered."
  },
  {
   "address": 53120,
   "type": "line",
   "text": "Set when Zark finds Kryxix: from then on Kryxix walks to Zark's location."
  },
  {
   "address": 53121,
   "type": "line",
   "text": "The door Sevrina is picking with the tool kit."
  },
  {
   "address": 53122,
   "type": "line",
   "text": "Set when a lock has been picked, so that the command loop redraws the door icons."
  },
  {
   "address": 53123,
   "type": "line",
   "text": "The time lock's seconds left. 1 at the start, with $CF84 = 0: for the first second of play only entity 0, Syylk, is run, and the clock waits."
  },
  {
   "address": 53124,
   "type": "line",
   "text": "The one character who acts during the time lock."
  },
  {
   "address": 53125,
   "type": "line",
   "text": "Each entity's strength factor, by entity: damage and the load limit are strength x this / 256. The team's are C8 6E B4 FF BE 8C (Maul's the highest, Sevrina's the lowest); Kryxix $FF and Zoff $C8; the guards $64 to $1E."
  },
  {
   "address": 53175,
   "type": "line",
   "text": "The six team members' agility base, B4 E1 8C 40 C8 FF, averaged with +5 for speed and the agility bar."
  },
  {
   "address": 53181,
   "type": "line",
   "text": "Each team member's agility fraction, for the slow loss when overloaded."
  },
  {
   "address": 53187,
   "type": "line",
   "text": "Each team member's stamina fraction, for the cost of recovery."
  },
  {
   "address": 53193,
   "type": "line",
   "text": "The door locks, by door number (bits 3-7 of an exit's second byte): $FF locked, 0 open. All 32 start locked; entry 0 is never used, since door 0 means no door."
  },
  {
   "address": 53225,
   "type": "line",
   "text": "$AA filler nothing reads."
  },
  {
   "address": 53247,
   "type": "line",
   "text": "The end of the saved state: start_file saves $CA00 up to this address, which SAVE leaves out. Its symbol also comes from start_file's STA $CFFF,X, which with X from $19 down to $11 puts the KERNAL's defaults back into VIC registers $D010-$D018 and never writes here."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "A grey robot's head, the first of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $1A, $1D, $20, $23's figure in entity_pictures."
  },
  {
   "address": 57422,
   "type": "line",
   "text": "A grey robot's head, the second of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $1B, $1E, $21, $24's figure in entity_pictures."
  },
  {
   "address": 57500,
   "type": "line",
   "text": "A grey robot's head, the third of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $1C, $1F, $22, $25's figure in entity_pictures."
  },
  {
   "address": 57578,
   "type": "line",
   "text": "Zoff's figure: a purple masked head. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Zoff's figure in entity_pictures."
  },
  {
   "address": 57656,
   "type": "line",
   "text": "Entity $08's figure: a blue-helmeted head. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $08's figure in entity_pictures."
  },
  {
   "address": 57734,
   "type": "line",
   "text": "A green alien head, the first of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $0B, $0E, $11's figure in entity_pictures."
  },
  {
   "address": 57812,
   "type": "line",
   "text": "A green alien head, the second of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $0C, $0F's figure in entity_pictures."
  },
  {
   "address": 57890,
   "type": "line",
   "text": "A green alien head, the third of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $0D, $10's figure in entity_pictures."
  },
  {
   "address": 57968,
   "type": "line",
   "text": "A horned purple head, the first of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $26, $29, $2C, $2F's figure in entity_pictures."
  },
  {
   "address": 58046,
   "type": "line",
   "text": "A horned purple head, the second of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $27, $2A, $2D, $30's figure in entity_pictures."
  },
  {
   "address": 58124,
   "type": "line",
   "text": "A horned purple head, the third of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $28, $2B, $2E, $31's figure in entity_pictures."
  },
  {
   "address": 58202,
   "type": "line",
   "text": "A brown head, the first of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $12, $15, $18's figure in entity_pictures."
  },
  {
   "address": 58280,
   "type": "line",
   "text": "A brown head, the second of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $13, $16, $19's figure in entity_pictures."
  },
  {
   "address": 58358,
   "type": "line",
   "text": "A brown head, the third of three. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entities $14, $17's figure in entity_pictures."
  },
  {
   "address": 58436,
   "type": "line",
   "text": "Entity $09's figure: a cyan head. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from entity $09's figure in entity_pictures."
  },
  {
   "address": 58514,
   "type": "line",
   "text": "Kryxix's figure: a pale cyan head under a striped cap. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Kryxix's figure in entity_pictures."
  },
  {
   "address": 58592,
   "type": "line",
   "text": "Manto's figure: the white droid. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Manto's figure in entity_pictures."
  },
  {
   "address": 58670,
   "type": "line",
   "text": "Zark's figure: his bald head and shoulders. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Zark's figure in entity_pictures."
  },
  {
   "address": 58748,
   "type": "line",
   "text": "Torik's figure: his grey armoured head. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Torik's figure in entity_pictures."
  },
  {
   "address": 58826,
   "type": "line",
   "text": "Syylk's figure: his red armoured head. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Syylk's figure in entity_pictures."
  },
  {
   "address": 58904,
   "type": "line",
   "text": "Sevrina's figure: her head, in blue. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Sevrina's figure in entity_pictures."
  },
  {
   "address": 58982,
   "type": "line",
   "text": "Maul's figure: the round green droid. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from Maul's figure in entity_pictures."
  },
  {
   "address": 59060,
   "type": "line",
   "text": "A framed box with an arrow: the Quit icon, on every screen that has a way back. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78F0; the status screen's icon at $7962; the movement screen's icon at $79CD; the objects screen's icon at $7A5A; the battle screen's icon at $7B51; the start menu screen's icon at $7CA4; the file name screen's icon at $7CC9."
  },
  {
   "address": 59119,
   "type": "line",
   "text": "A grey tape deck under a red arrow pointing up: Load game, and the LOAD heading of the file name screen. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the start menu screen's icon at $7C8E; the file name screen's icon at $7E13; the LOAD heading pointer at $819B."
  },
  {
   "address": 59178,
   "type": "line",
   "text": "A grey tape deck under a red arrow pointing down: Save game, and the SAVE heading. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the start menu screen's icon at $7C99; the SAVE heading pointer at $819D."
  },
  {
   "address": 59237,
   "type": "line",
   "text": "A brown hand reaching down to press: the Activate icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7A2E."
  },
  {
   "address": 59296,
   "type": "line",
   "text": "Shapes in green, yellow and purple: the Ready for use icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7A4F."
  },
  {
   "address": 59355,
   "type": "line",
   "text": "Two arrowheads facing each other between brackets, yellow and red: the Defend icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7B46."
  },
  {
   "address": 59414,
   "type": "line",
   "text": "A red arrow between a yellow bracket and a red frame: the Attack icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7B30."
  },
  {
   "address": 59473,
   "type": "line",
   "text": "A red arrow pointing left out of a red frame towards a yellow bracket: the Retreat icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7B5C."
  },
  {
   "address": 59532,
   "type": "line",
   "text": "A page of lines: the page arrow that shows the next page of a list. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the objects screen's icon at $7B0A; more_arrow_ptr."
  },
  {
   "address": 59591,
   "type": "line",
   "text": "A console with a lever: the ballistic control. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 2."
  },
  {
   "address": 59669,
   "type": "line",
   "text": "A screen with a half-lit disc: the Location scan icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the battle screen's icon at $7B67."
  },
  {
   "address": 59728,
   "type": "line",
   "text": "A purple disc: the centre icon between the direction arrows, the character's own location. A picture of 2 x 2 cells, 40 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the view screen's icon at $79FE; the battle screen's icon at $7BCA."
  },
  {
   "address": 59768,
   "type": "line",
   "text": "A joystick: the control menu's digital joystick (F3). A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the control menu screen's icon at $7C53."
  },
  {
   "address": 59827,
   "type": "line",
   "text": "A keyboard: the control menu's keyboard (F1). A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the control menu screen's icon at $7C48."
  },
  {
   "address": 59886,
   "type": "line",
   "text": "A hand holding a pen: the control menu's light pen (F7). A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the control menu screen's icon at $7C69."
  },
  {
   "address": 59945,
   "type": "line",
   "text": "A hand on a controller: the control menu's analog joystick (F5). A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the control menu screen's icon at $7C5E."
  },
  {
   "address": 60004,
   "type": "line",
   "text": "A grey box with a black handle on purple. Nothing refers to this picture. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells."
  },
  {
   "address": 60063,
   "type": "line",
   "text": "Portrait 1's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 60065,
   "type": "line",
   "text": "Portrait 1 (Sevrina), the bitmap, 640 bytes for 10 x 8 cells: Sevrina's face, half in light and half in blue shadow. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 60600,
   "type": "line",
   "text": "Inside portrait 1's bitmap. The symbol comes from start_file's LDA $ECB8,X, which runs with the KERNAL switched in and so reads the ROM's VIC defaults, never these bytes."
  },
  {
   "address": 60705,
   "type": "line",
   "text": "Portrait 1's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 60825,
   "type": "line",
   "text": "Portrait 5's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 60827,
   "type": "line",
   "text": "Portrait 5 (Torik), the bitmap, 640 bytes for 10 x 8 cells: Torik's hawk-like head. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 61467,
   "type": "line",
   "text": "Portrait 5's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 61587,
   "type": "line",
   "text": "Portrait 6's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 61589,
   "type": "line",
   "text": "Portrait 6 (nobody), the bitmap, 640 bytes for 10 x 8 cells: a figure in purple seated at a console, shown when no character is chosen (portrait 7 points to the same picture). show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 62229,
   "type": "line",
   "text": "Portrait 6's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 62349,
   "type": "line",
   "text": "Portrait 0's size, 10 and 8 cells, in the same form as every picture's; show_portrait does not read it, since it copies a fixed 10 x 8 from the bitmap pointer."
  },
  {
   "address": 62351,
   "type": "line",
   "text": "Portrait 0 (Syylk), the bitmap, 640 bytes for 10 x 8 cells: Syylk's insect head against a lightning bolt, in red. show_portrait copies lines 1-7 of each cell onto the right-hand monitor; line 0 is never shown, the monitor repeating line 1 there."
  },
  {
   "address": 62991,
   "type": "line",
   "text": "Portrait 0's colours, 120 bytes packed three to two cells, as draw_picture's colour pass reads them."
  },
  {
   "address": 63111,
   "type": "line",
   "text": "A pair of scales: the weight bar's icon. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the status screen's icon at $7936; the objects screen's icon at $7A65."
  },
  {
   "address": 63170,
   "type": "line",
   "text": "The Enigma attack craft from above, its upper half (red hull, towers, on purple): shown on the view screen for a place off the map, the attack craft itself. A picture of 10 x 5 cells, 477 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from offmap_pictures."
  },
  {
   "address": 63647,
   "type": "line",
   "text": "The attack craft's lower half, the cockpit and engines. A picture of 10 x 5 cells, 477 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from offmap_pictures + 2."
  },
  {
   "address": 64124,
   "type": "line",
   "text": "A key card in purple and green: the master key. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 14."
  },
  {
   "address": 64202,
   "type": "line",
   "text": "A white and grey pad between two posts: a transporter beacon. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 0, 1."
  },
  {
   "address": 64280,
   "type": "line",
   "text": "A fighter craft: the ballistic control's first destination, location $16 (the manual's Fighter Bay). A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from transporter_icons."
  },
  {
   "address": 64358,
   "type": "line",
   "text": "A purple pod: the ballistic control's third destination, location $A0 (Shuttle Bay, bottom). A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from transporter_icons."
  },
  {
   "address": 64436,
   "type": "line",
   "text": "A red pod: the ballistic control's second destination, location $08 (Shuttle Bay, top). A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from transporter_icons."
  },
  {
   "address": 64514,
   "type": "line",
   "text": "A key card in grey and red, door colour $10. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 9, 10, 11."
  },
  {
   "address": 64592,
   "type": "line",
   "text": "A key card in grey and green, door colour $08. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 7, 8."
  },
  {
   "address": 64670,
   "type": "line",
   "text": "A key card in grey and purple stripes, door colour 0. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from objects 5, 6."
  },
  {
   "address": 64748,
   "type": "line",
   "text": "A purple globe: Old game. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the start menu screen's icon at $7C78."
  },
  {
   "address": 64807,
   "type": "line",
   "text": "A brown clock face with a white hand: New game. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the start menu screen's icon at $7C83."
  },
  {
   "address": 64816,
   "type": "line",
   "text": "Inside the new game picture. The symbol comes from the start's copy of the KERNAL's vector table at $FD30, read with the ROM switched in."
  },
  {
   "address": 64866,
   "type": "line",
   "text": "Syylk in full figure, red armour: his team screen icon. A picture of 4 x 6 cells, 230 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the team screen's icon at $78AE; Syylk's team icon in team_pictures ($818F)."
  },
  {
   "address": 65096,
   "type": "line",
   "text": "A blank picture, all black: the team screen's icon for Syylk, Sevrina, Zark or Torik once dead. A picture of 4 x 6 cells, 230 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the pointer at $FF2E."
  },
  {
   "address": 65326,
   "type": "line",
   "text": "A pointer back to the blank picture before it, $FE48: kill_entity's icon for a dead Syylk, Sevrina, Zark or Torik."
  },
  {
   "address": 65327,
   "type": "line",
   "text": "The high byte of $FE48."
  },
  {
   "address": 65328,
   "type": "line",
   "text": "CR and a return arrow: the file name screen's carriage return, which starts the load or save. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the file name screen's icon at $7E08."
  },
  {
   "address": 65387,
   "type": "line",
   "text": "RUB and a hand: rubs out the file name's last letter. A picture of 3 x 2 cells, 59 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from the file name screen's icon at $7DF2."
  },
  {
   "address": 65446,
   "type": "line",
   "text": "A grey machine: the self-destruct unit. A picture of 4 x 2 cells, 78 bytes: width, height, the bitmap, then the colours packed three bytes to two cells. Drawn from object 3."
  }
 ]
}