{
 "schema": 1,
 "platform": "c64",
 "game": "spindizzy",
 "build": "Electric Dreams' 1986 PAL disk, the G64 spindizzy[electric_dreams_1986](pal) from the C64 Preservation Project collection on the Internet Archive (SHA-256 07cf3a77\u20267de2d8)",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    0,
    1023,
    "zero page, the stack and the KERNAL's work area: the game's variables, cleared by start_game_image ($02-$81) and new_game; the boot file SPINDIZZY loads over $02A7-$0303 and is the loader, outside the analysis"
   ],
   [
    15617,
    24575,
    "not the game's: start_game_image copies 64 pages from $1400 to $0400, which takes in whatever RAM held at $4D01-$53FF past the end of SPIN4; above that, SPIN4's own bytes are left where they loaded ($1400-$4D00) and only the copy at $0400 is read"
   ],
   [
    43648,
    47359,
    "the tile buffer ($AA80-$B6FF, 25 rows of 16 places of 8 bytes) and the room grid ($B700-$B8FF), rebuilt for every room; SPIN3 loads them as $EA filler"
   ],
   [
    49600,
    50047,
    "run-time state: the jewels collected ($C1C0-$C1DF, a bit each), the piece table at $C200, the sprite slots at $C280-$C2BF and the work cells and sprite masks at $C300-$C37F; SPIN3 loads leftover bytes there that new_game and the room builder overwrite"
   ],
   [
    50176,
    51199,
    "the colour matrix of the bitmap screen and the sprite pointers at $C7F8, drawn by the game"
   ],
   [
    52224,
    53247,
    "the sprite shapes the game builds at run time (pointers $30-$3F); SPIN3 loads zeros there"
   ],
   [
    57344,
    65535,
    "the bitmap, drawn by the game; under the KERNAL ROM"
   ]
  ],
  "extra": [],
  "edges": [
   0,
   256,
   512,
   1024,
   2048,
   4096,
   16384,
   32768,
   40960,
   49152,
   53248,
   57344
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 1023,
   "type": "Undefined"
  },
  {
   "start": 1024,
   "end": 15616,
   "type": "Byte"
  },
  {
   "start": 15617,
   "end": 24575,
   "type": "Undefined"
  },
  {
   "start": 24576,
   "end": 24727,
   "type": "Code"
  },
  {
   "start": 24728,
   "end": 28671,
   "type": "Byte"
  },
  {
   "start": 28672,
   "end": 28692,
   "type": "Code"
  },
  {
   "start": 28693,
   "end": 28694,
   "type": "Undefined"
  },
  {
   "start": 28695,
   "end": 28909,
   "type": "Code"
  },
  {
   "start": 28910,
   "end": 28911,
   "type": "Undefined"
  },
  {
   "start": 28912,
   "end": 28938,
   "type": "Code"
  },
  {
   "start": 28939,
   "end": 29218,
   "type": "Byte"
  },
  {
   "start": 29219,
   "end": 29368,
   "type": "Code"
  },
  {
   "start": 29369,
   "end": 29500,
   "type": "Byte"
  },
  {
   "start": 29501,
   "end": 29534,
   "type": "Code"
  },
  {
   "start": 29535,
   "end": 29535,
   "type": "Undefined"
  },
  {
   "start": 29536,
   "end": 29870,
   "type": "Code"
  },
  {
   "start": 29871,
   "end": 32767,
   "type": "Byte"
  },
  {
   "start": 32768,
   "end": 32771,
   "type": "Word"
  },
  {
   "start": 32772,
   "end": 32783,
   "type": "Byte"
  },
  {
   "start": 32784,
   "end": 33208,
   "type": "Code"
  },
  {
   "start": 33209,
   "end": 33212,
   "type": "Undefined"
  },
  {
   "start": 33213,
   "end": 33457,
   "type": "Code"
  },
  {
   "start": 33458,
   "end": 33711,
   "type": "Byte"
  },
  {
   "start": 33712,
   "end": 33889,
   "type": "Code"
  },
  {
   "start": 33890,
   "end": 33894,
   "type": "Byte"
  },
  {
   "start": 33895,
   "end": 33974,
   "type": "Code"
  },
  {
   "start": 33975,
   "end": 34000,
   "type": "Byte"
  },
  {
   "start": 34001,
   "end": 34648,
   "type": "Code"
  },
  {
   "start": 34649,
   "end": 34848,
   "type": "Byte"
  },
  {
   "start": 34849,
   "end": 34953,
   "type": "Code"
  },
  {
   "start": 34954,
   "end": 35005,
   "type": "Byte"
  },
  {
   "start": 35006,
   "end": 35041,
   "type": "Code"
  },
  {
   "start": 35042,
   "end": 35071,
   "type": "Byte"
  },
  {
   "start": 35072,
   "end": 35089,
   "type": "Code"
  },
  {
   "start": 35090,
   "end": 35103,
   "type": "Byte"
  },
  {
   "start": 35104,
   "end": 35360,
   "type": "Code"
  },
  {
   "start": 35361,
   "end": 35361,
   "type": "Undefined"
  },
  {
   "start": 35362,
   "end": 35735,
   "type": "Code"
  },
  {
   "start": 35736,
   "end": 35767,
   "type": "Byte"
  },
  {
   "start": 35768,
   "end": 36255,
   "type": "Code"
  },
  {
   "start": 36256,
   "end": 36256,
   "type": "Undefined"
  },
  {
   "start": 36257,
   "end": 36675,
   "type": "Code"
  },
  {
   "start": 36676,
   "end": 36677,
   "type": "Word"
  },
  {
   "start": 36678,
   "end": 38138,
   "type": "Code"
  },
  {
   "start": 38139,
   "end": 38143,
   "type": "Byte"
  },
  {
   "start": 38144,
   "end": 38203,
   "type": "Code"
  },
  {
   "start": 38204,
   "end": 38267,
   "type": "Byte"
  },
  {
   "start": 38268,
   "end": 38280,
   "type": "Code"
  },
  {
   "start": 38281,
   "end": 38284,
   "type": "Byte"
  },
  {
   "start": 38285,
   "end": 39139,
   "type": "Code"
  },
  {
   "start": 39140,
   "end": 39143,
   "type": "Byte"
  },
  {
   "start": 39144,
   "end": 39364,
   "type": "Code"
  },
  {
   "start": 39365,
   "end": 39365,
   "type": "Byte"
  },
  {
   "start": 39366,
   "end": 40124,
   "type": "Code"
  },
  {
   "start": 40125,
   "end": 40191,
   "type": "Byte"
  },
  {
   "start": 40192,
   "end": 40510,
   "type": "Code"
  },
  {
   "start": 40511,
   "end": 40518,
   "type": "Byte"
  },
  {
   "start": 40519,
   "end": 40579,
   "type": "Code"
  },
  {
   "start": 40580,
   "end": 40580,
   "type": "Undefined"
  },
  {
   "start": 40581,
   "end": 41626,
   "type": "Code"
  },
  {
   "start": 41627,
   "end": 41650,
   "type": "Byte"
  },
  {
   "start": 41651,
   "end": 41653,
   "type": "Undefined"
  },
  {
   "start": 41654,
   "end": 41661,
   "type": "Byte"
  },
  {
   "start": 41662,
   "end": 42525,
   "type": "Code"
  },
  {
   "start": 42526,
   "end": 42529,
   "type": "Undefined"
  },
  {
   "start": 42530,
   "end": 43165,
   "type": "Code"
  },
  {
   "start": 43166,
   "end": 43647,
   "type": "Byte"
  },
  {
   "start": 43648,
   "end": 47359,
   "type": "Undefined"
  },
  {
   "start": 47360,
   "end": 49599,
   "type": "Byte"
  },
  {
   "start": 49600,
   "end": 50047,
   "type": "Undefined"
  },
  {
   "start": 50048,
   "end": 50175,
   "type": "Byte"
  },
  {
   "start": 50176,
   "end": 51199,
   "type": "Undefined"
  },
  {
   "start": 51200,
   "end": 52223,
   "type": "Byte"
  },
  {
   "start": 52224,
   "end": 65535,
   "type": "Undefined"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "fill_address_patched",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1,
   "name": "zpa_01",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 34,
   "name": "zpa_22",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 35,
   "name": "zpa_23",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 36,
   "name": "zpa_24",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 37,
   "name": "zpa_25",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 38,
   "name": "zpa_26",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 39,
   "name": "zpa_27",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 40,
   "name": "zpa_28",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 41,
   "name": "zpa_29",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42,
   "name": "zpa_2A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43,
   "name": "zpa_2B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 44,
   "name": "zpa_2C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 46,
   "name": "zpa_2E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 47,
   "name": "zpa_2F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 48,
   "name": "zpa_30",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49,
   "name": "zpa_31",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 50,
   "name": "zpa_32",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 51,
   "name": "zpa_33",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 52,
   "name": "zpa_34",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 53,
   "name": "zpa_35",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 54,
   "name": "zpa_36",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 55,
   "name": "zpa_37",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 56,
   "name": "zpa_38",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 57,
   "name": "zpa_39",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 58,
   "name": "zpa_3A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59,
   "name": "zpa_3B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 60,
   "name": "zpa_3C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 61,
   "name": "zpa_3D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 62,
   "name": "zpa_3E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 63,
   "name": "zpa_3F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 64,
   "name": "zpa_40",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 65,
   "name": "zpa_41",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 66,
   "name": "zpa_42",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 67,
   "name": "zpa_43",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 68,
   "name": "room_x",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 69,
   "name": "zpa_45",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 70,
   "name": "zpa_46",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 71,
   "name": "zpa_47",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 72,
   "name": "zpa_48",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 73,
   "name": "zpa_49",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 74,
   "name": "zpa_4A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 75,
   "name": "zpa_4B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 76,
   "name": "f_004C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 78,
   "name": "zpa_4E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 79,
   "name": "zpa_4F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 80,
   "name": "zpa_50",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 81,
   "name": "zpa_51",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 84,
   "name": "zpa_54",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 85,
   "name": "zpa_55",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 86,
   "name": "zpa_56",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 87,
   "name": "zpa_57",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 88,
   "name": "zpf_58",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 89,
   "name": "zpa_59",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 90,
   "name": "zpa_5A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 92,
   "name": "zpa_5C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 93,
   "name": "zpa_5D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 94,
   "name": "zpa_5E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 95,
   "name": "zpa_5F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 96,
   "name": "zpa_60",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 97,
   "name": "zpa_61",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 98,
   "name": "zpa_62",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 99,
   "name": "zpa_63",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 100,
   "name": "zpa_64",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 101,
   "name": "zpa_65",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 102,
   "name": "zpa_66",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 103,
   "name": "zpa_67",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 104,
   "name": "zpa_68",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 105,
   "name": "zpa_69",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 106,
   "name": "zpa_6A",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 107,
   "name": "zpa_6B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 108,
   "name": "zpa_6C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 109,
   "name": "zpa_6D",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 110,
   "name": "zpa_6E",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 111,
   "name": "zpa_6F",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 112,
   "name": "zpa_70",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 113,
   "name": "zpa_71",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 114,
   "name": "zpa_72",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 115,
   "name": "zpa_73",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 116,
   "name": "zpa_74",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 117,
   "name": "zpa_75",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 118,
   "name": "zpa_76",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 119,
   "name": "zpa_77",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 120,
   "name": "zpa_78",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 121,
   "name": "zpa_79",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 128,
   "name": "zpa_80",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 129,
   "name": "zpa_81",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 139,
   "name": "zpa_8B",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 140,
   "name": "zpa_8C",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 198,
   "name": "zpa_C6",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 248,
   "name": "zpa_F8",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 249,
   "name": "zpa_F9",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 250,
   "name": "zpa_FA",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 251,
   "name": "zpa_FB",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 252,
   "name": "zpa_FC",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 253,
   "name": "zpa_FD",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 254,
   "name": "zpa_FE",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 255,
   "name": "zpa_FF",
   "type": "ZeroPageAbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 767,
   "name": "f_02FF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 788,
   "name": "a_0314",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 789,
   "name": "a_0315",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 1024,
   "name": "structure_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1032,
   "name": "structure_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1042,
   "name": "structure_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1051,
   "name": "structure_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1061,
   "name": "structure_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1071,
   "name": "structure_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1079,
   "name": "structure_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1089,
   "name": "structure_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1098,
   "name": "structure_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1108,
   "name": "structure_0A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1118,
   "name": "structure_0B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1126,
   "name": "structure_0C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1136,
   "name": "structure_0D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1146,
   "name": "structure_0E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1154,
   "name": "structure_0F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1164,
   "name": "structure_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1177,
   "name": "structure_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1185,
   "name": "structure_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1195,
   "name": "structure_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1204,
   "name": "structure_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1214,
   "name": "structure_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1224,
   "name": "structure_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1232,
   "name": "structure_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1242,
   "name": "structure_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1252,
   "name": "structure_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1260,
   "name": "structure_1A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1268,
   "name": "structure_1F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1276,
   "name": "structure_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1286,
   "name": "structure_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1295,
   "name": "structure_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1305,
   "name": "structure_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1315,
   "name": "structure_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1323,
   "name": "structure_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1333,
   "name": "structure_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1342,
   "name": "structure_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1352,
   "name": "structure_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1362,
   "name": "structure_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1370,
   "name": "structure_2A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1379,
   "name": "structure_1B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1387,
   "name": "structure_1C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1395,
   "name": "structure_1D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1403,
   "name": "structure_1E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1411,
   "name": "structure_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1419,
   "name": "structure_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1429,
   "name": "structure_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1437,
   "name": "structure_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1446,
   "name": "structure_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1456,
   "name": "structure_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1465,
   "name": "structure_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1474,
   "name": "structure_3B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1482,
   "name": "structure_3A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1494,
   "name": "structure_3C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1506,
   "name": "structure_3D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1519,
   "name": "structure_3E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1529,
   "name": "structure_3F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1545,
   "name": "structure_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1555,
   "name": "structure_41",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1565,
   "name": "structure_42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1575,
   "name": "structure_43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1587,
   "name": "structure_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1599,
   "name": "structure_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1609,
   "name": "structure_46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1617,
   "name": "structure_47",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1625,
   "name": "structure_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1638,
   "name": "structure_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1654,
   "name": "structure_4A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1670,
   "name": "structure_4B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1695,
   "name": "structure_4C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1720,
   "name": "structure_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1730,
   "name": "structure_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1740,
   "name": "structure_4D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1752,
   "name": "structure_4E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1764,
   "name": "structure_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1777,
   "name": "structure_4F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1790,
   "name": "structure_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1800,
   "name": "structure_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1818,
   "name": "structure_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1827,
   "name": "structure_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1843,
   "name": "structure_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1851,
   "name": "structure_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1859,
   "name": "structure_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1873,
   "name": "structure_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1885,
   "name": "structure_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1897,
   "name": "structure_5A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1909,
   "name": "structure_5B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1931,
   "name": "structure_5C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1943,
   "name": "structure_5D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1963,
   "name": "structure_5E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1979,
   "name": "structure_5F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1995,
   "name": "structure_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2005,
   "name": "structure_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2015,
   "name": "structure_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2023,
   "name": "structure_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2036,
   "name": "structure_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2060,
   "name": "structure_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2070,
   "name": "structure_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2080,
   "name": "structure_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2092,
   "name": "structure_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2104,
   "name": "structure_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2112,
   "name": "structure_6A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2120,
   "name": "structure_6B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2130,
   "name": "structure_6C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2140,
   "name": "structure_6D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2152,
   "name": "structure_6E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2160,
   "name": "structure_6F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2170,
   "name": "structure_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2190,
   "name": "structure_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2200,
   "name": "structure_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2210,
   "name": "structure_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2230,
   "name": "structure_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2239,
   "name": "structure_40_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2243,
   "name": "structure_20_unused",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2249,
   "name": "structure_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2258,
   "name": "structure_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2267,
   "name": "structure_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2295,
   "name": "structure_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2303,
   "name": "structure_79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2316,
   "name": "structure_7A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2341,
   "name": "structure_7B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2357,
   "name": "structure_7C",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2369,
   "name": "structure_7D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2381,
   "name": "structure_7E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2391,
   "name": "structure_7F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2401,
   "name": "structure_81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2413,
   "name": "structure_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2431,
   "name": "structure_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2437,
   "name": "structure_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2460,
   "name": "structure_list_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2560,
   "name": "room_63_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2575,
   "name": "room_62_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2615,
   "name": "room_61_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2661,
   "name": "room_62_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2707,
   "name": "room_61_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2751,
   "name": "room_67_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2788,
   "name": "room_67_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2829,
   "name": "room_66_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2875,
   "name": "room_64_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2932,
   "name": "room_64_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2967,
   "name": "room_70_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2983,
   "name": "room_69_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3009,
   "name": "room_70_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3063,
   "name": "room_69_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3088,
   "name": "room_68_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3108,
   "name": "room_71_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3131,
   "name": "room_67_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3179,
   "name": "room_66_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3203,
   "name": "room_66_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3231,
   "name": "room_66_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3256,
   "name": "room_66_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3296,
   "name": "room_65_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3327,
   "name": "room_68_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3359,
   "name": "room_65_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3405,
   "name": "room_70_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3431,
   "name": "room_65_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3453,
   "name": "room_64_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3502,
   "name": "room_71_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3543,
   "name": "room_72_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3589,
   "name": "room_72_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3646,
   "name": "room_72_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3694,
   "name": "room_71_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3740,
   "name": "room_70_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3783,
   "name": "room_70_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3810,
   "name": "room_71_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3847,
   "name": "room_69_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3895,
   "name": "room_68_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3930,
   "name": "room_69_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3976,
   "name": "room_69_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4031,
   "name": "room_68_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4073,
   "name": "room_68_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4099,
   "name": "room_64_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4131,
   "name": "room_64_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4185,
   "name": "room_64_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4212,
   "name": "room_64_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4234,
   "name": "room_63_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4265,
   "name": "room_61_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4322,
   "name": "room_61_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4361,
   "name": "room_61_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4394,
   "name": "room_61_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4409,
   "name": "room_69_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4436,
   "name": "room_70_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4463,
   "name": "room_60_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4518,
   "name": "room_60_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4555,
   "name": "room_60_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4599,
   "name": "room_65_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4640,
   "name": "room_65_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4675,
   "name": "room_65_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4714,
   "name": "room_59_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4735,
   "name": "room_59_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4768,
   "name": "room_62_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4785,
   "name": "room_61_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4805,
   "name": "room_62_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4822,
   "name": "room_61_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4841,
   "name": "room_63_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4861,
   "name": "room_63_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4888,
   "name": "room_63_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4917,
   "name": "room_64_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4942,
   "name": "room_63_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4970,
   "name": "room_60_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4999,
   "name": "room_60_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5022,
   "name": "room_59_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5047,
   "name": "room_59_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5073,
   "name": "room_61_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5098,
   "name": "room_61_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5126,
   "name": "room_60_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5152,
   "name": "room_60_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5178,
   "name": "room_60_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5199,
   "name": "room_59_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5226,
   "name": "room_58_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5258,
   "name": "room_56_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5285,
   "name": "room_58_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5311,
   "name": "room_57_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5340,
   "name": "room_56_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5376,
   "name": "room_55_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5395,
   "name": "room_55_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5416,
   "name": "room_57_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5452,
   "name": "room_58_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5473,
   "name": "room_57_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5507,
   "name": "room_58_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5542,
   "name": "room_57_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5576,
   "name": "room_56_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5613,
   "name": "room_59_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5639,
   "name": "room_65_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5654,
   "name": "room_64_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5669,
   "name": "room_66_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5719,
   "name": "room_58_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5735,
   "name": "room_57_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5750,
   "name": "room_59_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5782,
   "name": "room_59_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5811,
   "name": "room_55_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5857,
   "name": "room_56_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5891,
   "name": "room_56_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5935,
   "name": "room_54_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5953,
   "name": "room_54_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6003,
   "name": "room_55_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6037,
   "name": "room_54_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6092,
   "name": "room_54_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6117,
   "name": "room_53_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6174,
   "name": "room_53_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6211,
   "name": "room_55_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6243,
   "name": "room_69_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6279,
   "name": "room_61_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6294,
   "name": "room_59_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6311,
   "name": "room_58_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6333,
   "name": "room_59_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6352,
   "name": "room_58_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6372,
   "name": "room_59_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6403,
   "name": "room_60_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6443,
   "name": "room_62_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6461,
   "name": "room_64_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6499,
   "name": "room_58_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6541,
   "name": "room_59_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6568,
   "name": "room_59_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6599,
   "name": "room_58_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6624,
   "name": "room_58_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6650,
   "name": "room_60_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6691,
   "name": "room_60_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6724,
   "name": "room_53_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6763,
   "name": "room_50_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6791,
   "name": "room_51_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6832,
   "name": "room_48_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6860,
   "name": "room_47_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6887,
   "name": "room_46_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6921,
   "name": "room_45_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6956,
   "name": "room_49_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6994,
   "name": "room_53_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7021,
   "name": "room_66_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7065,
   "name": "room_67_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7077,
   "name": "room_68_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7113,
   "name": "room_55_63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7161,
   "name": "room_68_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7193,
   "name": "room_68_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7228,
   "name": "room_69_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7265,
   "name": "room_70_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7288,
   "name": "room_70_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7316,
   "name": "room_71_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7369,
   "name": "room_72_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7405,
   "name": "room_70_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7428,
   "name": "room_73_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7455,
   "name": "room_74_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7473,
   "name": "room_75_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7497,
   "name": "room_75_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7521,
   "name": "room_76_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7545,
   "name": "room_77_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7572,
   "name": "room_75_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7593,
   "name": "room_65_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7642,
   "name": "room_63_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7709,
   "name": "room_72_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7734,
   "name": "room_72_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7764,
   "name": "room_73_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7788,
   "name": "room_73_67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7828,
   "name": "room_72_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7860,
   "name": "room_44_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7893,
   "name": "room_44_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7927,
   "name": "room_44_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7936,
   "name": "room_44_62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7969,
   "name": "room_44_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7978,
   "name": "room_44_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7987,
   "name": "room_44_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7996,
   "name": "room_44_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8005,
   "name": "room_52_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8037,
   "name": "room_73_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8060,
   "name": "room_73_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8083,
   "name": "room_73_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8106,
   "name": "room_73_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8127,
   "name": "room_73_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8151,
   "name": "room_73_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8179,
   "name": "room_74_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8202,
   "name": "room_76_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8233,
   "name": "room_75_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8288,
   "name": "room_75_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8332,
   "name": "room_74_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8381,
   "name": "room_73_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8420,
   "name": "room_74_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8451,
   "name": "room_72_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8498,
   "name": "room_72_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8533,
   "name": "room_72_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8598,
   "name": "room_70_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8632,
   "name": "room_71_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8674,
   "name": "room_71_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8732,
   "name": "room_44_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8747,
   "name": "room_44_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8759,
   "name": "room_44_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8771,
   "name": "room_44_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8783,
   "name": "room_44_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8795,
   "name": "room_44_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8813,
   "name": "room_43_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8851,
   "name": "room_41_87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8888,
   "name": "room_41_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8906,
   "name": "room_42_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8962,
   "name": "room_41_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9018,
   "name": "room_43_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9069,
   "name": "room_42_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9115,
   "name": "room_42_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9161,
   "name": "room_42_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9218,
   "name": "room_56_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9265,
   "name": "room_44_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9287,
   "name": "room_44_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9327,
   "name": "room_43_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9368,
   "name": "room_43_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9412,
   "name": "room_45_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9457,
   "name": "room_45_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9499,
   "name": "room_45_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9542,
   "name": "room_45_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9565,
   "name": "room_46_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9601,
   "name": "room_46_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9646,
   "name": "room_61_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9732,
   "name": "room_60_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9780,
   "name": "room_61_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9844,
   "name": "room_60_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9890,
   "name": "room_63_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9935,
   "name": "room_62_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9967,
   "name": "room_64_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9999,
   "name": "room_63_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10057,
   "name": "room_63_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10113,
   "name": "room_60_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10162,
   "name": "room_60_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10225,
   "name": "room_61_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10245,
   "name": "room_61_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10271,
   "name": "room_63_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10312,
   "name": "room_62_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10352,
   "name": "room_64_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10378,
   "name": "room_64_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10398,
   "name": "room_64_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10461,
   "name": "room_62_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10472,
   "name": "room_62_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10498,
   "name": "room_62_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10524,
   "name": "room_62_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10565,
   "name": "room_61_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10622,
   "name": "room_73_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10638,
   "name": "room_73_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10659,
   "name": "room_73_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10685,
   "name": "room_69_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10713,
   "name": "room_68_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10762,
   "name": "room_73_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10800,
   "name": "room_72_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10846,
   "name": "room_71_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10900,
   "name": "room_70_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10956,
   "name": "room_62_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10985,
   "name": "room_62_79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11015,
   "name": "room_63_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11037,
   "name": "room_59_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11067,
   "name": "room_61_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11091,
   "name": "room_58_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11117,
   "name": "room_57_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11150,
   "name": "room_56_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11201,
   "name": "room_55_68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11228,
   "name": "room_55_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11260,
   "name": "room_56_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11304,
   "name": "room_56_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11350,
   "name": "room_57_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11375,
   "name": "room_58_69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11408,
   "name": "room_58_70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11436,
   "name": "room_58_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11469,
   "name": "room_57_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11509,
   "name": "room_56_71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11537,
   "name": "room_64_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11594,
   "name": "room_56_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11632,
   "name": "room_57_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11674,
   "name": "room_65_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11708,
   "name": "room_64_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11748,
   "name": "room_64_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11778,
   "name": "room_60_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11845,
   "name": "room_64_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11873,
   "name": "room_65_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11902,
   "name": "room_59_64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11937,
   "name": "room_56_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11979,
   "name": "room_55_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12006,
   "name": "room_58_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12021,
   "name": "room_58_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12036,
   "name": "room_60_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12051,
   "name": "room_60_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12066,
   "name": "room_59_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12123,
   "name": "room_58_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12150,
   "name": "room_59_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12177,
   "name": "room_60_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12204,
   "name": "room_59_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12231,
   "name": "room_47_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12287,
   "name": "room_47_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12338,
   "name": "room_47_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12389,
   "name": "room_46_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12436,
   "name": "room_46_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12468,
   "name": "room_47_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12504,
   "name": "room_51_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12516,
   "name": "room_52_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12528,
   "name": "room_54_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12540,
   "name": "room_55_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12552,
   "name": "room_49_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12578,
   "name": "room_49_87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12612,
   "name": "room_58_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12676,
   "name": "room_48_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12701,
   "name": "room_48_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12737,
   "name": "room_48_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12751,
   "name": "room_48_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12784,
   "name": "room_49_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12831,
   "name": "room_59_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12883,
   "name": "room_60_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12922,
   "name": "room_59_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12952,
   "name": "room_60_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12975,
   "name": "room_57_85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12996,
   "name": "room_60_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13020,
   "name": "room_58_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13057,
   "name": "room_59_84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13095,
   "name": "room_59_83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13121,
   "name": "room_59_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13156,
   "name": "room_59_81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13194,
   "name": "room_58_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13239,
   "name": "room_57_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13268,
   "name": "room_56_82",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13308,
   "name": "room_56_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13328,
   "name": "room_56_79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13363,
   "name": "room_55_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13410,
   "name": "room_54_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13451,
   "name": "room_56_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13472,
   "name": "room_56_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13497,
   "name": "room_56_81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13530,
   "name": "room_57_81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13553,
   "name": "room_57_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13595,
   "name": "room_57_79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13624,
   "name": "room_57_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13658,
   "name": "room_58_80",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13681,
   "name": "room_58_79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13699,
   "name": "room_58_78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13738,
   "name": "room_56_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13766,
   "name": "room_56_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13797,
   "name": "room_57_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13830,
   "name": "room_59_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13852,
   "name": "room_58_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13882,
   "name": "room_58_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13903,
   "name": "room_57_75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13938,
   "name": "room_60_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13955,
   "name": "room_59_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13978,
   "name": "room_58_76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14012,
   "name": "room_58_77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14039,
   "name": "room_56_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14081,
   "name": "room_55_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14138,
   "name": "room_54_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14186,
   "name": "room_54_73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14222,
   "name": "room_57_74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14263,
   "name": "room_58_86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14296,
   "name": "room_66_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14337,
   "name": "room_66_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14367,
   "name": "room_66_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14392,
   "name": "room_66_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14411,
   "name": "room_66_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14449,
   "name": "room_70_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14463,
   "name": "room_70_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14494,
   "name": "room_70_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14541,
   "name": "room_69_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14590,
   "name": "room_69_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14622,
   "name": "room_68_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14646,
   "name": "room_67_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14690,
   "name": "room_67_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14727,
   "name": "room_65_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14755,
   "name": "room_66_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14791,
   "name": "room_66_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14811,
   "name": "room_66_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14850,
   "name": "room_58_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14891,
   "name": "room_58_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14917,
   "name": "room_57_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14956,
   "name": "room_57_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14991,
   "name": "room_57_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15015,
   "name": "room_57_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15048,
   "name": "room_57_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15084,
   "name": "room_65_65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15105,
   "name": "room_57_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15139,
   "name": "room_57_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15158,
   "name": "room_57_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15187,
   "name": "room_57_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15224,
   "name": "room_73_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15249,
   "name": "room_74_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15264,
   "name": "room_75_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15304,
   "name": "room_76_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15347,
   "name": "room_77_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15387,
   "name": "room_78_72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15399,
   "name": "room_directory_end",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15616,
   "name": "spin4_last_byte",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24576,
   "name": "start_game_image",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24580,
   "name": "b_6004",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24631,
   "name": "b_6037",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24694,
   "name": "check_cheat_password",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24701,
   "name": "b_607D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24717,
   "name": "b_608D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 24722,
   "name": "forever_main",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 24728,
   "name": "cheat_password",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 24736,
   "name": "filler_60A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25760,
   "name": "filler_64A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26784,
   "name": "filler_68A0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27808,
   "name": "filler_6CA0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28672,
   "name": "entry_init_and_title",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28675,
   "name": "entry_credits",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28678,
   "name": "entry_change_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28681,
   "name": "entry_map_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28684,
   "name": "entry_burst",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28687,
   "name": "entry_help_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28690,
   "name": "entry_draw_title_room",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28693,
   "name": "old_irq_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28694,
   "name": "old_irq_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28695,
   "name": "init_and_title",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28768,
   "name": "j_7060",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 28774,
   "name": "raster_irq",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28790,
   "name": "b_7076",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28825,
   "name": "b_7099",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28833,
   "name": "b_70A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28849,
   "name": "b_70B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28864,
   "name": "b_70C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28892,
   "name": "b_70DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28910,
   "name": "hum_toggle",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28911,
   "name": "jingle_step",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 28912,
   "name": "credits_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 28931,
   "name": "b_7103",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 28939,
   "name": "credits_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29211,
   "name": "jingle_pitches",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 29219,
   "name": "change_shape",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29247,
   "name": "b_723F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29276,
   "name": "help_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29325,
   "name": "b_728D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29354,
   "name": "b_72AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29369,
   "name": "help_objects",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29413,
   "name": "help_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29501,
   "name": "draw_title_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29528,
   "name": "b_7358",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29534,
   "name": "r_735E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 29535,
   "name": "burst_counter",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29536,
   "name": "burst_animation",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29566,
   "name": "b_737E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29590,
   "name": "b_7396",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29598,
   "name": "b_739E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29646,
   "name": "map_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 29720,
   "name": "b_7418",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29744,
   "name": "b_7430",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29763,
   "name": "plot_map_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29832,
   "name": "b_7488",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29839,
   "name": "b_748F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29857,
   "name": "b_74A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 29871,
   "name": "map_legend",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29965,
   "name": "leftover_750D",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30720,
   "name": "shapes_set_b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31104,
   "name": "shapes_set_a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31488,
   "name": "leftover_7B00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31552,
   "name": "hud_label_glyphs",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31744,
   "name": "font",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31808,
   "name": "logo_map",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 31913,
   "name": "font_codes_15_7F",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32768,
   "name": "cbm80_cold_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32769,
   "name": "cbm80_cold_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32770,
   "name": "cbm80_warm_vector",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32771,
   "name": "cbm80_warm_vector_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32772,
   "name": "cbm80_signature",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32777,
   "name": "unused_8009",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32784,
   "name": "entry_score_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32787,
   "name": "entry_survey_complete",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32790,
   "name": "entry_game_end",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32793,
   "name": "entry_title_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32796,
   "name": "entry_print_text",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32799,
   "name": "entry_read_joystick",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32802,
   "name": "entry_noise_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32805,
   "name": "entry_draw_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32808,
   "name": "read_joystick",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 32829,
   "name": "b_803D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32835,
   "name": "j_8043",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 32842,
   "name": "plot_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32881,
   "name": "b_8071",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32918,
   "name": "b_8096",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32926,
   "name": "plot_8_cells",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32928,
   "name": "b_80A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 32944,
   "name": "draw_hud_labels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32994,
   "name": "draw_frame",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33020,
   "name": "b_80FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33044,
   "name": "b_8114",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33072,
   "name": "b_8130",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33096,
   "name": "b_8148",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33105,
   "name": "draw_hud",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33161,
   "name": "plot_char",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33189,
   "name": "b_81A5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33203,
   "name": "b_81B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33208,
   "name": "plot_char_end",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33209,
   "name": "window_left",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33210,
   "name": "window_right",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33211,
   "name": "window_top",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33212,
   "name": "window_bottom",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33213,
   "name": "print_text",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 33222,
   "name": "b_81C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33232,
   "name": "b_81D0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33239,
   "name": "b_81D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33249,
   "name": "b_81E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33260,
   "name": "b_81EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33266,
   "name": "b_81F2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33313,
   "name": "b_8221",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33337,
   "name": "b_8239",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33347,
   "name": "b_8243",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33361,
   "name": "b_8251",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33372,
   "name": "b_825C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33386,
   "name": "b_826A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33406,
   "name": "b_827E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33409,
   "name": "j_8281",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 33415,
   "name": "b_8287",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33418,
   "name": "clear_window",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33423,
   "name": "b_828F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33428,
   "name": "b_8294",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33458,
   "name": "survey_complete_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33525,
   "name": "mission_aborted_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33556,
   "name": "press_a_key_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33585,
   "name": "press_space_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33620,
   "name": "score_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33712,
   "name": "score_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33869,
   "name": "b_844D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33873,
   "name": "set_print_position",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33890,
   "name": "print_position_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33891,
   "name": "print_column",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33892,
   "name": "print_row",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33894,
   "name": "digits_printed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33895,
   "name": "print_bcd_number",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33921,
   "name": "print_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33932,
   "name": "b_848C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33941,
   "name": "b_8495",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33946,
   "name": "fill_bitmap",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33962,
   "name": "b_84AA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 33963,
   "name": "fill_address_lo",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33964,
   "name": "fill_address_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33975,
   "name": "new_game_state",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34001,
   "name": "new_game",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34006,
   "name": "b_84D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34043,
   "name": "b_84FB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34119,
   "name": "b_8547",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34149,
   "name": "b_8565",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34157,
   "name": "game_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34198,
   "name": "show_score",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34221,
   "name": "b_85AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34232,
   "name": "b_85B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34237,
   "name": "wait_key",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34241,
   "name": "b_85C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34247,
   "name": "delay",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34251,
   "name": "b_85CB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34266,
   "name": "r_85DA",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34267,
   "name": "survey_complete",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34275,
   "name": "b_85E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34304,
   "name": "b_8600",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34314,
   "name": "b_860A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34321,
   "name": "draw_logo",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34349,
   "name": "b_862D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34356,
   "name": "b_8634",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34394,
   "name": "plot_logo_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34404,
   "name": "b_8664",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34409,
   "name": "title_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 34514,
   "name": "b_86D2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34541,
   "name": "b_86ED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34557,
   "name": "b_86FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34567,
   "name": "r_8707",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 34568,
   "name": "b_8708",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34582,
   "name": "b_8716",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34589,
   "name": "j_871D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34595,
   "name": "b_8723",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34605,
   "name": "b_872D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34649,
   "name": "title_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34752,
   "name": "options_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34849,
   "name": "options_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34864,
   "name": "j_8830",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 34878,
   "name": "b_883E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34886,
   "name": "b_8846",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34903,
   "name": "b_8857",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34911,
   "name": "b_885F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34914,
   "name": "b_8862",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34924,
   "name": "b_886C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34939,
   "name": "b_887B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 34954,
   "name": "slow_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34962,
   "name": "fast_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34970,
   "name": "one_joystick_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34987,
   "name": "two_joysticks_text",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35006,
   "name": "noise_sound",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35020,
   "name": "b_88CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35041,
   "name": "r_88E1",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35042,
   "name": "unused_88E2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35072,
   "name": "entry_turn_view",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35075,
   "name": "entry_draw_switch_box",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35078,
   "name": "entry_main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35081,
   "name": "entry_height_above_floor",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35084,
   "name": "entry_check_all_jewels",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35087,
   "name": "entry_find_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35090,
   "name": "switch_pitches",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35104,
   "name": "apply_velocity",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35152,
   "name": "r_8950",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35153,
   "name": "apply_gravity",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35167,
   "name": "apply_friction_axis",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35179,
   "name": "b_896B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35213,
   "name": "apply_friction",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35223,
   "name": "height_above_floor",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35237,
   "name": "landing_sound",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35278,
   "name": "r_89CE",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35279,
   "name": "check_hard_landing",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35290,
   "name": "burst_gerald",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35303,
   "name": "restart_at_safe_point",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35305,
   "name": "b_89E9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35358,
   "name": "b_8A1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35361,
   "name": "room_changed",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 35362,
   "name": "cross_room_edge",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35406,
   "name": "b_8A4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35416,
   "name": "b_8A58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35484,
   "name": "b_8A9C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35494,
   "name": "b_8AA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35509,
   "name": "b_8AB5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35584,
   "name": "enter_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35616,
   "name": "b_8B20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35623,
   "name": "b_8B27",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35643,
   "name": "b_8B3B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35647,
   "name": "b_8B3F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35656,
   "name": "nudge_speed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35670,
   "name": "r_8B56",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35671,
   "name": "room_header",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35682,
   "name": "b_8B62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35703,
   "name": "b_8B77",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35705,
   "name": "b_8B79",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35713,
   "name": "r_8B81",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35714,
   "name": "set_room_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35728,
   "name": "refresh_colours",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35736,
   "name": "room_colours_6A",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35752,
   "name": "room_colours_6B",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 35768,
   "name": "mark_room_visited",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35771,
   "name": "b_8BBB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35821,
   "name": "check_all_jewels",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 35837,
   "name": "r_8BFD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 35838,
   "name": "turn_pieces",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35848,
   "name": "b_8C08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35855,
   "name": "b_8C0F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35861,
   "name": "b_8C15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35885,
   "name": "b_8C2D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35910,
   "name": "b_8C46",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35939,
   "name": "b_8C63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35947,
   "name": "rotate_vector",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35952,
   "name": "b_8C70",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35958,
   "name": "rotate_vector_turn",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 35983,
   "name": "b_8C8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 35990,
   "name": "negate_f8",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36004,
   "name": "b_8CA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36007,
   "name": "b_8CA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36021,
   "name": "find_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36029,
   "name": "j_8CBD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36054,
   "name": "b_8CD6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36063,
   "name": "b_8CDF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36076,
   "name": "b_8CEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36079,
   "name": "rotate_position",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36095,
   "name": "turn_view",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36256,
   "name": "switch_slot",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36257,
   "name": "main_loop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36287,
   "name": "b_8DBF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36318,
   "name": "b_8DDE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36324,
   "name": "b_8DE4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36330,
   "name": "b_8DEA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36336,
   "name": "b_8DF0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36344,
   "name": "b_8DF8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36350,
   "name": "b_8DFE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36359,
   "name": "b_8E07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36365,
   "name": "b_8E0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36374,
   "name": "b_8E16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36394,
   "name": "b_8E2A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36406,
   "name": "b_8E36",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36430,
   "name": "b_8E4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36437,
   "name": "b_8E55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36486,
   "name": "b_8E86",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36495,
   "name": "b_8E8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36505,
   "name": "b_8E99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36512,
   "name": "b_8EA0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36520,
   "name": "b_8EA8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36525,
   "name": "b_8EAD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36541,
   "name": "b_8EBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36548,
   "name": "b_8EC4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36552,
   "name": "pause_loop",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36559,
   "name": "b_8ECF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36570,
   "name": "b_8EDA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36583,
   "name": "b_8EE7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36596,
   "name": "b_8EF4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36615,
   "name": "b_8F07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36618,
   "name": "brake",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36642,
   "name": "view_keys",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36668,
   "name": "b_8F3C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36676,
   "name": "slope_push",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36677,
   "name": "slope_push_hi",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 36678,
   "name": "surface_response",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 36693,
   "name": "b_8F55",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36698,
   "name": "b_8F5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36705,
   "name": "b_8F61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36710,
   "name": "b_8F66",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36717,
   "name": "b_8F6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36730,
   "name": "b_8F7A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36737,
   "name": "b_8F81",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36744,
   "name": "b_8F88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36751,
   "name": "b_8F8F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36758,
   "name": "b_8F96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36765,
   "name": "b_8F9D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36772,
   "name": "b_8FA4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36780,
   "name": "land_on_floor",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36786,
   "name": "j_8FB2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36792,
   "name": "j_8FB8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36800,
   "name": "r_8FC0",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 36801,
   "name": "slope_gentle",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 36803,
   "name": "j_8FC3",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36825,
   "name": "j_8FD9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36861,
   "name": "j_8FFD",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 36901,
   "name": "slope_steep",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36913,
   "name": "b_9031",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36935,
   "name": "slope_corner_outer",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 36947,
   "name": "b_9053",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 36969,
   "name": "slope_corner_push",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37038,
   "name": "slope_corner_inner",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37048,
   "name": "slope_corner_steep",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37062,
   "name": "r_90C6",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37063,
   "name": "b_90C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37115,
   "name": "slope_ridge",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37125,
   "name": "b_9105",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37132,
   "name": "slope_valley",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37142,
   "name": "on_ice",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37168,
   "name": "b_9130",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37171,
   "name": "b_9133",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37180,
   "name": "on_trampoline",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37223,
   "name": "b_9167",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37226,
   "name": "press_switch",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37232,
   "name": "r_9170",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 37233,
   "name": "b_9171",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37262,
   "name": "b_918E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37283,
   "name": "b_91A3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37286,
   "name": "b_91A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37315,
   "name": "b_91C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37317,
   "name": "b_91C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37370,
   "name": "draw_switch_box",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 37393,
   "name": "draw_switch_symbol",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37397,
   "name": "b_9215",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37403,
   "name": "b_921B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37421,
   "name": "b_922D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37431,
   "name": "b_9237",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37450,
   "name": "copy_symbol_piece",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37454,
   "name": "b_924E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37472,
   "name": "b_9260",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37487,
   "name": "b_926F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37502,
   "name": "b_927E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37517,
   "name": "b_928D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37528,
   "name": "b_9298",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37532,
   "name": "b_929C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37550,
   "name": "b_92AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37564,
   "name": "count_rooms",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37580,
   "name": "b_92CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37632,
   "name": "b_9300",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37649,
   "name": "wall_collisions",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37675,
   "name": "b_932B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37719,
   "name": "b_9357",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37761,
   "name": "b_9381",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37766,
   "name": "b_9386",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37810,
   "name": "b_93B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37852,
   "name": "b_93DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37857,
   "name": "b_93E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37914,
   "name": "b_941A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37921,
   "name": "bounce_speed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37945,
   "name": "b_9439",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 37950,
   "name": "test_cell_blocked",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 37997,
   "name": "b_946D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38027,
   "name": "b_948B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38040,
   "name": "piece_floor_height",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38070,
   "name": "b_94B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38075,
   "name": "b_94BB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38082,
   "name": "b_94C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38093,
   "name": "r_94CD",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38094,
   "name": "b_94CE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38101,
   "name": "b_94D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38106,
   "name": "b_94DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38115,
   "name": "b_94E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38123,
   "name": "b_94EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38128,
   "name": "unreached_94F0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38139,
   "name": "unused_94FB",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38144,
   "name": "entry_redraw_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38147,
   "name": "entry_redraw_picture",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38150,
   "name": "entry_draw_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38153,
   "name": "entry_clear_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38156,
   "name": "entry_tile_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38159,
   "name": "entry_bitmap_mode",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38162,
   "name": "entry_text_mode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38165,
   "name": "entry_build_picture",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38168,
   "name": "entry_build_room_grid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38171,
   "name": "entry_clear_room_grid",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38174,
   "name": "entry_place_structure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38177,
   "name": "entry_find_floor",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38180,
   "name": "entry_find_floor_at",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38183,
   "name": "entry_draw_bcd_number",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38186,
   "name": "entry_bcd_increment",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38189,
   "name": "entry_bcd_decrement",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38192,
   "name": "entry_bcd_add",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38195,
   "name": "add_to_time",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 38198,
   "name": "entry_add_time_capped",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38201,
   "name": "entry_bcd_percent",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38204,
   "name": "tile_classes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 38268,
   "name": "clear_room_grid",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38271,
   "name": "b_957F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38281,
   "name": "view_flips",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 38285,
   "name": "swap_position_fields",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38318,
   "name": "turn_block_type",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38327,
   "name": "b_95B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38342,
   "name": "b_95C6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38356,
   "name": "decode_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38380,
   "name": "b_95EC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38415,
   "name": "place_block",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38441,
   "name": "b_9629",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38459,
   "name": "b_963B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38466,
   "name": "b_9642",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38470,
   "name": "j_9646",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38479,
   "name": "b_964F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38486,
   "name": "b_9656",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38502,
   "name": "b_9666",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38508,
   "name": "fill_floor",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 38533,
   "name": "build_room_grid",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38559,
   "name": "b_969F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38569,
   "name": "b_96A9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38572,
   "name": "j_96AC",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38582,
   "name": "b_96B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38592,
   "name": "b_96C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38597,
   "name": "b_96C5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38611,
   "name": "b_96D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38617,
   "name": "place_structure_ref",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38627,
   "name": "place_structure",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38682,
   "name": "b_971A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38698,
   "name": "find_structure",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38706,
   "name": "j_9732",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 38720,
   "name": "b_9740",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38729,
   "name": "b_9749",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38732,
   "name": "b_974C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38738,
   "name": "b_9752",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38744,
   "name": "b_9758",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38747,
   "name": "clear_tiles",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38761,
   "name": "b_9769",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38772,
   "name": "tile_address",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38811,
   "name": "r_979B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38812,
   "name": "draw_tile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 38838,
   "name": "b_97B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38851,
   "name": "b_97C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38858,
   "name": "b_97CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38869,
   "name": "b_97D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38873,
   "name": "b_97D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38894,
   "name": "b_97EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38921,
   "name": "b_9809",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38929,
   "name": "b_9811",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 38942,
   "name": "r_981E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 38943,
   "name": "bitmap_mode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 38984,
   "name": "text_mode",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39022,
   "name": "queue_block_tiles",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39058,
   "name": "b_9892",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39068,
   "name": "b_989C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39085,
   "name": "b_98AD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39089,
   "name": "b_98B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39111,
   "name": "b_98C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39123,
   "name": "b_98D3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39127,
   "name": "j_98D7",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39140,
   "name": "block_base_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39144,
   "name": "queue_tile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39168,
   "name": "b_9900",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39174,
   "name": "r_9906",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39175,
   "name": "add_tile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39205,
   "name": "b_9925",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39213,
   "name": "b_992D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39236,
   "name": "b_9944",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39254,
   "name": "b_9956",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39263,
   "name": "b_995F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39273,
   "name": "remove_tile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39287,
   "name": "b_9977",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39310,
   "name": "draw_queued_tile",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39315,
   "name": "b_9993",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39365,
   "name": "tile_being_drawn",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 39366,
   "name": "compose_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39370,
   "name": "b_99CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39388,
   "name": "b_99DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39399,
   "name": "b_99E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39409,
   "name": "b_99F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39420,
   "name": "b_99FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39422,
   "name": "redraw_screen",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39437,
   "name": "draw_picture",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39457,
   "name": "b_9A21",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39461,
   "name": "b_9A25",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39474,
   "name": "b_9A32",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39528,
   "name": "b_9A68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39539,
   "name": "b_9A73",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39560,
   "name": "b_9A88",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39565,
   "name": "draw_room",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39576,
   "name": "build_picture",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39599,
   "name": "b_9AAF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39603,
   "name": "b_9AB3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39623,
   "name": "b_9AC7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39650,
   "name": "b_9AE2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39742,
   "name": "b_9B3E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39759,
   "name": "find_floor",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39767,
   "name": "find_floor_at",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39790,
   "name": "b_9B6E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39820,
   "name": "b_9B8C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39827,
   "name": "b_9B93",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39831,
   "name": "b_9B97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 39863,
   "name": "r_9BB7",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 39864,
   "name": "bcd_increment",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39879,
   "name": "bcd_done",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39882,
   "name": "bcd_add",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39900,
   "name": "bcd_decrement",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39918,
   "name": "bcd_percent",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 39939,
   "name": "j_9C03",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 39969,
   "name": "draw_big_digit",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39994,
   "name": "b_9C3A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40016,
   "name": "b_9C50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40037,
   "name": "draw_bcd_number",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40057,
   "name": "add_time_and_check",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40078,
   "name": "add_time_capped",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40105,
   "name": "b_9CA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40125,
   "name": "unused_9CBD",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40192,
   "name": "entry_build_pieces",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40195,
   "name": "entry_sort_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40198,
   "name": "entry_apply_sprites",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40201,
   "name": "entry_run_pieces",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40204,
   "name": "entry_draw_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40207,
   "name": "entry_project",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40210,
   "name": "entry_end_pieces",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40213,
   "name": "entry_turn_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40216,
   "name": "build_sprite_mask",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40220,
   "name": "b_9D1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40241,
   "name": "mask_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40251,
   "name": "mask_place",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40270,
   "name": "b_9D4E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40280,
   "name": "b_9D58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40286,
   "name": "b_9D5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40287,
   "name": "j_9D5F",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 40469,
   "name": "b_9E15",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40472,
   "name": "copy_masked_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40476,
   "name": "b_9E1C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40494,
   "name": "bit_of_index",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40511,
   "name": "bit_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40519,
   "name": "turn_cell",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40538,
   "name": "b_9E5A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40545,
   "name": "invert_fb",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40552,
   "name": "b_9E68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40555,
   "name": "b_9E6B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40561,
   "name": "r_9E71",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40562,
   "name": "next_sprite_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 40580,
   "name": "next_shape_pointer",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40581,
   "name": "build_pieces",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40599,
   "name": "b_9E97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40610,
   "name": "next_piece",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40614,
   "name": "end_pieces",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40651,
   "name": "r_9ECB",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 40652,
   "name": "unpack_piece",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40712,
   "name": "add_jewel",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40796,
   "name": "count_lift",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 40798,
   "name": "b_9F5E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40802,
   "name": "b_9F62",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40811,
   "name": "add_lift",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40896,
   "name": "b_9FC0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 40941,
   "name": "add_inhabitant",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41042,
   "name": "add_switched_block",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 41124,
   "name": "b_A0A4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41149,
   "name": "b_A0BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41153,
   "name": "b_A0C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41158,
   "name": "check_switch_on",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41170,
   "name": "r_A0D2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41171,
   "name": "run_pieces",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41186,
   "name": "j_A0E2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 41204,
   "name": "pieces_done",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41215,
   "name": "switched_block_piece",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41235,
   "name": "b_A113",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41248,
   "name": "b_A120",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41252,
   "name": "next_record",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 41260,
   "name": "jewel_piece",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41363,
   "name": "b_A193",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41378,
   "name": "b_A1A2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41398,
   "name": "b_A1B6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41430,
   "name": "b_A1D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41437,
   "name": "b_A1DD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41439,
   "name": "b_A1DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41533,
   "name": "shape_address",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41550,
   "name": "copy_slot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41576,
   "name": "b_A268",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41579,
   "name": "b_A26B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41594,
   "name": "b_A27A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41626,
   "name": "r_A29A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 41627,
   "name": "shadow_pointers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41635,
   "name": "shadow_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41643,
   "name": "shadow_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41651,
   "name": "shadow_x_msb",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41652,
   "name": "shadow_multicolour",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41653,
   "name": "shadow_enable",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 41654,
   "name": "shadow_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 41662,
   "name": "apply_sprites",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41666,
   "name": "b_A2C2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41714,
   "name": "sort_sprites",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 41731,
   "name": "b_A303",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41738,
   "name": "b_A30A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41744,
   "name": "b_A310",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41778,
   "name": "b_A332",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41784,
   "name": "b_A338",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41795,
   "name": "b_A343",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41799,
   "name": "project_piece",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41842,
   "name": "lift_shape",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 41855,
   "name": "lift_piece",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41868,
   "name": "b_A38C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41879,
   "name": "b_A397",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41907,
   "name": "b_A3B3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41923,
   "name": "b_A3C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41942,
   "name": "b_A3D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41975,
   "name": "b_A3F7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 41994,
   "name": "b_A40A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42278,
   "name": "b_A526",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42281,
   "name": "clear_sprite_column",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42285,
   "name": "b_A52D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42293,
   "name": "draw_object",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42371,
   "name": "b_A583",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42386,
   "name": "b_A592",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42407,
   "name": "b_A5A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42526,
   "name": "inhabitant_old_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42527,
   "name": "inhabitant_old_x_cell",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42528,
   "name": "inhabitant_old_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42529,
   "name": "inhabitant_old_y_cell",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42530,
   "name": "inhabitant_piece",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42685,
   "name": "b_A6BD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42721,
   "name": "b_A6E1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42728,
   "name": "b_A6E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42757,
   "name": "b_A705",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42760,
   "name": "b_A708",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42789,
   "name": "b_A725",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42844,
   "name": "b_A75C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42986,
   "name": "b_A7EA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42989,
   "name": "step_70",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43005,
   "name": "b_A7FD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43019,
   "name": "sign_extend",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43032,
   "name": "steer_speed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43048,
   "name": "r_A828",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43049,
   "name": "b_A829",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43061,
   "name": "project",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43098,
   "name": "b_A85A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43165,
   "name": "r_A89D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43166,
   "name": "unused_A89E",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43264,
   "name": "block_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43584,
   "name": "switch_tiles",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43632,
   "name": "switch_tiles_12_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43648,
   "name": "f_AA80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 43904,
   "name": "f_AB80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44160,
   "name": "f_AC80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44288,
   "name": "f_AD00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44416,
   "name": "f_AD80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44672,
   "name": "f_AE80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44928,
   "name": "f_AF80",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46592,
   "name": "f_B600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46848,
   "name": "f_B700",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47104,
   "name": "f_B800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47360,
   "name": "tile_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47368,
   "name": "tile_masks_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47616,
   "name": "tile_pictures",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48288,
   "name": "symbol_tile_pictures",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "symbol_pieces",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49536,
   "name": "jewel_picture",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 49600,
   "name": "a_C1C0",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49664,
   "name": "f_C200",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49665,
   "name": "f_C201",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49666,
   "name": "f_C202",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49667,
   "name": "f_C203",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49668,
   "name": "f_C204",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49669,
   "name": "f_C205",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49670,
   "name": "f_C206",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49671,
   "name": "f_C207",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49672,
   "name": "f_C208",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49673,
   "name": "f_C209",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49674,
   "name": "f_C20A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49675,
   "name": "f_C20B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49676,
   "name": "f_C20C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49677,
   "name": "f_C20D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49678,
   "name": "f_C20E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49792,
   "name": "f_C280",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49793,
   "name": "f_C281",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49794,
   "name": "f_C282",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49800,
   "name": "f_C288",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49801,
   "name": "f_C289",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49808,
   "name": "a_C290",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49809,
   "name": "f_C291",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49810,
   "name": "a_C292",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49812,
   "name": "a_C294",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49813,
   "name": "a_C295",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49814,
   "name": "a_C296",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49815,
   "name": "a_C297",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49816,
   "name": "a_C298",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49817,
   "name": "a_C299",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49818,
   "name": "a_C29A",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49819,
   "name": "a_C29B",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49820,
   "name": "a_C29C",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49822,
   "name": "a_C29E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49824,
   "name": "f_C2A0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49825,
   "name": "f_C2A1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49832,
   "name": "f_C2A8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49833,
   "name": "a_C2A9",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 49840,
   "name": "f_C2B0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49841,
   "name": "f_C2B1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49847,
   "name": "f_C2B7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49848,
   "name": "f_C2B8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49920,
   "name": "f_C300",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49921,
   "name": "f_C301",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49922,
   "name": "f_C302",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49923,
   "name": "f_C303",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49924,
   "name": "f_C304",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49925,
   "name": "f_C305",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49926,
   "name": "f_C306",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49927,
   "name": "f_C307",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49928,
   "name": "f_C308",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49952,
   "name": "f_C320",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49953,
   "name": "f_C321",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49954,
   "name": "f_C322",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49955,
   "name": "f_C323",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49956,
   "name": "f_C324",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49957,
   "name": "f_C325",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49958,
   "name": "f_C326",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49959,
   "name": "f_C327",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 49984,
   "name": "f_C340",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50016,
   "name": "f_C360",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50048,
   "name": "leftover_C380",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "f_C400",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50432,
   "name": "f_C500",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50688,
   "name": "f_C600",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 50928,
   "name": "f_C6F0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51192,
   "name": "f_C7F8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51200,
   "name": "shapes_in_use",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51584,
   "name": "leftover_C980",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51712,
   "name": "big_digits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 52032,
   "name": "leftover_CB40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "f_D800",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55552,
   "name": "f_D900",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 55808,
   "name": "f_DA00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 56048,
   "name": "f_DAF0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57088,
   "name": "f_DF00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59953,
   "name": "j_EA31",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 65508,
   "name": "KERNAL_GETIN",
   "type": "Predefined",
   "kind": "system"
  }
 ],
 "comments": [
  {
   "address": 1024,
   "type": "line",
   "text": "The shared structures rooms are built from, 127 records from here to $099B: a structure number, the record's length, then block words in the room format ending in $0000 (a type-2 word is followed by the number of a structure to place inside this one). place_structure finds a structure by its number, the first record with it, and places it with the calling word's position as an offset and its bits 5-6 as a turn. This first record: structure $01, 8 bytes: 2 block words; named by 114 block words in 68 rooms, 12 words in 6 other structures, 9 switched blocks in 8 rooms."
  },
  {
   "address": 1032,
   "type": "line",
   "text": "Structure $02, 10 bytes: 2 block words, placing structures $01, $01 inside it; named by 111 block words in 70 rooms, 6 words in 2 other structures, 4 switched blocks in 3 rooms."
  },
  {
   "address": 1042,
   "type": "line",
   "text": "Structure $03, 9 bytes: 2 block words, placing structure $01 inside it; named by 56 block words in 41 rooms, 3 words in 1 other structure, 4 switched blocks in 3 rooms."
  },
  {
   "address": 1051,
   "type": "line",
   "text": "Structure $04, 10 bytes: 2 block words, placing structures $02, $02 inside it; named by 49 block words in 36 rooms, 6 words in 2 other structures, 1 switched block in 1 room."
  },
  {
   "address": 1061,
   "type": "line",
   "text": "Structure $05, 10 bytes: 2 block words, placing structures $01, $01 inside it; named by 14 block words in 11 rooms, 1 switched block in 1 room."
  },
  {
   "address": 1071,
   "type": "line",
   "text": "Structure $06, 8 bytes: 2 block words; named by 136 block words in 68 rooms, 8 words in 4 other structures, 2 switched blocks in 1 room."
  },
  {
   "address": 1079,
   "type": "line",
   "text": "Structure $07, 10 bytes: 2 block words, placing structures $06, $06 inside it; named by 93 block words in 56 rooms, 7 words in 4 other structures, 1 switched block in 1 room."
  },
  {
   "address": 1089,
   "type": "line",
   "text": "Structure $08, 9 bytes: 2 block words, placing structure $06 inside it; named by 83 block words in 50 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1098,
   "type": "line",
   "text": "Structure $09, 10 bytes: 2 block words, placing structures $07, $07 inside it; named by 118 block words in 71 rooms, 1 word in 1 other structure, 1 switched block in 1 room."
  },
  {
   "address": 1108,
   "type": "line",
   "text": "Structure $0A, 10 bytes: 2 block words, placing structures $06, $06 inside it; named by 18 block words in 12 rooms, 2 words in 2 other structures, 1 switched block in 1 room."
  },
  {
   "address": 1118,
   "type": "line",
   "text": "Structure $0B, 8 bytes: 2 block words; named by 44 block words in 25 rooms, 9 words in 6 other structures, 5 switched blocks in 5 rooms."
  },
  {
   "address": 1126,
   "type": "line",
   "text": "Structure $0C, 10 bytes: 2 block words, placing structures $0B, $0B inside it; named by 5 block words in 4 rooms, 5 words in 3 other structures, 3 switched blocks in 3 rooms."
  },
  {
   "address": 1136,
   "type": "line",
   "text": "Structure $0D, 10 bytes: 2 block words, placing structures $0C, $0B inside it; named by 2 block words in 2 rooms, 4 words in 4 other structures."
  },
  {
   "address": 1146,
   "type": "line",
   "text": "Structure $0E, 8 bytes: 2 block words; named by 25 block words in 16 rooms, 6 words in 3 other structures, 3 switched blocks in 3 rooms."
  },
  {
   "address": 1154,
   "type": "line",
   "text": "Structure $0F, 10 bytes: 2 block words, placing structures $0E, $0E inside it; named by 4 block words in 3 rooms."
  },
  {
   "address": 1164,
   "type": "line",
   "text": "Structure $10, 13 bytes: 3 block words, placing structures $0E, $0E, $0E inside it; named by 2 block words in 1 room, 3 words in 2 other structures, 1 switched block in 1 room."
  },
  {
   "address": 1177,
   "type": "line",
   "text": "Structure $11, 8 bytes: 2 block words; named by 28 block words in 15 rooms, 9 words in 4 other structures."
  },
  {
   "address": 1185,
   "type": "line",
   "text": "Structure $12, 10 bytes: 2 block words, placing structures $11, $11 inside it; named by 25 block words in 13 rooms, 4 words in 2 other structures."
  },
  {
   "address": 1195,
   "type": "line",
   "text": "Structure $13, 9 bytes: 2 block words, placing structure $11 inside it; named by 6 block words in 6 rooms."
  },
  {
   "address": 1204,
   "type": "line",
   "text": "Structure $14, 10 bytes: 2 block words, placing structures $12, $12 inside it; named by 9 block words in 8 rooms, 6 words in 2 other structures."
  },
  {
   "address": 1214,
   "type": "line",
   "text": "Structure $15, 10 bytes: 2 block words, placing structures $11, $11 inside it; named by 24 block words in 12 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1224,
   "type": "line",
   "text": "Structure $16, 8 bytes: 2 block words; named by 32 block words in 21 rooms, 2 words in 1 other structure, 3 switched blocks in 3 rooms."
  },
  {
   "address": 1232,
   "type": "line",
   "text": "Structure $17, 10 bytes: 2 block words, placing structures $16, $16 inside it; named by 46 block words in 22 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1242,
   "type": "line",
   "text": "Structure $18, 10 bytes: 2 block words, placing structures $17, $17 inside it; named by 44 block words in 31 rooms, 7 words in 1 other structure, 3 switched blocks in 3 rooms."
  },
  {
   "address": 1252,
   "type": "line",
   "text": "Structure $19, 8 bytes: 2 block words; named by 37 block words in 17 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1260,
   "type": "line",
   "text": "Structure $1A, 8 bytes: 2 block words; named by 28 block words in 13 rooms, 1 switched block in 1 room."
  },
  {
   "address": 1268,
   "type": "line",
   "text": "Structure $1F, 8 bytes: 2 block words; named by 8 block words in 5 rooms, 5 words in 3 other structures."
  },
  {
   "address": 1276,
   "type": "line",
   "text": "Structure $20, 10 bytes: 2 block words, placing structures $1F, $1F inside it; named by 16 block words in 7 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1286,
   "type": "line",
   "text": "Structure $21, 9 bytes: 2 block words, placing structure $1F inside it; named by 5 block words in 4 rooms."
  },
  {
   "address": 1295,
   "type": "line",
   "text": "Structure $22, 10 bytes: 2 block words, placing structures $20, $20 inside it; named by 15 block words in 11 rooms, 4 words in 1 other structure."
  },
  {
   "address": 1305,
   "type": "line",
   "text": "Structure $23, 10 bytes: 2 block words, placing structures $1F, $1F inside it; named by 8 block words in 7 rooms."
  },
  {
   "address": 1315,
   "type": "line",
   "text": "Structure $24, 8 bytes: 2 block words; named by 8 block words in 5 rooms, 5 words in 3 other structures, 5 switched blocks in 4 rooms."
  },
  {
   "address": 1323,
   "type": "line",
   "text": "Structure $25, 10 bytes: 2 block words, placing structures $24, $24 inside it; named by 3 block words in 3 rooms, 2 words in 1 other structure."
  },
  {
   "address": 1333,
   "type": "line",
   "text": "Structure $26, 9 bytes: 2 block words, placing structure $24 inside it; named by 4 block words in 3 rooms."
  },
  {
   "address": 1342,
   "type": "line",
   "text": "Structure $27, 10 bytes: 2 block words, placing structures $25, $25 inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 1352,
   "type": "line",
   "text": "Structure $28, 10 bytes: 2 block words, placing structures $24, $24 inside it; named by 1 block word in 1 room."
  },
  {
   "address": 1362,
   "type": "line",
   "text": "Structure $29, 8 bytes: 2 block words; named by 6 block words in 3 rooms, 2 words in 2 other structures, 1 switched block in 1 room."
  },
  {
   "address": 1370,
   "type": "line",
   "text": "Structure $2A, 9 bytes: 2 block words, placing structure $29 inside it; named by 14 block words in 3 rooms, 3 words in 2 other structures."
  },
  {
   "address": 1379,
   "type": "line",
   "text": "Structure $1B, 8 bytes: 2 block words; named by 35 block words in 18 rooms, 2 words in 1 other structure, 1 switched block in 1 room."
  },
  {
   "address": 1387,
   "type": "line",
   "text": "Structure $1C, 8 bytes: 2 block words; named by 7 block words in 7 rooms."
  },
  {
   "address": 1395,
   "type": "line",
   "text": "Structure $1D, 8 bytes: 2 block words; named by 23 block words in 16 rooms."
  },
  {
   "address": 1403,
   "type": "line",
   "text": "Structure $1E, 8 bytes: 2 block words; named by 22 block words in 16 rooms."
  },
  {
   "address": 1411,
   "type": "line",
   "text": "Structure $33, 8 bytes: 2 block words; named by 1 block word in 1 room, 2 words in 1 other structure."
  },
  {
   "address": 1419,
   "type": "line",
   "text": "Structure $34, 10 bytes: 2 block words, placing structures $33, $33 inside it; named by 4 block words in 2 rooms."
  },
  {
   "address": 1429,
   "type": "line",
   "text": "Structure $35, 8 bytes: 2 block words; named by 4 block words in 1 room, 4 words in 3 other structures."
  },
  {
   "address": 1437,
   "type": "line",
   "text": "Structure $37, 9 bytes: 2 block words, placing structure $35 inside it; named by 1 word in 1 other structure."
  },
  {
   "address": 1446,
   "type": "line",
   "text": "Structure $36, 10 bytes: 2 block words, placing structures $35, $35 inside it; named by 4 block words in 1 room, 2 words in 2 other structures."
  },
  {
   "address": 1456,
   "type": "line",
   "text": "Structure $38, 9 bytes: 2 block words, placing structure $0B inside it; named by 6 block words in 2 rooms."
  },
  {
   "address": 1465,
   "type": "line",
   "text": "Structure $39, 9 bytes: 2 block words, placing structure $0B inside it; named by 5 block words in 2 rooms."
  },
  {
   "address": 1474,
   "type": "line",
   "text": "Structure $3B, 8 bytes: 2 block words; never placed: no room, structure or switched block names it."
  },
  {
   "address": 1482,
   "type": "line",
   "text": "Structure $3A, 12 bytes: 4 block words; named by 6 block words in 4 rooms."
  },
  {
   "address": 1494,
   "type": "line",
   "text": "Structure $3C, 12 bytes: 3 block words, placing structures $09, $0A inside it; named by 4 block words in 4 rooms."
  },
  {
   "address": 1506,
   "type": "line",
   "text": "Structure $3D, 13 bytes: 3 block words, placing structures $01, $01, $01 inside it; named by 16 block words in 12 rooms, 1 switched block in 1 room."
  },
  {
   "address": 1519,
   "type": "line",
   "text": "Structure $3E, 10 bytes: 3 block words; named by 2 block words in 2 rooms."
  },
  {
   "address": 1529,
   "type": "line",
   "text": "Structure $3F, 16 bytes: 6 block words; named by 2 switched blocks in 2 rooms."
  },
  {
   "address": 1545,
   "type": "line",
   "text": "Structure $40, 10 bytes: 3 block words; named by 10 block words in 5 rooms."
  },
  {
   "address": 1555,
   "type": "line",
   "text": "Structure $41, 10 bytes: 3 block words; named by 57 block words in 25 rooms."
  },
  {
   "address": 1565,
   "type": "line",
   "text": "Structure $42, 10 bytes: 3 block words; named by 26 block words in 14 rooms."
  },
  {
   "address": 1575,
   "type": "line",
   "text": "Structure $43, 12 bytes: 4 block words; named by 1 block word in 1 room."
  },
  {
   "address": 1587,
   "type": "line",
   "text": "Structure $44, 12 bytes: 4 block words; named by 32 block words in 13 rooms."
  },
  {
   "address": 1599,
   "type": "line",
   "text": "Structure $45, 10 bytes: 2 block words, placing structures $19, $19 inside it; named by 16 block words in 10 rooms."
  },
  {
   "address": 1609,
   "type": "line",
   "text": "Structure $46, 8 bytes: 2 block words; named by 12 block words in 7 rooms."
  },
  {
   "address": 1617,
   "type": "line",
   "text": "Structure $47, 8 bytes: 2 block words; named by 6 block words in 3 rooms."
  },
  {
   "address": 1625,
   "type": "line",
   "text": "Structure $48, 13 bytes: 3 block words, placing structures $03, $03, $03 inside it; named by 9 block words in 9 rooms, 6 words in 2 other structures."
  },
  {
   "address": 1638,
   "type": "line",
   "text": "Structure $49, 16 bytes: 4 block words, placing structures $02, $02, $02, $02 inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 1654,
   "type": "line",
   "text": "Structure $4A, 16 bytes: 4 block words, placing structures $48, $48, $48, $48 inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 1670,
   "type": "line",
   "text": "Structure $4B, 25 bytes: 8 block words, placing structures $0D, $0C, $0C, $0B, $0B inside it; named by 1 block word in 1 room, 3 words in 3 other structures."
  },
  {
   "address": 1695,
   "type": "line",
   "text": "Structure $4C, 25 bytes: 8 block words, placing structures $0D, $0C, $0C, $0B, $0B inside it; named by 1 block word in 1 room, 3 words in 3 other structures."
  },
  {
   "address": 1720,
   "type": "line",
   "text": "Structure $31, 10 bytes: 2 block words, placing structures $36, $35 inside it; named by 1 block word in 1 room."
  },
  {
   "address": 1730,
   "type": "line",
   "text": "Structure $32, 10 bytes: 2 block words, placing structures $36, $37 inside it; named by 3 words in 3 other structures."
  },
  {
   "address": 1740,
   "type": "line",
   "text": "Structure $4D, 12 bytes: 3 block words, placing structures $4B, $0D inside it; named by 1 word in 1 other structure."
  },
  {
   "address": 1752,
   "type": "line",
   "text": "Structure $4E, 12 bytes: 3 block words, placing structures $4C, $0D inside it; named by 1 word in 1 other structure."
  },
  {
   "address": 1764,
   "type": "line",
   "text": "Structure $50, 13 bytes: 3 block words, placing structures $32, $4E, $4D inside it; named by 16 block words in 16 rooms."
  },
  {
   "address": 1777,
   "type": "line",
   "text": "Structure $4F, 13 bytes: 3 block words, placing structures $32, $4C, $4B inside it; never placed: no room, structure or switched block names it."
  },
  {
   "address": 1790,
   "type": "line",
   "text": "Structure $51, 10 bytes: 3 block words; named by 2 switched blocks in 2 rooms."
  },
  {
   "address": 1800,
   "type": "line",
   "text": "Structure $52, 18 bytes: 6 block words, placing structures $48, $48 inside it; named by 6 block words in 6 rooms, 1 word in 1 other structure."
  },
  {
   "address": 1818,
   "type": "line",
   "text": "Structure $53, 9 bytes: 2 block words, placing structure $52 inside it; named by 3 block words in 3 rooms."
  },
  {
   "address": 1827,
   "type": "line",
   "text": "Structure $54, 16 bytes: 6 block words; named by 2 block words in 2 rooms."
  },
  {
   "address": 1843,
   "type": "line",
   "text": "Structure $55, 8 bytes: 2 block words; named by 24 block words in 16 rooms."
  },
  {
   "address": 1851,
   "type": "line",
   "text": "Structure $56, 8 bytes: 2 block words; named by 8 block words in 2 rooms."
  },
  {
   "address": 1859,
   "type": "line",
   "text": "Structure $57, 14 bytes: 4 block words, placing structures $08, $08 inside it; named by 24 block words in 12 rooms, 1 switched block in 1 room."
  },
  {
   "address": 1873,
   "type": "line",
   "text": "Structure $58, 12 bytes: 4 block words; named by 2 block words in 2 rooms."
  },
  {
   "address": 1885,
   "type": "line",
   "text": "Structure $59, 12 bytes: 4 block words; named by 8 block words in 5 rooms."
  },
  {
   "address": 1897,
   "type": "line",
   "text": "Structure $5A, 12 bytes: 4 block words; named by 6 block words in 4 rooms."
  },
  {
   "address": 1909,
   "type": "line",
   "text": "Structure $5B, 22 bytes: 9 block words; named by 7 block words in 5 rooms."
  },
  {
   "address": 1931,
   "type": "line",
   "text": "Structure $5C, 12 bytes: 4 block words; named by 14 block words in 5 rooms."
  },
  {
   "address": 1943,
   "type": "line",
   "text": "Structure $5D, 20 bytes: 8 block words; named by 5 block words in 4 rooms."
  },
  {
   "address": 1963,
   "type": "line",
   "text": "Structure $5E, 16 bytes: 5 block words, placing structures $1B, $1B inside it; named by 4 block words in 2 rooms."
  },
  {
   "address": 1979,
   "type": "line",
   "text": "Structure $5F, 16 bytes: 4 block words, placing structures $14, $14, $14, $14 inside it; named by 7 block words in 7 rooms."
  },
  {
   "address": 1995,
   "type": "line",
   "text": "Structure $60, 10 bytes: 2 block words, placing structures $14, $14 inside it; named by 3 block words in 2 rooms, 1 switched block in 1 room."
  },
  {
   "address": 2005,
   "type": "line",
   "text": "Structure $61, 10 bytes: 2 block words, placing structures $07, $07 inside it; named by 3 block words in 3 rooms, 1 switched block in 1 room."
  },
  {
   "address": 2015,
   "type": "line",
   "text": "Structure $62, 8 bytes: 2 block words; named by 7 block words in 6 rooms, 1 switched block in 1 room."
  },
  {
   "address": 2023,
   "type": "line",
   "text": "Structure $63, 13 bytes: 3 block words, placing structures $04, $04, $0A inside it; named by 6 block words in 6 rooms."
  },
  {
   "address": 2036,
   "type": "line",
   "text": "Structure $64, 24 bytes: 8 block words, placing structures $04, $04, $04, $04 inside it; named by 6 block words in 6 rooms."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "Structure $64 continues here: the rest of its block words and its $0000."
  },
  {
   "address": 2060,
   "type": "line",
   "text": "Structure $65, 10 bytes: 2 block words, placing structures $01, $01 inside it; named by 8 block words in 5 rooms."
  },
  {
   "address": 2070,
   "type": "line",
   "text": "Structure $66, 10 bytes: 2 block words, placing structures $01, $01 inside it; named by 7 block words in 5 rooms."
  },
  {
   "address": 2080,
   "type": "line",
   "text": "Structure $67, 12 bytes: 4 block words; named by 6 block words in 2 rooms."
  },
  {
   "address": 2092,
   "type": "line",
   "text": "Structure $68, 12 bytes: 4 block words; named by 9 block words in 4 rooms."
  },
  {
   "address": 2104,
   "type": "line",
   "text": "Structure $69, 8 bytes: 2 block words; named by 14 block words in 4 rooms."
  },
  {
   "address": 2112,
   "type": "line",
   "text": "Structure $6A, 8 bytes: 2 block words; named by 4 block words in 2 rooms, 3 words in 2 other structures."
  },
  {
   "address": 2120,
   "type": "line",
   "text": "Structure $6B, 10 bytes: 2 block words, placing structures $6A, $6A inside it; named by 2 block words in 2 rooms, 3 words in 2 other structures."
  },
  {
   "address": 2130,
   "type": "line",
   "text": "Structure $6C, 10 bytes: 2 block words, placing structures $6B, $6B inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 2140,
   "type": "line",
   "text": "Structure $6D, 12 bytes: 3 block words, placing structures $6B, $6A inside it; named by 4 block words in 1 room."
  },
  {
   "address": 2152,
   "type": "line",
   "text": "Structure $6E, 8 bytes: 2 block words; named by 15 block words in 9 rooms, 2 words in 1 other structure."
  },
  {
   "address": 2160,
   "type": "line",
   "text": "Structure $6F, 10 bytes: 2 block words, placing structures $6E, $6E inside it; named by 17 block words in 10 rooms."
  },
  {
   "address": 2170,
   "type": "line",
   "text": "Structure $70, 20 bytes: 8 block words; named by 6 block words in 2 rooms."
  },
  {
   "address": 2190,
   "type": "line",
   "text": "Structure $71, 10 bytes: 2 block words, placing structures $2A, $2A inside it; named by 9 block words in 3 rooms."
  },
  {
   "address": 2200,
   "type": "line",
   "text": "Structure $72, 10 bytes: 2 block words, placing structures $2A, $29 inside it; named by 2 block words in 1 room."
  },
  {
   "address": 2210,
   "type": "line",
   "text": "Structure $73, 20 bytes: 8 block words; named by 4 words in 4 other structures."
  },
  {
   "address": 2230,
   "type": "line",
   "text": "Structure $74, 9 bytes: 2 block words, placing structure $73 inside it; named by 10 block words in 3 rooms."
  },
  {
   "address": 2239,
   "type": "line",
   "text": "A second structure $40, 4 bytes. place_structure stops at the first record numbered $40, at $0609, so this one is never placed. Its length ends it before any $0000: its bytes run on into the next records."
  },
  {
   "address": 2243,
   "type": "line",
   "text": "A second structure $20, 6 bytes. place_structure stops at the first record numbered $20, at $04FC, so this one is never placed. Its length ends it before any $0000: its bytes run on into the next records."
  },
  {
   "address": 2249,
   "type": "line",
   "text": "Structure $75, 9 bytes: 2 block words, placing structure $73 inside it; named by 1 block word in 1 room."
  },
  {
   "address": 2258,
   "type": "line",
   "text": "Structure $76, 9 bytes: 2 block words, placing structure $0E inside it; named by 2 block words in 1 room."
  },
  {
   "address": 2267,
   "type": "line",
   "text": "Structure $77, 28 bytes: 8 block words, placing structures $12, $11, $15, $11, $11, $15, $11, $12 inside it; named by 5 block words in 5 rooms."
  },
  {
   "address": 2295,
   "type": "line",
   "text": "Structure $78, 8 bytes: 2 block words; named by 2 block words in 2 rooms."
  },
  {
   "address": 2303,
   "type": "line",
   "text": "Structure $79, 13 bytes: 3 block words, placing structures $32, $4B, $4C inside it; named by 4 block words in 4 rooms."
  },
  {
   "address": 2316,
   "type": "line",
   "text": "Structure $7A, 25 bytes: 7 block words, placing structures $18, $18, $18, $18, $18, $18, $18 inside it; named by 4 block words in 4 rooms."
  },
  {
   "address": 2341,
   "type": "line",
   "text": "Structure $7B, 16 bytes: 4 block words, placing structures $22, $22, $22, $22 inside it; named by 4 block words in 4 rooms."
  },
  {
   "address": 2357,
   "type": "line",
   "text": "Structure $7C, 12 bytes: 4 block words; named by 8 switched blocks in 4 rooms."
  },
  {
   "address": 2369,
   "type": "line",
   "text": "Structure $7D, 12 bytes: 4 block words; named by 2 block words in 2 rooms."
  },
  {
   "address": 2381,
   "type": "line",
   "text": "Structure $7E, 10 bytes: 2 block words, placing structures $10, $10 inside it; named by 3 block words in 2 rooms, 1 word in 1 other structure."
  },
  {
   "address": 2391,
   "type": "line",
   "text": "Structure $7F, 10 bytes: 2 block words, placing structures $10, $7E inside it; named by 4 block words in 2 rooms."
  },
  {
   "address": 2401,
   "type": "line",
   "text": "Structure $81, 12 bytes: 4 block words; named by 3 words in 1 other structure."
  },
  {
   "address": 2413,
   "type": "line",
   "text": "Structure $80, 18 bytes: 5 block words, placing structures $07, $81, $81, $81 inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 2431,
   "type": "line",
   "text": "Structure $82, 6 bytes: 1 block word; named by 3 switched blocks in 1 room."
  },
  {
   "address": 2437,
   "type": "line",
   "text": "Structure $83, 23 bytes: 7 block words, placing structures $07, $07, $06, $06, $06 inside it; named by 2 block words in 2 rooms."
  },
  {
   "address": 2460,
   "type": "line",
   "text": "The end of the structure list: a number and a length of 0. Zeros follow to $09FF."
  },
  {
   "address": 2560,
   "type": "line",
   "text": "The room directory, 386 records from here to $3C26, one for each room, in no particular order; find_room walks it from the start for every room entered. A record is: its length; the room's map row, with bit 7 set once it has been visited; its map column, with bit 7 set while a visited room still holds a jewel; a byte whose low nibble is the colour scheme and whose bit 4 makes the clock run four times slower; the floor's block word; block words ending in $0000 (type 2 followed by a structure number); then the moving pieces, three bytes each, ending in a 0: a type (1 a jewel; low bits 2 a lift, 3 an inhabitant, 4-7 a block a switch puts in place; bits 3-6 the switch or kind), a packed position, and a third byte (the jewel's number, the lift's levels and pause, the inhabitant's top speed, or the switched block's structure). This first record: room at map row 63, column 64, 15 bytes: colour scheme 0; a floor of block type $00; 2 block words (structures $18, $18); no moving pieces."
  },
  {
   "address": 2575,
   "type": "line",
   "text": "Room at map row 62, column 65, 40 bytes: colour scheme 12; a floor of block type $01; 11 block words (structures $09, $09, $06, $07, $06, $08, $06, $06, $06); no moving pieces."
  },
  {
   "address": 2615,
   "type": "line",
   "text": "Room at map row 61, column 64, 46 bytes: colour scheme 12; a floor of block type $01; 13 block words (structures $09, $06, $08, $06, $06, $07, $08, $06, $06, $06, $06); no moving pieces."
  },
  {
   "address": 2661,
   "type": "line",
   "text": "Room at map row 62, column 64, 46 bytes: colour scheme 12; a floor of block type $01; 12 block words (structures $09, $06, $08, $06, $06, $06, $08, $06, $06, $06); 1 jewel (number 4)."
  },
  {
   "address": 2707,
   "type": "line",
   "text": "Room at map row 61, column 65, 44 bytes: colour scheme 12; a floor of block type $01; 11 block words (structures $09, $06, $07, $08, $06, $06, $07, $06, $06, $06); 1 jewel (number 5)."
  },
  {
   "address": 2751,
   "type": "line",
   "text": "Room at map row 67, column 64, 37 bytes: colour scheme 14; a floor of block type $00; 9 block words (structures $04, $02, $02, $02, $01, $03, $03); 1 jewel (number 10)."
  },
  {
   "address": 2788,
   "type": "line",
   "text": "Room at map row 67, column 65, 41 bytes: colour scheme 14; a floor of block type $00; 11 block words (structures $1A, $1B, $1B, $0E, $17, $0E, $0E); 1 jewel (number 11)."
  },
  {
   "address": 2829,
   "type": "line",
   "text": "Room at map row 66, column 65, 46 bytes: colour scheme 14; a floor of block type $00; 12 block words (structures $0C, $0B, $1B, $1C, $0B, $01, $1B, $1B, $17, $17); 1 jewel (number 12)."
  },
  {
   "address": 2875,
   "type": "line",
   "text": "Room at map row 64, column 58, 57 bytes: colour scheme 8; a floor of block type $01; 12 block words (structures $36, $36, $36, $36, $38, $39, $38, $39, $38, $39, $39, $38); 4 jewels (numbers 14, 15, 22, 23)."
  },
  {
   "address": 2932,
   "type": "line",
   "text": "Room at map row 64, column 61, 35 bytes: colour scheme 4; a floor of block type $01; 8 block words (structures $15, $15, $12, $34, $34, $34, $19); 1 jewel (number 13)."
  },
  {
   "address": 2967,
   "type": "line",
   "text": "Room at map row 70, column 59, 16 bytes: colour scheme 8; a floor of block type $00; 3 block words (structure $02); no moving pieces."
  },
  {
   "address": 2983,
   "type": "line",
   "text": "Room at map row 69, column 59, 26 bytes: colour scheme 9; a floor of block type $00; 7 block words (structures $04, $02, $1E); no moving pieces."
  },
  {
   "address": 3009,
   "type": "line",
   "text": "Room at map row 70, column 58, 54 bytes: colour scheme 8; a floor of block type $00; 14 block words (structures $3D, $18, $08, $06, $0B, $0B, $0B, $3E); 1 jewel (number 21); 2 switched blocks on switches 8, 2."
  },
  {
   "address": 3063,
   "type": "line",
   "text": "Room at map row 69, column 58, 25 bytes: colour scheme 15; a floor of block type $00; 5 block words (structures $08, $16, $40); 1 jewel (number 24)."
  },
  {
   "address": 3088,
   "type": "line",
   "text": "Room at map row 68, column 56, 20 bytes: colour scheme 15; a floor of block type $01; 4 block words (structures $18, $09, $0D); no moving pieces."
  },
  {
   "address": 3108,
   "type": "line",
   "text": "Room at map row 71, column 58, 23 bytes: colour scheme 15; a floor of block type $00; 4 block words (structures $07, $17, $40); 1 jewel (number 26)."
  },
  {
   "address": 3131,
   "type": "line",
   "text": "Room at map row 67, column 59, 48 bytes: colour scheme 11; a floor of block type $00; 16 block words (structures $01, $02, $01, $1B); 1 jewel (number 20)."
  },
  {
   "address": 3179,
   "type": "line",
   "text": "Room at map row 66, column 59, 24 bytes: colour scheme 11; a floor of block type $00; 6 block words (structures $02, $02, $02); no moving pieces."
  },
  {
   "address": 3203,
   "type": "line",
   "text": "Room at map row 66, column 60, 28 bytes: colour scheme 9; a floor of block type $00; 6 block words (structures $03, $03, $0E, $0E); 1 switched block on switch 7."
  },
  {
   "address": 3231,
   "type": "line",
   "text": "Room at map row 66, column 61, 25 bytes: colour scheme 11; a floor of block type $00; 5 block words (structures $04, $0B, $0A); 1 jewel (number 8)."
  },
  {
   "address": 3256,
   "type": "line",
   "text": "Room at map row 66, column 62, 40 bytes: colour scheme 8; a floor of block type $00; 11 block words (structures $1B, $1B, $1B, $01, $03, $1B); 1 jewel (number 19)."
  },
  {
   "address": 3296,
   "type": "line",
   "text": "Room at map row 65, column 62, 31 bytes: colour scheme 9; a floor of block type $00; 6 block words (structures $18, $16, $16, $05); 2 jewels (numbers 6, 7)."
  },
  {
   "address": 3327,
   "type": "line",
   "text": "Room at map row 68, column 59, 32 bytes: colour scheme 11; a floor of block type $00; 9 block words (structures $02, $04); 1 jewel (number 28)."
  },
  {
   "address": 3359,
   "type": "line",
   "text": "Room at map row 65, column 60, 46 bytes: colour scheme 8; a floor of block type $01; 13 block words (structures $22, $22, $20, $07, $23); 2 jewels (numbers 16, 18)."
  },
  {
   "address": 3405,
   "type": "line",
   "text": "Room at map row 70, column 55, 26 bytes: colour scheme 15; a floor of block type $01; 5 block words (structures $18, $09, $02, $01); 1 jewel (number 29)."
  },
  {
   "address": 3431,
   "type": "line",
   "text": "Room at map row 65, column 61, 22 bytes: colour scheme 4; a floor of block type $01; 4 block words (structures $18, $1D); 1 lift (on switch 7)."
  },
  {
   "address": 3453,
   "type": "line",
   "text": "Room at map row 64, column 62, 49 bytes: colour scheme 8; a floor of block type $00; 15 block words (structures $09, $01, $01, $1B, $1C, $1B, $1B, $1B, $1B, $1B); no moving pieces."
  },
  {
   "address": 3502,
   "type": "line",
   "text": "Room at map row 71, column 55, 41 bytes: colour scheme 15; a floor of block type $01; 12 block words (structures $18, $09); 2 switched blocks on switches 4, 5."
  },
  {
   "address": 3543,
   "type": "line",
   "text": "Room at map row 72, column 55, 46 bytes: colour scheme 15; a floor of block type $01; 14 block words (structures $18, $18, $09, $3C, $02, $02); 1 jewel (number 30)."
  },
  {
   "address": 3589,
   "type": "line",
   "text": "Room at map row 72, column 56, 57 bytes: colour scheme 14; a floor of block type $01; 19 block words (structures $18, $06, $03, $08, $3D, $3D, $1E); 1 jewel (number 32)."
  },
  {
   "address": 3646,
   "type": "line",
   "text": "Room at map row 72, column 57, 48 bytes: colour scheme 15; a floor of block type $01; 14 block words (structures $18, $18, $09, $3C, $02, $02, $41, $41); 1 jewel (number 27)."
  },
  {
   "address": 3694,
   "type": "line",
   "text": "Room at map row 71, column 57, 46 bytes: colour scheme 14; a floor of block type $01; 14 block words (structures $07, $17, $02, $01, $01, $42); 1 jewel (number 33)."
  },
  {
   "address": 3740,
   "type": "line",
   "text": "Room at map row 70, column 57, 43 bytes: colour scheme 14; a floor of block type $01; 14 block words (structures $04, $42, $17, $17, $17, $17); no moving pieces."
  },
  {
   "address": 3783,
   "type": "line",
   "text": "Room at map row 70, column 56, 27 bytes: colour scheme 3; a floor of block type $01; 7 block words (structures $17, $17, $17, $17); no moving pieces."
  },
  {
   "address": 3810,
   "type": "line",
   "text": "Room at map row 71, column 56, 37 bytes: colour scheme 9; a floor of block type $01; 11 block words (structures $23, $1F, $21); 1 jewel (number 31)."
  },
  {
   "address": 3847,
   "type": "line",
   "text": "Room at map row 69, column 55, 48 bytes: colour scheme 14; a floor of block type $01; 16 block words (structures $16, $16, $06, $06); 1 jewel (number 34)."
  },
  {
   "address": 3895,
   "type": "line",
   "text": "Room at map row 68, column 55, 35 bytes: colour scheme 14; a floor of block type $01; 10 block words (structures $18, $18, $09, $02, $3C, $1B); no moving pieces."
  },
  {
   "address": 3930,
   "type": "line",
   "text": "Room at map row 69, column 56, 46 bytes: colour scheme 8; a floor of block type $00; 11 block words (structures $04, $04, $17, $17, $40, $17, $40, $40, $17); 2 jewels (numbers 35, 36)."
  },
  {
   "address": 3976,
   "type": "line",
   "text": "Room at map row 69, column 57, 55 bytes: colour scheme 15; a floor of block type $01; 16 block words (structures $17, $07, $02, $01, $01, $08, $08, $0E); 1 jewel (number 37); 1 lift (on switch 4)."
  },
  {
   "address": 4031,
   "type": "line",
   "text": "Room at map row 68, column 57, 42 bytes: colour scheme 15; a floor of block type $01; 12 block words (structures $18, $18, $09, $3C, $03, $02); 1 jewel (number 25)."
  },
  {
   "address": 4073,
   "type": "line",
   "text": "Room at map row 68, column 54, 26 bytes: colour scheme 9; a floor of block type $03; 5 block words (structures $22, $22, $23, $01); 1 jewel (number 39)."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "The record of the room at map row 68, column 54 continues here: its last three bytes."
  },
  {
   "address": 4099,
   "type": "line",
   "text": "Room at map row 64, column 68, 32 bytes: colour scheme 12; a floor of block type $00; 7 block words (structures $03, $0A, $0E, $07, $07, $06); 1 jewel (number 3)."
  },
  {
   "address": 4131,
   "type": "line",
   "text": "The start room. Room at map row 64, column 64, 54 bytes: colour scheme 2, the clock at a quarter of its speed; a floor of block type $01; 13 block words (structures $08, $06, $08, $08, $08, $06, $19, $19, $19, $1D, $1D, $1D, $1E); 2 jewels (numbers 0, 1)."
  },
  {
   "address": 4185,
   "type": "line",
   "text": "Room at map row 64, column 65, 27 bytes: colour scheme 2, the clock at a quarter of its speed; a floor of block type $01; 5 block words (structures $09, $09, $06, $06, $1D); 1 jewel (number 2)."
  },
  {
   "address": 4212,
   "type": "line",
   "text": "Room at map row 64, column 67, 22 bytes: colour scheme 1, the clock at a quarter of its speed; a floor of block type $01; 4 block words (structures $09, $1E); 1 lift (on switch 11)."
  },
  {
   "address": 4234,
   "type": "line",
   "text": "Room at map row 63, column 66, 31 bytes: colour scheme 1, the clock at a quarter of its speed; a floor of block type $01; 8 block words (structures $10, $10, $1A); 1 jewel (number 42)."
  },
  {
   "address": 4265,
   "type": "line",
   "text": "Room at map row 61, column 69, 57 bytes: colour scheme 8; a floor of block type $00; 16 block words (structures $44, $19, $46, $19, $44, $19, $47, $44, $19, $46, $45, $44, $19, $19, $46, $45); no moving pieces."
  },
  {
   "address": 4322,
   "type": "line",
   "text": "Room at map row 61, column 68, 39 bytes: colour scheme 8; a floor of block type $00; 9 block words (structures $45, $44, $45, $46, $46, $44, $17, $17, $43); 1 jewel (number 43)."
  },
  {
   "address": 4361,
   "type": "line",
   "text": "Room at map row 61, column 67, 33 bytes: colour scheme 8; a floor of block type $00; 8 block words (structures $44, $44, $17, $17, $44, $17, $17, $44); no moving pieces."
  },
  {
   "address": 4394,
   "type": "line",
   "text": "Room at map row 61, column 66, 15 bytes: colour scheme 8; a floor of block type $00; 2 block words (structures $18, $18); no moving pieces."
  },
  {
   "address": 4409,
   "type": "line",
   "text": "Room at map row 69, column 54, 27 bytes: colour scheme 11; a floor of block type $03; 6 block words (structures $05, $22, $1F); 1 jewel (number 38)."
  },
  {
   "address": 4436,
   "type": "line",
   "text": "Room at map row 70, column 54, 27 bytes: colour scheme 10; a floor of block type $03; 5 block words (structures $1E, $20); 2 jewels (numbers 44, 45)."
  },
  {
   "address": 4463,
   "type": "line",
   "text": "Room at map row 60, column 68, 55 bytes: colour scheme 8; a floor of block type $00; 15 block words (structures $44, $46, $44, $19, $46, $19, $44, $19, $19, $19); 2 jewels (numbers 46, 47)."
  },
  {
   "address": 4518,
   "type": "line",
   "text": "Room at map row 60, column 69, 37 bytes: colour scheme 10; a floor of block type $00; 7 block words (structures $19, $46, $4A, $01, $46); 3 jewels (numbers 48, 49, 50)."
  },
  {
   "address": 4555,
   "type": "line",
   "text": "Room at map row 60, column 70, 44 bytes: colour scheme 8; a floor of block type $00; 11 block words (structures $19, $19, $19, $44, $17, $17, $1D); 2 jewels (numbers 51, 52)."
  },
  {
   "address": 4599,
   "type": "line",
   "text": "Room at map row 65, column 59, 41 bytes: colour scheme 10; a floor of block type $01; 11 block words (structures $04, $04, $04, $11, $01, $13, $0B); 1 jewel (number 54)."
  },
  {
   "address": 4640,
   "type": "line",
   "text": "Room at map row 65, column 58, 35 bytes: colour scheme 10; a floor of block type $01; 7 block words (structures $09, $09, $08, $07, $07, $06); 2 jewels (numbers 55, 56)."
  },
  {
   "address": 4675,
   "type": "line",
   "text": "Room at map row 65, column 57, 39 bytes: colour scheme 10; a floor of block type $01; 11 block words (structures $20, $21); 2 lifts (on switches 10, 9)."
  },
  {
   "address": 4714,
   "type": "line",
   "text": "Room at map row 59, column 70, 21 bytes: colour scheme 8; a floor of block type $00; 4 block words (structures $17, $17, $44, $46); no moving pieces."
  },
  {
   "address": 4735,
   "type": "line",
   "text": "Room at map row 59, column 69, 33 bytes: colour scheme 8; a floor of block type $00; 8 block words (structures $1E, $44, $45, $1D, $19); 1 jewel (number 53)."
  },
  {
   "address": 4768,
   "type": "line",
   "text": "Room at map row 62, column 57, 17 bytes: colour scheme 3; a floor of block type $01; 2 block words (structure $50); 1 jewel (number 62)."
  },
  {
   "address": 4785,
   "type": "line",
   "text": "Room at map row 61, column 56, 20 bytes: colour scheme 3; a floor of block type $01; 2 block words (structure $50); 1 jewel (number 59); 1 lift (on switch 4)."
  },
  {
   "address": 4805,
   "type": "line",
   "text": "Room at map row 62, column 56, 17 bytes: colour scheme 3; a floor of block type $01; 2 block words (structure $50); 1 jewel (number 61)."
  },
  {
   "address": 4822,
   "type": "line",
   "text": "Room at map row 61, column 57, 19 bytes: colour scheme 3; a floor of block type $01; 3 block words (structure $50); 1 jewel (number 60)."
  },
  {
   "address": 4841,
   "type": "line",
   "text": "Room at map row 63, column 58, 20 bytes: colour scheme 8; a floor of block type $01; 4 block words (structures $20, $23, $09); no moving pieces."
  },
  {
   "address": 4861,
   "type": "line",
   "text": "Room at map row 63, column 57, 27 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $04, $04, $04, $04); no moving pieces."
  },
  {
   "address": 4888,
   "type": "line",
   "text": "Room at map row 63, column 56, 29 bytes: colour scheme 10; a floor of block type $00; 6 block words (structures $05, $1D, $0B, $01, $01); 1 jewel (number 63)."
  },
  {
   "address": 4917,
   "type": "line",
   "text": "Room at map row 64, column 59, 25 bytes: colour scheme 8; a floor of block type $01; 4 block words (structures $3A, $3A); 1 jewel (number 17); 1 lift (on switch 1)."
  },
  {
   "address": 4942,
   "type": "line",
   "text": "Room at map row 63, column 59, 28 bytes: colour scheme 8; a floor of block type $01; 4 block words (structures $09, $09); 1 jewel (number 64); 2 lifts (on switches 11, 11)."
  },
  {
   "address": 4970,
   "type": "line",
   "text": "Room at map row 60, column 52, 29 bytes: colour scheme 1; a floor of block type $01; 8 block words (structure $50); 1 jewel (number 66)."
  },
  {
   "address": 4999,
   "type": "line",
   "text": "Room at map row 60, column 53, 23 bytes: colour scheme 1; a floor of block type $01; 5 block words (structure $50); 1 jewel (number 65)."
  },
  {
   "address": 5022,
   "type": "line",
   "text": "Room at map row 59, column 52, 25 bytes: colour scheme 1; a floor of block type $01; 6 block words (structure $50); 1 lift (on switch 1)."
  },
  {
   "address": 5047,
   "type": "line",
   "text": "Room at map row 59, column 53, 26 bytes: colour scheme 1; a floor of block type $01; 6 block words (structures $50, $33); 1 jewel (number 67)."
  },
  {
   "address": 5073,
   "type": "line",
   "text": "Room at map row 61, column 54, 25 bytes: colour scheme 2; a floor of block type $01; 6 block words (structure $50); 1 jewel (number 69)."
  },
  {
   "address": 5098,
   "type": "line",
   "text": "Room at map row 61, column 55, 28 bytes: colour scheme 2; a floor of block type $01; 6 block words (structure $50); 1 jewel (number 68); 1 switched block on switch 1."
  },
  {
   "address": 5126,
   "type": "line",
   "text": "Room at map row 60, column 55, 26 bytes: colour scheme 2; a floor of block type $01; 5 block words (structure $50); 1 jewel (number 70); 1 switched block on switch 1."
  },
  {
   "address": 5152,
   "type": "line",
   "text": "Room at map row 60, column 54, 26 bytes: colour scheme 2; a floor of block type $01; 8 block words (structure $50); no moving pieces."
  },
  {
   "address": 5178,
   "type": "line",
   "text": "Room at map row 60, column 64, 21 bytes: colour scheme 11; a floor of block type $00; 3 block words (structures $04, $04, $16); 1 switched block on switch 3."
  },
  {
   "address": 5199,
   "type": "line",
   "text": "Room at map row 59, column 65, 27 bytes: colour scheme 11; a floor of block type $00; 5 block words (structures $48, $52, $02, $02, $03); 1 jewel (number 71)."
  },
  {
   "address": 5226,
   "type": "line",
   "text": "Room at map row 58, column 65, 32 bytes: colour scheme 11; a floor of block type $00; 7 block words (structures $48, $53, $01, $03, $03, $01); 1 lift (always moving)."
  },
  {
   "address": 5258,
   "type": "line",
   "text": "Room at map row 56, column 65, 27 bytes: colour scheme 10; a floor of block type $00; 5 block words (structures $52, $01, $03, $03, $03); 1 jewel (number 72)."
  },
  {
   "address": 5285,
   "type": "line",
   "text": "Room at map row 58, column 64, 26 bytes: colour scheme 9; a floor of block type $00; 5 block words (structures $03, $52, $03, $1C); 1 jewel (number 73)."
  },
  {
   "address": 5311,
   "type": "line",
   "text": "Room at map row 57, column 64, 29 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $01, $04, $03, $08, $02, $02); no moving pieces."
  },
  {
   "address": 5340,
   "type": "line",
   "text": "Room at map row 56, column 64, 36 bytes: colour scheme 9; a floor of block type $00; 9 block words (structures $02, $02, $1C, $19, $01, $1B); 1 jewel (number 75)."
  },
  {
   "address": 5376,
   "type": "line",
   "text": "Room at map row 55, column 64, 19 bytes: colour scheme 10; a floor of block type $00; 4 block words (structures $03, $02); no moving pieces."
  },
  {
   "address": 5395,
   "type": "line",
   "text": "Room at map row 55, column 65, 21 bytes: colour scheme 9; a floor of block type $00; 3 block words (structures $52, $03, $02); 1 jewel (number 76)."
  },
  {
   "address": 5416,
   "type": "line",
   "text": "Room at map row 57, column 63, 36 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $04, $02, $52, $01, $02, $1B, $01); 1 jewel (number 77); 1 lift (on switch 8)."
  },
  {
   "address": 5452,
   "type": "line",
   "text": "Room at map row 58, column 62, 21 bytes: colour scheme 11; a floor of block type $00; 2 block words (structures $53, $02); 1 jewel (number 79); 1 switched block on switch 9."
  },
  {
   "address": 5473,
   "type": "line",
   "text": "Room at map row 57, column 62, 34 bytes: colour scheme 10; a floor of block type $00; 10 block words (structures $02, $02, $48, $03, $03); no moving pieces."
  },
  {
   "address": 5507,
   "type": "line",
   "text": "Room at map row 58, column 63, 35 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $48, $52, $01, $02, $02, $02); 1 jewel (number 78); 1 switched block on switch 9."
  },
  {
   "address": 5542,
   "type": "line",
   "text": "Room at map row 57, column 65, 34 bytes: colour scheme 11; a floor of block type $00; 7 block words (structures $48, $53, $03, $1C, $01); 1 jewel (number 74); 1 lift (on switch 4)."
  },
  {
   "address": 5576,
   "type": "line",
   "text": "Room at map row 56, column 63, 37 bytes: colour scheme 11; a floor of block type $01; 9 block words (structures $18, $22, $18, $22); 1 jewel (number 80); 1 lift (always moving)."
  },
  {
   "address": 5613,
   "type": "line",
   "text": "Room at map row 59, column 61, 26 bytes: colour scheme 11; a floor of block type $00; 7 block words (structures $02, $01, $03); no moving pieces."
  },
  {
   "address": 5639,
   "type": "line",
   "text": "Room at map row 65, column 64, 15 bytes: colour scheme 1; a floor of block type $00; 2 block words (structures $18, $18); no moving pieces."
  },
  {
   "address": 5654,
   "type": "line",
   "text": "Room at map row 64, column 63, 15 bytes: colour scheme 1; a floor of block type $00; 2 block words (structures $18, $18); no moving pieces."
  },
  {
   "address": 5669,
   "type": "line",
   "text": "Room at map row 66, column 64, 50 bytes: colour scheme 14; a floor of block type $00; 13 block words (structures $01, $01, $02, $01, $01, $01, $01, $03, $02, $01, $19, $1B); 1 jewel (number 9)."
  },
  {
   "address": 5719,
   "type": "line",
   "text": "Room at map row 58, column 61, 16 bytes: colour scheme 11; a floor of block type $00; 3 block words (structure $04); no moving pieces."
  },
  {
   "address": 5735,
   "type": "line",
   "text": "Room at map row 57, column 61, 15 bytes: colour scheme 11; a floor of block type $00; 2 block words (structures $04, $06); no moving pieces."
  },
  {
   "address": 5750,
   "type": "line",
   "text": "Room at map row 59, column 63, 32 bytes: colour scheme 11; a floor of block type $00; 9 block words (structures $01, $06, $01, $41, $41); no moving pieces."
  },
  {
   "address": 5782,
   "type": "line",
   "text": "Room at map row 59, column 62, 29 bytes: colour scheme 11; a floor of block type $00; 7 block words (structures $04, $08, $08); 1 switched block on switch 3."
  },
  {
   "address": 5811,
   "type": "line",
   "text": "Room at map row 55, column 61, 46 bytes: colour scheme 13; a floor of block type $01; 10 block words (structures $55, $07, $07, $07, $07, $08, $06, $0A); 1 jewel (number 83); 2 switched blocks on switches 4, 8."
  },
  {
   "address": 5857,
   "type": "line",
   "text": "Room at map row 56, column 61, 34 bytes: colour scheme 15; a floor of block type $01; 9 block words (structures $22, $18, $0B, $0F, $55, $0F, $55); no moving pieces."
  },
  {
   "address": 5891,
   "type": "line",
   "text": "Room at map row 56, column 62, 44 bytes: colour scheme 8; a floor of block type $01; 12 block words (structures $22, $18, $0A, $0A, $0A, $0A, $54, $0B); 1 jewel (number 84)."
  },
  {
   "address": 5935,
   "type": "line",
   "text": "Room at map row 54, column 61, 18 bytes: colour scheme 14; a floor of block type $01; 4 block words (structure $07); no moving pieces."
  },
  {
   "address": 5953,
   "type": "line",
   "text": "Room at map row 54, column 63, 50 bytes: colour scheme 10; a floor of block type $01; 13 block words (structures $18, $22, $07, $08, $07, $06, $07, $06, $07, $07, $06, $06); 1 jewel (number 86)."
  },
  {
   "address": 6003,
   "type": "line",
   "text": "Room at map row 55, column 62, 34 bytes: colour scheme 7; a floor of block type $01; 8 block words (structures $55, $01, $0B, $07, $07, $07); 1 jewel (number 85)."
  },
  {
   "address": 6037,
   "type": "line",
   "text": "Room at map row 54, column 60, 55 bytes: colour scheme 6; a floor of block type $01; 16 block words (structures $09, $06, $56, $56, $56, $56, $56, $56, $0A, $0A, $06); 1 jewel (number 87)."
  },
  {
   "address": 6092,
   "type": "line",
   "text": "Room at map row 54, column 62, 25 bytes: colour scheme 10; a floor of block type $01; 6 block words (structures $0E, $0E, $56, $56); no moving pieces."
  },
  {
   "address": 6117,
   "type": "line",
   "text": "Room at map row 53, column 62, 57 bytes: colour scheme 12; a floor of block type $01; 17 block words (structures $09, $07, $06, $01, $3E); 1 jewel (number 88); 1 lift (on switch 11); 1 switched block on switch 1."
  },
  {
   "address": 6174,
   "type": "line",
   "text": "Room at map row 53, column 63, 37 bytes: colour scheme 15; a floor of block type $01; 11 block words (structures $18, $09, $22, $1E, $1E, $1E); no moving pieces."
  },
  {
   "address": 6211,
   "type": "line",
   "text": "Room at map row 55, column 60, 32 bytes: colour scheme 9; a floor of block type $01; 6 block words (structures $09, $3D, $06, $55, $07); 2 lifts (on switches 4, 4)."
  },
  {
   "address": 6243,
   "type": "line",
   "text": "Room at map row 69, column 60, 36 bytes: colour scheme 11; a floor of block type $00; 10 block words (structures $0A, $0A, $0A, $06); 1 lift (on switch 4)."
  },
  {
   "address": 6279,
   "type": "line",
   "text": "Room at map row 61, column 58, 15 bytes: colour scheme 15; a floor of block type $01; 2 block words (structures $14, $04); no moving pieces."
  },
  {
   "address": 6294,
   "type": "line",
   "text": "Room at map row 59, column 55, 17 bytes: colour scheme 5; a floor of block type $01; 2 block words (structure $50); 1 switched block on switch 11."
  },
  {
   "address": 6311,
   "type": "line",
   "text": "Room at map row 58, column 55, 22 bytes: colour scheme 5; a floor of block type $01; 3 block words (structure $50); 1 jewel (number 89); 1 switched block on switch 11."
  },
  {
   "address": 6333,
   "type": "line",
   "text": "Room at map row 59, column 54, 19 bytes: colour scheme 5; a floor of block type $01; 3 block words (structure $50); 1 jewel (number 90)."
  },
  {
   "address": 6352,
   "type": "line",
   "text": "Room at map row 58, column 54, 20 bytes: colour scheme 5; a floor of block type $01; 3 block words (structures $50, $06); 1 jewel (number 91)."
  },
  {
   "address": 6372,
   "type": "line",
   "text": "Room at map row 59, column 58, 31 bytes: colour scheme 9; a floor of block type $01; 7 block words (structures $08, $08, $08, $0B, $08); 1 jewel (number 92)."
  },
  {
   "address": 6403,
   "type": "line",
   "text": "Room at map row 60, column 58, 40 bytes: colour scheme 8; a floor of block type $01; 14 block words (structures $09, $0B, $0E); no moving pieces."
  },
  {
   "address": 6443,
   "type": "line",
   "text": "Room at map row 62, column 58, 18 bytes: colour scheme 15; a floor of block type $01; 2 block words (structures $14, $04); 1 jewel (number 93)."
  },
  {
   "address": 6461,
   "type": "line",
   "text": "Room at map row 64, column 60, 38 bytes: colour scheme 8; a floor of block type $01; 10 block words (structures $0F, $08, $0E, $09, $07, $06); 1 jewel (number 94)."
  },
  {
   "address": 6499,
   "type": "line",
   "text": "Room at map row 58, column 57, 42 bytes: colour scheme 11; a floor of block type $01; 12 block words (structures $07, $06, $06, $07, $07, $08, $08, $06, $03); no moving pieces."
  },
  {
   "address": 6541,
   "type": "line",
   "text": "Room at map row 59, column 56, 27 bytes: colour scheme 3; a floor of block type $01; 6 block words (structures $57, $57, $57); 1 jewel (number 95)."
  },
  {
   "address": 6568,
   "type": "line",
   "text": "Room at map row 59, column 57, 31 bytes: colour scheme 14; a floor of block type $01; 7 block words (structures $57, $57, $57, $57, $03); 1 jewel (number 96)."
  },
  {
   "address": 6599,
   "type": "line",
   "text": "Room at map row 58, column 56, 25 bytes: colour scheme 12; a floor of block type $00; 6 block words (structures $09, $09, $09, $09); no moving pieces."
  },
  {
   "address": 6624,
   "type": "line",
   "text": "Room at map row 58, column 58, 26 bytes: colour scheme 10; a floor of block type $01; 6 block words (structures $06, $08, $06, $07, $06); no moving pieces."
  },
  {
   "address": 6650,
   "type": "line",
   "text": "Room at map row 60, column 56, 41 bytes: colour scheme 13; a floor of block type $01; 11 block words (structures $5A, $5B, $5B, $5C, $16, $16, $5B, $58, $59, $5A); no moving pieces."
  },
  {
   "address": 6691,
   "type": "line",
   "text": "Room at map row 60, column 57, 33 bytes: colour scheme 13; a floor of block type $01; 9 block words (structures $16, $5D, $5D); 1 jewel (number 97)."
  },
  {
   "address": 6724,
   "type": "line",
   "text": "Room at map row 53, column 60, 39 bytes: colour scheme 5; a floor of block type $01; 11 block words (structures $09, $09, $1E, $1E, $1E); 1 jewel (number 99)."
  },
  {
   "address": 6763,
   "type": "line",
   "text": "Room at map row 50, column 61, 28 bytes: colour scheme 2; a floor of block type $00; 6 block words (structures $09, $07, $09, $09); 1 jewel (number 102)."
  },
  {
   "address": 6791,
   "type": "line",
   "text": "Room at map row 51, column 61, 41 bytes: colour scheme 2; a floor of block type $00; 11 block words (structures $07, $07, $01, $08, $06, $06, $08); 1 jewel (number 101)."
  },
  {
   "address": 6832,
   "type": "line",
   "text": "Room at map row 48, column 61, 28 bytes: colour scheme 0; a floor of block type $00; 6 block words (structures $09, $07, $09, $09); 1 jewel (number 104)."
  },
  {
   "address": 6860,
   "type": "line",
   "text": "Room at map row 47, column 61, 27 bytes: colour scheme 0; a floor of block type $00; 5 block words (structures $03, $08, $09, $08, $01); 1 jewel (number 105)."
  },
  {
   "address": 6887,
   "type": "line",
   "text": "Room at map row 46, column 61, 34 bytes: colour scheme 0; a floor of block type $00; 8 block words (structures $09, $06, $06, $06, $06, $09); 1 jewel (number 106)."
  },
  {
   "address": 6921,
   "type": "line",
   "text": "Room at map row 45, column 61, 35 bytes: colour scheme 0; a floor of block type $00; 8 block words (structures $09, $08, $06, $07, $06, $08, $05); 1 jewel (number 107)."
  },
  {
   "address": 6956,
   "type": "line",
   "text": "Room at map row 49, column 61, 38 bytes: colour scheme 2; a floor of block type $00; 9 block words (structures $09, $06, $07, $06, $06, $06, $06, $01); 1 jewel (number 103)."
  },
  {
   "address": 6994,
   "type": "line",
   "text": "Room at map row 53, column 61, 27 bytes: colour scheme 5; a floor of block type $01; 4 block words (structures $09, $24, $24, $24); 2 lifts (on switches 7, 7)."
  },
  {
   "address": 7021,
   "type": "line",
   "text": "Room at map row 66, column 66, 44 bytes: colour scheme 14; a floor of block type $00; 14 block words (structures $16, $16, $03, $03, $03, $03, $02); no moving pieces."
  },
  {
   "address": 7065,
   "type": "line",
   "text": "Room at map row 67, column 66, 12 bytes: colour scheme 15; a floor of block type $00; 1 block word (structure $04); no moving pieces."
  },
  {
   "address": 7077,
   "type": "line",
   "text": "Room at map row 68, column 66, 36 bytes: colour scheme 5; a floor of block type $00; 10 block words (structures $02, $02, $04, $02, $01, $03, $03); no moving pieces."
  },
  {
   "address": 7113,
   "type": "line",
   "text": "Room at map row 55, column 63, 48 bytes: colour scheme 15; a floor of block type $01; 11 block words (structures $18, $22, $41, $41, $54); 1 jewel (number 82); 3 switched blocks on switches 1, 9, 10."
  },
  {
   "address": 7161,
   "type": "line",
   "text": "Room at map row 68, column 67, 32 bytes: colour scheme 5; a floor of block type $00; 8 block words (structures $01, $02, $04, $04); 1 jewel (number 108)."
  },
  {
   "address": 7193,
   "type": "line",
   "text": "Room at map row 68, column 68, 35 bytes: colour scheme 5; a floor of block type $00; 7 block words (structures $1B, $1B, $1E, $5E, $5E, $5E); 2 jewels (numbers 109, 110)."
  },
  {
   "address": 7228,
   "type": "line",
   "text": "Room at map row 69, column 68, 37 bytes: colour scheme 5; a floor of block type $00; 9 block words (structures $01, $01, $03, $01, $01, $02, $03); 1 jewel (number 111)."
  },
  {
   "address": 7265,
   "type": "line",
   "text": "Room at map row 70, column 68, 23 bytes: colour scheme 5; a floor of block type $00; 5 block words (structures $04, $04, $57, $48); no moving pieces."
  },
  {
   "address": 7288,
   "type": "line",
   "text": "Room at map row 70, column 67, 28 bytes: colour scheme 2; a floor of block type $00; 6 block words (structures $38, $39, $38, $16); 1 jewel (number 112)."
  },
  {
   "address": 7316,
   "type": "line",
   "text": "Room at map row 71, column 68, 53 bytes: colour scheme 1; a floor of block type $00; 14 block words (structures $02, $05, $0B, $0B, $0B, $02, $1E, $0B, $0B, $0B, $0B, $1A, $01); 1 jewel (number 113)."
  },
  {
   "address": 7369,
   "type": "line",
   "text": "Room at map row 72, column 68, 36 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $14, $18, $14, $18); 1 jewel (number 115)."
  },
  {
   "address": 7405,
   "type": "line",
   "text": "Room at map row 70, column 69, 23 bytes: colour scheme 12; a floor of block type $00; 4 block words (structures $3D, $3D, $3D); 1 jewel (number 114)."
  },
  {
   "address": 7428,
   "type": "line",
   "text": "Room at map row 73, column 68, 27 bytes: colour scheme 11; a floor of block type $00; 7 block words (structures $02, $04, $1D, $05); no moving pieces."
  },
  {
   "address": 7455,
   "type": "line",
   "text": "Room at map row 74, column 68, 18 bytes: colour scheme 6; a floor of block type $10; 3 block words (structures $5F, $1D, $1D); no moving pieces."
  },
  {
   "address": 7473,
   "type": "line",
   "text": "Room at map row 75, column 68, 24 bytes: colour scheme 11; a floor of block type $04; 5 block words (structures $5F, $1D, $1D, $1D, $1D); no moving pieces."
  },
  {
   "address": 7497,
   "type": "line",
   "text": "Room at map row 75, column 69, 24 bytes: colour scheme 6; a floor of block type $1B; 2 block words (structures $5F, $1D); 1 jewel (number 116); 2 switched blocks on switches 11, 8."
  },
  {
   "address": 7521,
   "type": "line",
   "text": "Room at map row 76, column 68, 24 bytes: colour scheme 7; a floor of block type $10; 5 block words (structures $5F, $1D, $1D, $55, $55); no moving pieces."
  },
  {
   "address": 7545,
   "type": "line",
   "text": "Room at map row 77, column 68, 27 bytes: colour scheme 4; a floor of block type $17; 4 block words (structures $5F, $55, $0A, $06); 2 lifts (on switches 7, 7)."
  },
  {
   "address": 7572,
   "type": "line",
   "text": "Room at map row 75, column 67, 21 bytes: colour scheme 9; a floor of block type $18; 2 block words (structures $5F, $1D); 2 switched blocks on switches 7, 8."
  },
  {
   "address": 7593,
   "type": "line",
   "text": "Room at map row 65, column 67, 49 bytes: colour scheme 2, the clock at a quarter of its speed; a floor of block type $01; 11 block words (structures $09, $09, $09, $06, $06, $62); 1 jewel (number 40); 1 lift (always moving); 2 switched blocks on switches 8, 7."
  },
  {
   "address": 7642,
   "type": "line",
   "text": "Room at map row 63, column 67, 67 bytes: colour scheme 5, the clock at a quarter of its speed; a floor of block type $01; 26 block words (structures $09, $09, $09, $06, $06, $62); no moving pieces."
  },
  {
   "address": 7709,
   "type": "line",
   "text": "Room at map row 72, column 67, 25 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $18, $16); no moving pieces."
  },
  {
   "address": 7734,
   "type": "line",
   "text": "Room at map row 72, column 66, 30 bytes: colour scheme 9; a floor of block type $00; 8 block words (structures $18, $18); 1 jewel (number 117)."
  },
  {
   "address": 7764,
   "type": "line",
   "text": "Room at map row 73, column 66, 24 bytes: colour scheme 8; a floor of block type $00; 6 block words (structures $18, $09, $1E); no moving pieces."
  },
  {
   "address": 7788,
   "type": "line",
   "text": "Room at map row 73, column 67, 40 bytes: colour scheme 11; a floor of block type $00; 12 block words (structures $60, $60, $07, $07, $03, $06, $08); no moving pieces."
  },
  {
   "address": 7828,
   "type": "line",
   "text": "Room at map row 72, column 69, 32 bytes: colour scheme 9; a floor of block type $00; 8 block words (structures $18, $18, $14, $17); 1 jewel (number 118)."
  },
  {
   "address": 7860,
   "type": "line",
   "text": "Room at map row 44, column 61, 33 bytes: colour scheme 5; a floor of block type $03; 9 block words (structures $63, $64, $11); 1 lift (always moving)."
  },
  {
   "address": 7893,
   "type": "line",
   "text": "Room at map row 44, column 60, 34 bytes: colour scheme 5; a floor of block type $03; 9 block words (structures $15, $15, $15, $15, $63, $64, $1D); no moving pieces."
  },
  {
   "address": 7927,
   "type": "line",
   "text": "Room at map row 44, column 64, 9 bytes: colour scheme 15; a floor of block type $03; 0 block words; no moving pieces."
  },
  {
   "address": 7936,
   "type": "line",
   "text": "Room at map row 44, column 62, 33 bytes: colour scheme 5; a floor of block type $03; 7 block words (structures $11, $11, $11, $11, $64, $63, $1D); 1 lift (always moving)."
  },
  {
   "address": 7969,
   "type": "line",
   "text": "Room at map row 44, column 66, 9 bytes: colour scheme 14; a floor of block type $03; 0 block words; no moving pieces."
  },
  {
   "address": 7978,
   "type": "line",
   "text": "Room at map row 44, column 68, 9 bytes: colour scheme 2; a floor of block type $03; 0 block words; no moving pieces."
  },
  {
   "address": 7987,
   "type": "line",
   "text": "Room at map row 44, column 72, 9 bytes: colour scheme 13; a floor of block type $03; 0 block words; no moving pieces."
  },
  {
   "address": 7996,
   "type": "line",
   "text": "Room at map row 44, column 74, 9 bytes: colour scheme 7; a floor of block type $03; 0 block words; no moving pieces."
  },
  {
   "address": 8005,
   "type": "line",
   "text": "Room at map row 52, column 61, 32 bytes: colour scheme 2; a floor of block type $00; 6 block words (structures $01, $09, $09, $08, $08); 1 jewel (number 100); 1 lift (always moving)."
  },
  {
   "address": 8037,
   "type": "line",
   "text": "Room at map row 73, column 69, 23 bytes: colour scheme 14; a floor of block type $00; 5 block words (structures $04, $02, $02, $02); no moving pieces."
  },
  {
   "address": 8060,
   "type": "line",
   "text": "Room at map row 73, column 70, 23 bytes: colour scheme 15; a floor of block type $00; 5 block words (structures $04, $02, $02, $02); no moving pieces."
  },
  {
   "address": 8083,
   "type": "line",
   "text": "Room at map row 73, column 71, 23 bytes: colour scheme 13; a floor of block type $00; 5 block words (structures $02, $02, $02, $02); no moving pieces."
  },
  {
   "address": 8106,
   "type": "line",
   "text": "Room at map row 73, column 73, 21 bytes: colour scheme 12; a floor of block type $00; 4 block words (structures $02, $02, $02, $02); no moving pieces."
  },
  {
   "address": 8127,
   "type": "line",
   "text": "Room at map row 73, column 77, 24 bytes: colour scheme 8; a floor of block type $00; 7 block words (structure $01); no moving pieces."
  },
  {
   "address": 8151,
   "type": "line",
   "text": "Room at map row 73, column 78, 28 bytes: colour scheme 8; a floor of block type $00; 9 block words (structure $0B); no moving pieces."
  },
  {
   "address": 8179,
   "type": "line",
   "text": "Room at map row 74, column 78, 23 bytes: colour scheme 8; a floor of block type $00; 6 block words (structures $0B, $01); no moving pieces."
  },
  {
   "address": 8202,
   "type": "line",
   "text": "Room at map row 76, column 78, 31 bytes: colour scheme 11; a floor of block type $00; 11 block words; no moving pieces."
  },
  {
   "address": 8233,
   "type": "line",
   "text": "Room at map row 75, column 78, 55 bytes: colour scheme 10; a floor of block type $00; 22 block words (structures $08, $1C); no moving pieces."
  },
  {
   "address": 8288,
   "type": "line",
   "text": "Room at map row 75, column 77, 44 bytes: colour scheme 8; a floor of block type $00; 16 block words (structures $0B, $0B, $1C); no moving pieces."
  },
  {
   "address": 8332,
   "type": "line",
   "text": "Room at map row 74, column 77, 49 bytes: colour scheme 11; a floor of block type $00; 18 block words (structures $19, $17, $17, $19); no moving pieces."
  },
  {
   "address": 8381,
   "type": "line",
   "text": "Room at map row 73, column 76, 39 bytes: colour scheme 6; a floor of block type $01; 10 block words (structures $09, $09, $08, $06, $09, $0C, $04); 1 jewel (number 119)."
  },
  {
   "address": 8420,
   "type": "line",
   "text": "Room at map row 74, column 76, 31 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $19, $19); no moving pieces."
  },
  {
   "address": 8451,
   "type": "line",
   "text": "Room at map row 72, column 77, 47 bytes: colour scheme 15; a floor of block type $00; 15 block words (structures $65, $1B, $16, $02, $1E, $65, $66, $65); no moving pieces."
  },
  {
   "address": 8498,
   "type": "line",
   "text": "Room at map row 72, column 78, 35 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $3D, $16, $07, $66, $66, $01); no moving pieces."
  },
  {
   "address": 8533,
   "type": "line",
   "text": "Room at map row 72, column 76, 65 bytes: colour scheme 15; a floor of block type $00; 24 block words (structures $0B, $0B, $0B, $0B, $0B, $0B, $02, $02); no moving pieces."
  },
  {
   "address": 8598,
   "type": "line",
   "text": "Room at map row 70, column 78, 34 bytes: colour scheme 9; a floor of block type $00; 10 block words (structures $07, $3D); 1 jewel (number 122)."
  },
  {
   "address": 8632,
   "type": "line",
   "text": "Room at map row 71, column 78, 42 bytes: colour scheme 10; a floor of block type $00; 15 block words (structures $3D, $16, $09); no moving pieces."
  },
  {
   "address": 8674,
   "type": "line",
   "text": "Room at map row 71, column 77, 58 bytes: colour scheme 15; a floor of block type $00; 21 block words (structure $01); 2 jewels (numbers 120, 121)."
  },
  {
   "address": 8732,
   "type": "line",
   "text": "Room at map row 44, column 82, 15 bytes: colour scheme 14; a floor of block type $01; 1 block word (structure $63); 1 inhabitant (kind 0)."
  },
  {
   "address": 8747,
   "type": "line",
   "text": "Room at map row 44, column 80, 12 bytes: colour scheme 12; a floor of block type $03; 0 block words; 1 inhabitant (kind 1)."
  },
  {
   "address": 8759,
   "type": "line",
   "text": "Room at map row 44, column 78, 12 bytes: colour scheme 2; a floor of block type $03; 0 block words; 1 inhabitant (kind 0)."
  },
  {
   "address": 8771,
   "type": "line",
   "text": "Room at map row 44, column 76, 12 bytes: colour scheme 12; a floor of block type $03; 0 block words; 1 inhabitant (kind 0)."
  },
  {
   "address": 8783,
   "type": "line",
   "text": "Room at map row 44, column 70, 12 bytes: colour scheme 15; a floor of block type $03; 0 block words; 1 inhabitant (kind 0)."
  },
  {
   "address": 8795,
   "type": "line",
   "text": "Room at map row 44, column 83, 18 bytes: colour scheme 15; a floor of block type $01; 4 block words (structure $63); no moving pieces."
  },
  {
   "address": 8813,
   "type": "line",
   "text": "Room at map row 43, column 83, 38 bytes: colour scheme 3; a floor of block type $01; 9 block words (structures $49, $17, $17, $17, $17); 1 jewel (number 123); 1 inhabitant (kind 0)."
  },
  {
   "address": 8851,
   "type": "line",
   "text": "Room at map row 41, column 87, 37 bytes: colour scheme 15; a floor of block type $01; 7 block words (structures $15, $11, $58, $06, $1D); 1 jewel (number 124); 1 lift (always moving); 1 switched block on switch 8."
  },
  {
   "address": 8888,
   "type": "line",
   "text": "Room at map row 41, column 86, 18 bytes: colour scheme 6; a floor of block type $01; 1 block word (structure $5B); 1 jewel (number 125); 1 switched block on switch 4."
  },
  {
   "address": 8906,
   "type": "line",
   "text": "Room at map row 42, column 84, 56 bytes: colour scheme 4; a floor of block type $01; 16 block words (structures $5A, $59, $5B, $69, $68, $69, $12, $69, $1A, $69, $59, $69, $69, $68, $69); no moving pieces."
  },
  {
   "address": 8962,
   "type": "line",
   "text": "Room at map row 41, column 85, 56 bytes: colour scheme 5; a floor of block type $01; 16 block words (structures $15, $15, $15, $11, $6C, $6A, $6A, $6B, $6A); 1 jewel (number 126); 1 lift (on switch 4)."
  },
  {
   "address": 9018,
   "type": "line",
   "text": "Room at map row 43, column 82, 51 bytes: colour scheme 0; a floor of block type $01; 13 block words (structures $67, $67, $67, $67, $68, $68, $68, $68, $12, $11, $11, $13, $28); 1 jewel (number 127)."
  },
  {
   "address": 9069,
   "type": "line",
   "text": "Room at map row 42, column 85, 46 bytes: colour scheme 2; a floor of block type $01; 11 block words (structures $6D, $6D, $6D, $6D, $47, $47, $47, $47, $15); 2 lifts (2 always moving)."
  },
  {
   "address": 9115,
   "type": "line",
   "text": "Room at map row 42, column 86, 46 bytes: colour scheme 2; a floor of block type $01; 10 block words (structures $15, $15, $15, $15, $15, $15, $11, $11); 1 jewel (number 128); 2 switched blocks on switches 8, 7."
  },
  {
   "address": 9161,
   "type": "line",
   "text": "Room at map row 42, column 83, 57 bytes: colour scheme 4; a floor of block type $01; 19 block words (structures $12, $11, $14, $5D, $40, $40, $40, $59, $69, $5A); no moving pieces."
  },
  {
   "address": 9218,
   "type": "line",
   "text": "Room at map row 56, column 60, 47 bytes: colour scheme 11; a floor of block type $01; 15 block words (structures $18, $09, $22, $1E, $1E); 1 jewel (number 98)."
  },
  {
   "address": 9265,
   "type": "line",
   "text": "Room at map row 44, column 84, 22 bytes: colour scheme 5; a floor of block type $01; 3 block words (structure $63); 2 lifts (2 always moving)."
  },
  {
   "address": 9287,
   "type": "line",
   "text": "Room at map row 44, column 85, 40 bytes: colour scheme 1; a floor of block type $01; 13 block words (structures $6F, $6F, $6F, $6F, $49); no moving pieces."
  },
  {
   "address": 9327,
   "type": "line",
   "text": "Room at map row 43, column 84, 41 bytes: colour scheme 4; a floor of block type $01; 10 block words (structures $02, $6F, $6F, $6E, $6E, $01); 1 jewel (number 129); 1 switched block on switch 1."
  },
  {
   "address": 9368,
   "type": "line",
   "text": "Room at map row 43, column 85, 44 bytes: colour scheme 15; a floor of block type $01; 14 block words (structures $01, $6E, $6F, $40, $3D, $05, $40); no moving pieces."
  },
  {
   "address": 9412,
   "type": "line",
   "text": "Room at map row 45, column 85, 45 bytes: colour scheme 3; a floor of block type $01; 12 block words (structures $16, $1D, $12, $17, $6B, $16); 2 lifts (on switches 7, 7)."
  },
  {
   "address": 9457,
   "type": "line",
   "text": "Room at map row 45, column 82, 42 bytes: colour scheme 3; a floor of block type $01; 12 block words (structures $18, $15, $13, $11, $5D, $6F, $6E, $08, $08); no moving pieces."
  },
  {
   "address": 9499,
   "type": "line",
   "text": "Room at map row 45, column 83, 43 bytes: colour scheme 3; a floor of block type $01; 13 block words (structures $09, $6C, $09, $09, $17, $08, $66, $6A); no moving pieces."
  },
  {
   "address": 9542,
   "type": "line",
   "text": "Room at map row 45, column 84, 23 bytes: colour scheme 3; a floor of block type $01; 5 block words (structures $18, $09, $09, $09); no moving pieces."
  },
  {
   "address": 9565,
   "type": "line",
   "text": "Room at map row 46, column 82, 36 bytes: colour scheme 3; a floor of block type $01; 10 block words (structures $15, $11, $02, $01); 1 lift (on switch 5)."
  },
  {
   "address": 9601,
   "type": "line",
   "text": "Room at map row 46, column 83, 45 bytes: colour scheme 3; a floor of block type $01; 12 block words (structures $01, $14, $06, $6F, $01, $1B); 1 jewel (number 130); 1 lift (on switch 3)."
  },
  {
   "address": 9646,
   "type": "line",
   "text": "Room at map row 61, column 71, 86 bytes: colour scheme 15; a floor of block type $01; 26 block words (structures $09, $2A, $29, $29, $2A, $2A, $2A, $2A, $2A, $70, $70, $1B, $2A, $2A, $1B, $2A, $2A, $0B, $2A, $0B, $29, $0E); 1 jewel (number 132)."
  },
  {
   "address": 9732,
   "type": "line",
   "text": "Room at map row 60, column 72, 48 bytes: colour scheme 8; a floor of block type $01; 14 block words (structures $09, $0E, $0E, $0E, $0E); 1 jewel (number 136); 1 lift (always moving)."
  },
  {
   "address": 9780,
   "type": "line",
   "text": "Room at map row 61, column 73, 64 bytes: colour scheme 15; a floor of block type $01; 19 block words (structures $07, $07, $07, $06, $07, $06, $06, $07, $07, $07, $08, $0A, $06, $06); 1 jewel (number 137)."
  },
  {
   "address": 9844,
   "type": "line",
   "text": "Room at map row 60, column 71, 46 bytes: colour scheme 13; a floor of block type $01; 17 block words (structures $09, $62, $09); no moving pieces."
  },
  {
   "address": 9890,
   "type": "line",
   "text": "Room at map row 63, column 71, 45 bytes: colour scheme 12; a floor of block type $01; 13 block words (structures $09, $74, $74, $74, $0C, $74, $74); 1 jewel (number 139)."
  },
  {
   "address": 9935,
   "type": "line",
   "text": "Room at map row 62, column 71, 32 bytes: colour scheme 4; a floor of block type $01; 7 block words (structures $09, $74, $74, $74, $74, $75); 1 jewel (number 138)."
  },
  {
   "address": 9967,
   "type": "line",
   "text": "Room at map row 64, column 75, 32 bytes: colour scheme 6; a floor of block type $01; 9 block words (structures $07, $12, $13, $11, $07); no moving pieces."
  },
  {
   "address": 9999,
   "type": "line",
   "text": "Room at map row 63, column 74, 58 bytes: colour scheme 10; a floor of block type $10; 17 block words (structures $09, $07, $07, $20, $20, $20, $20, $20, $07); 2 lifts (1 always moving, on switch 7)."
  },
  {
   "address": 10057,
   "type": "line",
   "text": "Room at map row 63, column 75, 56 bytes: colour scheme 9; a floor of block type $01; 17 block words (structures $07, $20, $20, $20, $20, $20, $07, $07, $09, $34); 1 jewel (number 141)."
  },
  {
   "address": 10113,
   "type": "line",
   "text": "Room at map row 60, column 74, 49 bytes: colour scheme 15; a floor of block type $00; 13 block words (structures $09, $08, $08, $08, $08, $01, $01, $55, $55, $71, $71); 1 jewel (number 142)."
  },
  {
   "address": 10162,
   "type": "line",
   "text": "Room at map row 60, column 75, 63 bytes: colour scheme 15; a floor of block type $01; 21 block words (structures $09, $09, $72, $72, $2A, $29, $02, $29, $09); 1 jewel (number 143)."
  },
  {
   "address": 10225,
   "type": "line",
   "text": "Room at map row 61, column 74, 20 bytes: colour scheme 15; a floor of block type $00; 5 block words (structure $64); no moving pieces."
  },
  {
   "address": 10245,
   "type": "line",
   "text": "Room at map row 61, column 75, 26 bytes: colour scheme 3; a floor of block type $01; 7 block words (structures $09, $17, $16); no moving pieces."
  },
  {
   "address": 10271,
   "type": "line",
   "text": "Room at map row 63, column 72, 41 bytes: colour scheme 3; a floor of block type $10; 11 block words (structures $09, $5D, $59, $0D); 2 jewels (numbers 140, 145)."
  },
  {
   "address": 10312,
   "type": "line",
   "text": "Room at map row 62, column 77, 40 bytes: colour scheme 5; a floor of block type $01; 11 block words (structures $02, $11, $12, $12, $11, $11, $12, $12, $11); no moving pieces."
  },
  {
   "address": 10352,
   "type": "line",
   "text": "Room at map row 64, column 74, 26 bytes: colour scheme 3; a floor of block type $17; 7 block words (structures $08, $0E, $08); no moving pieces."
  },
  {
   "address": 10378,
   "type": "line",
   "text": "Room at map row 64, column 73, 20 bytes: colour scheme 4; a floor of block type $1B; 3 block words (structures $09, $09); 1 jewel (number 147)."
  },
  {
   "address": 10398,
   "type": "line",
   "text": "Room at map row 64, column 71, 63 bytes: colour scheme 8; a floor of block type $01; 19 block words (structures $07, $07, $11, $13, $12, $65, $65, $71, $71, $71); 1 jewel (number 148); 1 lift (on switch 11)."
  },
  {
   "address": 10461,
   "type": "line",
   "text": "Room at map row 62, column 74, 11 bytes: colour scheme 6; a floor of block type $01; 1 block word; no moving pieces."
  },
  {
   "address": 10472,
   "type": "line",
   "text": "Room at map row 62, column 73, 26 bytes: colour scheme 6; a floor of block type $10; 5 block words (structures $09, $5E, $41, $41); 1 jewel (number 149)."
  },
  {
   "address": 10498,
   "type": "line",
   "text": "Room at map row 62, column 75, 26 bytes: colour scheme 4; a floor of block type $01; 6 block words (structures $08, $06); 1 switched block on switch 11."
  },
  {
   "address": 10524,
   "type": "line",
   "text": "Room at map row 62, column 72, 41 bytes: colour scheme 7; a floor of block type $10; 14 block words (structure $74); 1 jewel (number 151)."
  },
  {
   "address": 10565,
   "type": "line",
   "text": "Room at map row 61, column 72, 57 bytes: colour scheme 15; a floor of block type $01; 14 block words (structures $71, $71, $71, $71, $70, $70, $70, $70); 3 jewels (numbers 133, 134, 135); 1 lift (on switch 7)."
  },
  {
   "address": 10622,
   "type": "line",
   "text": "Room at map row 73, column 75, 16 bytes: colour scheme 1; a floor of block type $10; 3 block words (structure $5F); no moving pieces."
  },
  {
   "address": 10638,
   "type": "line",
   "text": "Room at map row 73, column 74, 21 bytes: colour scheme 12; a floor of block type $00; 4 block words (structures $02, $02, $01, $02); no moving pieces."
  },
  {
   "address": 10659,
   "type": "line",
   "text": "Room at map row 73, column 65, 26 bytes: colour scheme 8; a floor of block type $00; 6 block words (structures $41, $41, $41, $41, $41); no moving pieces."
  },
  {
   "address": 10685,
   "type": "line",
   "text": "Room at map row 69, column 64, 28 bytes: colour scheme 14; a floor of block type $00; 7 block words (structures $01, $01, $02, $02, $02); no moving pieces."
  },
  {
   "address": 10713,
   "type": "line",
   "text": "Room at map row 68, column 64, 49 bytes: colour scheme 15; a floor of block type $00; 17 block words (structures $1B, $29, $41); 1 jewel (number 152)."
  },
  {
   "address": 10762,
   "type": "line",
   "text": "Room at map row 73, column 64, 38 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $41, $03, $03, $01, $41, $01); 1 jewel (number 153)."
  },
  {
   "address": 10800,
   "type": "line",
   "text": "Room at map row 72, column 64, 46 bytes: colour scheme 8; a floor of block type $03; 14 block words (structures $14, $12, $12, $01, $41, $01); 1 switched block on switch 3."
  },
  {
   "address": 10846,
   "type": "line",
   "text": "Room at map row 71, column 64, 54 bytes: colour scheme 15; a floor of block type $03; 17 block words (structures $02, $01, $01, $02, $01, $01, $02, $24, $26, $26, $25); no moving pieces."
  },
  {
   "address": 10900,
   "type": "line",
   "text": "Room at map row 70, column 64, 56 bytes: colour scheme 9; a floor of block type $03; 18 block words (structures $14, $12, $15, $01, $03, $01, $01, $01, $03, $01, $02); no moving pieces."
  },
  {
   "address": 10956,
   "type": "line",
   "text": "Room at map row 62, column 78, 29 bytes: colour scheme 6; a floor of block type $01; 7 block words (structures $04, $76, $76); 1 jewel (number 150)."
  },
  {
   "address": 10985,
   "type": "line",
   "text": "Room at map row 62, column 79, 30 bytes: colour scheme 5; a floor of block type $01; 5 block words (structures $77, $78); 2 lifts (on switches 8, 11); 1 switched block on switch 3."
  },
  {
   "address": 11015,
   "type": "line",
   "text": "Room at map row 63, column 78, 22 bytes: colour scheme 5; a floor of block type $01; 4 block words (structures $77, $78); 1 jewel (number 155)."
  },
  {
   "address": 11037,
   "type": "line",
   "text": "Room at map row 59, column 78, 30 bytes: colour scheme 3; a floor of block type $01; 7 block words (structures $15, $0E, $0E, $11, $11, $11, $11); no moving pieces."
  },
  {
   "address": 11067,
   "type": "line",
   "text": "Room at map row 61, column 78, 24 bytes: colour scheme 5; a floor of block type $01; 4 block words (structure $77); 1 jewel (number 154); 1 switched block on switch 3."
  },
  {
   "address": 11091,
   "type": "line",
   "text": "Room at map row 58, column 68, 26 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $19, $16, $16); no moving pieces."
  },
  {
   "address": 11117,
   "type": "line",
   "text": "Room at map row 57, column 68, 33 bytes: colour scheme 8; a floor of block type $00; 8 block words (structures $16, $16, $44, $44, $19, $44, $16, $44); no moving pieces."
  },
  {
   "address": 11150,
   "type": "line",
   "text": "Room at map row 56, column 68, 51 bytes: colour scheme 10; a floor of block type $00; 15 block words (structures $19, $47, $44, $0A, $17, $17, $16, $44, $16); 1 jewel (number 156)."
  },
  {
   "address": 11201,
   "type": "line",
   "text": "Room at map row 55, column 68, 27 bytes: colour scheme 10; a floor of block type $00; 6 block words (structures $5C, $46, $45, $5C, $5C, $5C); no moving pieces."
  },
  {
   "address": 11228,
   "type": "line",
   "text": "Room at map row 55, column 69, 32 bytes: colour scheme 10; a floor of block type $00; 7 block words (structures $46, $45, $5C, $5C, $5C, $5C); 1 jewel (number 157)."
  },
  {
   "address": 11260,
   "type": "line",
   "text": "Room at map row 56, column 69, 44 bytes: colour scheme 10; a floor of block type $00; 13 block words (structures $19, $44, $19, $44, $17, $17, $0B, $0B, $19); no moving pieces."
  },
  {
   "address": 11304,
   "type": "line",
   "text": "Room at map row 56, column 70, 46 bytes: colour scheme 15; a floor of block type $00; 14 block words (structures $19, $19, $1A, $1A, $19, $1A); 1 jewel (number 158)."
  },
  {
   "address": 11350,
   "type": "line",
   "text": "Room at map row 57, column 70, 25 bytes: colour scheme 15; a floor of block type $00; 6 block words (structures $5C, $5C, $5C, $5C); no moving pieces."
  },
  {
   "address": 11375,
   "type": "line",
   "text": "Room at map row 58, column 69, 33 bytes: colour scheme 8; a floor of block type $00; 9 block words (structures $42, $42, $45, $45, $45, $03); no moving pieces."
  },
  {
   "address": 11408,
   "type": "line",
   "text": "Room at map row 58, column 70, 28 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $5C, $16, $06, $18, $18); no moving pieces."
  },
  {
   "address": 11436,
   "type": "line",
   "text": "Room at map row 58, column 71, 33 bytes: colour scheme 8; a floor of block type $00; 8 block words (structures $45, $45, $44, $19, $44, $19, $44, $45); no moving pieces."
  },
  {
   "address": 11469,
   "type": "line",
   "text": "Room at map row 57, column 71, 40 bytes: colour scheme 8; a floor of block type $00; 11 block words (structures $45, $44, $6E, $6E, $44, $6E, $6E, $44, $44); no moving pieces."
  },
  {
   "address": 11509,
   "type": "line",
   "text": "Room at map row 56, column 71, 28 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $6F, $6F, $44, $0A, $06); no moving pieces."
  },
  {
   "address": 11537,
   "type": "line",
   "text": "Room at map row 64, column 72, 57 bytes: colour scheme 15; a floor of block type $10; 20 block words (structures $08, $08, $0E, $26, $42); 1 jewel (number 146)."
  },
  {
   "address": 11594,
   "type": "line",
   "text": "Room at map row 56, column 73, 38 bytes: colour scheme 15; a floor of block type $00; 10 block words (structures $4A, $57, $08, $08, $06, $06); 1 jewel (number 159)."
  },
  {
   "address": 11632,
   "type": "line",
   "text": "Room at map row 57, column 73, 42 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $06, $08, $03, $03, $3A, $08, $07, $07); 1 lift (on switch 7)."
  },
  {
   "address": 11674,
   "type": "line",
   "text": "Room at map row 65, column 56, 34 bytes: colour scheme 10; a floor of block type $00; 9 block words (structures $05, $3D, $61, $3D, $07, $08, $55); no moving pieces."
  },
  {
   "address": 11708,
   "type": "line",
   "text": "Room at map row 64, column 57, 40 bytes: colour scheme 4; a floor of block type $01; 10 block words (structures $09, $09, $09, $06, $08); 1 jewel (number 162); 1 inhabitant (kind 1)."
  },
  {
   "address": 11748,
   "type": "line",
   "text": "Room at map row 64, column 56, 30 bytes: colour scheme 9; a floor of block type $00; 6 block words (structures $02, $03, $05, $07, $3D, $61); 1 jewel (number 161)."
  },
  {
   "address": 11778,
   "type": "line",
   "text": "Room at map row 60, column 73, 67 bytes: colour scheme 14; a floor of block type $01; 23 block words (structures $09, $09, $01, $01, $01, $01); 1 jewel (number 144); 1 lift (on switch 4)."
  },
  {
   "address": 11845,
   "type": "line",
   "text": "Room at map row 64, column 66, 28 bytes: colour scheme 1, the clock at a quarter of its speed; a floor of block type $01; 6 block words (structures $0E, $0E, $01, $62); 1 jewel (number 41)."
  },
  {
   "address": 11873,
   "type": "line",
   "text": "Room at map row 65, column 66, 29 bytes: colour scheme 6, the clock at a quarter of its speed; a floor of block type $01; 4 block words (structures $09, $09, $09); 1 jewel (number 163); 2 inhabitants (kinds 0, 1)."
  },
  {
   "address": 11902,
   "type": "line",
   "text": "Room at map row 59, column 64, 35 bytes: colour scheme 11; a floor of block type $00; 8 block words (structures $16, $06, $03, $02); 1 jewel (number 81); 1 switched block on switch 3."
  },
  {
   "address": 11937,
   "type": "line",
   "text": "Room at map row 56, column 72, 42 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $0A, $01, $02, $07, $06, $1B, $1B, $0B); 1 inhabitant (kind 1)."
  },
  {
   "address": 11979,
   "type": "line",
   "text": "Room at map row 55, column 73, 27 bytes: colour scheme 8; a floor of block type $00; 4 block words (structures $06, $57, $57, $06); 1 jewel (number 164); 1 inhabitant (kind 0)."
  },
  {
   "address": 12006,
   "type": "line",
   "text": "Room at map row 58, column 51, 15 bytes: colour scheme 15; a floor of block type $01; 1 block word (structure $79); 1 jewel (number 166)."
  },
  {
   "address": 12021,
   "type": "line",
   "text": "Room at map row 58, column 49, 15 bytes: colour scheme 15; a floor of block type $01; 1 block word (structure $79); 1 jewel (number 165)."
  },
  {
   "address": 12036,
   "type": "line",
   "text": "Room at map row 60, column 51, 15 bytes: colour scheme 15; a floor of block type $01; 1 block word (structure $79); 1 jewel (number 167)."
  },
  {
   "address": 12051,
   "type": "line",
   "text": "Room at map row 60, column 49, 15 bytes: colour scheme 15; a floor of block type $01; 1 block word (structure $79); 1 jewel (number 168)."
  },
  {
   "address": 12066,
   "type": "line",
   "text": "Room at map row 59, column 50, 57 bytes: colour scheme 1; a floor of block type $01; 18 block words (structures $04, $04, $04, $04, $62, $62); 2 lifts (2 always moving)."
  },
  {
   "address": 12123,
   "type": "line",
   "text": "Room at map row 58, column 50, 27 bytes: colour scheme 15; a floor of block type $01; 3 block words (structures $7B, $02, $7A); 3 switched blocks on switches 11, 8, 9."
  },
  {
   "address": 12150,
   "type": "line",
   "text": "Room at map row 59, column 49, 27 bytes: colour scheme 15; a floor of block type $01; 3 block words (structures $7B, $02, $7A); 3 switched blocks on switches 10, 8, 11."
  },
  {
   "address": 12177,
   "type": "line",
   "text": "Room at map row 60, column 50, 27 bytes: colour scheme 15; a floor of block type $01; 3 block words (structures $7B, $02, $7A); 3 switched blocks on switches 9, 11, 8."
  },
  {
   "address": 12204,
   "type": "line",
   "text": "Room at map row 59, column 51, 27 bytes: colour scheme 15; a floor of block type $01; 3 block words (structures $7B, $02, $7A); 3 switched blocks on switches 8, 10, 8."
  },
  {
   "address": 12231,
   "type": "line",
   "text": "Room at map row 47, column 82, 56 bytes: colour scheme 2; a floor of block type $01; 16 block words (structures $12, $15, $13, $12, $15, $12, $02, $11, $11, $11, $01, $01); 1 jewel (number 169)."
  },
  {
   "address": 12287,
   "type": "line",
   "text": "Room at map row 47, column 83, 51 bytes: colour scheme 2; a floor of block type $19; 14 block words (structures $09, $09, $06, $07, $08, $06, $41, $41); 1 jewel (number 170); 1 switched block on switch 11."
  },
  {
   "address": 12338,
   "type": "line",
   "text": "Room at map row 47, column 84, 51 bytes: colour scheme 2; a floor of block type $1B; 14 block words (structures $41, $07, $41, $41, $06, $41, $06, $41, $06, $41, $41); 1 jewel (number 171)."
  },
  {
   "address": 12389,
   "type": "line",
   "text": "Room at map row 46, column 85, 47 bytes: colour scheme 3; a floor of block type $01; 14 block words (structures $09, $6F, $6E, $06); 2 lifts (on switches 9, 10)."
  },
  {
   "address": 12436,
   "type": "line",
   "text": "Room at map row 46, column 84, 32 bytes: colour scheme 3; a floor of block type $01; 7 block words (structures $6F, $6F, $07); 2 jewels (numbers 131, 172)."
  },
  {
   "address": 12468,
   "type": "line",
   "text": "Room at map row 47, column 85, 36 bytes: colour scheme 12; a floor of block type $03; 9 block words (structures $09, $6F, $09, $6E, $6F, $6E); 1 switched block on switch 1."
  },
  {
   "address": 12504,
   "type": "line",
   "text": "Room at map row 51, column 85, 12 bytes: colour scheme 7; a floor of block type $00; 1 block word (structure $55); no moving pieces."
  },
  {
   "address": 12516,
   "type": "line",
   "text": "Room at map row 52, column 85, 12 bytes: colour scheme 7; a floor of block type $00; 1 block word (structure $55); no moving pieces."
  },
  {
   "address": 12528,
   "type": "line",
   "text": "Room at map row 54, column 85, 12 bytes: colour scheme 0; a floor of block type $00; 1 block word (structure $55); no moving pieces."
  },
  {
   "address": 12540,
   "type": "line",
   "text": "Room at map row 55, column 85, 12 bytes: colour scheme 0; a floor of block type $00; 1 block word (structure $55); no moving pieces."
  },
  {
   "address": 12552,
   "type": "line",
   "text": "Room at map row 49, column 85, 26 bytes: colour scheme 5; a floor of block type $01; 6 block words (structures $09, $0E, $1E, $1E, $09); no moving pieces."
  },
  {
   "address": 12578,
   "type": "line",
   "text": "Room at map row 49, column 87, 34 bytes: colour scheme 14; a floor of block type $03; 8 block words (structures $04, $09, $09, $09, $06, $06); 1 jewel (number 174)."
  },
  {
   "address": 12612,
   "type": "line",
   "text": "Room at map row 58, column 85, 64 bytes: colour scheme 3; a floor of block type $01; 17 block words (structures $64, $7D, $67, $69, $69, $68, $24, $68, $02, $67, $69, $24, $69, $1A, $3A); 1 jewel (number 175); 1 inhabitant (kind 0)."
  },
  {
   "address": 12676,
   "type": "line",
   "text": "Room at map row 48, column 83, 25 bytes: colour scheme 1; a floor of block type $03; 5 block words (structures $09, $09, $09); 1 jewel (number 173)."
  },
  {
   "address": 12701,
   "type": "line",
   "text": "Room at map row 48, column 84, 36 bytes: colour scheme 1; a floor of block type $01; 8 block words (structures $09, $09); 1 jewel (number 176); 1 lift (on switch 4); 1 switched block on switch 8."
  },
  {
   "address": 12737,
   "type": "line",
   "text": "Room at map row 48, column 85, 14 bytes: colour scheme 14; a floor of block type $01; 2 block words (structure $06); no moving pieces."
  },
  {
   "address": 12751,
   "type": "line",
   "text": "Room at map row 48, column 86, 33 bytes: colour scheme 15; a floor of block type $01; 8 block words (structures $09, $09, $12, $12, $15); 1 jewel (number 177)."
  },
  {
   "address": 12784,
   "type": "line",
   "text": "Room at map row 49, column 86, 47 bytes: colour scheme 10; a floor of block type $01; 11 block words (structures $09, $12, $12, $12, $12, $12, $12); 1 jewel (number 178); 2 switched blocks on switches 8, 4."
  },
  {
   "address": 12831,
   "type": "line",
   "text": "Room at map row 59, column 85, 52 bytes: colour scheme 3; a floor of block type $01; 15 block words (structures $64, $7D, $01, $01, $01, $02, $01); 1 jewel (number 179); 1 inhabitant (kind 1)."
  },
  {
   "address": 12883,
   "type": "line",
   "text": "Room at map row 60, column 85, 39 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $60, $1F, $01, $02, $05, $05, $05, $7F, $7F, $04); no moving pieces."
  },
  {
   "address": 12922,
   "type": "line",
   "text": "Room at map row 59, column 86, 30 bytes: colour scheme 9; a floor of block type $00; 6 block words (structures $7F, $7F, $6E, $6E, $08, $08); 1 jewel (number 180)."
  },
  {
   "address": 12952,
   "type": "line",
   "text": "Room at map row 60, column 86, 23 bytes: colour scheme 10; a floor of block type $00; 4 block words (structures $4B, $4C, $31); 1 jewel (number 181)."
  },
  {
   "address": 12975,
   "type": "line",
   "text": "Room at map row 57, column 85, 21 bytes: colour scheme 8; a floor of block type $00; 4 block words (structures $55, $07, $07, $06); no moving pieces."
  },
  {
   "address": 12996,
   "type": "line",
   "text": "Room at map row 60, column 84, 24 bytes: colour scheme 8; a floor of block type $00; 4 block words (structures $6F, $6E, $7E, $06); 1 jewel (number 183)."
  },
  {
   "address": 13020,
   "type": "line",
   "text": "Room at map row 58, column 84, 37 bytes: colour scheme 8; a floor of block type $01; 9 block words (structures $22, $22, $23, $1F, $21, $18, $04); 1 jewel (number 182)."
  },
  {
   "address": 13057,
   "type": "line",
   "text": "Room at map row 59, column 84, 38 bytes: colour scheme 8; a floor of block type $01; 11 block words (structures $04, $02, $17, $17, $23, $21, $21); no moving pieces."
  },
  {
   "address": 13095,
   "type": "line",
   "text": "Room at map row 59, column 83, 26 bytes: colour scheme 8; a floor of block type $00; 6 block words (structures $05, $16, $16, $05, $02); no moving pieces."
  },
  {
   "address": 13121,
   "type": "line",
   "text": "Room at map row 59, column 82, 35 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $01, $01, $01, $1B, $1A, $1A); no moving pieces."
  },
  {
   "address": 13156,
   "type": "line",
   "text": "Room at map row 59, column 81, 38 bytes: colour scheme 8; a floor of block type $00; 10 block words (structures $01, $02, $03, $01, $1B, $1B, $65, $01, $01); no moving pieces."
  },
  {
   "address": 13194,
   "type": "line",
   "text": "Room at map row 58, column 82, 45 bytes: colour scheme 9; a floor of block type $00; 14 block words (structures $55, $01, $55, $02, $55, $55, $55, $01); no moving pieces."
  },
  {
   "address": 13239,
   "type": "line",
   "text": "Room at map row 57, column 82, 29 bytes: colour scheme 15; a floor of block type $00; 8 block words (structures $5B, $03, $04, $04); no moving pieces."
  },
  {
   "address": 13268,
   "type": "line",
   "text": "Room at map row 56, column 82, 40 bytes: colour scheme 15; a floor of block type $00; 10 block words (structures $03, $02, $01, $02, $02); 1 jewel (number 184); 1 lift (on switch 7)."
  },
  {
   "address": 13308,
   "type": "line",
   "text": "Room at map row 56, column 80, 20 bytes: colour scheme 15; a floor of block type $00; 3 block words (structures $80, $1E); 1 jewel (number 187)."
  },
  {
   "address": 13328,
   "type": "line",
   "text": "Room at map row 56, column 79, 35 bytes: colour scheme 15; a floor of block type $00; 9 block words (structures $25, $24, $07, $07, $07); 1 lift (on switch 7)."
  },
  {
   "address": 13363,
   "type": "line",
   "text": "Room at map row 55, column 72, 47 bytes: colour scheme 15; a floor of block type $00; 12 block words (structures $06, $3A, $41, $41, $02, $02, $01, $3A); 1 jewel (number 160); 1 lift (always moving)."
  },
  {
   "address": 13410,
   "type": "line",
   "text": "Room at map row 54, column 72, 41 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $02, $41, $41, $01, $01, $01, $03); 1 jewel (number 186)."
  },
  {
   "address": 13451,
   "type": "line",
   "text": "Room at map row 56, column 78, 21 bytes: colour scheme 15; a floor of block type $00; 4 block words (structure $80); 1 jewel (number 188)."
  },
  {
   "address": 13472,
   "type": "line",
   "text": "Room at map row 56, column 77, 25 bytes: colour scheme 4; a floor of block type $00; 5 block words (structures $27, $2A, $2A); 1 inhabitant (kind 1)."
  },
  {
   "address": 13497,
   "type": "line",
   "text": "Room at map row 56, column 81, 33 bytes: colour scheme 15; a floor of block type $00; 8 block words (structures $42, $48, $42, $42, $57); 1 jewel (number 185)."
  },
  {
   "address": 13530,
   "type": "line",
   "text": "Room at map row 57, column 81, 23 bytes: colour scheme 10; a floor of block type $00; 5 block words (structures $57, $57, $57, $01); no moving pieces."
  },
  {
   "address": 13553,
   "type": "line",
   "text": "Room at map row 57, column 78, 42 bytes: colour scheme 10; a floor of block type $01; 11 block words (structures $77, $0A, $23, $23, $1F, $1F, $1F, $20, $20, $1F, $0B); no moving pieces."
  },
  {
   "address": 13595,
   "type": "line",
   "text": "Room at map row 57, column 79, 29 bytes: colour scheme 10; a floor of block type $00; 7 block words (structures $06, $57, $06, $06, $06, $07); no moving pieces."
  },
  {
   "address": 13624,
   "type": "line",
   "text": "Room at map row 57, column 80, 34 bytes: colour scheme 10; a floor of block type $00; 8 block words (structures $06, $57, $01, $57, $06, $57); 1 jewel (number 190)."
  },
  {
   "address": 13658,
   "type": "line",
   "text": "Room at map row 58, column 80, 23 bytes: colour scheme 8; a floor of block type $00; 5 block words (structures $57, $08, $06, $57); no moving pieces."
  },
  {
   "address": 13681,
   "type": "line",
   "text": "Room at map row 58, column 79, 18 bytes: colour scheme 8; a floor of block type $00; 3 block words (structures $0C, $0C, $3D); no moving pieces."
  },
  {
   "address": 13699,
   "type": "line",
   "text": "Room at map row 58, column 78, 39 bytes: colour scheme 10; a floor of block type $00; 10 block words (structures $09, $06, $06, $08, $08, $6E, $16, $3D, $16, $09); no moving pieces."
  },
  {
   "address": 13738,
   "type": "line",
   "text": "Room at map row 56, column 75, 28 bytes: colour scheme 15; a floor of block type $00; 6 block words (structures $07, $07, $07, $03); 1 lift (always moving)."
  },
  {
   "address": 13766,
   "type": "line",
   "text": "Room at map row 56, column 76, 31 bytes: colour scheme 4; a floor of block type $00; 6 block words (structures $07, $26, $55, $55); 1 jewel (number 189); 1 lift (always moving)."
  },
  {
   "address": 13797,
   "type": "line",
   "text": "Room at map row 57, column 72, 33 bytes: colour scheme 15; a floor of block type $00; 7 block words (structures $06, $02, $08, $08); 2 lifts (1 always moving, on switch 3)."
  },
  {
   "address": 13830,
   "type": "line",
   "text": "Room at map row 59, column 73, 22 bytes: colour scheme 11; a floor of block type $00; 6 block words (structure $41); no moving pieces."
  },
  {
   "address": 13852,
   "type": "line",
   "text": "Room at map row 58, column 73, 30 bytes: colour scheme 15; a floor of block type $00; 8 block words (structures $06, $07, $06, $06, $06); no moving pieces."
  },
  {
   "address": 13882,
   "type": "line",
   "text": "Room at map row 58, column 72, 21 bytes: colour scheme 15; a floor of block type $00; 5 block words (structures $41, $41); no moving pieces."
  },
  {
   "address": 13903,
   "type": "line",
   "text": "Room at map row 57, column 75, 35 bytes: colour scheme 15; a floor of block type $00; 9 block words (structures $57, $57); 1 jewel (number 192); 1 switched block on switch 5."
  },
  {
   "address": 13938,
   "type": "line",
   "text": "Room at map row 60, column 76, 17 bytes: colour scheme 10; a floor of block type $00; 3 block words (structures $07, $06); no moving pieces."
  },
  {
   "address": 13955,
   "type": "line",
   "text": "Room at map row 59, column 76, 23 bytes: colour scheme 10; a floor of block type $00; 6 block words (structures $1A, $1A); no moving pieces."
  },
  {
   "address": 13978,
   "type": "line",
   "text": "Room at map row 58, column 76, 34 bytes: colour scheme 8; a floor of block type $00; 9 block words (structures $08, $04, $07, $06, $07, $1A, $1A); no moving pieces."
  },
  {
   "address": 14012,
   "type": "line",
   "text": "Room at map row 58, column 77, 27 bytes: colour scheme 8; a floor of block type $00; 7 block words (structures $1A, $1A, $02, $01); no moving pieces."
  },
  {
   "address": 14039,
   "type": "line",
   "text": "Room at map row 56, column 74, 42 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $57, $41, $41, $41, $41, $41, $41, $03); 1 lift (on switch 5)."
  },
  {
   "address": 14081,
   "type": "line",
   "text": "Room at map row 55, column 74, 57 bytes: colour scheme 10; a floor of block type $00; 15 block words (structures $04, $02, $02); 1 jewel (number 193); 4 switched blocks on switches 8, 9, 10, 11."
  },
  {
   "address": 14138,
   "type": "line",
   "text": "Room at map row 54, column 74, 48 bytes: colour scheme 10; a floor of block type $00; 13 block words (structures $41, $41, $41, $41, $42, $42, $03, $02, $04, $01); 1 jewel (number 194)."
  },
  {
   "address": 14186,
   "type": "line",
   "text": "Room at map row 54, column 73, 36 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $42, $42, $42, $42, $41); no moving pieces."
  },
  {
   "address": 14222,
   "type": "line",
   "text": "Room at map row 57, column 74, 41 bytes: colour scheme 15; a floor of block type $00; 11 block words (structures $06, $41, $03, $02, $02, $07, $41); 1 jewel (number 191)."
  },
  {
   "address": 14263,
   "type": "line",
   "text": "Room at map row 58, column 86, 33 bytes: colour scheme 9; a floor of block type $00; 7 block words (structures $7E, $01, $01, $61, $17, $17, $7E); 1 jewel (number 195)."
  },
  {
   "address": 14296,
   "type": "line",
   "text": "Room at map row 66, column 58, 41 bytes: colour scheme 10; a floor of block type $00; 12 block words (structures $07, $08, $03, $41, $42); 1 jewel (number 57)."
  },
  {
   "address": 14337,
   "type": "line",
   "text": "Room at map row 66, column 57, 30 bytes: colour scheme 10; a floor of block type $00; 7 block words (structures $0B, $1E, $41, $42); 1 jewel (number 58)."
  },
  {
   "address": 14367,
   "type": "line",
   "text": "Room at map row 66, column 56, 25 bytes: colour scheme 9; a floor of block type $00; 5 block words; 2 switched blocks on switches 4, 8."
  },
  {
   "address": 14392,
   "type": "line",
   "text": "Room at map row 66, column 55, 19 bytes: colour scheme 9; a floor of block type $00; 4 block words (structures $04, $06); no moving pieces."
  },
  {
   "address": 14411,
   "type": "line",
   "text": "Room at map row 66, column 54, 38 bytes: colour scheme 11; a floor of block type $00; 9 block words (structures $41, $42, $41, $0B, $03, $1A, $1A, $1A); 1 jewel (number 196)."
  },
  {
   "address": 14449,
   "type": "line",
   "text": "Room at map row 70, column 53, 14 bytes: colour scheme 15; a floor of block type $00; 2 block words (structure $27); no moving pieces."
  },
  {
   "address": 14463,
   "type": "line",
   "text": "Room at map row 70, column 52, 31 bytes: colour scheme 5; a floor of block type $01; 7 block words (structures $09, $09); 1 jewel (number 197); 1 switched block on switch 0."
  },
  {
   "address": 14494,
   "type": "line",
   "text": "Room at map row 70, column 51, 47 bytes: colour scheme 5; a floor of block type $01; 11 block words (structures $09, $09, $0F, $0E); 1 jewel (number 198); 3 switched blocks on switches 1, 2, 3."
  },
  {
   "address": 14541,
   "type": "line",
   "text": "Room at map row 69, column 51, 49 bytes: colour scheme 5; a floor of block type $01; 13 block words (structures $09, $09, $07, $06, $06, $06, $08, $06); 1 jewel (number 199); 1 lift (on switch 4)."
  },
  {
   "address": 14590,
   "type": "line",
   "text": "Room at map row 69, column 52, 32 bytes: colour scheme 5; a floor of block type $01; 8 block words (structures $09, $09, $07, $06); 1 jewel (number 200)."
  },
  {
   "address": 14622,
   "type": "line",
   "text": "Room at map row 68, column 51, 24 bytes: colour scheme 9; a floor of block type $00; 6 block words (structures $1B, $1B, $1B); no moving pieces."
  },
  {
   "address": 14646,
   "type": "line",
   "text": "Room at map row 67, column 51, 44 bytes: colour scheme 4; a floor of block type $00; 16 block words; 1 jewel (number 201)."
  },
  {
   "address": 14690,
   "type": "line",
   "text": "Room at map row 67, column 52, 37 bytes: colour scheme 4; a floor of block type $00; 10 block words (structures $42, $41, $41, $42, $42, $42, $42, $41); no moving pieces."
  },
  {
   "address": 14727,
   "type": "line",
   "text": "Room at map row 65, column 51, 28 bytes: colour scheme 8; a floor of block type $00; 6 block words (structures $48, $42, $41, $41); 1 lift (always moving)."
  },
  {
   "address": 14755,
   "type": "line",
   "text": "Room at map row 66, column 51, 36 bytes: colour scheme 8; a floor of block type $00; 8 block words (structures $42, $41, $48, $03, $42); 2 jewels (numbers 202, 203)."
  },
  {
   "address": 14791,
   "type": "line",
   "text": "Room at map row 66, column 52, 20 bytes: colour scheme 8; a floor of block type $00; 5 block words (structure $42); no moving pieces."
  },
  {
   "address": 14811,
   "type": "line",
   "text": "Room at map row 66, column 53, 39 bytes: colour scheme 8; a floor of block type $00; 12 block words (structures $41, $1A, $1A, $1A, $1A, $0E); no moving pieces."
  },
  {
   "address": 14850,
   "type": "line",
   "text": "Room at map row 58, column 52, 41 bytes: colour scheme 8; a floor of block type $01; 10 block words (structures $5A, $59, $59, $59, $5A, $69, $68, $69, $5B); 1 jewel (number 204)."
  },
  {
   "address": 14891,
   "type": "line",
   "text": "Room at map row 58, column 53, 26 bytes: colour scheme 8; a floor of block type $01; 5 block words (structures $35, $35, $35, $35); 1 jewel (number 205)."
  },
  {
   "address": 14917,
   "type": "line",
   "text": "Room at map row 57, column 49, 39 bytes: colour scheme 6; a floor of block type $01; 8 block words (structures $07, $06, $08, $08, $08); 2 lifts (on switches 4, 4); 1 switched block on switch 11."
  },
  {
   "address": 14956,
   "type": "line",
   "text": "Room at map row 57, column 50, 35 bytes: colour scheme 6; a floor of block type $01; 6 block words (structures $07, $06, $06, $06, $08); 1 jewel (number 206); 2 switched blocks on switches 11, 8."
  },
  {
   "address": 14991,
   "type": "line",
   "text": "Room at map row 57, column 51, 24 bytes: colour scheme 6; a floor of block type $01; 4 block words (structures $08, $08, $07, $55); 1 jewel (number 207)."
  },
  {
   "address": 15015,
   "type": "line",
   "text": "Room at map row 57, column 52, 33 bytes: colour scheme 6; a floor of block type $01; 6 block words (structures $07, $06, $06, $07, $06, $45); 2 jewels (numbers 208, 209)."
  },
  {
   "address": 15048,
   "type": "line",
   "text": "Room at map row 57, column 53, 36 bytes: colour scheme 6; a floor of block type $01; 7 block words (structures $08, $07, $08, $07, $45, $0B, $0B); 2 jewels (numbers 210, 211)."
  },
  {
   "address": 15084,
   "type": "line",
   "text": "Room at map row 65, column 65, 21 bytes: colour scheme 8; a floor of block type $00; 3 block words (structures $0B, $24, $25); 1 jewel (number 213)."
  },
  {
   "address": 15105,
   "type": "line",
   "text": "Room at map row 57, column 54, 34 bytes: colour scheme 6; a floor of block type $01; 8 block words (structures $0B, $0B, $01, $08, $07, $08); 1 jewel (number 212)."
  },
  {
   "address": 15139,
   "type": "line",
   "text": "Room at map row 57, column 55, 19 bytes: colour scheme 6; a floor of block type $01; 3 block words (structure $83); 1 jewel (number 214)."
  },
  {
   "address": 15158,
   "type": "line",
   "text": "Room at map row 57, column 56, 29 bytes: colour scheme 6; a floor of block type $01; 6 block words (structures $83, $01); 1 jewel (number 215); 1 lift (on switch 7)."
  },
  {
   "address": 15187,
   "type": "line",
   "text": "Room at map row 57, column 57, 37 bytes: colour scheme 6; a floor of block type $01; 7 block words (structures $06, $08, $08, $08, $0B); 1 jewel (number 216); 1 lift (on switch 4); 1 switched block on switch 8."
  },
  {
   "address": 15224,
   "type": "line",
   "text": "Room at map row 73, column 72, 25 bytes: colour scheme 13; a floor of block type $00; 6 block words (structures $02, $02, $02, $01); no moving pieces."
  },
  {
   "address": 15249,
   "type": "line",
   "text": "Room at map row 74, column 72, 15 bytes: colour scheme 6; a floor of block type $00; 2 block words (structures $04, $62); no moving pieces."
  },
  {
   "address": 15264,
   "type": "line",
   "text": "Room at map row 75, column 72, 40 bytes: colour scheme 6; a floor of block type $14; 10 block words (structures $02, $01, $01, $66, $65); 1 jewel (number 217); 1 switched block on switch 4."
  },
  {
   "address": 15304,
   "type": "line",
   "text": "Room at map row 76, column 72, 43 bytes: colour scheme 6; a floor of block type $10; 11 block words (structures $02, $1A, $1A, $1A, $1A, $1A); 1 jewel (number 218); 1 switched block on switch 0."
  },
  {
   "address": 15347,
   "type": "line",
   "text": "Room at map row 77, column 72, 40 bytes: colour scheme 6; a floor of block type $1B; 11 block words (structures $65, $66, $66); 1 jewel (number 219); 1 switched block on switch 11."
  },
  {
   "address": 15387,
   "type": "line",
   "text": "Room at map row 78, column 72, 12 bytes: colour scheme 7; a floor of block type $06; 1 block word (structure $77); no moving pieces."
  },
  {
   "address": 15399,
   "type": "line",
   "text": "The end of the room directory, a length of 0. Zeros follow to $3CFF."
  },
  {
   "address": 15616,
   "type": "line",
   "text": "The last byte of the file SPIN4, $23, after the zeros. Nothing reads it."
  },
  {
   "address": 24576,
   "type": "line",
   "text": "The game's first instruction, where the boot file's JMP $6000 lands. Clears zero page $02-$81, sets JEWELS ($38/$39) to 000 and TO MAP ($3A/$3B) to 386, both in BCD, the colour mask $61 to $0F, banks BASIC out ($01 = $36), copies 64 pages from $1400 to $0400 (the world data, file SPIN4, moves down to $0400), sets the colour scheme bytes $6A/$6B to $03/$76, sets $D018 = $18 (screen matrix $C400, bitmap $E000 in the video chip's bank 3), turns sprite expansion and priority off, writes $7000 into both vectors of the CBM80 header at $8000, sets the SID volume to 15, then checks for the hidden cheat (check_cheat_password) and calls the game's main loop for ever."
  },
  {
   "address": 24694,
   "type": "line",
   "text": "With every ROM and chip banked out ($01 = $30), compares the 7 bytes of RAM at $DF00-$DF06, under the I/O area, with \"I LIED!\" at cheat_password. If all seven match it stores $60 (RTS) over the first byte of add_to_time's jump ($9533), so every call that would change the time returns at once: falling, braking with space and the steady countdown all stop costing time. Nothing in the game writes $DF00; the bytes have to be put there before the game starts. Banks the KERNAL and I/O back in and enables interrupts."
  },
  {
   "address": 24722,
   "type": "line",
   "text": "Calls the $7000 module's entry (install the interrupt and run the title loop) and calls it again whenever it returns."
  },
  {
   "address": 24728,
   "type": "line",
   "text": "\"I LIED!\" in ASCII, seven bytes, then a zero. check_cheat_password compares RAM $DF00-$DF06 with it. The credits screen's hints say \"THERE IS NO CHEAT MODE\"."
  },
  {
   "address": 24736,
   "type": "line",
   "text": "$EA (NOP) filler from here to $6FFF in the loaded file SPIN3, 3,936 bytes. No instruction reads or reaches it: the start-up ends at $6095 and the next code is the jump table at $7000."
  },
  {
   "address": 25760,
   "type": "line",
   "text": "More of SPIN3's $EA filler, $64A0-$689F: no instruction reads or reaches it."
  },
  {
   "address": 26784,
   "type": "line",
   "text": "SPIN3's $EA filler continues, $68A0-$6C9F, unread."
  },
  {
   "address": 27808,
   "type": "line",
   "text": "The last of SPIN3's $EA filler, $6CA0-$6FFF, up to the jump table at $7000."
  },
  {
   "address": 28672,
   "type": "line",
   "text": "The $7000 module's jump table, seven JMPs. This entry runs init_and_title."
  },
  {
   "address": 28675,
   "type": "line",
   "text": "Jump table entry: show the credits and hints screen (credits_screen); the title loop calls it on RUN/STOP."
  },
  {
   "address": 28678,
   "type": "line",
   "text": "Jump table entry: change Gerald's shape (change_shape); play calls it on I."
  },
  {
   "address": 28681,
   "type": "line",
   "text": "Jump table entry: show the map of the world (map_screen); play calls it on M."
  },
  {
   "address": 28684,
   "type": "line",
   "text": "Jump table entry: Gerald bursts apart (burst_animation); called when he touches a deadly surface."
  },
  {
   "address": 28687,
   "type": "line",
   "text": "Jump table entry: the help screen of the world's pieces (help_screen); the title loop calls it on H."
  },
  {
   "address": 28690,
   "type": "line",
   "text": "Jump table entry: clear the room buffers and draw the room at $44/$45 (draw_title_room). Nothing calls it through the table; the code jumps to draw_title_room directly."
  },
  {
   "address": 28693,
   "type": "line",
   "text": "The KERNAL's IRQ vector ($0314/$0315) as init_and_title found it, saved in two bytes. Nothing reads it back: the game never restores the vector."
  },
  {
   "address": 28694,
   "type": "line",
   "text": "The high byte of the saved KERNAL IRQ vector."
  },
  {
   "address": 28695,
   "type": "line",
   "text": "Installs the game's raster interrupt: compare line 256 ($D012 = 0 with bit 7 of $D011 set), raster interrupt enabled, CIA 1's timer A stopped so the KERNAL's own 60 Hz interrupt no longer fires, and $0314 pointed at raster_irq (the old vector is kept in old_irq_vector). Then sets $C2A9 to 3, puts the room coordinates $44/$45 at (64, 64), draws that room under the title (draw_title_room), sets the sprite multicolours to purple and yellow ($D025 = 4, $D026 = 7) and calls the title screen (title_screen through $8019) for ever."
  },
  {
   "address": 28774,
   "type": "line",
   "text": "The raster interrupt, once a frame on line 256. Acknowledges it; if $78 is set, redraws the moving pieces through $9D06 and clears it. While $79 counts down it plays the jingle on voice 1 (a negative $79 starts it: 80 frames of a triangle note, attack 0, decay 10, whose pitch steps through the eight jingle_pitches, one a frame). While $81 counts down it writes $6B shifted four bits left to the border, whose colour is the low four bits, all 0: the border goes black. When $80 is set it starts a sawtooth on voice 3 (attack 0, decay 9). Every frame it flips hum_toggle, which moves voice 3's pitch between two values $08 apart in the high byte, so whatever voice 3 plays warbles. Ends in the KERNAL's handler at $EA31, which scans the keyboard."
  },
  {
   "address": 28910,
   "type": "line",
   "text": "Flipped between $00 and $08 every frame by raster_irq, which adds $0A and the carry and writes the sum to voice 3's pitch high byte."
  },
  {
   "address": 28911,
   "type": "line",
   "text": "Index into jingle_pitches, counted down from 7 to 0 and round again, a step a frame, while the jingle plays."
  },
  {
   "address": 28912,
   "type": "line",
   "text": "RUN/STOP on the title. Prints credits_text (the thanks, \"THE CREDIT MESSAGE\" and \"SOME HINTS\") through print_text, clears the KERNAL's key buffer count $C6 and waits for a key, then redraws the screen through $9503."
  },
  {
   "address": 28939,
   "type": "line",
   "text": "Text for credits_screen in the print_text format: a window, colours, then \"thanks fred bodge richard wally rabbit mark duncan susie\", \"the credit message\", \"some hints\", \"make a map. It fits a 60*50 grid.\", \"note down all switches\", \"there is no cheat mode\", \"graphics in Spindizzymation.\", and $FF. Shown here as it appears on the screen: the game's font has small letters at the ASCII codes of capitals and capitals at the codes of small letters."
  },
  {
   "address": 29211,
   "type": "line",
   "text": "Eight frequency high bytes the jingle on voice 1 steps through, one a frame, read backwards by raster_irq."
  },
  {
   "address": 29219,
   "type": "line",
   "text": "I in play. Rotates three sets of 384 bytes of sprite shapes (six sprites each): the set in use at $C800-$C97F takes the set at $7980-$7AFF, which takes the set at $7800-$797F, which takes the one that was in use. Each press brings in the next of the three shapes; the first press after a new game gives the ball (reference/play-shape-ball.png)."
  },
  {
   "address": 29276,
   "type": "line",
   "text": "H on the title. Clears the view turn ($28), the switch state ($C1C0), $71 and the sprites, sets the colour scheme for the help screen ($6A/$6B = $61/$5A) and flashes the border for one frame, clears the room buffers (through $951B), builds the list of pieces from help_objects (through $9D00) and draws them (through $9515), fills the four 256-byte buffers at $AA80, $AB80, $AC80 and $AD00 with $FE, redraws (through $9500), prints help_text, and animates the pieces (through $9D09 and $9D03) until a key is pressed. Then redraws the title room."
  },
  {
   "address": 29369,
   "type": "line",
   "text": "The help screen's pieces, in the room format the piece builder at $9D00 reads, ending in a 0: lifts, a switch, water, a jewel, ice, a clue, a trampoline and the compass, placed so that the labels in help_text sit beside them."
  },
  {
   "address": 29413,
   "type": "line",
   "text": "Text for help_screen in the print_text format: a window ($1A 04 24 00 18), colours, then each name at its own position ($1F column row): water, ice, jewel, trampoline, switch, lift, lift, clue, compass, then $FF."
  },
  {
   "address": 29501,
   "type": "line",
   "text": "Clears the room buffers, finds the room at $44/$45 in the room directory (find_room), and if it is there builds its object list from the record's fifth byte on and draws it. Used for the title's background room and to redraw it after the help screen."
  },
  {
   "address": 29535,
   "type": "line",
   "text": "Frames left of burst_animation, counted down from $80."
  },
  {
   "address": 29536,
   "type": "line",
   "text": "Gerald bursts. Draws him at full size in eight pieces ($9D0F, $9D0C with the shape at $C800), copies each piece's position, then for 128 frames moves the pieces outward one pixel a frame (each of the bytes $C290-$C29E is a piece's X or Y, stepped up or down), redrawing them each frame with a short delay loop between. Called from $89DA when Gerald touches a deadly piece; the caller then puts him back where he last stood."
  },
  {
   "address": 29646,
   "type": "line",
   "text": "M in play. Red border and background, draws a large frame over the room (draw_frame at row 0, column 8, 32 by 25 cells), prints map_legend, draws a second frame at row $0F, column $1E, then walks the room directory from $0A00 and plots each room with plot_map_room. Then flashes the room at $43 (the current room) by plotting it again and again, which XORs it on and off, until a key is pressed."
  },
  {
   "address": 29763,
   "type": "line",
   "text": "Plots one room on the map screen. On entry Y points at a room record's length byte in the room directory (pointer $FE). The record's first coordinate byte (the map row) picks the bitmap row and, by its lowest bit, the upper or lower half of a cell; the second (the map column) picks the cell and, by its lowest bit, the left or right pair of pixels. The colour is multicolour pixel pair %01 at first, %10 when the first coordinate byte has bit 7 set (visited), %11 when the second has bit 7 set. Banks every ROM out ($01 = $34) and XORs the 2 by 4 pixel block in, so a second call takes it off again."
  },
  {
   "address": 29871,
   "type": "line",
   "text": "Text for map_screen in the print_text format: a window, then the key \" mapped\", \"unmapped\", \" jewel\" each in its own colour, and \"any key to play.\", then $FF."
  },
  {
   "address": 29965,
   "type": "line",
   "text": "Bytes no instruction reads or reaches, left in SPIN3 from an earlier build of the game: an older copy of the end of plot_map_room ($750D-$752E), an older copy of map_legend ($752F-$758C), scraps of a wait-for-the-raster loop ($758D-$75A6), then from $75A7 a run of records padded with $C0 00 00 00 00 00 00 that each end in a two-byte value between $8489 and $8862, which reads like a table the author's assembler left behind."
  },
  {
   "address": 30720,
   "type": "line",
   "text": "384 bytes of sprite shapes: one object of two sprites (a multicolour one and a hires one over it) in four frames of 48 bytes, 16 rows of 3 bytes: the first sprite's four frames, then the second's from $78C0. One of the three sets change_shape rotates through $C800; inhabitants of kind 0 are drawn with whatever set is here ($A749), so they change shape when Gerald does."
  },
  {
   "address": 31104,
   "type": "line",
   "text": "384 bytes of sprite shapes in the same layout as shapes_set_b: the set change_shape brings into $C800 first (the ball, on the first press of I). Inhabitants of kind 1 are drawn with whatever set is here ($A758)."
  },
  {
   "address": 31488,
   "type": "line",
   "text": "64 bytes in the same padded pattern as the end of leftover_750D. Nothing reads them."
  },
  {
   "address": 31552,
   "type": "line",
   "text": "The panel's three labels as 24 multicolour character cells of 8 bytes, eight cells each: TIME, TO MAP and JEWELS. draw_hud_labels plots them on rows 0, 6 and 12 at column 0."
  },
  {
   "address": 31744,
   "type": "line",
   "text": "The game's own font, 128 multicolour character cells of 8 bytes at $7C00 + code * 8, used by plot_char and print_text. Codes $00-$07 are the pieces of a frame (corners and edges, drawn by draw_frame); codes $08-$15 hold logo_map instead of glyphs; the logo's pieces are codes $16-$24; codes $20-$5F are space, digits, punctuation and small letters in ASCII order; codes $60-$7F hold the capitals, a code $20 above the small letter."
  },
  {
   "address": 31808,
   "type": "line",
   "text": "The title's SPINDIZZY logo as 7 rows of 15 bytes, two cells to a byte (high nibble first). draw_logo turns each nibble n into character $16 + n, and $F into $21, so the logo is 7 by 30 cells of the font's logo pieces. It sits in the font's slots for codes $08-$15, which no text uses."
  },
  {
   "address": 31913,
   "type": "line",
   "text": "The rest of the font: the last byte of code $15's slot, then the glyphs for codes $16-$7F (the logo pieces, space, digits, punctuation and letters)."
  },
  {
   "address": 32768,
   "type": "line",
   "text": "The cartridge header the KERNAL looks for: a cold start vector here and a warm start vector at $8002, both $7000, then \"CBM80\" at $8004. start_game_image writes both vectors. The KERNAL's NMI routine checks for it, so RESTORE, alone or with RUN/STOP, jumps through the warm start vector to the title instead of BASIC."
  },
  {
   "address": 32769,
   "type": "line",
   "text": "The high byte of the cold start vector, $70."
  },
  {
   "address": 32770,
   "type": "line",
   "text": "The warm start vector, $7000: the NMI routine of the KERNAL jumps through it when RESTORE is pressed with RUN/STOP held and the CBM80 signature is present."
  },
  {
   "address": 32771,
   "type": "line",
   "text": "The high byte of the warm start vector, $70."
  },
  {
   "address": 32772,
   "type": "line",
   "text": "\"CBM80\", with the C, B and M in shifted PETSCII ($C3 $C2 $CD), which the KERNAL checks at $FD02."
  },
  {
   "address": 32777,
   "type": "line",
   "text": "Seven bytes nothing reads: $0A $02 $00 $01 $02 $08 $01."
  },
  {
   "address": 32784,
   "type": "line",
   "text": "The $8000 module's jump table, eight JMPs. This one shows the score screen and waits for space (show_score); play calls it on S."
  },
  {
   "address": 32787,
   "type": "line",
   "text": "Jump table entry: survey_complete; the main loop calls it when TO MAP reaches 0 and every jewel is collected."
  },
  {
   "address": 32790,
   "type": "line",
   "text": "Jump table entry: game_end, when the time runs out or the mission is abandoned."
  },
  {
   "address": 32793,
   "type": "line",
   "text": "Jump table entry: title_screen; init_and_title calls it for ever."
  },
  {
   "address": 32796,
   "type": "line",
   "text": "Jump table entry: print_text, the text printer, for the $7000 module."
  },
  {
   "address": 32799,
   "type": "line",
   "text": "Jump table entry: read_joystick; the main loop calls it every pass."
  },
  {
   "address": 32802,
   "type": "line",
   "text": "Jump table entry: noise_sound, a burst on voice 3 for landing, bursting and the like."
  },
  {
   "address": 32805,
   "type": "line",
   "text": "Jump table entry: draw_frame, for the map screen."
  },
  {
   "address": 32808,
   "type": "line",
   "text": "Reads the joysticks into $F8, one bit for each of up, down, left, right and fire (1 = pressed). With one joystick ($77 = 0) both ports are ANDed together, so either works. With two ($77 set), up and down come from port 1 ($DC01) and left and right from port 2 ($DC00), so one player steers each axis; fire comes from either."
  },
  {
   "address": 32842,
   "type": "line",
   "text": "Plots one character cell: the 8 bytes at ($F8) go into the bitmap at $E000 + 8 * (row * 40 + column), with the row in $2E and the column in $2F, $74 into the colour matrix at $C400 and $75 into colour RAM at $D800 for the same cell."
  },
  {
   "address": 32926,
   "type": "line",
   "text": "Plots eight consecutive cells from ($F8) along the row, moving the column on by one each time."
  },
  {
   "address": 32944,
   "type": "line",
   "text": "Plots the three labels from hud_label_glyphs, TIME, TO MAP and JEWELS, at column 0 of rows 0, 6 and 12, with colours $10 and $02."
  },
  {
   "address": 32994,
   "type": "line",
   "text": "Draws a box of the font's frame pieces (codes $00-$07) with its top left at row $2E, column $2F, $FE + 1 cells wide and $8B + 1 tall: the top left corner, the top edge, the top right corner, the right edge downwards, then the bottom right corner, the bottom edge back, the bottom left corner and the left edge upwards. Colours $6E and $02."
  },
  {
   "address": 33105,
   "type": "line",
   "text": "Draws the panel on the left of the play screen: three frames 8 cells wide and 4 tall at column 0 of rows 1, 7 and 13 (for TIME, TO MAP and JEWELS), a frame 6 by 6 at row 18, column 1 (the switch and clue box), and the labels (draw_hud_labels)."
  },
  {
   "address": 33161,
   "type": "line",
   "text": "Plots the font's character A at the cursor (row $2E, column $2F) through plot_cell, then moves the cursor right. A column left of the window's left edge is moved to it; one past its right edge starts the next row at the left edge."
  },
  {
   "address": 33208,
   "type": "line",
   "text": "plot_char's RTS. print_text's $1A code copies the window's four bytes with STA $81B8,Y for Y = 4 down to 1, so they land at $81B9-$81BC."
  },
  {
   "address": 33209,
   "type": "line",
   "text": "The text window's left column, set by print_text's $1A code. The window is the four bytes window_left, window_right, window_top, window_bottom."
  },
  {
   "address": 33210,
   "type": "line",
   "text": "The text window's right column."
  },
  {
   "address": 33211,
   "type": "line",
   "text": "The text window's top row."
  },
  {
   "address": 33212,
   "type": "line",
   "text": "The text window's bottom row."
  },
  {
   "address": 33213,
   "type": "line",
   "text": "The game's text printer. Reads bytes from ($26) until $FF. $0F n sets colour RAM's colour ($75) to n; $0E n sets the colour matrix's colour ($74) to n * 16; $1A l r t b sets the window and puts the cursor at its top left (when $71 is set, as on the score screen from the title, the window is moved 4 columns left and 9 rows down); $1F c r puts the cursor at column c, row r of the window; $0D starts a new line; $0C clears the window to spaces (clear_window). Any other byte is a character for plot_char."
  },
  {
   "address": 33418,
   "type": "line",
   "text": "Fills the text window with the font's space (the glyph at $7D00), leaving the cursor at its top left."
  },
  {
   "address": 33458,
   "type": "line",
   "text": "Text for survey_complete: \"Survey complete\", \"explore more\", \"Y=yes   N=no\"."
  },
  {
   "address": 33525,
   "type": "line",
   "text": "Text for game_end: \"Mission Aborted\"."
  },
  {
   "address": 33556,
   "type": "line",
   "text": "Text for game_end: \"Press a key to go on\"."
  },
  {
   "address": 33585,
   "type": "line",
   "text": "Text for show_score: \"Press space to go on\", the word space in another colour."
  },
  {
   "address": 33620,
   "type": "line",
   "text": "Text for score_screen: \"You Have Completed\", then \"%  of screens\", \"%  of jewels\" and \"%  of game\", with room before each % for print_bcd_number's three digits."
  },
  {
   "address": 33712,
   "type": "line",
   "text": "Prints score_text and the three figures, each through print_bcd_number at a position from set_print_position. Screens: the rooms visited (the room total $72/$73 minus TO MAP) times 100 over the room total (bcd_percent). Jewels: JEWELS times 100 over 220 (BCD $0220). Game: the two added, times five (bcd_add four times), with the last digit dropped: the average of the two, rounded down."
  },
  {
   "address": 33873,
   "type": "line",
   "text": "Puts print_text's cursor at column X, row Y of the window, by writing them into print_position_text and printing it."
  },
  {
   "address": 33890,
   "type": "line",
   "text": "$1F, column, row, $FF: a cursor move for print_text, whose two middle bytes set_print_position fills in."
  },
  {
   "address": 33891,
   "type": "line",
   "text": "The column byte of print_position_text, written by set_print_position."
  },
  {
   "address": 33892,
   "type": "line",
   "text": "The row byte of print_position_text, written by set_print_position."
  },
  {
   "address": 33894,
   "type": "line",
   "text": "Set to non-zero by print_bcd_number once a digit other than a leading zero has been printed."
  },
  {
   "address": 33895,
   "type": "line",
   "text": "Prints a three-digit BCD number, the low digit of $F9 then both digits of $F8, at the cursor, leading zeros as spaces; the last digit is always printed."
  },
  {
   "address": 33921,
   "type": "line",
   "text": "Prints the low nibble of A as a digit (code $30 + n), or a space if it is a leading zero."
  },
  {
   "address": 33946,
   "type": "line",
   "text": "Fills the whole bitmap, $E000-$FFFF, with the byte in A. The store at $84AA has its address patched to $E000 first and its high byte counted up page by page, so the listing shows it as $0000."
  },
  {
   "address": 33963,
   "type": "line",
   "text": "The low byte of the store's address in fill_bitmap's loop, set to $00 before it runs."
  },
  {
   "address": 33964,
   "type": "line",
   "text": "The high byte of the store's address, set to $E0 and counted up a page at a time."
  },
  {
   "address": 33975,
   "type": "line",
   "text": "26 bytes new_game copies to $44-$5D: the start room (64, 64), Gerald's position in it ($46-$4B, three 16-bit values $0400, $0400, $0200), a saved position for a restart ($4C-$53: room (62, 64) and the same place), and zeros for the speeds $56-$5D."
  },
  {
   "address": 34001,
   "type": "line",
   "text": "Starts a game. Hides the sprites, sets the colour matrix and colour RAM of the play screen (rows above the panel $A2 and 1, the bottom rows $30 and 8), copies new_game_state into $44-$5D, clears the bitmap, sets the time ($5E/$5F) to 100 and draws it at $E288 (through $9527), draws the panel (draw_hud), clears the score, the switch state at $C1C0-$C1DF and other play flags, starts CIA 2's timer A as a one-shot that sets the game's speed (1 cycle when fast, $3E80 = 16,000 cycles when slow, from $76), and jumps into the main loop at $8DA1."
  },
  {
   "address": 34157,
   "type": "line",
   "text": "The game is over (time run out or Q). Waits about 2 seconds (delay). If the survey was already complete ($6E set) it goes to the survey-complete screen instead. Otherwise it prints \"Mission Aborted\", waits about 4 seconds, prints \"Press a key to go on\", waits for a key and falls into show_score; it drops its caller's return address first, so the main loop ends and the title comes back."
  },
  {
   "address": 34198,
   "type": "line",
   "text": "S in play, or from the title. Prints the score screen, hides the sprites, prints \"Press space to go on\" and waits for space or the left-arrow key ($5F), then puts the sprites back."
  },
  {
   "address": 34237,
   "type": "line",
   "text": "Empties the KERNAL's keyboard buffer ($C6 = 0) and waits for a key through GETIN ($FFE4), returning it in A."
  },
  {
   "address": 34247,
   "type": "line",
   "text": "Waits A times 256 * 255 turns of a 13-cycle loop, about 0.86 seconds each."
  },
  {
   "address": 34267,
   "type": "line",
   "text": "Called when the survey is complete. Only the first time ($6E set to $FF): prints the score screen, sets the time ($5E/$5F) to 150, hides the sprites and asks \"Survey complete, explore more? Y=yes N=no\". Y redraws the room and play goes on; N drops the caller's return address and returns, ending the game."
  },
  {
   "address": 34321,
   "type": "line",
   "text": "Draws the SPINDIZZY logo from logo_map with its top left at row $2E, column $2F: 7 rows of 30 cells, each nibble n as character $16 + n ($F as $21), through plot_char. Sets the text window to the whole screen first."
  },
  {
   "address": 34394,
   "type": "line",
   "text": "Plots one cell of the logo: character $16 + A, or $21 when A is $F."
  },
  {
   "address": 34409,
   "type": "line",
   "text": "The title. Fills the bitmap with $55, turns on the bitmap screen (bitmap_mode, through $950F), grey border and light red background, prints title_text, draws the logo at row 1, column 5, draws two frames (34 by 13 from row 11, column 3, and 32 by 9 from row 0, column 4), fills rows 0-11 and 23-24 of the tile buffer with $FE so that draw_picture (through $9503) draws only rows 12-22 of the start room, inside the large frame. Then waits: fire on the joystick or space starts a game (new_game); S shows the score screen; O the options; RUN/STOP the credits; H the help. Q pressed as a game ends (returned in A by new_game) leaves the loop."
  },
  {
   "address": 34649,
   "type": "line",
   "text": "Text for title_screen: \"fire=start  S=scores  O=options  H=help\" along the bottom row, \"(c) Electric Dreams 1986\" and \"by Paul Shirley.\"."
  },
  {
   "address": 34752,
   "type": "line",
   "text": "Text for options_screen: \"Options.\" and \"current.\", \"f1= speed\", \"f3= players\" and \"f7= main menu\", then a window for the current settings."
  },
  {
   "address": 34849,
   "type": "line",
   "text": "O on the title. Prints options_text, then the current speed (\"slow\" or \"fast\" from $76) and number of joysticks (\"one joystick\" or \"two joysticks\" from $77), and waits: F1 ($85) flips the speed, F3 ($86) the joysticks, F7 ($88) returns."
  },
  {
   "address": 34954,
   "type": "line",
   "text": "\"slow\", at column 4, row 3 of the options window."
  },
  {
   "address": 34962,
   "type": "line",
   "text": "\"fast\"."
  },
  {
   "address": 34970,
   "type": "line",
   "text": "\"one joystick \"."
  },
  {
   "address": 34987,
   "type": "line",
   "text": "\"two joysticks\", then two zero bytes nothing reads."
  },
  {
   "address": 35006,
   "type": "line",
   "text": "Starts a noise burst on voice 3: A is the pitch's high byte; for A below 7 nothing is played; above it the decay is A - 6 (at most 9). Gate off, then noise with the gate on. raster_irq rewrites voice 3's pitch every frame, so the pitch given here lasts one frame."
  },
  {
   "address": 35042,
   "type": "line",
   "text": "30 bytes between noise_sound and the jump table at $8900 that no instruction reads or reaches."
  },
  {
   "address": 35072,
   "type": "line",
   "text": "The $8900 module's jump table. This entry runs turn_view; $A0FC calls it."
  },
  {
   "address": 35075,
   "type": "line",
   "text": "Jump table entry: draw_switch_box; $9A0A calls it when the screen is redrawn."
  },
  {
   "address": 35078,
   "type": "line",
   "text": "Jump table entry: main_loop; new_game jumps here."
  },
  {
   "address": 35081,
   "type": "line",
   "text": "Jump table entry for height_above_floor. Nothing calls it through the table."
  },
  {
   "address": 35084,
   "type": "line",
   "text": "Jump table entry: check_all_jewels; the jewel pick-up at $A190 calls it."
  },
  {
   "address": 35087,
   "type": "line",
   "text": "Jump table entry: find_room; draw_title_room calls it."
  },
  {
   "address": 35090,
   "type": "line",
   "text": "The pitch (frequency high byte) of the beep on voice 2 for each switch number, from $1E for switch 0 (the clear switch) up in steps of 5. Read with the switch number 0-15; there are 14 entries, so switches 14 and 15 would read the first two bytes of apply_velocity."
  },
  {
   "address": 35104,
   "type": "line",
   "text": "Adds the speeds to Gerald's position: height $4A/$4B += $5C/$5D, X $46/$47 += $56/$57, Y $48/$49 += $59/$5A (each position's high byte is the cell, 0-7 inside a room, and the low byte the place in it). If the height has fallen 16 levels below the room's floor he has fallen out of the world, and restart_at_safe_point puts him back."
  },
  {
   "address": 35153,
   "type": "line",
   "text": "Takes 8 from the vertical speed $5C/$5D every pass."
  },
  {
   "address": 35167,
   "type": "line",
   "text": "Takes a 64th of a 24-bit speed away from itself: X selects the axis, 0 for X ($57:$56:$58) or 3 for Y ($5A:$59:$5B), with the lowest byte a fraction."
  },
  {
   "address": 35213,
   "type": "line",
   "text": "Friction on both axes: apply_friction_axis for X and for Y. The main loop calls it only while Gerald touches a surface."
  },
  {
   "address": 35223,
   "type": "line",
   "text": "$67/$68 = the floor's height under Gerald ($40/$41) minus his height ($4A/$4B). Negative means he is above it, in the air."
  },
  {
   "address": 35237,
   "type": "line",
   "text": "While Gerald touches a surface, compares the vertical speed with the one kept on the last pass he touched one ($54/$55, then updated). If it has dropped by 28 or more, starts noise_sound with a quarter of the drop as its pitch: a harder landing gives a longer decay, so a longer thud at the same volume."
  },
  {
   "address": 35279,
   "type": "line",
   "text": "Called as Gerald lands. If his vertical speed is below -108 ($5C/$5D + $6C still negative) the fall was too far and he bursts (falls into burst_gerald); otherwise returns."
  },
  {
   "address": 35290,
   "type": "line",
   "text": "Gerald touched something deadly or fell too far: a noise burst at pitch $0F, Gerald's sprite taken off (through $9D0F), the burst animation ($700C), then, dropping the caller's return address, restart_at_safe_point."
  },
  {
   "address": 35303,
   "type": "line",
   "text": "Stops Gerald (the speeds $56-$5D to zero) and puts him back at the last place he stood on solid ground: the room and position saved in $4C-$53 are copied to $44-$4B, with the low bytes set to the middle of the cell ($80, $80) and the height a quarter level up ($40). Takes 5 off the time (adds BCD 9995 through add_to_time) and enters the room (enter_room)."
  },
  {
   "address": 35361,
   "type": "line",
   "text": "Set to $FF by cross_room_edge when Gerald moves into another room; the main loop ignores space and the F keys while it is set."
  },
  {
   "address": 35362,
   "type": "line",
   "text": "When Gerald's X or Y cell leaves 0-7 he has walked off the room: the position is set one step outside the far side of the next room ($FF:$FF after leaving by cell 8, $08:$00 after leaving by cell $FF), so the next pass's movement carries him in; a speed that is exactly zero is given a nudge of 2 (nudge_speed), and the room step is turned from the view's axes into the map's (rotate_vector by the view turn $28): the step along Y moves the map row $44 and the step along X the map column $45, both counted modulo 128. If his height plus $70 is then below level 0 of the room grid, he restarts at the safe point; otherwise the new room is entered."
  },
  {
   "address": 35584,
   "type": "line",
   "text": "Builds and draws the room at map row $44, column $45. Clears the room grid ($951B) and finds the room's record (find_room). If there is one, reads its header (room_header) and builds its grid and pieces (through $9D00). Draws the room either way (through $9506), then marks a found record visited if its visited bit is clear (mark_room_visited, which does nothing when no record was found). For a place with no record it then sets $3D to 2 and gives the room a piece table holding only its end (end_pieces, through $9D12)."
  },
  {
   "address": 35656,
   "type": "line",
   "text": "After a room crossing ($FC negative), a speed in $FA/$FB that is exactly zero becomes 2, so Gerald does not stop on the edge."
  },
  {
   "address": 35671,
   "type": "line",
   "text": "Reads byte 3 of the room record at ($F8): the low nibble is the room's colour scheme, kept in $62 and looked up by set_room_colours; bit 4 set makes $63 = 1 instead of 4, so the clock runs four times slower in that room. Leaves ($F8) pointing at byte 4, the floor's block word, where the record's blocks begin."
  },
  {
   "address": 35714,
   "type": "line",
   "text": "Masks the colour scheme number A with $61 ($0F in colour; C flips it to 0, so every room takes scheme 0) and sets the colour bytes $6A and $6B from room_colours_6A and room_colours_6B."
  },
  {
   "address": 35728,
   "type": "line",
   "text": "After C: sets the colours of the room's scheme ($62) again and redraws the screen (through $9500)."
  },
  {
   "address": 35736,
   "type": "line",
   "text": "The 16 colour schemes' first byte, two colours in its nibbles, copied to $6A."
  },
  {
   "address": 35752,
   "type": "line",
   "text": "The 16 colour schemes' second byte, copied to $6B; its high nibble is the border and background (redraw_screen)."
  },
  {
   "address": 35768,
   "type": "line",
   "text": "First visit to a room (carry set, visited bit clear): sets bit 7 of the record's first coordinate byte, takes one from TO MAP ($3A/$3B, bcd_decrement) and draws it at $EA08, adds 8 to the time (add_time_capped). When TO MAP reaches 0 it falls into check_all_jewels."
  },
  {
   "address": 35821,
   "type": "line",
   "text": "If JEWELS ($38/$39) is 220 (BCD $0220), sets $6D, which the main loop answers with survey_complete. Called when TO MAP reaches 0, and when Gerald takes a room's last jewel while TO MAP is 0."
  },
  {
   "address": 35838,
   "type": "line",
   "text": "Turns the room's moving pieces for a new view, A quarter turns. Clears $C2B0-$C2B7 and walks the piece table at $C200 (records whose first byte is their length less one, ending in 0). A piece whose $C203 is $FF is switch-controlled: if its switch number (the low nibble of $C207) is one of the two switches on ($36/$37) it is updated through $951E, otherwise its number is noted in $29. Any other piece has its cell position ($C203, $C204) turned through $9D15 and kept to 0-7."
  },
  {
   "address": 35947,
   "type": "line",
   "text": "Turns the 16-bit vector (X in $F8/$F9, Y in $FA/$FB) by A quarter turns (A AND 3): 1 gives (Y, -X), 2 gives (-X, -Y), 3 gives (-Y, X). Keeps A."
  },
  {
   "address": 35958,
   "type": "line",
   "text": "The turning part of rotate_vector, for a turn of 1-3: swaps X and Y for an odd turn, then negates Y for a turn of 1, both for 2, X for 3."
  },
  {
   "address": 35990,
   "type": "line",
   "text": "$F8/$F9 = 0 minus itself."
  },
  {
   "address": 36021,
   "type": "line",
   "text": "Looks for the room at map row $FA, column $FB in the room directory at $0A00: records of a length byte (0 ends the directory), the row and the column (each with bit 7 used as a flag). Returns carry set and the record's address in $F8/$F9 and $34/$35 when it is found."
  },
  {
   "address": 36079,
   "type": "line",
   "text": "rotate_vector for a position, then keeps the cells ($F9, $FB) to 0-7, so a turned position stays in the room."
  },
  {
   "address": 36095,
   "type": "line",
   "text": "Turns the view by $FD quarter turns ($28 = $28 + $FD, AND 3). The room itself does not change: Gerald's speeds, his position and the saved position $4E-$51 are turned the other way, the room grid is cleared and rebuilt from the record (find_room, room_header, $9518), the moving pieces are turned (turn_pieces), the sprites hidden and the room redrawn (through $9506)."
  },
  {
   "address": 36256,
   "type": "line",
   "text": "Counts switch presses; its lowest bit picks which of the two switch slots ($36 or $37) a switch numbered 8-15 replaces."
  },
  {
   "address": 36257,
   "type": "line",
   "text": "One game, from new_game until it ends. Counts the rooms and sets TO MAP (count_rooms), draws JEWELS 000 at $F188 and enters the start room. Then each pass: waits for CIA 2's timer A to run out and starts it again (the speed setting), reads the joystick and, while Gerald touches a surface ($24 non-zero), adds 1 to the speed for each direction held (2 with fire): up and down to Y ($59/$5A), left and right to X ($56/$57). Counts down $64 by $63 and takes 1 off the time on each borrow, so the time drops one every 64 passes, or every 256 in a slow-time room. Animates the pieces and redraws Gerald (on every other pass when $31 is set), applies friction, speed, the room edges, gravity, finds the floor under him and acts on it (surface_response), saves his position as the safe point while he stands on solid ground, keeps him out of walls (wall_collisions), and answers survey complete ($6D) and time up ($6C). Last, the keys: Q returns (to the title), C colour or monochrome, I shape, P pause, M map, S score, space brakes, F1, F3, F5 and F7 turn the view."
  },
  {
   "address": 36552,
   "type": "line",
   "text": "P: waits for a key, darkening the border by one every 16 short loops so it cycles through the colours; the key is then handled as if pressed in play."
  },
  {
   "address": 36618,
   "type": "line",
   "text": "Space while Gerald stands on something ($24 bits 6 or 7): his X and Y speeds go to zero, and 1 comes off the time."
  },
  {
   "address": 36642,
   "type": "line",
   "text": "F3 turns the view one quarter, F7 two, F5 three, F1 back to the start ($28 quarters the other way), through turn_view."
  },
  {
   "address": 36676,
   "type": "line",
   "text": "The 16-bit amount the surface routines add to Gerald's speed along a slope before turning it into vertical speed: 1 for a gentle slope, 2 or 3 for a steep one, or the sum of the two axes for a corner."
  },
  {
   "address": 36677,
   "type": "line",
   "text": "The high byte of slope_push."
  },
  {
   "address": 36678,
   "type": "line",
   "text": "Acts on the piece Gerald is over (A, normalised by find_floor). Clears the surface bits of $24 and $69. 0: nothing under him, so he keeps falling (water, $20, is one). Bit 7 set: a switch (press_switch). $63: ice (on_ice). 1: flat floor; 2: deadly (burst_gerald first); 3: trampoline (on_trampoline). The rest, in steps of 4 from 4 to $1C, are slopes and their corners, each with its own floor height across the cell from $65/$66 (Gerald's place in the cell, turned for the piece's orientation). On landing it checks for a hard landing, stops the fall, sets bit 7 of $24 (standing) and puts him on the floor."
  },
  {
   "address": 36780,
   "type": "line",
   "text": "Stops the vertical speed, sets bit 7 of $24 (on solid ground) and puts Gerald's height on the floor ($40/$41)."
  },
  {
   "address": 36801,
   "type": "line",
   "text": "Piece types 4-7: a slope rising one level across the cell; the floor height is 255 minus $65. On it, Gerald's speed is turned into the slope's frame (rotate_vector by the piece type), the push slope_push is added, and minus the speed along the slope becomes his vertical speed, so he rides up and down it."
  },
  {
   "address": 36901,
   "type": "line",
   "text": "Piece types 8-11: a slope rising two levels across the cell (the floor height twice as steep); $69 = $E0 and a push of 3."
  },
  {
   "address": 36935,
   "type": "line",
   "text": "Piece types 12-15, a corner: where Gerald's two coordinates in the cell ($65 + $66) add to less than 256 the floor is flat one level up; beyond that diagonal it slopes down, 255 minus the sum."
  },
  {
   "address": 36969,
   "type": "line",
   "text": "Turns the speed into the piece's frame, adds the push to both axes, and makes their sum the push for the vertical speed (slope_gentle's second half)."
  },
  {
   "address": 37038,
   "type": "line",
   "text": "Piece types 16-19, a corner: where the two coordinates add to 256 or more the floor is flat at the piece's level; below that diagonal it slopes, 255 minus the sum."
  },
  {
   "address": 37048,
   "type": "line",
   "text": "Piece types 20-23, a steep corner: flat two levels up where the two coordinates add to less than 256, falling two levels beyond the diagonal; $69 = $E0 and a push of 2."
  },
  {
   "address": 37115,
   "type": "line",
   "text": "Piece types 24-27: the floor is 255 minus the smaller of the two coordinates, so two slopes meet along the diagonal; on the $66 side the piece type is taken as one less, which turns the push the other way."
  },
  {
   "address": 37132,
   "type": "line",
   "text": "Piece types 28-31: the floor is 255 minus the larger of the two coordinates, the opposite case to slope_ridge."
  },
  {
   "address": 37142,
   "type": "line",
   "text": "Ice ($63, a type-3 block placed with fill mode 2): stops the fall but leaves bit 7 of $24 clear, so the main loop neither steers Gerald nor slows him and he slides on in a straight line. If he comes to a stop on it, and is not on a lift, he could never move again, so he restarts at the safe point."
  },
  {
   "address": 37180,
   "type": "line",
   "text": "Type 3: while Gerald is on or under the surface, sets bit 5 of $24, adds 8 to the vertical speed and, if he is still moving down, reverses it and sets $80 (the bounce sound in raster_irq), so he bounces back up as fast as he came down."
  },
  {
   "address": 37226,
   "type": "line",
   "text": "A switch piece (bit 7 set, bit 5 clear). On landing: switch 0 turns both switches off; switches 1-7 replace both with this one alone; switches 8-15 take one of the two slots ($36, $37) in turn, unless already on. A newly pressed switch beeps on voice 2 at the pitch in switch_pitches and redraws the switch box; then Gerald stands on it as on a floor."
  },
  {
   "address": 37370,
   "type": "line",
   "text": "Draws the box in the panel's bottom left: the symbol of switch $36 at $F7D0 and of switch $37 at $FA50, through draw_switch_symbol."
  },
  {
   "address": 37393,
   "type": "line",
   "text": "Builds the 2 by 2 cell picture of switch number A in $C300-$C31F (all zeros for no switch) from the pieces at $C000-$C1FF the number's bits choose (bit 3 the page, bit 2 the half page, bits 0 and 1 a pair of 16-byte pieces each), and copies it into the bitmap at ($F8): two cells of the top row, then two of the next."
  },
  {
   "address": 37450,
   "type": "line",
   "text": "Copies one 32-byte piece of a switch symbol into $C300: from ($FA) + Y + $40 when A is non-zero, else from ($FA) + Y; Y is 0 or $10."
  },
  {
   "address": 37564,
   "type": "line",
   "text": "At the start of a game, walks the room directory counting its records in BCD, showing the count as it goes in the TO MAP box at $EA08, and clears bit 7 of both coordinate bytes of every record (no room visited). The count becomes TO MAP ($3A/$3B) and the room total ($72/$73): 386."
  },
  {
   "address": 37649,
   "type": "line",
   "text": "Keeps Gerald out of walls. Tests the cells beside him, $70 either way along X and then along Y, at his height less $20 plus $69 (test_cell_blocked): where one is a wall, his position is pushed back to $90 or $70 in his cell and his speed along that axis is reversed and halved (bounce_speed). Then tests his own place; if it is inside a piece, the last step is undone and both speeds bounced."
  },
  {
   "address": 37921,
   "type": "line",
   "text": "Reverses the 16-bit speed at zero page X and halves it, then calls noise_sound with half the high byte of the result. That high byte is 0 at every speed Gerald reaches, which is far below 7, the least noise_sound plays, so hitting a wall makes no sound."
  },
  {
   "address": 37950,
   "type": "line",
   "text": "Would Gerald, moved to X $F8/$F9 and Y $FA/$FB, be inside a piece? Looks up the top of the column there one level above his height ($9524) and, if there is a piece, works out its floor height at that place (piece_floor_height). Carry set when he would be clear of it, clear when blocked. Gerald's position is left as it was."
  },
  {
   "address": 38040,
   "type": "line",
   "text": "The floor height ($40/$41) of piece type $42 at the place $FA/$FB in its cell, for wall tests: $70 for a flat piece, and for each slope type the same shapes as surface_response."
  },
  {
   "address": 38128,
   "type": "line",
   "text": "Code no branch reaches: a floor height from the smaller of the two coordinates, the case of slope type $1C that piece_floor_height never dispatches to (type $1C falls to the flat height)."
  },
  {
   "address": 38139,
   "type": "line",
   "text": "Five bytes nothing reads: $80 $9C $9E $00 $02."
  },
  {
   "address": 38144,
   "type": "line",
   "text": "The $9500 module's jump table, twenty JMPs. This entry runs redraw_screen (colours, the switch box and the whole room picture)."
  },
  {
   "address": 38147,
   "type": "line",
   "text": "Jump table entry: draw_picture, the room picture from the tile buffer without touching the colours."
  },
  {
   "address": 38150,
   "type": "line",
   "text": "Jump table entry: draw_room, build the picture of the room grid and draw it."
  },
  {
   "address": 38153,
   "type": "line",
   "text": "Jump table entry for clear_tiles. Nothing calls it through the table."
  },
  {
   "address": 38156,
   "type": "line",
   "text": "Jump table entry: tile_address; the sprite masking at $9D45 calls it."
  },
  {
   "address": 38159,
   "type": "line",
   "text": "Jump table entry: bitmap_mode; title_screen calls it."
  },
  {
   "address": 38162,
   "type": "line",
   "text": "Jump table entry for text_mode. Nothing calls it: the game never goes back to the text screen."
  },
  {
   "address": 38165,
   "type": "line",
   "text": "Jump table entry: build_picture, the room grid into the tile buffer."
  },
  {
   "address": 38168,
   "type": "line",
   "text": "Jump table entry: build_room_grid, a room record's blocks into the room grid."
  },
  {
   "address": 38171,
   "type": "line",
   "text": "Jump table entry: clear_room_grid."
  },
  {
   "address": 38174,
   "type": "line",
   "text": "Jump table entry: place_structure, for a switch-controlled block that has come on."
  },
  {
   "address": 38177,
   "type": "line",
   "text": "Jump table entry: find_floor, the piece under Gerald."
  },
  {
   "address": 38180,
   "type": "line",
   "text": "Jump table entry: find_floor_at, the piece under a height given in $FC/$FD."
  },
  {
   "address": 38183,
   "type": "line",
   "text": "Jump table entry: draw_bcd_number, a three-digit number in the panel's large digits."
  },
  {
   "address": 38186,
   "type": "line",
   "text": "Jump table entry: bcd_increment."
  },
  {
   "address": 38189,
   "type": "line",
   "text": "Jump table entry: bcd_decrement."
  },
  {
   "address": 38192,
   "type": "line",
   "text": "Jump table entry: bcd_add."
  },
  {
   "address": 38195,
   "type": "line",
   "text": "Jump table entry: add_time_and_check, which adds $FA/$FB to the time. Every loss of time comes through here (a tick of the clock, a fall, the brake, an inhabitant), always as a BCD complement (9999 is -1, 9995 is -5, 9998 is -2). check_cheat_password writes RTS ($60) over this JMP when the password is in place, so all of them stop."
  },
  {
   "address": 38198,
   "type": "line",
   "text": "Jump table entry: add_time_capped, for time gained (a new room, a jewel)."
  },
  {
   "address": 38201,
   "type": "line",
   "text": "Jump table entry: bcd_percent."
  },
  {
   "address": 38204,
   "type": "line",
   "text": "One byte for each group of four tile codes (code / 4): the tile's class, 0 to $0D, or $0F for a tile that covers everything under it. When a tile is added to a place in the tile buffer, it replaces a tile of the same class already there (add_tile); the sprite masking uses the class to pick a mask at $B900."
  },
  {
   "address": 38268,
   "type": "line",
   "text": "Clears the room grid, $B700-$B8FF: 8 by 8 columns of 8 levels, one byte for each."
  },
  {
   "address": 38281,
   "type": "line",
   "text": "For each view turn 0-3, the bits of a block's packed position to invert ($00, $1C, $FC, $E0), so its X and Y count from the other side."
  },
  {
   "address": 38285,
   "type": "line",
   "text": "Swaps the two 3-bit fields of the packed position byte $F9 (bits 2-4 and 5-7), leaving bits 0-1: for a view turned by an odd number of quarters."
  },
  {
   "address": 38318,
   "type": "line",
   "text": "For a slope (type 4 or more), adds the view turn $28 to the type's lowest two bits, so the slope faces the right way in the turned view. A type byte with bits 5-6 equal to 2 and bit 4 set ($50-$5F, or $D0-$DF with the position's top bit) is left as it is."
  },
  {
   "address": 38356,
   "type": "line",
   "text": "Unpacks a block word ($F8 the type and flags, $F9 the position) for the current view: adds the structure offset $2A/$2B, turns the position (swap_position_fields, view_flips) and the type (turn_block_type), and returns the cell's index in the room grid in $FA/$FB (the position byte and the type byte's top bit, 9 bits: 8 by 8 by 8) and the fill mode, bits 5-6 of the type byte, in $FD."
  },
  {
   "address": 38415,
   "type": "line",
   "text": "Puts one block word into the room grid at $B700 + index: the type (the low 5 bits) in its cell. The fill mode then says what goes under it: 0 nothing, 1 one solid cell (type 2), 3 solid cells down to the bottom of its column, with bit 6 set on the lowest so it is drawn with a base; 2 marks the cell itself, ORing in $C0 for a type of $10 or more (a switch), $60 for types 1-$0F (type 3 so marked is ice, $63) and $20 for type 0 (water)."
  },
  {
   "address": 38508,
   "type": "line",
   "text": "Places the block word $F8/$F9 at its own position and at every fourth position after it, adding 4 to the position byte until it carries: 64 cells, the whole floor, for a word whose position byte is 0-3."
  },
  {
   "address": 38533,
   "type": "line",
   "text": "Builds the room grid from a room record's blocks, with ($F8) pointing at them: the first word is the floor (fill_floor), then block words until $0000. A word of type 2 is followed by a byte naming a structure, which is placed through place_structure. Leaves ($26) at the record's moving pieces."
  },
  {
   "address": 38617,
   "type": "line",
   "text": "Reads the structure number that follows a type-2 block word and places that structure (place_structure)."
  },
  {
   "address": 38627,
   "type": "line",
   "text": "Places a shared structure: finds structure $FD in the structure list at $0400 (find_structure) and places its block words (the same loop as build_room_grid) with the calling word's position as the offset ($2A/$2B) and its bits 5-6 as an extra turn added to the view. Restores the offset, the view and the pointer after."
  },
  {
   "address": 38698,
   "type": "line",
   "text": "Looks for structure number $FD in the list at $0400: records of a number, a length, then block words. Returns ($26) at the first block word and A = $FF when found, A = 0 when the list ends (a length of 0)."
  },
  {
   "address": 38747,
   "type": "line",
   "text": "Fills the tile buffer, 13 pages from $AA80, with $FF: every place empty."
  },
  {
   "address": 38772,
   "type": "line",
   "text": "The tile buffer address of screen place (row $F8, column $F9): $AA80 + row * 128 + column * 8, one 8-byte entry for each place 2 cells wide. Carry set when the place is off the room picture (column 16 or more, row 25 or more)."
  },
  {
   "address": 38812,
   "type": "line",
   "text": "Draws tile A into the 16-byte work cell at $C300 (two cells side by side): ANDs it with the mask for class $FA (16 bytes at $B900 + class * 16) and ORs in the tile's picture, 16 bytes at $BA00 + (code AND $FC) * 4, so four codes share a picture. For codes below $A8 the lowest two bits add edge lines: bit 0 a line along the top of both cells ($55 in their first bytes), bit 1 a line down the right edge. Codes $A8 and up use those bits instead to pick a further picture: the code plus $58 ($98 for codes $C8 and up) plus $20 for each step past the first."
  },
  {
   "address": 38943,
   "type": "line",
   "text": "Points the video chip at bank 3 ($DD00 bits 0-1 = 0) and turns on bitmap mode, multicolour and the bitmap at $2000 of the bank."
  },
  {
   "address": 38984,
   "type": "line",
   "text": "Points the video chip back at bank 0 with the text screen at $0400 and the character ROM ($D018 = $15), multicolour and bitmap mode off. Never called."
  },
  {
   "address": 39022,
   "type": "line",
   "text": "Queues the tiles of one grid cell, code $FA, at screen place (row $2E, column $2F) in the tile buffer, with $FC the depth. A switch ($80 set) uses the 4-byte list at $AA40 + its number * 4, 2 places wide and 2 rows, two rows lower; any other code the 8-byte list at block_tiles + (code AND $3F) * 8, 2 wide and 4 rows. A code with bit 6 set (a column's base) adds a row of base tiles below, block_base_tiles, or for ice ($63) its own."
  },
  {
   "address": 39140,
   "type": "line",
   "text": "The two tiles of a column's base for queue_block_tiles ($88, $8C), then the two for the side of an ice block ($E8, $EC)."
  },
  {
   "address": 39144,
   "type": "line",
   "text": "Queues tile ($FA) at place (row $2E, column $2F) through add_tile, unless it is $FF or off the picture."
  },
  {
   "address": 39175,
   "type": "line",
   "text": "Adds tile $FE with depth $FC to a tile buffer entry ($F8), which holds up to four tiles as code-and-depth pairs, empty pairs $FF. A tile of class $0F replaces the entry. Otherwise a tile of the same class already there is taken out (remove_tile), and the new one goes at the end, the oldest dropped if all four are in use."
  },
  {
   "address": 39273,
   "type": "line",
   "text": "Takes the pair at Y out of a tile buffer entry, moving the pairs after it down and putting $FF $FF at the end."
  },
  {
   "address": 39310,
   "type": "line",
   "text": "Draws one queued tile, A, into the work cell (draw_tile with its class from tile_classes). $FF draws nothing."
  },
  {
   "address": 39365,
   "type": "line",
   "text": "The tile code draw_queued_tile is drawing."
  },
  {
   "address": 39366,
   "type": "line",
   "text": "Composes one screen place (2 cells) in $C300-$C30F from its tile buffer entry ($F8): clears it, then draws the four queued tiles in order. An entry starting $FE is left as it is on the screen (carry set)."
  },
  {
   "address": 39422,
   "type": "line",
   "text": "Sets the border and background to the high nibble of $6B, draws the switch box (through $8903), and falls into draw_picture."
  },
  {
   "address": 39437,
   "type": "line",
   "text": "Copies the room picture to the bitmap: 25 rows of 16 places from the tile buffer, each composed (compose_place) and written 16 bytes at a time from the bitmap address $6F/$70 ($E040, column 8, in play; $E020 on the title), with the colour matrix set to $6A and colour RAM to $6B for both cells."
  },
  {
   "address": 39565,
   "type": "line",
   "text": "Builds the picture of the room grid (build_picture), hides the sprites and redraws the screen."
  },
  {
   "address": 39576,
   "type": "line",
   "text": "Clears the tile buffer and queues the tiles of every cell of the room grid in grid order (queue_block_tiles), at the screen place its position projects to: from row 6, place 7, one row down and one place right for each step in X, one row down and one place left for each step in Y, one row up for each level, with the depth counted up as it goes. Then the compass, block code $64 + (view turn + 2 AND 3), at row 20, place 13 (the bottom right corner), and if the room's clue $29 is set, that switch's symbol (block code $D0 + the switch) at row 20, place 1, the bottom left corner of the room picture beside the panel."
  },
  {
   "address": 39759,
   "type": "line",
   "text": "find_floor_at Gerald's own height ($4A/$4B)."
  },
  {
   "address": 39767,
   "type": "line",
   "text": "The highest piece in Gerald's column (cells $47, $49) at or below the level of height $FC/$FD less one. Returns its level in $41 ($FF for none or outside the room), $40 = 0, and its type in $42, normalised: a type with bit 5 set (a column's base or a decoration) counts as 1, a flat floor, or 0 if its low bits are 0, as water's are ($20), so Gerald falls through water; ice ($63) and switches stay as they are."
  },
  {
   "address": 39864,
   "type": "line",
   "text": "Adds 1 in BCD to the 16-bit number at zero page X, with interrupts off."
  },
  {
   "address": 39879,
   "type": "line",
   "text": "Decimal mode off, interrupts on, return."
  },
  {
   "address": 39882,
   "type": "line",
   "text": "Adds $FA/$FB to the 16-bit number at zero page X in BCD."
  },
  {
   "address": 39900,
   "type": "line",
   "text": "Takes 1 in BCD from the 16-bit number at zero page X."
  },
  {
   "address": 39918,
   "type": "line",
   "text": "$F8/$F9 = 100 * $F8/$F9 / $FA/$FB, in BCD, rounded down: subtracts the divisor from the dividend times 100 until it goes negative, counting."
  },
  {
   "address": 39969,
   "type": "line",
   "text": "Draws digit A in the panel's large digits, 2 by 2 cells from $CA00 + A * 32, at bitmap address ($FA), and moves ($FA) two cells right."
  },
  {
   "address": 40037,
   "type": "line",
   "text": "Draws the three-digit BCD number in $F9 (low digit) and $F8 in large digits at bitmap address ($FA)."
  },
  {
   "address": 40057,
   "type": "line",
   "text": "Adds $FA/$FB to the time ($5E/$5F) in BCD. If the result has a digit in the thousands, the time went below zero: $6C (time up) is set and the time set to 000. Then draws it."
  },
  {
   "address": 40078,
   "type": "line",
   "text": "Adds $FA/$FB to the time; if that makes it more than 150, it is set to 150 and $64 to $FF (the next tick a whole step away). Then draws it at $E288."
  },
  {
   "address": 40125,
   "type": "line",
   "text": "67 bytes nothing reads, in the pattern of block word lists."
  },
  {
   "address": 40192,
   "type": "line",
   "text": "The $9D00 module's jump table, six JMPs. This entry runs build_pieces: a room's moving pieces into the piece table."
  },
  {
   "address": 40195,
   "type": "line",
   "text": "Jump table entry: sort_sprites, every pass of the main loop."
  },
  {
   "address": 40198,
   "type": "line",
   "text": "Jump table entry: apply_sprites, from raster_irq and from burst_animation."
  },
  {
   "address": 40201,
   "type": "line",
   "text": "Jump table entry: run_pieces, every pass of the main loop."
  },
  {
   "address": 40204,
   "type": "line",
   "text": "Jump table entry: draw_object, Gerald or an inhabitant as two sprites."
  },
  {
   "address": 40207,
   "type": "line",
   "text": "Jump table entry: project, a position in the room to the screen."
  },
  {
   "address": 40210,
   "type": "line",
   "text": "Jump table entry: end_pieces; enter_room uses it to give a room with no record an empty piece table."
  },
  {
   "address": 40213,
   "type": "line",
   "text": "Jump table entry: turn_cell, a place in a cell turned by a piece's orientation."
  },
  {
   "address": 40216,
   "type": "line",
   "text": "Builds a mask in $C300-$C37F for a 3-cell-wide, 3-row object at screen place (row $2E, column $2F): starts all set, then for each of the 6 places under it ANDs in the masks ($B900 + class * 16) of every queued tile there that is nearer than the object (its depth in the tile buffer below $30), so scenery in front of a sprite hides it."
  },
  {
   "address": 40241,
   "type": "line",
   "text": "Three rows of one column for build_sprite_mask."
  },
  {
   "address": 40251,
   "type": "line",
   "text": "One place for build_sprite_mask: finds its tile buffer entry (tile_address) and, from the first tile at least as deep as the object, ANDs the masks of the tiles from there into the mask at X."
  },
  {
   "address": 40472,
   "type": "line",
   "text": "Copies 16 bytes of ($F8) AND ($FA) into a sprite column at ($26), every third byte (a sprite row is 3 bytes)."
  },
  {
   "address": 40494,
   "type": "line",
   "text": "For a number A (0-255), returns Y = A / 8 and A = the bit for A AND 7 (from bit_masks): the byte and bit of a 256-bit set such as the jewels collected at $C1C0."
  },
  {
   "address": 40511,
   "type": "line",
   "text": "$01, $02, $04, $08, $10, $20, $40, $80: bit n for n = 0-7."
  },
  {
   "address": 40519,
   "type": "line",
   "text": "Turns the place $FA/$FB in a cell by A quarter turns (A AND 3), inverting each coordinate (255 minus it) instead of negating: 1 gives (Y, 255 - X), 2 gives (255 - X, 255 - Y), 3 gives (255 - Y, X)."
  },
  {
   "address": 40545,
   "type": "line",
   "text": "$FB = 255 - $FB."
  },
  {
   "address": 40562,
   "type": "line",
   "text": "Hands out the next sprite pointer for a shape built at run time: counts next_shape_pointer up to $3F, then wraps it back to $3C, the first pointer the room's fixed pieces did not take. Pointer n is the 64 bytes at $C000 + n * 64, so $30-$3F are $CC00-$CFFF."
  },
  {
   "address": 40580,
   "type": "line",
   "text": "The next sprite pointer next_sprite_shape will hand out."
  },
  {
   "address": 40581,
   "type": "line",
   "text": "Builds the piece table at $C200 from the room record's moving pieces, read from ($26) after build_room_grid. Resets the sprite slots ($3D = 2, after Gerald's two), the clue ($29), the jewel count ($32), $31 and $C2B0-$C2B7, and starts the sprite pointers at $30. Each piece is a byte of type and a byte of position (X, Y and level, packed), turned for the view, then: type 1, a jewel, with its number (skipped if already collected); type 2 in the low 3 bits, a lift; 3, an inhabitant; 4-7, a block that a switch puts in place. Each makes a record of its length less one, the address of the routine that runs it, and its fields."
  },
  {
   "address": 40610,
   "type": "line",
   "text": "Reads the next piece; a zero byte ends the list."
  },
  {
   "address": 40614,
   "type": "line",
   "text": "Ends the piece table with a record that runs pieces_done, keeps the next free sprite pointer, and if the room has a jewel still to take ($32), sets bit 7 of the record's second coordinate byte: the map shows it as a jewel room."
  },
  {
   "address": 40652,
   "type": "line",
   "text": "Unpacks a piece's position: X (bits 2-4 of the second byte), Y (bits 5-7) and the level (bits 0-1 of the second byte and bit 7 of the first), turned for the view (turn_cell on 255 minus the cells, kept to 0-7)."
  },
  {
   "address": 40712,
   "type": "line",
   "text": "A jewel: unless bit (number) of $C1C0 says it was collected, adds a 7-byte record (run by jewel_piece) with its number, X and Y cell, level and sprite slot, takes a sprite pointer for it, and counts it in $32."
  },
  {
   "address": 40796,
   "type": "line",
   "text": "Counts a lift or an inhabitant in $31: with one in the room, the main loop runs the pieces and redraws the sprites on every other pass only, while Gerald's movement still runs every pass. Goes on to the next piece."
  },
  {
   "address": 40811,
   "type": "line",
   "text": "A lift: a 15-byte record (run by lift_piece) with its switch (type bits 3-6, 0 for none), its height ($C205 fraction, $C206 level), its X and Y cell, its speed ($C207/$C208, 8 up or -8 down), its pause at each end (bits 6-7 of the third byte), its top and bottom levels (bits 3-5 and 0-2) and two sprite slots."
  },
  {
   "address": 40941,
   "type": "line",
   "text": "An inhabitant: a 14-byte record (run by inhabitant_piece) with its X and Y cell and level, the middle of the cell ($80, $80), no speed, its kind (type bits 3-6) and its top speed (the third byte), and two sprite slots."
  },
  {
   "address": 41042,
   "type": "line",
   "text": "A block a switch puts in place: an 8-byte record (run by switched_block_piece) holding the block word and the structure or column it places, and its switch number. If the switch is on, the block goes into the grid now; if not, the switch becomes the room's clue ($29), shown in the bottom left corner."
  },
  {
   "address": 41158,
   "type": "line",
   "text": "Is switch A (AND $0F) one of the two on ($36, $37)? Zero flag set if so; if not, it becomes the room's clue ($29)."
  },
  {
   "address": 41171,
   "type": "line",
   "text": "Runs each record in the piece table through the routine its address names, after clearing the lift bit (6) and the bounce bit (5) of $24 and the rebuild flag $25."
  },
  {
   "address": 41204,
   "type": "line",
   "text": "The end of the piece table. If a switched block changed ($25), turns the view by 0 quarters (through $8900), which rebuilds and redraws the room."
  },
  {
   "address": 41215,
   "type": "line",
   "text": "A switched block: when its switch goes on or off, flips bit 7 of $C207 and sets $25 so pieces_done rebuilds the room."
  },
  {
   "address": 41252,
   "type": "line",
   "text": "Moves X to the next record of the piece table and runs it."
  },
  {
   "address": 41260,
   "type": "line",
   "text": "A jewel. If Gerald is in its cell at its level, he takes it: its level becomes $FF, its bit in $C1C0 is set, JEWELS goes up by 1 and is drawn at $F188, the time goes up by 10 (to at most 150), and $79 is set to $FF, which starts the jingle. When it was the room's last jewel, the room's jewel bit is cleared and, if TO MAP is 0, the survey check runs. Otherwise the jewel turns: its colour counter $C2A8 goes up, and once per jewel the sprite is built: projected (project_piece), masked by the scenery in front (build_sprite_mask), and its 48 bytes made from the picture at $C180 ANDed with the mask, each mask row first shifted 4 bits to line up with the sprite."
  },
  {
   "address": 41533,
   "type": "line",
   "text": "The address ($26/$27) of the 64 bytes of sprite pointer A: $CC00 + (A AND $0F) * 64."
  },
  {
   "address": 41550,
   "type": "line",
   "text": "Copies sprite slot X into hardware sprite Y in the shadow registers: pointer, Y, X (doubled, with bit 8 in the MSB bits; $10 further left on the title, whose picture starts 4 cells left), colour, multicolour and visible bits."
  },
  {
   "address": 41627,
   "type": "line",
   "text": "The eight sprite pointers apply_sprites writes to $C7F8."
  },
  {
   "address": 41635,
   "type": "line",
   "text": "The eight sprites' X positions (low bytes) for $D000."
  },
  {
   "address": 41643,
   "type": "line",
   "text": "The eight sprites' Y positions for $D001."
  },
  {
   "address": 41651,
   "type": "line",
   "text": "Bit 8 of the eight X positions, for $D010."
  },
  {
   "address": 41652,
   "type": "line",
   "text": "The sprites in multicolour, for $D01C."
  },
  {
   "address": 41653,
   "type": "line",
   "text": "The sprites shown, for $D015."
  },
  {
   "address": 41654,
   "type": "line",
   "text": "The eight sprites' colours, for $D027."
  },
  {
   "address": 41662,
   "type": "line",
   "text": "Writes the shadow registers to the video chip: pointers, colours, positions, the enable, multicolour and X MSB bits. raster_irq calls it once a frame when $78 says new values are ready, and burst_animation on each frame of the burst."
  },
  {
   "address": 41714,
   "type": "line",
   "text": "Sorts the sprite slots by depth ($C288), nearest last, with a bubble sort over the order list at $C2B8, then copies them in that order into the shadow registers (copy_slot), so later hardware sprites (lower priority) are the ones further back. Sets $78 for raster_irq."
  },
  {
   "address": 41799,
   "type": "line",
   "text": "Projects a piece's cell to the screen: column $2F = 7 + X - Y, row $2E = 8 + X + Y - level, depth $30 = ((X + Y) * 2 + level) * 4."
  },
  {
   "address": 41842,
   "type": "line",
   "text": "The address $F8/$F9 of a 32-byte piece of lift picture A: $C000 + A * 32, the same pieces the switch symbols are made of."
  },
  {
   "address": 41855,
   "type": "line",
   "text": "A lift. Moves only while its switch (0 for none) is on: waits out its pause ($C209), then moves its height by its speed; at the top or bottom level it reverses and waits again. A tick on voice 3 (sawtooth) marks each whole level. Then builds its two sprites (the symbol of its switch, masked by the scenery in front) and, if Gerald is in its cell and his height is below the lift's top by no more than $70, carries him: his height becomes the lift's, his fall stops and bit 6 of $24 is set."
  },
  {
   "address": 42281,
   "type": "line",
   "text": "Clears every third byte of a sprite from ($26) + $2F down: one column."
  },
  {
   "address": 42293,
   "type": "line",
   "text": "Builds an object of two sprites, Gerald or an inhabitant, at screen place (column $FF, row $8C): its mask from the scenery (build_sprite_mask), two shape pointers, then 48 bytes of each from the shape set at ($2A) ($C800 for Gerald), picking one of four 48-byte frames by bits 6-7 of $FE and the second sprite 192 bytes on, each byte ANDed with the mask. Sets both slots' depth, position and colours: the first in multicolour, the second hires."
  },
  {
   "address": 42526,
   "type": "line",
   "text": "The inhabitant's X place before this pass's move, kept by inhabitant_piece in case it has to go back."
  },
  {
   "address": 42527,
   "type": "line",
   "text": "Its X cell before the move."
  },
  {
   "address": 42528,
   "type": "line",
   "text": "Its Y place before the move."
  },
  {
   "address": 42529,
   "type": "line",
   "text": "Its Y cell before the move."
  },
  {
   "address": 42530,
   "type": "line",
   "text": "An inhabitant. Moves by its X and Y speeds ($C209, $C20A), then looks ahead: if the column at a place $70 further on in the direction of its speeds (step_70) has a piece higher than its level, or, unless it is of kind 1, the floor under its new place is lower than its level or is nothing, it goes back, along each axis whose cell the move changed, and that speed is reversed and halved. Draws it (project, then draw_object with shape set $7800, or $7980 for an odd kind). Then steers: each speed moves 4 towards Gerald's side (steer_speed). If it shares Gerald's cell and level, the time goes down by 2 (BCD 9998 through add_to_time), the border takes a colour from CIA 2's timer and then goes black for two frames, and voice 2 buzzes."
  },
  {
   "address": 42989,
   "type": "line",
   "text": "Adds $70 to $F8/$F9, or subtracts it when A is negative: a test place ahead of the inhabitant in the direction of its speed."
  },
  {
   "address": 43019,
   "type": "line",
   "text": "$F8/$F9 = A, sign-extended."
  },
  {
   "address": 43032,
   "type": "line",
   "text": "Moves the speed A by 4 towards Gerald. The caller's PLP leaves the N flag of Gerald's position less the inhabitant's along this axis (16 bits, the high byte last): clear, Gerald is on the plus side and the speed goes up; set, it goes down. Going up it stops at the top speed $C20C. Going down it compares the speed less 4 with the top speed (CMP, then BMI), which keeps a negative speed growing until it falls below -128 plus the top speed, and only then sets it to minus the top speed: for a top speed of 16 the speed runs out to -112. Only a top speed of 64 holds both ways."
  },
  {
   "address": 43061,
   "type": "line",
   "text": "Projects Gerald's position (X $46/$47, Y $48/$49, height $4A/$4B) to the screen: depth $30 from X + Y doubled plus the height, column ($FE/$FF) from X - Y, row ($8B/$8C) from X + Y - height, the row kept to 26 or less."
  },
  {
   "address": 43166,
   "type": "line",
   "text": "98 bytes nothing reads. They run in groups of four, two bytes below $80 and two of $9C or above, like leftover_C980."
  },
  {
   "address": 43264,
   "type": "line",
   "text": "The tiles of each block type, 8 bytes for each of types $00-$27: four rows of two places, top row first, each a tile code or $FF for nothing. queue_block_tiles reads them at $A900 + type * 8; type 0 is empty, type 1 (a flat floor) has tiles $00 $04 $10 $14 on its bottom two rows."
  },
  {
   "address": 43584,
   "type": "line",
   "text": "The tiles of a switch pad or a clue symbol, 4 bytes for each of switches 0-11: two rows of two places, the switch's symbol drawn in tile codes $A8-$E5 (whose low bits pick the pictures at $BCA0-$BFFF)."
  },
  {
   "address": 43632,
   "type": "line",
   "text": "The 16 bytes where switches 12-15 would find their tiles. No room or structure has a switch numbered above 11, so nothing reads them."
  },
  {
   "address": 47360,
   "type": "line",
   "text": "The 16 masks, one for each tile class, 16 bytes each (two cells side by side): bits set where the tiles already in a place show through. draw_tile ANDs the place with its tile's mask before ORing the tile in, and build_sprite_mask ANDs a sprite's mask with them so nearer scenery hides it."
  },
  {
   "address": 47368,
   "type": "line",
   "text": "The right-hand cell of mask 0: build_sprite_mask reads each mask's two cells through $B900 and $B908 with the class * 16 as the index."
  },
  {
   "address": 47616,
   "type": "line",
   "text": "The pictures of tile codes $00-$A7, 16 bytes each (two multicolour cells side by side), one for every four codes at $BA00 + (code AND $FC) * 4: the faces, edges and tops of the blocks, slopes and pieces."
  },
  {
   "address": 48288,
   "type": "line",
   "text": "Pictures for tile codes $A8 and up, 16 bytes each: the parts of the switch symbols drawn on switch pads and clues, and the side of an ice block. draw_tile reaches them through the code's lowest two bits (code plus $58, or $98 from $C8, plus $20 for each step)."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "The pieces the switch symbols are made of, 32 bytes each, a column 16 pixels tall in two 16-byte halves: draw_switch_symbol puts two of them side by side in the panel's switch box, choosing them by the switch number's bits, and lift_piece masks two of them into a lift's sprites ($C000 + n * 32). Switches 0-11 use $C000-$C17F."
  },
  {
   "address": 49536,
   "type": "line",
   "text": "The jewel's sprite picture, 48 bytes (16 rows of 3), which jewel_piece ANDs with the mask of the scenery in front of it. Then 16 bytes, $C1B0-$C1BF, that nothing reads."
  },
  {
   "address": 50048,
   "type": "line",
   "text": "128 bytes nothing reads, after the work cells at $C300-$C37F: pairs of bytes in the pattern of block words, left in SPIN3 from the author's memory."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "Gerald's shape set, 384 bytes in the layout of shapes_set_b: four frames of two sprites. draw_object reads it through $2A/$2B = $C800; change_shape swaps it with the two spare sets."
  },
  {
   "address": 51584,
   "type": "line",
   "text": "128 bytes nothing reads, after the shape set, in groups of four like unused_A89E: two bytes below $80, then two of $9C or above."
  },
  {
   "address": 51712,
   "type": "line",
   "text": "The panel's large digits 0-9, 32 bytes each: 16 bytes for the top two cells, then 16 for the bottom two (draw_big_digit)."
  },
  {
   "address": 52032,
   "type": "line",
   "text": "192 bytes nothing reads, after the digits, again in the pattern of block words; the sprite shapes built at run time follow at $CC00."
  }
 ]
}