{
 "schema": 1,
 "platform": "c64",
 "game": "space-rogue",
 "part": "station",
 "build": "",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    0,
    16383,
    "Engine"
   ],
   [
    25088,
    42239,
    "Engine"
   ],
   [
    48384,
    58367,
    "Engine"
   ],
   [
    60160,
    65535,
    "Engine"
   ]
  ],
  "extra": [],
  "elsewhere": [
   [
    0,
    16383,
    "Engine"
   ],
   [
    25088,
    42239,
    "Engine"
   ],
   [
    48384,
    58367,
    "Engine"
   ],
   [
    60160,
    65535,
    "Engine"
   ]
  ]
 },
 "blocks": [
  {
   "start": 16384,
   "end": 25087,
   "type": "Byte"
  },
  {
   "start": 42240,
   "end": 42240,
   "type": "Byte"
  },
  {
   "start": 42241,
   "end": 42610,
   "type": "Code"
  },
  {
   "start": 42611,
   "end": 42611,
   "type": "Byte"
  },
  {
   "start": 42612,
   "end": 43015,
   "type": "Code"
  },
  {
   "start": 43016,
   "end": 43028,
   "type": "Byte"
  },
  {
   "start": 43029,
   "end": 43637,
   "type": "Code"
  },
  {
   "start": 43638,
   "end": 43685,
   "type": "Byte"
  },
  {
   "start": 43686,
   "end": 43821,
   "type": "Code"
  },
  {
   "start": 43822,
   "end": 43863,
   "type": "Byte"
  },
  {
   "start": 43864,
   "end": 44586,
   "type": "Code"
  },
  {
   "start": 44587,
   "end": 44617,
   "type": "Byte"
  },
  {
   "start": 44618,
   "end": 45156,
   "type": "Code"
  },
  {
   "start": 45157,
   "end": 45281,
   "type": "Byte"
  },
  {
   "start": 45282,
   "end": 45980,
   "type": "Code"
  },
  {
   "start": 45981,
   "end": 46047,
   "type": "Byte"
  },
  {
   "start": 46048,
   "end": 46627,
   "type": "Code"
  },
  {
   "start": 46628,
   "end": 46701,
   "type": "Byte"
  },
  {
   "start": 46702,
   "end": 46882,
   "type": "Code"
  },
  {
   "start": 46883,
   "end": 46901,
   "type": "Byte"
  },
  {
   "start": 46902,
   "end": 47177,
   "type": "Code"
  },
  {
   "start": 47178,
   "end": 47202,
   "type": "Byte"
  },
  {
   "start": 47203,
   "end": 47411,
   "type": "Code"
  },
  {
   "start": 47412,
   "end": 47417,
   "type": "Byte"
  },
  {
   "start": 47418,
   "end": 47543,
   "type": "Code"
  },
  {
   "start": 47544,
   "end": 47547,
   "type": "Byte"
  },
  {
   "start": 47548,
   "end": 47575,
   "type": "Code"
  },
  {
   "start": 47576,
   "end": 47580,
   "type": "Byte"
  },
  {
   "start": 47581,
   "end": 48338,
   "type": "Code"
  },
  {
   "start": 48339,
   "end": 48383,
   "type": "Byte"
  },
  {
   "start": 58368,
   "end": 59303,
   "type": "Code"
  },
  {
   "start": 59304,
   "end": 59334,
   "type": "Byte"
  },
  {
   "start": 59335,
   "end": 59448,
   "type": "Code"
  },
  {
   "start": 59449,
   "end": 59468,
   "type": "Byte"
  },
  {
   "start": 59469,
   "end": 59642,
   "type": "Code"
  },
  {
   "start": 59643,
   "end": 60159,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 16384,
   "name": "tile_pixels",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "tile_pixels_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "tile_pixels_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19200,
   "name": "tile_row11_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19328,
   "name": "tile_row11_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "tile_pixels_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "tile_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20606,
   "name": "a_507E",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20607,
   "name": "a_507F",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20608,
   "name": "tile_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20734,
   "name": "a_50FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20735,
   "name": "a_50FF",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 20736,
   "name": "map_grid",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21600,
   "name": "map_grid_y4",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21760,
   "name": "map_header",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21776,
   "name": "map_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21808,
   "name": "map_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21840,
   "name": "map_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21872,
   "name": "map_picture",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21904,
   "name": "map_type",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21936,
   "name": "map_entry_extra",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21968,
   "name": "map_messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21969,
   "name": "f_55D1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22032,
   "name": "base_kind",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22033,
   "name": "visitor_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22034,
   "name": "visitor_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22040,
   "name": "map_actions",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22048,
   "name": "f_5620",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22049,
   "name": "f_5621",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22050,
   "name": "f_5622",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22064,
   "name": "f_5630",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22065,
   "name": "f_5631",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22066,
   "name": "f_5632",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22067,
   "name": "f_5633",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22072,
   "name": "cargo_base_prices",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22077,
   "name": "cargo_availability",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22272,
   "name": "talk_offsets",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 22273,
   "name": "f_5701",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 22336,
   "name": "talk_00",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22430,
   "name": "talk_01",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22542,
   "name": "talk_02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22606,
   "name": "talk_03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22730,
   "name": "talk_04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22884,
   "name": "talk_05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22938,
   "name": "talk_06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23126,
   "name": "talk_07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23212,
   "name": "talk_08",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23266,
   "name": "talk_09",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23322,
   "name": "talk_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23418,
   "name": "talk_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23512,
   "name": "talk_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23682,
   "name": "talk_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23762,
   "name": "talk_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23850,
   "name": "talk_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23924,
   "name": "talk_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23998,
   "name": "talk_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24038,
   "name": "talk_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24164,
   "name": "talk_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24226,
   "name": "talk_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24284,
   "name": "talk_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24390,
   "name": "talk_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24472,
   "name": "talk_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24536,
   "name": "talk_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24582,
   "name": "talk_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24632,
   "name": "talk_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24724,
   "name": "talk_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24808,
   "name": "talk_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24874,
   "name": "talk_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24910,
   "name": "talk_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25020,
   "name": "talk_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42240,
   "name": "base_view_link",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42241,
   "name": "station_view_seg1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42260,
   "name": "b_A514",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42263,
   "name": "b_A517",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42317,
   "name": "r_A54D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42318,
   "name": "load_land_tiles",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42333,
   "name": "base_screen",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42357,
   "name": "load_talk",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42372,
   "name": "arrival_message",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42401,
   "name": "b_A5A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42433,
   "name": "b_A5C1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42439,
   "name": "b_A5C7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42442,
   "name": "b_A5CA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42460,
   "name": "b_A5DC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42475,
   "name": "b_A5EB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42478,
   "name": "b_A5EE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42520,
   "name": "b_A618",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42538,
   "name": "b_A62A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42542,
   "name": "j_A62E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42561,
   "name": "b_A641",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42570,
   "name": "b_A64A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42585,
   "name": "b_A659",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42597,
   "name": "b_A665",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42601,
   "name": "b_A669",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42611,
   "name": "leave_base",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 42612,
   "name": "base_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42616,
   "name": "b_A678",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42644,
   "name": "a_A694",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42645,
   "name": "a_A695",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 42646,
   "name": "b_A696",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42701,
   "name": "b_A6CD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42704,
   "name": "j_A6D0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 42726,
   "name": "b_A6E6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42753,
   "name": "slide_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42776,
   "name": "b_A718",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42791,
   "name": "r_A727",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42792,
   "name": "b_A728",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42793,
   "name": "r_A729",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42794,
   "name": "move_wander",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 42818,
   "name": "b_A742",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42830,
   "name": "move_wander_rooms",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42854,
   "name": "move_watch",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42885,
   "name": "move_chase",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42895,
   "name": "b_A78F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42910,
   "name": "r_A79E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 42911,
   "name": "random_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42930,
   "name": "step_to_player",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42947,
   "name": "b_A7C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42948,
   "name": "b_A7C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42965,
   "name": "b_A7D5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42966,
   "name": "b_A7D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 42969,
   "name": "step_target_kind",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42991,
   "name": "set_still",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 42996,
   "name": "b_A7F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43007,
   "name": "b_A7FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43014,
   "name": "f_A806",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 43015,
   "name": "f_A807",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 43016,
   "name": "npc_moves",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43024,
   "name": "str_hic",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43029,
   "name": "try_step",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43067,
   "name": "b_A83B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43069,
   "name": "b_A83D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43076,
   "name": "b_A844",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43112,
   "name": "b_A868",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43114,
   "name": "entry_blocks",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43120,
   "name": "b_A870",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43131,
   "name": "b_A87B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43133,
   "name": "b_A87D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43134,
   "name": "r_A87E",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43135,
   "name": "open_door",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43168,
   "name": "close_door",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43206,
   "name": "door_frame",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43242,
   "name": "door_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43269,
   "name": "b_A905",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43271,
   "name": "base_act",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43301,
   "name": "b_A925",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43312,
   "name": "player_act",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43336,
   "name": "r_A948",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43337,
   "name": "b_A949",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43346,
   "name": "b_A952",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43405,
   "name": "b_A98D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43408,
   "name": "entry_action",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43423,
   "name": "b_A99F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43425,
   "name": "find_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43432,
   "name": "b_A9A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43435,
   "name": "b_A9AB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43447,
   "name": "b_A9B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43465,
   "name": "b_A9C9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43495,
   "name": "b_A9E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43503,
   "name": "j_A9EF",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43509,
   "name": "b_A9F5",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43518,
   "name": "a_A9FE",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43526,
   "name": "a_AA06",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43528,
   "name": "b_AA08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43531,
   "name": "r_AA0B",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43532,
   "name": "base_menu",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43540,
   "name": "b_AA14",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43586,
   "name": "b_AA42",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43593,
   "name": "b_AA49",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43612,
   "name": "b_AA5C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43619,
   "name": "b_AA63",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43638,
   "name": "base_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43667,
   "name": "a_AA93",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 43670,
   "name": "around_x",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43678,
   "name": "around_y",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43686,
   "name": "do_action",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43699,
   "name": "r_AAB3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 43700,
   "name": "act_notice",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43712,
   "name": "act_ship",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43722,
   "name": "act_alarm_plate",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43734,
   "name": "act_hive",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43761,
   "name": "act_read",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43822,
   "name": "action_routines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 43823,
   "name": "f_AB2F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 43840,
   "name": "str_hcode",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43864,
   "name": "talk_to",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 43880,
   "name": "b_AB68",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43887,
   "name": "b_AB6F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43894,
   "name": "b_AB76",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43901,
   "name": "b_AB7D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43908,
   "name": "b_AB84",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43911,
   "name": "status_pages",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 43917,
   "name": "j_AB8D",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 43953,
   "name": "b_ABB1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43959,
   "name": "b_ABB7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43965,
   "name": "b_ABBD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 43971,
   "name": "status_ship",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44017,
   "name": "b_ABF1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44035,
   "name": "b_AC03",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44055,
   "name": "b_AC17",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44080,
   "name": "b_AC30",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44103,
   "name": "b_AC47",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44123,
   "name": "b_AC5B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44235,
   "name": "b_ACCB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44252,
   "name": "r_ACDC",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44253,
   "name": "status_onboard",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44268,
   "name": "b_ACEC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44293,
   "name": "b_AD05",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44310,
   "name": "b_AD16",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44322,
   "name": "b_AD22",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44355,
   "name": "b_AD43",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44362,
   "name": "j_AD4A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44374,
   "name": "status_person",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44505,
   "name": "b_ADD9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44530,
   "name": "b_ADF2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44547,
   "name": "r_AE03",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44548,
   "name": "print_standing",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44568,
   "name": "print_system_ok",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44580,
   "name": "b_AE24",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44586,
   "name": "f_AE2A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 44587,
   "name": "shield_digits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44590,
   "name": "status_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44618,
   "name": "cargo_merchant",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 44636,
   "name": "j_AE5C",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44675,
   "name": "b_AE83",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44681,
   "name": "b_AE89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44684,
   "name": "cargo_buy",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44688,
   "name": "b_AE90",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44711,
   "name": "b_AEA7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44776,
   "name": "j_AEE8",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44791,
   "name": "cargo_sell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44808,
   "name": "b_AF08",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44822,
   "name": "j_AF16",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 44838,
   "name": "b_AF26",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44846,
   "name": "b_AF2E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44869,
   "name": "b_AF45",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44872,
   "name": "sell_one",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44909,
   "name": "b_AF6D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44915,
   "name": "buy_one",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44937,
   "name": "b_AF89",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44950,
   "name": "b_AF96",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 44960,
   "name": "pick_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 44995,
   "name": "r_AFC3",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 44996,
   "name": "shop_anything_else",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45008,
   "name": "shop_bought",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45023,
   "name": "shop_short",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45035,
   "name": "shop_good_day",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45047,
   "name": "list_goods",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45051,
   "name": "b_AFFB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45095,
   "name": "cargo_price",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45116,
   "name": "b_B03C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45142,
   "name": "b_B056",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45153,
   "name": "b_B061",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45157,
   "name": "cargo_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45282,
   "name": "outfitter",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45300,
   "name": "j_B0F4",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45349,
   "name": "b_B125",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45355,
   "name": "b_B12B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45367,
   "name": "b_B137",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45373,
   "name": "b_B13D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45379,
   "name": "b_B143",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45382,
   "name": "j_B146",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45388,
   "name": "b_B14C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45394,
   "name": "buy_laser",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45406,
   "name": "j_B15E",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45445,
   "name": "laser_bought",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45453,
   "name": "b_B18D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45456,
   "name": "b_B190",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45479,
   "name": "b_B1A7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45487,
   "name": "buy_shield",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45499,
   "name": "j_B1BB",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45538,
   "name": "r_B1E2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45539,
   "name": "shield_bought",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45589,
   "name": "b_B215",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45604,
   "name": "b_B224",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45607,
   "name": "b_B227",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45631,
   "name": "buy_ecm",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45643,
   "name": "j_B24B",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45682,
   "name": "r_B272",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45683,
   "name": "ecm_bought",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45716,
   "name": "b_B294",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45732,
   "name": "buy_special",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45744,
   "name": "j_B2B0",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 45782,
   "name": "b_B2D6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45795,
   "name": "b_B2E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45799,
   "name": "s_B2E7",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 45814,
   "name": "b_B2F6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45823,
   "name": "b_B2FF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45841,
   "name": "b_B311",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45860,
   "name": "b_B324",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45874,
   "name": "b_B332",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45880,
   "name": "b_B338",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45893,
   "name": "b_B345",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45912,
   "name": "b_B358",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45915,
   "name": "s_B35B",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 45924,
   "name": "shield_price",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45948,
   "name": "r_B37C",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 45949,
   "name": "shop_refuse",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 45966,
   "name": "b_B38E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 45969,
   "name": "shop_no_room",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 45970,
   "name": "s_B392",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 45976,
   "name": "s_B398",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 45981,
   "name": "outfitter_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46023,
   "name": "f_B3C7",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46024,
   "name": "f_B3C8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46025,
   "name": "laser_prices",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46031,
   "name": "f_B3CF",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46032,
   "name": "f_B3D0",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46033,
   "name": "shield_prices",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46039,
   "name": "ecm_prices",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46040,
   "name": "f_B3D8",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 46045,
   "name": "ecm_levels",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46048,
   "name": "repair_shop",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 46066,
   "name": "j_B3F2",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46104,
   "name": "b_B418",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46110,
   "name": "b_B41E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46116,
   "name": "b_B424",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46119,
   "name": "j_B427",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46125,
   "name": "buy_ordnance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46137,
   "name": "j_B439",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46140,
   "name": "s_B43C",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46151,
   "name": "s_B447",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46161,
   "name": "s_B451",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46170,
   "name": "r_B45A",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46171,
   "name": "b_B45B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46211,
   "name": "b_B483",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46228,
   "name": "b_B494",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46249,
   "name": "fix_armour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46275,
   "name": "b_B4C3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46320,
   "name": "b_B4F0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46324,
   "name": "b_B4F4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46384,
   "name": "b_B530",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46393,
   "name": "b_B539",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46408,
   "name": "b_B548",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46411,
   "name": "b_B54B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46419,
   "name": "b_B553",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46439,
   "name": "fix_system",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46449,
   "name": "b_B571",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46458,
   "name": "b_B57A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46468,
   "name": "j_B584",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46480,
   "name": "b_B590",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46496,
   "name": "b_B5A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46533,
   "name": "s_B5C5",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46560,
   "name": "s_B5E0",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46578,
   "name": "r_B5F2",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46579,
   "name": "b_B5F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46607,
   "name": "b_B60F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46628,
   "name": "repair_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46666,
   "name": "system_bits",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46672,
   "name": "ordnance_kind",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46678,
   "name": "ordnance_count",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46684,
   "name": "ordnance_prices",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46690,
   "name": "ordnance_room",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46696,
   "name": "system_repair_prices",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 46702,
   "name": "find_adjacent",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46740,
   "name": "b_B694",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46743,
   "name": "b_B697",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46752,
   "name": "b_B6A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46782,
   "name": "b_B6BE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46785,
   "name": "look_square",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46793,
   "name": "j_B6C9",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46841,
   "name": "b_B6F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46844,
   "name": "b_B6FC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46848,
   "name": "r_B700",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46849,
   "name": "b_B701",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46883,
   "name": "str_which_way",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46902,
   "name": "act_lock",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46920,
   "name": "b_B748",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46959,
   "name": "b_B76F",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46961,
   "name": "s_B771",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46962,
   "name": "j_B772",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 46966,
   "name": "r_B776",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 46967,
   "name": "use_card",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 46976,
   "name": "b_B780",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46982,
   "name": "b_B786",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 46984,
   "name": "s_B788",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 46995,
   "name": "b_B793",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47006,
   "name": "pick_lock",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47022,
   "name": "b_B7AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47052,
   "name": "b_B7CC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47055,
   "name": "b_B7CF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47063,
   "name": "b_B7D7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47076,
   "name": "b_B7E4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47082,
   "name": "act_safe",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47120,
   "name": "r_B810",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47121,
   "name": "safe_loot",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47147,
   "name": "lock_menu",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47161,
   "name": "j_B839",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47178,
   "name": "lock_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47203,
   "name": "guards_check",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47205,
   "name": "b_B865",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47221,
   "name": "b_B875",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47225,
   "name": "b_B879",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47236,
   "name": "b_B884",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47242,
   "name": "b_B88A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47248,
   "name": "b_B890",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47281,
   "name": "b_B8B1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47288,
   "name": "b_B8B8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47352,
   "name": "b_B8F8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47364,
   "name": "b_B904",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47367,
   "name": "j_B907",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 47377,
   "name": "entry_distance",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47390,
   "name": "b_B91E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47405,
   "name": "b_B92D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47411,
   "name": "r_B933",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47412,
   "name": "fine_texts",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47413,
   "name": "f_B935",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 47416,
   "name": "fines",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 47418,
   "name": "act_item",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47488,
   "name": "b_B980",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47489,
   "name": "s_B981",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47507,
   "name": "r_B993",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 47508,
   "name": "act_coil",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 47534,
   "name": "b_B9AE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47544,
   "name": "item_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47548,
   "name": "show_credits",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 47576,
   "name": "str_crs",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47581,
   "name": "free_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47583,
   "name": "b_B9DF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47591,
   "name": "b_B9E7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47593,
   "name": "remove_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47629,
   "name": "wall_edges",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47635,
   "name": "b_BA13",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47648,
   "name": "b_BA20",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47659,
   "name": "b_BA2B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47668,
   "name": "b_BA34",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47688,
   "name": "b_BA48",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47696,
   "name": "b_BA50",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47704,
   "name": "b_BA58",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47712,
   "name": "b_BA60",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47730,
   "name": "b_BA72",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47757,
   "name": "b_BA8D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47761,
   "name": "b_BA91",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47769,
   "name": "b_BA99",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47771,
   "name": "b_BA9B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47774,
   "name": "b_BA9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47782,
   "name": "b_BAA6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47786,
   "name": "wall_flag",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47806,
   "name": "b_BABE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47819,
   "name": "b_BACB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47821,
   "name": "b_BACD",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47835,
   "name": "b_BADB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47838,
   "name": "b_BADE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47851,
   "name": "b_BAEB",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47854,
   "name": "sight",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47858,
   "name": "s_BAF2",
   "type": "Subroutine",
   "kind": "auto"
  },
  {
   "address": 47871,
   "name": "b_BAFF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47879,
   "name": "b_BB07",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47883,
   "name": "flood_fill",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 47897,
   "name": "b_BB19",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47902,
   "name": "b_BB1E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47916,
   "name": "b_BB2C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47929,
   "name": "b_BB39",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47937,
   "name": "b_BB41",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47954,
   "name": "b_BB52",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47969,
   "name": "b_BB61",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 47992,
   "name": "b_BB78",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48007,
   "name": "b_BB87",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48029,
   "name": "push_seed",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48047,
   "name": "r_BBAF",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48048,
   "name": "mark_cell",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48066,
   "name": "b_BBC2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48073,
   "name": "r_BBC9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 48074,
   "name": "cell_wall",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48092,
   "name": "cell_marked",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48105,
   "name": "bartender",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 48109,
   "name": "b_BBED",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48115,
   "name": "b_BBF3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48141,
   "name": "b_BC0D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48148,
   "name": "j_BC14",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 48184,
   "name": "b_BC38",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48204,
   "name": "b_BC4C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48229,
   "name": "b_BC65",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48254,
   "name": "b_BC7E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48279,
   "name": "b_BC97",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48286,
   "name": "b_BC9E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48297,
   "name": "b_BCA9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48302,
   "name": "b_BCAE",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48312,
   "name": "pick_rumour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 48337,
   "name": "b_BCD1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 48339,
   "name": "bar_menu_items",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58368,
   "name": "raise_alarm",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58384,
   "name": "b_E410",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58388,
   "name": "b_E414",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58407,
   "name": "b_E427",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58422,
   "name": "r_E436",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58423,
   "name": "clear_text_page",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58476,
   "name": "base_setup",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58486,
   "name": "b_E476",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58496,
   "name": "b_E480",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58506,
   "name": "b_E48A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58516,
   "name": "b_E494",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58526,
   "name": "b_E49E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58536,
   "name": "b_E4A8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58546,
   "name": "b_E4B2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58556,
   "name": "b_E4BC",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58564,
   "name": "b_E4C4",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58609,
   "name": "b_E4F1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58611,
   "name": "b_E4F3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58631,
   "name": "b_E507",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58636,
   "name": "b_E50C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58648,
   "name": "b_E518",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58657,
   "name": "b_E521",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58660,
   "name": "b_E524",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58680,
   "name": "b_E538",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58684,
   "name": "b_E53C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58696,
   "name": "b_E548",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58701,
   "name": "b_E54D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58714,
   "name": "j_E55A",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 58717,
   "name": "r_E55D",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58718,
   "name": "release_rumour",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58728,
   "name": "r_E568",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58729,
   "name": "talk_script",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 58799,
   "name": "b_E5AF",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58816,
   "name": "b_E5C0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58835,
   "name": "talk_say",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58862,
   "name": "talk_do",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58873,
   "name": "r_E5F9",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 58874,
   "name": "b_E5FA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58902,
   "name": "talk_next",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58921,
   "name": "b_E629",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58924,
   "name": "b_E62C",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58930,
   "name": "b_E632",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58943,
   "name": "talk_answer",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 58958,
   "name": "b_E64E",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58977,
   "name": "b_E661",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 58984,
   "name": "b_E668",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59019,
   "name": "b_E68B",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59021,
   "name": "a_E68D",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59025,
   "name": "j_E691",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 59026,
   "name": "a_E692",
   "type": "AbsoluteAddress",
   "kind": "auto"
  },
  {
   "address": 59029,
   "name": "b_E695",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59033,
   "name": "talk_menu",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59041,
   "name": "b_E6A1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59063,
   "name": "b_E6B7",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59112,
   "name": "b_E6E8",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59139,
   "name": "b_E703",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59172,
   "name": "b_E724",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59174,
   "name": "b_E726",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59178,
   "name": "talk_random",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59188,
   "name": "menu_entry",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59204,
   "name": "b_E744",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59217,
   "name": "talk_target",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59224,
   "name": "talk_set1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59226,
   "name": "b_E75A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59231,
   "name": "talk_set0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59235,
   "name": "talk_inc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59245,
   "name": "talk_dec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59255,
   "name": "talk_give_credits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59269,
   "name": "talk_take_credits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59290,
   "name": "b_E79A",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59293,
   "name": "talk_alarm",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59298,
   "name": "talk_doom",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59304,
   "name": "str_other",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59313,
   "name": "talk_ops",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59314,
   "name": "f_E7B2",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59331,
   "name": "talk_branches",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59335,
   "name": "talk_end",
   "type": "Jump",
   "kind": "user"
  },
  {
   "address": 59354,
   "name": "b_E7DA",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59362,
   "name": "b_E7E2",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59385,
   "name": "b_E7F9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59392,
   "name": "r_E800",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 59393,
   "name": "talk_var",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59430,
   "name": "b_E826",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59448,
   "name": "r_E838",
   "type": "Return",
   "kind": "auto"
  },
  {
   "address": 59449,
   "name": "talk_var_bases",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59450,
   "name": "f_E83A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59459,
   "name": "talk_var_values",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 59460,
   "name": "f_E844",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 59469,
   "name": "mark_in_view",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59473,
   "name": "b_E851",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59492,
   "name": "b_E864",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59495,
   "name": "b_E867",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59502,
   "name": "entry_in_view",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59536,
   "name": "b_E890",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59538,
   "name": "find_watcher",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59540,
   "name": "b_E894",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59549,
   "name": "b_E89D",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59552,
   "name": "b_E8A0",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59554,
   "name": "type_line",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 59558,
   "name": "b_E8A6",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59577,
   "name": "b_E8B9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59601,
   "name": "b_E8D1",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59609,
   "name": "b_E8D9",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59619,
   "name": "b_E8E3",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 59643,
   "name": "cursor_blink",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 59644,
   "name": "seg1a_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59648,
   "name": "j_E900",
   "type": "Jump",
   "kind": "auto"
  },
  {
   "address": 59762,
   "name": "j_E972",
   "type": "Jump",
   "kind": "auto"
  }
 ],
 "comments": [
  {
   "address": 16384,
   "type": "line",
   "text": "LAND.TIL's 128 tiles, each 16 pixels across (two multicolour bytes) and 16 rows high: pixel row r of tile t has its left byte at $4080 + $100 * r + t and its right byte at $4000 + $100 * r + t (draw_chart, $8658). Rows 0-3 from here"
  },
  {
   "address": 17408,
   "type": "line",
   "text": "The tiles' pixel rows 4-7, laid out the same way"
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The tiles' pixel rows 8-10"
  },
  {
   "address": 19200,
   "type": "line",
   "text": "The tiles' pixel row 11, right bytes; draw_chart's patched load at $8711 was left pointing here"
  },
  {
   "address": 19328,
   "type": "line",
   "text": "Pixel row 11's left bytes, where draw_chart's load at $871A was left"
  },
  {
   "address": 19456,
   "type": "line",
   "text": "The tiles' pixel rows 12-15"
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Each tile's kind: bit 7 it blocks the way, bit 6 a door (it opens as it is walked into), bits 4-5 a wall for sight, facing down ($20), right ($10) or both ($30), bit 3 it hides map entries standing on it, bits 0-1 frames of animation (with bit 2 clear the tile itself animates, $8638; with bit 2 set it is a person's picture, which animates as they walk). In LAND.TIL 0 is floor, $80 walls and counters, $84 and $85 people's pictures (tiles $49-$5E), and the doors are tiles $67, $6C and $71"
  },
  {
   "address": 20606,
   "type": "line",
   "text": "Tile $7E's kind; draw_brackets' right-half mask pointer was left here, a row past the tile's last"
  },
  {
   "address": 20607,
   "type": "line",
   "text": "Tile $7F's kind, where the right-half pattern pointer was left"
  },
  {
   "address": 20608,
   "type": "line",
   "text": "Each tile's two colours, the screen matrix byte draw_chart writes for it: the high nybble for bit pair 01, the low for 10"
  },
  {
   "address": 20734,
   "type": "line",
   "text": "Tile $7E's colours, where draw_brackets' left-half mask pointer was left"
  },
  {
   "address": 20735,
   "type": "line",
   "text": "Tile $7F's colours, the last byte of LAND.TIL, where the left-half pattern pointer was left"
  },
  {
   "address": 20736,
   "type": "line",
   "text": "The base map's floor plan, 32 by 32 tiles from LAND.TIL, a row of 32 at a time with the top row (Y = 31) first: the tile at X, Y is at $5100 + 32 * (31 - Y) + X (sector_kind, $2F75)"
  },
  {
   "address": 21600,
   "type": "line",
   "text": "Row 27 of the grid (Y = 4), where sector_kind's patched LDY at $2F95 was left"
  },
  {
   "address": 21760,
   "type": "line",
   "text": "A byte no code reads: 1 in every base map, 2 in the HIVE! map, 0 in the system maps; then four zeros, and at $5505 the base's name, zero-padded (\"Hiathra\" here), printed on docking ($A5A8)"
  },
  {
   "address": 21776,
   "type": "line",
   "text": "Each of the 32 map entries' column, $FF for a free entry; entry 0 is the player"
  },
  {
   "address": 21808,
   "type": "line",
   "text": "Each entry's row, counted from the bottom"
  },
  {
   "address": 21840,
   "type": "line",
   "text": "Each entry's flags: bit 7 solid (it cannot be walked through), bit 6 in the player's sight ($E84D), bit 5 still (its picture does not walk), bits 3-4 its heading, bits 0-2 its motion kind (0 none, 1-4 npc_moves)"
  },
  {
   "address": 21872,
   "type": "line",
   "text": "Each entry's picture, a tile number ($FF none): the player $55, people $49-$5D"
  },
  {
   "address": 21904,
   "type": "line",
   "text": "Each entry's type: below $20 the number of a person's talk script, $20 the cargo merchant, $21 a guard, $22 the outfitter, $23 the repair shop, $24 the bartender; $80 plus an item's number for an item, $A0 a locked door, $A1 a safe; $FF none"
  },
  {
   "address": 21936,
   "type": "line",
   "text": "Each entry's extra byte: for a locked door, nonzero when the key card does not fit it (use_card); a system map's entries index their hazard and gate data with it"
  },
  {
   "address": 21968,
   "type": "line",
   "text": "Each entry's message, a disk text number (a word, $55D0 + 2 * entry), $FFFF for none: what a notice or a sign says"
  },
  {
   "address": 21969,
   "type": "line",
   "text": "The high byte of entry 0's message"
  },
  {
   "address": 22032,
   "type": "line",
   "text": "The base's kind: $10 a mining station, $12 an outpost, $11 the carrier I.S.S. Koth, $13 Hiathra and Denebprime; a system map has its orbits' phase here"
  },
  {
   "address": 22033,
   "type": "line",
   "text": "The column where a visitor may turn up ($E4BC), $FF for none; a system map's second orbit phase"
  },
  {
   "address": 22034,
   "type": "line",
   "text": "The visitor's row; a system map's danger level, followed by its five class weights"
  },
  {
   "address": 22040,
   "type": "line",
   "text": "Each entry's action byte: bits 0-3 the action (action_routines: 1 notice, 2 ship, 3 HIVE!, 4 alarm plate, 5 person, 6 lock, 7 item, 8 sign), bit 7 set when it happens as the player acts toward the entry (fire and a direction, or INSPECT), clear when the player steps onto it, bit 6 once only, bit 5 reached from the squares around, bit 4 ignored by TALK and INSPECT"
  },
  {
   "address": 22048,
   "type": "line",
   "text": "Entry 8's action byte; in a system map the bases' map file names start here, four bytes each ($16B2)"
  },
  {
   "address": 22049,
   "type": "line",
   "text": "Entry 9's action byte; in a system map a base file name's second character"
  },
  {
   "address": 22050,
   "type": "line",
   "text": "Entry 10's action byte; in a system map a base file name's third character"
  },
  {
   "address": 22064,
   "type": "line",
   "text": "Entry 24's action byte; a system map's gate data, four bytes per gate, start here ($7188)"
  },
  {
   "address": 22065,
   "type": "line",
   "text": "Entry 25's action byte; a gate's second byte"
  },
  {
   "address": 22066,
   "type": "line",
   "text": "Entry 26's action byte; a gate's third byte"
  },
  {
   "address": 22067,
   "type": "line",
   "text": "Entry 27's action byte; a gate's fourth byte"
  },
  {
   "address": 22072,
   "type": "line",
   "text": "The base's prices for the five cargo classes (kinds 0-3 the contraband, 4-7 shunt valves to supercomputers, 8-11 methane to dilithium, 12-15 manure to hybrid grain, 16-19 souvenirs to exotic pets), before the random part and the kind's multiplier (cargo_price)"
  },
  {
   "address": 22077,
   "type": "line",
   "text": "The chance, out of 100, that a kind of each class is offered ($AE8C); Hiathra offers no contraband. The rest of the file is zeros"
  },
  {
   "address": 22272,
   "type": "line",
   "text": "TALK's table of the 32 scripts' offsets from $5740, a word each (talk_script reads $5700 + 2 * type). HCODE, the HIVE! game, is loaded over TALK and run from $5700 ($AAE5)"
  },
  {
   "address": 22273,
   "type": "line",
   "text": "The high byte of script 0's offset"
  },
  {
   "address": 22336,
   "type": "line",
   "text": "Script 0, Duchess Avenstar, ruler of the Deneb system: 94 bytes of nodes, its texts the disk texts $C000-$C03F"
  },
  {
   "address": 22430,
   "type": "line",
   "text": "Script 1, the ragged madman who was once Captain Targon: 112 bytes of nodes, its texts the disk texts $C040-$C07F"
  },
  {
   "address": 22542,
   "type": "line",
   "text": "Script 2, the high priestess Vilanie: 64 bytes of nodes, its texts the disk texts $C080-$C0BF"
  },
  {
   "address": 22606,
   "type": "line",
   "text": "Script 3, Droughton Gut, the pirate chief behind the mahogany desk: 124 bytes of nodes, its texts the disk texts $C0C0-$C0FF"
  },
  {
   "address": 22730,
   "type": "line",
   "text": "Script 4, Professor Prosk at his great machine: 154 bytes of nodes, its texts the disk texts $C100-$C13F"
  },
  {
   "address": 22884,
   "type": "line",
   "text": "Script 5, Vengor, the Duchess's bodyguard: 54 bytes of nodes, its texts the disk texts $C140-$C17F"
  },
  {
   "address": 22938,
   "type": "line",
   "text": "Script 6, Ichiki, the Baakili far trader: 188 bytes of nodes, its texts the disk texts $C180-$C1BF"
  },
  {
   "address": 23126,
   "type": "line",
   "text": "Script 7, Omar, the scarred pirate who guards Gut: 86 bytes of nodes, its texts the disk texts $C1C0-$C1FF"
  },
  {
   "address": 23212,
   "type": "line",
   "text": "Script 8, Sister Nycene, deep in meditation: 54 bytes of nodes, its texts the disk texts $C200-$C23F"
  },
  {
   "address": 23266,
   "type": "line",
   "text": "Script 9, Dr. Felsane, absorbed in her studies: 56 bytes of nodes, its texts the disk texts $C240-$C27F"
  },
  {
   "address": 23322,
   "type": "line",
   "text": "Script 10, Flitch, the one-eyed man who sells jobs and information: 96 bytes of nodes, its texts the disk texts $C280-$C2BF"
  },
  {
   "address": 23418,
   "type": "line",
   "text": "Script 11, Borf, the carnivorous creature: 94 bytes of nodes, its texts the disk texts $C2C0-$C2FF"
  },
  {
   "address": 23512,
   "type": "line",
   "text": "Script 12, Orellian, the silver-haired Imperial official: 170 bytes of nodes, its texts the disk texts $C300-$C33F"
  },
  {
   "address": 23682,
   "type": "line",
   "text": "Script 13, Chi-Sha, the red-haired woman: 80 bytes of nodes, its texts the disk texts $C340-$C37F"
  },
  {
   "address": 23762,
   "type": "line",
   "text": "Script 14, the LUX droid: 88 bytes of nodes, its texts the disk texts $C380-$C3BF"
  },
  {
   "address": 23850,
   "type": "line",
   "text": "Script 15, the rusty robot that deals in items: 74 bytes of nodes, its texts the disk texts $C3C0-$C3FF"
  },
  {
   "address": 23924,
   "type": "line",
   "text": "Script 16, the Imperial trooper with the lost leg: 74 bytes of nodes, its texts the disk texts $C400-$C43F"
  },
  {
   "address": 23998,
   "type": "line",
   "text": "Script 17, Drak, who runs the mining operation from his office of monitors: 40 bytes of nodes, its texts the disk texts $C440-$C47F"
  },
  {
   "address": 24038,
   "type": "line",
   "text": "Script 18, Sir Eld in his lavish apartment: 126 bytes of nodes, its texts the disk texts $C480-$C4BF"
  },
  {
   "address": 24164,
   "type": "line",
   "text": "Script 19, Teb, the young miner: 62 bytes of nodes, its texts the disk texts $C4C0-$C4FF"
  },
  {
   "address": 24226,
   "type": "line",
   "text": "Script 20, Blutous, the grizzled old miner: 58 bytes of nodes, its texts the disk texts $C500-$C53F"
  },
  {
   "address": 24284,
   "type": "line",
   "text": "Script 21, Janus, the guide on the I.S.S. Koth: 106 bytes of nodes, its texts the disk texts $C540-$C57F"
  },
  {
   "address": 24390,
   "type": "line",
   "text": "Script 22, Omas, the tall man in the white robe: 82 bytes of nodes, its texts the disk texts $C580-$C5BF"
  },
  {
   "address": 24472,
   "type": "line",
   "text": "Script 23, Dr. Elanius Ferah, the cosmetic surgeon: 64 bytes of nodes, its texts the disk texts $C5C0-$C5FF"
  },
  {
   "address": 24536,
   "type": "line",
   "text": "Script 24, Cebak: 46 bytes of nodes, its texts the disk texts $C600-$C63F"
  },
  {
   "address": 24582,
   "type": "line",
   "text": "Script 25, Tiwa: 50 bytes of nodes, its texts the disk texts $C640-$C67F"
  },
  {
   "address": 24632,
   "type": "line",
   "text": "Script 26, Geul, the music lover by the HIVE! cabinet: 92 bytes of nodes, its texts the disk texts $C680-$C6BF"
  },
  {
   "address": 24724,
   "type": "line",
   "text": "Script 27, the robot with odd appendages: 84 bytes of nodes, its texts the disk texts $C6C0-$C6FF"
  },
  {
   "address": 24808,
   "type": "line",
   "text": "Script 28, Kale, the cloaked bounty hunter: 66 bytes of nodes, its texts the disk texts $C700-$C73F"
  },
  {
   "address": 24874,
   "type": "line",
   "text": "Script 29, Somar Tan, the dealer in exotic goods: 36 bytes of nodes, its texts the disk texts $C740-$C77F"
  },
  {
   "address": 24910,
   "type": "line",
   "text": "Script 30, Veda, the orange-skinned creature: 110 bytes of nodes, its texts the disk texts $C780-$C7BF"
  },
  {
   "address": 25020,
   "type": "line",
   "text": "Script 31, the young Imperial Guard trooper on leave: 68 bytes of nodes, its texts the disk texts $C7C0-$C7FF"
  },
  {
   "address": 42240,
   "type": "line",
   "text": "The high byte ($55) of MAIN's LDY $5530 at $A4FE: station_view runs on from MAIN into this load, which supplies its last byte"
  },
  {
   "address": 42241,
   "type": "line",
   "text": "station_view's tail in SEG1. When the tile under the player has bit 6 of its kind set (a door), a chart cell beside the player is changed: tile $77 into the cell left of the centre ($30) when the door is tile $71, otherwise tile $75 into the cell above it ($26). Then the map's people and things are drawn in ($2F9C), the cells out of the player's sight blacked out and the walls seen from behind given their edges ($BAEE, $E84D, $BA0D), the chart animated and drawn, the pass counted, a tick waited, the guards checked ($B863), and on every other pass the message line's timer counted down, the line scrolled clear at zero"
  },
  {
   "address": 42318,
   "type": "line",
   "text": "Loads LAND.TIL (its name at $0824) to $4000: the base's 128 tiles, their kinds and colours"
  },
  {
   "address": 42333,
   "type": "line",
   "text": "Unpacks LAND.PAC, the base's frame picture, to the $C000 bitmap, then prints the date in window 2 at column $1B, row $48 and the credits below it ($B9BC)"
  },
  {
   "address": 42357,
   "type": "line",
   "text": "Loads TALK (its name at $082D) to $5700: the people's conversation scripts"
  },
  {
   "address": 42372,
   "type": "line",
   "text": "The docking message, in window 4 cleared ($E437). At base L51 only the evacuation recording ($CF2B), and the player goes in. Elsewhere \"Docking privileges at\" ($CF77), the base's name from its map ($5505) and the verdict: denied to a player who shot this base ($0783 = 1, $CF2A) or was thrown out of one ($0783 = 2, $CF29), the PLA PLA returning past MAIN's base loop so the base is never entered"
  },
  {
   "address": 42442,
   "type": "line",
   "text": "The base's kind from its map byte $5610: an outpost ($12) is granted with \"Enjoy your visit with us\" and its cantina ($CF72), or at base L6x with the private-facility warning ($CF25); a mining station ($10) with \"It's always nice to have star travellers stop by\" ($CF71). Both are entered with no bounty or cargo check"
  },
  {
   "address": 42478,
   "type": "line",
   "text": "Any other base asks a player with a bounty ($0726/$0727) to pay it off ($CF28, then AGREE / REFUSE): refusing, or lacking the credits ($CF27), sends the player away; paying clears the bounty, shows the credits left and prints \"Smart move\" ($CF26). Without a bounty, \"granted\" ($CF76)"
  },
  {
   "address": 42542,
   "type": "line",
   "text": "Then \"We've done a routine check of your cargo hold and found\" ($CF70): a check happens one time in two, or one in eight with the forged cargo papers ($074E); it empties every hold slot of cargo kinds 0-3 (the contraband: X-rated holos, explosives, forged CRs, anagathics) and says so ($CF74), or finds \"everything in order\" ($CF75). Last, \"We hope you will have a pleasant visit\" ($CF73)"
  },
  {
   "address": 42611,
   "type": "line",
   "text": "Set nonzero to end the visit: MAIN's base loop ($A4E5) returns to the ship when it is. Set by embarking ($AAC0), by the guards catching the player ($B898) and by a talk script's ending ($E7F4)"
  },
  {
   "address": 42612,
   "type": "line",
   "text": "One step of the base: each of the 31 map entries after the player's with a motion kind (bits 0-2 of $5550) makes its move through npc_moves, the routine's address patched into the JSR at $A693, and every entry's still bit is set from the step it took ($A7EF). Then the player: a drunk player ($083A) staggers in a random direction one time in ten with \"hic!\", otherwise the key or joystick is read ($A33F). Unless fire is held the player steps that way ($A815), a blocked diagonal sliding along the wall ($A701); the heading and still bit are set and the step acted on ($A907)"
  },
  {
   "address": 42644,
   "type": "line",
   "text": "The low byte of the JSR's address, patched with the person's move routine"
  },
  {
   "address": 42645,
   "type": "line",
   "text": "The high byte of the JSR's address"
  },
  {
   "address": 42753,
   "type": "line",
   "text": "For a blocked step of entry $BC: when it was diagonal, tries its horizontal part alone and then its vertical part alone ($A815), takes the first that is free and clears the other in $BD/$BE; carry set when the step was straight or neither part is free"
  },
  {
   "address": 42794,
   "type": "line",
   "text": "Motion kind 1, a wanderer: a person standing on a door tile always moves on, otherwise one time in ten (random below $19); the step is random ($A79F), with no check against doors ($A815)"
  },
  {
   "address": 42830,
   "type": "line",
   "text": "Motion kind 2: one time in ten, a random step, refused when the tile it leads to has bit 6 of its kind set, so the person never walks through a door"
  },
  {
   "address": 42854,
   "type": "line",
   "text": "Motion kind 4: while the person is in the player's view (bit 6 of $5550, set by $E84D), half the time a step toward the player ($A7B2), refused onto a door; out of view, or the other half, as kind 2"
  },
  {
   "address": 42885,
   "type": "line",
   "text": "Motion kind 3, the guards' kind when the alarm is raised: one time in five a wanderer's move, otherwise a step toward the player, sliding around an obstacle ($A701)"
  },
  {
   "address": 42911,
   "type": "line",
   "text": "A random step: X and Y each -1, 0 or 1, kept in $BD/$BE"
  },
  {
   "address": 42930,
   "type": "line",
   "text": "The step toward the player for entry $BC: the signs of the player's position less the entry's, across ($BD) and down ($BE)"
  },
  {
   "address": 42969,
   "type": "line",
   "text": "The kind of the tile entry $BC would step onto, ANDed with $40: nonzero for a door"
  },
  {
   "address": 42991,
   "type": "line",
   "text": "Sets bit 5 of entry Y's flags ($5550) when its step X across, A down was no step at all, clearing it otherwise: draw_map_objects animates a picture only while the bit is clear, so people walk in place only when they move"
  },
  {
   "address": 43014,
   "type": "line",
   "text": "The last bytes of set_still; the move table is read at $A806 + 2 * kind, so kinds 1-4 find their routines from $A808"
  },
  {
   "address": 43015,
   "type": "line",
   "text": "set_still's RTS, also the high byte of the move table's unused entry 0"
  },
  {
   "address": 43016,
   "type": "line",
   "text": "The motion kinds' routines, a word each from kind 1: $A72A wanderer, $A74E wanderer that keeps out of doorways, $A785 chaser, $A766 watcher. A kind above 4 would read the text after it"
  },
  {
   "address": 43024,
   "type": "line",
   "text": "\"hic!\", the drunk player's message, zero-ended"
  },
  {
   "address": 43029,
   "type": "line",
   "text": "Moves map entry A by X across and Y down when it can: carry set, and no move, when an entry with bit 7 of its flags (solid) is there ($A86A) or the tile there has bit 7 of its kind (a wall). Stepping onto a door tile opens it ($A87F), stepping off one closes it behind ($A8A0)"
  },
  {
   "address": 43114,
   "type": "line",
   "text": "Carry set when one of the map entries in sector X, Y ($3030) has bit 7 of its flags set, so it cannot be walked through"
  },
  {
   "address": 43135,
   "type": "line",
   "text": "The door at the target ($94, $95), tile Y, opens: when it is in view ($A8EA), sound 13 and three frames, the door tile plus 1, 2 and 3, each drawn with the whole chart ($A8C6)"
  },
  {
   "address": 43168,
   "type": "line",
   "text": "The door just left ($9B, $9C), tile Y, closes: when in view, sound 13 and the frames back from the tile plus 3 to plus 1"
  },
  {
   "address": 43206,
   "type": "line",
   "text": "Draws one frame of a door: the chart rebuilt around the player ($3069, $2F9C), the door's cell (Y, $99) given tile $9A, the sight worked out ($BAEE, $BA0D) and the chart drawn"
  },
  {
   "address": 43242,
   "type": "line",
   "text": "For the door at X, Y: carry clear and its chart cell in Y when it is in the window around the player and not blacked out (tile $7D)"
  },
  {
   "address": 43312,
   "type": "line",
   "text": "After the player's step: when fire is pressed (then released), or the key was space, '0' or Return, the player acts. With no direction the base menu opens ($AA0C); with one, the entry on that square is acted on ($A990 with A = 1), and when there is none and the square is a blocking tile whose kind has bits 4-5 clear (a counter), the entry beyond it, for a straight step"
  },
  {
   "address": 43408,
   "type": "line",
   "text": "Finds the entry at the player's place, or with A nonzero the one at ($E4, $E5) ($A9A1), and returns its action byte ($5618) in X, 0 for none; an action byte with bit 6 set is cleared once found, so that action happens only once"
  },
  {
   "address": 43425,
   "type": "line",
   "text": "With A = 0: an entry under the player whose action byte is positive, or failing that one on the eight squares around whose action byte has bit 5 set. With A nonzero: the entry at ($E4, $E5) whose action byte is negative (a person or a thing to work), unless the alarm value has bit 7 set. X holds the action byte and Y the entry, Z set when none"
  },
  {
   "address": 43518,
   "type": "line",
   "text": "The CPX's operand, patched with the row to match"
  },
  {
   "address": 43526,
   "type": "line",
   "text": "The branch patched by find_entry: BPL ($10) to accept a positive action byte, BMI ($30) a negative one"
  },
  {
   "address": 43532,
   "type": "line",
   "text": "The base menu at column $1B, row $AF: TALK, INSPECT, STATUS and DONE, INSPECT dimmed while the alarm value has bit 7 set ($AA93). TALK finds a person on the four squares around or across a counter ($B66E) and talks ($AB58), or says \"no one here\" ($CF62); INSPECT finds a thing ($B66E with A = $FF) whose action byte is negative and acts on it, or says \"nothing here\" ($CF63); STATUS shows the status pages in window 4 ($AB87)"
  },
  {
   "address": 43638,
   "type": "line",
   "text": "The base menu's item addresses: TALK, INSPECT, STATUS and DONE (the last, at $AA7C, is $0D2A, MAIN's \"DONE\", whose bytes read as \"*\" and Return); then the three texts zero-ended and at $AA92 the four items' flags"
  },
  {
   "address": 43667,
   "type": "line",
   "text": "INSPECT's flag, 0 (dimmed) while the alarm value is negative; TALK's flag before it is never changed"
  },
  {
   "address": 43670,
   "type": "line",
   "text": "The eight squares around the player, across ($AA96) and down ($AA9E): find_entry looks there for an entry whose action byte has bit 5 set"
  },
  {
   "address": 43678,
   "type": "line",
   "text": "The same eight squares' rows"
  },
  {
   "address": 43686,
   "type": "line",
   "text": "Runs action X (its low four bits) for entry Y: the routine's address less one, from action_routines, pushed and returned to"
  },
  {
   "address": 43700,
   "type": "line",
   "text": "Action 1, a notice: prints the entry's message ($55D0 + 2 * entry) as a message ($9ADC)"
  },
  {
   "address": 43712,
   "type": "line",
   "text": "Action 2, the ship: \"Embarking on ship\" ($CECE) and the visit ends ($A673)"
  },
  {
   "address": 43722,
   "type": "line",
   "text": "Action 4, an alarm plate: \"You stepped on an alarm plate!\" ($CECD) and the alarm raised with the value $A0 ($E400)"
  },
  {
   "address": 43734,
   "type": "line",
   "text": "Action 3, the HIVE! cabinet: loads HCODE ($AB40) to $5700 and runs it; afterwards, with the data disk asked for, TALK and LAND.TIL are loaded back over it"
  },
  {
   "address": 43761,
   "type": "line",
   "text": "Action 8, a sign on a wall: when the wall faces the player (its cell's flag at $FA63, set by $BA0D, is zero), window 4 cleared, \"The sign reads:\" and the entry's message, then a key is waited for"
  },
  {
   "address": 43822,
   "type": "line",
   "text": "The nine actions' routines, the address less one of each (they are reached by RTS): 0 nothing ($AAB3), 1 notice, 2 ship, 3 HIVE!, 4 alarm plate, 5 person ($AB58), 6 locked door or safe ($B736), 7 item ($B93A), 8 sign"
  },
  {
   "address": 43823,
   "type": "line",
   "text": "The high byte of action 0's address"
  },
  {
   "address": 43840,
   "type": "line",
   "text": "\"HCODE\", the HIVE! game's file name, then at $AB46 \"The sign reads:\" with two Returns"
  },
  {
   "address": 43864,
   "type": "line",
   "text": "Talks to the person at entry Y; its type ($5590) says who: $21 a guard, who ignores the player ($CED0); $20 the cargo merchant ($AE4A); $22 the outfitter ($B0E2); $23 the repair and supply shop ($B3E0); $24 the bartender ($BBE9); any other type is the number of the person's script in TALK ($E569)"
  },
  {
   "address": 43911,
   "type": "line",
   "text": "The status pages, from the base menu and from Navigation's STATUS ($26A8): a menu of SHIP, ONBOARD, PERSON and DONE at column X, row Y, items A wide, put up again after each page until DONE is chosen"
  },
  {
   "address": 43971,
   "type": "line",
   "text": "The SHIP page: \"I.S. Jolly Roger\" ($CFFF), the laser by name ($CFFE less the beam, $0739: garnet, beryl, sapphire, particle), the plasma torpedoes, SM-1 and Nova missiles when there are any, the fore and aft shields' grades (1-3, the nybbles of $073A) and the ECM's percentage. Then DAMAGE CONTROL: the armour left out of the ship's full armour, and ok or bad for the laser, launcher, engine and fore shield, then the aft shield and the ECM when the ship has them ($AE18)"
  },
  {
   "address": 44253,
   "type": "line",
   "text": "The ONBOARD page: the five pieces of onboard equipment the player owns ($073D-$0741, named from $CE89: stealth box, beam lock, turbo thruster, repair droid, null damper), or \"<none>\"; then \"Cargo Paid\" and each hold slot from the top, its cargo's name ($2EF7) and what was paid for it ($076F), or \"<empty>\""
  },
  {
   "address": 44374,
   "type": "line",
   "text": "The PERSON page: the player's name ($0711), the race, the credits, the bounty, the repute by rank ($CF78 + rank: unknown, pesky, fierce, deadly, ace, invincible), the standing with the Imperium, the Guild and the pirates ($AE04), and the possessions owned ($0742-$0751, named from $CE8E), or \"<none>\""
  },
  {
   "address": 44548,
   "type": "line",
   "text": "Prints a standing ($072E + Y, -2 to 2) as a word: $CFDE less (standing + 2), so hated, disliked, neutral, liked or ally"
  },
  {
   "address": 44568,
   "type": "line",
   "text": "Prints \"<ok>\" ($CFE8), or \"<bad>\" ($CFE7) when a system bit in A is set in slot 0's damage ($0409)"
  },
  {
   "address": 44586,
   "type": "line",
   "text": "The JMP's high byte, $CF; the shield grade's digit is read at $AE2A + grade, from $AE2B"
  },
  {
   "address": 44587,
   "type": "line",
   "text": "\"123\", the shield grades' digits"
  },
  {
   "address": 44590,
   "type": "line",
   "text": "The status menu's item addresses: SHIP, ONBOARD, PERSON and DONE ($0D2A in MAIN), then the three texts zero-ended"
  },
  {
   "address": 44618,
   "type": "line",
   "text": "The cargo merchant: the credits shown, window 4 cleared, \"Welcome freetrader\" ($CFD2), then the menu BUY CARGO, SELL CARGO, DONE until DONE, which says \"Good day\""
  },
  {
   "address": 44684,
   "type": "line",
   "text": "BUY CARGO: the day's goods. The generator is restarted from the day's seed ($A2E2), so the same goods and prices come up all day: four to six of the 20 kinds, each kind picked at random and kept when the system's availability for its class ($563D + kind / 4) plus a random 0-99 reaches 100 (the list at $9E, the kinds taken marked at $A4 + kind). The list is shown with prices ($AFF7) and the player buys from it ($AF73) until DONE"
  },
  {
   "address": 44791,
   "type": "line",
   "text": "SELL CARGO: with an empty hold \"You don't have any to sell bud\" ($CFCB); otherwise the hold's cargo is listed with the merchant's offers, the same prices he sells at, and sold one load at a time ($AF48) until DONE or the hold is empty"
  },
  {
   "address": 44872,
   "type": "line",
   "text": "Sells the load picked (Y): its price ($B027) added to the credits, the slot emptied ($2EBD), and \"It's a deal\" ($CFCA), or \"Happy to take that off your hands\" ($CFCF) when the price is under 5"
  },
  {
   "address": 44915,
   "type": "line",
   "text": "Buys the load picked (Y): with the hold full \"Sorry your cargo hold is full\" ($CFC9); otherwise its price is paid ($2F03, or \"You're short a few credits bud!\") and the cargo put in a free slot with what was paid ($2EA3)"
  },
  {
   "address": 44960,
   "type": "line",
   "text": "Lets the player pick one of the $94 listed lines or DONE, the bar starting at the window's left, 18 rows below its top; DONE drops the caller's return and asks \"Could I interest you in anything else?\""
  },
  {
   "address": 44996,
   "type": "line",
   "text": "Window 4, \"Could I interest you in anything else?\" ($B080)"
  },
  {
   "address": 45008,
   "type": "line",
   "text": "Window 2, the message \"Excellent choice\" ($B0A8), then the credits left"
  },
  {
   "address": 45023,
   "type": "line",
   "text": "Window 2, the message \"You're short a few credits bud!\" ($B0C2)"
  },
  {
   "address": 45035,
   "type": "line",
   "text": "Window 2, the message \"Good day\" ($B0B9)"
  },
  {
   "address": 45047,
   "type": "line",
   "text": "Lists the $94 cargo kinds in the list at $9E: each name ($2EF7) and its price ($B027) four columns from the window's right, then DONE"
  },
  {
   "address": 45095,
   "type": "line",
   "text": "The price of cargo kind A, in $60/$61: for spoiled cargo (kind 20) 1 credit; otherwise the system's base price for the kind's class (kind / 4, from $5638) plus a random part up to an eighth of it (the generator restarted from the day's seed, so it is the same all day), times 2 to 5 by the kind's place in its class (kind AND 3)"
  },
  {
   "address": 45157,
   "type": "line",
   "text": "The cargo menu's item addresses (BUY CARGO, SELL CARGO, DONE at $0D2A) and texts, then the shops' lines: at $B080 \"Could I interest you in anything else?\" after a window-clearing $11, $B0A8 \"Excellent choice\", $B0B9 \"Good day\" and $B0C2 \"You're short a few credits bud!\""
  },
  {
   "address": 45282,
   "type": "line",
   "text": "The STARSHIP OUTFITTER ($CFC6): the menu WEAPONS, SHIELDS, ECM UNITS, SPECIAL, DONE. The first three need the Star Pilot's License ($074D), or the outfitter refuses ($CFC1). DONE copies the ship's new fittings into the type-0 tables ($1737) and says \"Good day\""
  },
  {
   "address": 45394,
   "type": "line",
   "text": "WEAPONS: the price list ($CFC5) and a pick of the four lasers or DONE ($B185)"
  },
  {
   "address": 45445,
   "type": "line",
   "text": "Laser Y + 1: the same as the ship's ($0739) \"You already have one of those\", a lesser one \"We only sell upgrades\" ($B37D); otherwise its price from laser_prices is paid and it becomes the ship's beam"
  },
  {
   "address": 45487,
   "type": "line",
   "text": "SHIELDS: the price list ($CFBC) and a pick of fore I-III, aft I-III or DONE ($B1E3)"
  },
  {
   "address": 45539,
   "type": "line",
   "text": "Shield Y + 1: 1-3 fore, 4-6 aft. A grade the ship already has, or a lower one, is refused ($B37D); otherwise its price is paid ($B364), the grade written into its nybble of $073A (fore high, aft low) and the shield's system bit set in $0738 ($10 fore, 8 aft)"
  },
  {
   "address": 45631,
   "type": "line",
   "text": "ECM UNITS: the price list ($CFC4) and a pick of the three units or DONE ($B273)"
  },
  {
   "address": 45683,
   "type": "line",
   "text": "ECM unit Y: refused unless its percentage (ecm_levels) is above the ship's ($0737); otherwise its price is paid, the percentage becomes the ship's and the ECM's system bit ($20) is set in $0738"
  },
  {
   "address": 45732,
   "type": "line",
   "text": "SPECIAL ($CFC3): cargo pod, armour plate, turbo thruster or DONE. A cargo pod, 150 credits, adds a hold slot up to 8; an armour plate, 325, adds 50 to the full armour up to 500; the turbo thruster, 1500, once only ($073F), adds 1 to the engine thrust's whole part ($073C), doubling the thrust. \"Your ship has no room for that\" ($B391) when the hold or the armour is at its limit"
  },
  {
   "address": 45799,
   "type": "line",
   "text": "The cargo pod's payment; MAIN's unused arcsine calls $B2E7 ($98D6), SEG0's log subtraction in flight, never this code"
  },
  {
   "address": 45915,
   "type": "line",
   "text": "The turbo thruster's tail: \"Excellent choice\" and the thrust raised. MAIN calls $B35B (from $81B6 and others) as SEG0's log_sub, loaded here only in flight"
  },
  {
   "address": 45924,
   "type": "line",
   "text": "Pays for shield grade $95 from shield_prices; when the player is short, drops the caller's return and says \"You're short a few credits bud!\""
  },
  {
   "address": 45949,
   "type": "line",
   "text": "Window 2, the message \"You already have one of those\" ($CFBD) when Z is set, otherwise \"We only sell upgrades\" ($CFBE)"
  },
  {
   "address": 45969,
   "type": "line",
   "text": "Window 2, the message \"Your ship has no room for that\" ($CFC2)"
  },
  {
   "address": 45970,
   "type": "line",
   "text": "The LDY's operand; MAIN's calls to $B392 ($6536 and others) reach SEG0's log_add in flight, never a base"
  },
  {
   "address": 45976,
   "type": "line",
   "text": "The message's high byte, then the print; MAIN calls $B398 ($3F1B and others) as SEG0's log_add_mag, loaded here only in flight"
  },
  {
   "address": 45981,
   "type": "line",
   "text": "The outfitter menu's item addresses (WEAPONS, SHIELDS, ECM UNITS, SPECIAL, DONE at $0D2A) and its texts"
  },
  {
   "address": 46023,
   "type": "line",
   "text": "The last letter of SPECIAL; the laser prices are read at $B3C7 + 2 * laser, from $B3C9"
  },
  {
   "address": 46024,
   "type": "line",
   "text": "SPECIAL's zero, also the high byte of the unused laser 0's price"
  },
  {
   "address": 46025,
   "type": "line",
   "text": "The lasers' prices, a word each for lasers 1-4: 225 garnet, 550 beryl, 1400 sapphire, 3650 particle beam"
  },
  {
   "address": 46031,
   "type": "line",
   "text": "The particle beam's price, low byte; the shield prices are read at $B3CF + 2 * grade, from $B3D1"
  },
  {
   "address": 46032,
   "type": "line",
   "text": "The particle beam's price, high byte ($0E42 is 3650)"
  },
  {
   "address": 46033,
   "type": "line",
   "text": "The shield grades' prices, a word each for grades 1-3, fore or aft alike: 375, 950 and 2500"
  },
  {
   "address": 46039,
   "type": "line",
   "text": "The ECM units' prices, a word each: 500, 1500 and 4500"
  },
  {
   "address": 46040,
   "type": "line",
   "text": "The high byte of the 25% unit's price"
  },
  {
   "address": 46045,
   "type": "line",
   "text": "The ECM units' percentages: 25, 50 and 75"
  },
  {
   "address": 46048,
   "type": "line",
   "text": "SHIP REPAIR & SUPPLY ($CF5F): the menu SUPPLIES, FIX SYSTEM, FIX ARMOR, DONE, with \"Could I interest you in anything else?\" after each, until DONE (\"Good day\")"
  },
  {
   "address": 46125,
   "type": "line",
   "text": "SUPPLIES: the ordnance list ($CF5C) and a pick of six packs or DONE. A pack is refused, \"Not enough room in your missile bay\" ($CF59), unless its room (ordnance_room) plus the torpedoes and twice the SM-1 and Nova missiles carried stays under 21; otherwise its price is paid and its count added to its kind's store at $0732"
  },
  {
   "address": 46140,
   "type": "line",
   "text": "The JSR's operand; MAIN's call to $B43C ($7546) reaches SEG0's byte_to_log in flight, never a base"
  },
  {
   "address": 46151,
   "type": "line",
   "text": "MAIN calls $B447 ($3DC0 and others) as SEG0's int16_to_log, loaded here only in flight; here, the menu's top row"
  },
  {
   "address": 46161,
   "type": "line",
   "text": "MAIN calls $B451 ($133B and others) as SEG0's uint16_to_log, loaded here only in flight; here, the menu's width"
  },
  {
   "address": 46249,
   "type": "line",
   "text": "FIX ARMOR: the damage is the full armour ($0735) less slot 0's armour ($051D). None: \"You don't need any repairs\" ($B584). Otherwise the estimate ($CF5A) of three costs at the window's right: a quarter of the damage plus one credit, at most 99, for the whole of it; half that plus one for half; half again plus one for a quarter. The pick is paid for and the damage, halved once or twice and rounded up, added back to the armour"
  },
  {
   "address": 46439,
   "type": "line",
   "text": "FIX SYSTEM: the systems both fitted ($0738) and knocked out (slot 0's $0409) are listed with their names ($CF53 + system) and costs (system_repair_prices); a pick is paid for and its damage bit cleared, until all are fixed or DONE. None: \"You don't need any repairs\""
  },
  {
   "address": 46533,
   "type": "line",
   "text": "MAIN calls $B5C5 ($3DD4 and others) as SEG0's log_to_lin_signed, loaded here only in flight; here, the next line of the list"
  },
  {
   "address": 46560,
   "type": "line",
   "text": "The STA's operand; MAIN's calls to $B5E0 ($2C55 and others) reach SEG0's log_to_lin in flight, never a base"
  },
  {
   "address": 46628,
   "type": "line",
   "text": "The repair shop's item addresses (SUPPLIES, FIX SYSTEM, FIX ARMOR, DONE at $0D2A) and texts"
  },
  {
   "address": 46666,
   "type": "line",
   "text": "Each system's damage bit, for systems 0-5: launcher, laser, engine, aft shield, fore shield, ECM"
  },
  {
   "address": 46672,
   "type": "line",
   "text": "For the six ordnance packs, the store each fills, counted from $0732: 0 SM-1, 1 Nova, 2 plasma torpedoes, then the same for the packs of five"
  },
  {
   "address": 46678,
   "type": "line",
   "text": "The missiles in each pack: 1, 1, 1, 5, 5, 5"
  },
  {
   "address": 46684,
   "type": "line",
   "text": "Each pack's price: 15, 30, 5, 75, 150, 25 credits"
  },
  {
   "address": 46690,
   "type": "line",
   "text": "Each pack's room in the missile bay: 2, 2, 1, 10, 10, 5 (an SM-1 or Nova missile takes 2, a torpedo 1)"
  },
  {
   "address": 46696,
   "type": "line",
   "text": "Each system's repair price: launcher 15, laser 10, engine 20, aft shield 10, fore shield 10, ECM 25"
  },
  {
   "address": 46702,
   "type": "line",
   "text": "Finds what the player means on the four squares around ($B6C1): A = 1 a person, $FF a thing. None: Y = $FF. One: its entry in Y. More: \"In what direction?\" ($B723), and the player gives a straight direction (Return or space gives up)"
  },
  {
   "address": 46785,
   "type": "line",
   "text": "Looks at the square X across, Y down from the player: the first entry there counts ($8D, entry in $8E) unless its action byte has bit 4 set, a person (type below $80) for TALK, a thing for INSPECT. With nothing there, a person is looked for once more across a counter: the square beyond, when this one's tile blocks and its kind has bits 4-5 clear"
  },
  {
   "address": 46883,
   "type": "line",
   "text": "\"In what direction?\", zero-ended"
  },
  {
   "address": 46902,
   "type": "line",
   "text": "Action 6, a locked door, or a safe (type $A1, $B7EA): \"The door before you is locked... KEY CARD ENTRY\" ($CF93) and the menu USE CARD, PICK LOCK, DONE, until the door opens or the alarm goes"
  },
  {
   "address": 46961,
   "type": "line",
   "text": "The JSR's high byte; MAIN calls $B771 ($3DD7, $3E04) as SEG0's clamp_s8, loaded here only in flight"
  },
  {
   "address": 46967,
   "type": "line",
   "text": "USE CARD: without the key card ($0742) \"You don't own a key card!\" ($CF96); a door whose $55B0 byte is nonzero takes another card ($CF95); otherwise the door is taken off the map ($B9E9) with \"You insert you key card into the lock, and it snaps open\" ($CF94)"
  },
  {
   "address": 46984,
   "type": "line",
   "text": "The card test; MAIN calls $B788 ($3123, $3516) as SEG0's tac_fill, loaded here only in flight"
  },
  {
   "address": 47006,
   "type": "line",
   "text": "PICK LOCK. When an entry that can be walked through (flags bit 7 clear) is in view ($E892), the player is spotted ($CF97): the test meant to make that half the time loads the random routine's first byte ($AD) instead of calling it, so it is always taken. Otherwise one time in three the lock opens ($CF91), the entry is removed and a safe gives up its credits ($B811); one time in three the alarm goes off ($CF90); else the lock stays shut ($CF92). Being spotted or setting off the alarm raises it with the lock's type ($E400)"
  },
  {
   "address": 47082,
   "type": "line",
   "text": "A safe: \"Before you sits a massive safe\" ($CF98) and the menu PICK LOCK, DONE, until it opens or the alarm goes"
  },
  {
   "address": 47121,
   "type": "line",
   "text": "\"In one swift motion you snatch up all the loose credits in the safe\" ($CF99): 1 to 100 credits added, the credits shown"
  },
  {
   "address": 47147,
   "type": "line",
   "text": "The lock's menu of Y items from ($7A) at column $1B, row $AF, the text cursor kept"
  },
  {
   "address": 47178,
   "type": "line",
   "text": "The door's item addresses USE CARD, PICK LOCK, DONE ($0D2A at $B84E), the safe's menu starting at $B84C; then the texts"
  },
  {
   "address": 47203,
   "type": "line",
   "text": "Each pass: a chaser (motion kind 3) within one square of the player ($B911) catches them. With the alarm at 2 or 1 that is death ($0835 = $FE or $FD: Vilanie's guard with the stun whip and the airlock, $CEB0, or Bassruti's monster, $CEB1). Otherwise the visit ends ($A673) and the base bars the player for the day ($0783 = 2): with alarm 4 they are only moved along ($CED7); else fined ($CED6), 100 credits for a safe ($A1) or 25 for a secured area, a shortfall added to the bounty with the credits left at 0 ($CED2), or deducted ($CED3); then escorted aboard ($CED1)"
  },
  {
   "address": 47377,
   "type": "line",
   "text": "The larger of the distances across and down between entry Y and the player, in A"
  },
  {
   "address": 47412,
   "type": "line",
   "text": "The fines' disk texts: $CED5 (a safe, 100Cr) and $CED4 (a secured area, 25Cr)"
  },
  {
   "address": 47413,
   "type": "line",
   "text": "The high byte of the safe's fine text"
  },
  {
   "address": 47416,
   "type": "line",
   "text": "The fines: 100 credits for a safe, 25 for a secured area"
  },
  {
   "address": 47418,
   "type": "line",
   "text": "Action 7, an item: the transmutation coil (item 8) has its own scene ($B994). Any other: \"You find a\" ($CEB9) and its name ($CE89 + item) on the message line, and the menu PICK UP, DONE; picking it up takes the entry off the map and, for items 0-25, counts one fewer left in the galaxy ($0752 + item) and gives the player it ($073D + item = 1)"
  },
  {
   "address": 47489,
   "type": "line",
   "text": "The LDY's operand; MAIN calls $B981 ($1566 and others) as SEG0's view_clear_c000, loaded here only in flight"
  },
  {
   "address": 47508,
   "type": "line",
   "text": "The transmutation coil, in the carrier's powerplant: with the amoebic lenses ($074F) the light is borne ($CE87) and the coil is picked up; without them it scorches the player's eyes ($CE88) and the coil stays"
  },
  {
   "address": 47544,
   "type": "line",
   "text": "The item menu's addresses: PICK UP (disk text $CEBA) and DONE ($0D2A)"
  },
  {
   "address": 47548,
   "type": "line",
   "text": "Prints \"CRs \" ($B9D8) and the credits at column $1B, row $3F, under the date"
  },
  {
   "address": 47576,
   "type": "line",
   "text": "\"CRs \", zero-ended"
  },
  {
   "address": 47581,
   "type": "line",
   "text": "The highest map entry whose x is negative (free) in Y, or $FF"
  },
  {
   "address": 47593,
   "type": "line",
   "text": "Takes entry Y off the map: its flags, $55B0 byte and action cleared, its x, picture and type set to $FF, its message to $FFFF"
  },
  {
   "address": 47629,
   "type": "line",
   "text": "Walls face down (kind bits 4-5 = $20), right ($10) or both ($30). Each wall cell whose facing side is blacked out is flagged in $FA63 ($BAAA), then drawn with an edge tile: tiles $70, $71, $6C and $6B become $60, $61, $62 and $63, any other wall $64-$67 by whether the cells left of it and above it are lit"
  },
  {
   "address": 47786,
   "type": "line",
   "text": "For the wall in cell Y with kind bits A: 1 when the side it faces is off the window or blacked out (tile $7D): below for $20, right for $10, below and right for $30 (tile $79 looks right, then below); 0 when that side is lit"
  },
  {
   "address": 47854,
   "type": "line",
   "text": "What the player can see: $FA63-$FAC5 cleared, the room flood-filled from the player's cell ($BB0B), and every cell it did not reach blacked out with tile $7D"
  },
  {
   "address": 47858,
   "type": "line",
   "text": "MAIN calls $BAF2 ($3932 and others) as SEG0's view_clear_4000, loaded here only in flight; here, the clearing loop"
  },
  {
   "address": 47883,
   "type": "line",
   "text": "A scanline flood fill of the chart buffer from the player's cell (column 5, row 4) through floor, tiles whose kind has bits 4-5 clear: each run is followed to the walls at its ends, seeds for the runs above and below are kept on a stack of seven ($86-$8C across, $8D-$93 down), and every cell of a run, its end walls and the cells above and below them are counted in $FA63 ($BBB0)"
  },
  {
   "address": 48029,
   "type": "line",
   "text": "Pushes the cell ($84, $85) on the fill's stack when there is room"
  },
  {
   "address": 48048,
   "type": "line",
   "text": "Counts cell ($84, $85) in $FA63, with the cell above it (unless in row 0) and the one below (unless in row 8)"
  },
  {
   "address": 48074,
   "type": "line",
   "text": "The kind of cell ($84, $85)'s tile ANDed with $30: zero for floor"
  },
  {
   "address": 48092,
   "type": "line",
   "text": "Cell ($84, $85)'s count in $FA63"
  },
  {
   "address": 48105,
   "type": "line",
   "text": "The bartender. A drunk player ($083A) is refused ($CF51). Otherwise \"You look thirsty, what can I get ya?\" ($CF50) and GREEN HEAD, BLUB LIGHT, RIGELIAN for 1, 2 or 3 credits. Each drink: \"Here you go\"; one time in ten the player gets drunk; half the time a word on the choice ($CF48 + 2 * drink, + 0 or 1); one time in 4, 3 or 2, the dearer the drink the likelier, a rumour (up to three tries at $BCB8, else bar talk from $CF40-$CF47); then \"Another one buddy?\" ($CF4E)"
  },
  {
   "address": 48312,
   "type": "line",
   "text": "Picks one of the ten rumours at random: carry clear and its number in A when it is not yet told this visit ($98 + n) and its state ($0784 + n) is 1 or 0, which is counted down (0 becomes $FF, used up); a rumour still at 2 is not yet out. The text is $CF35 + n"
  },
  {
   "address": 48339,
   "type": "line",
   "text": "The bar menu's item addresses (GREEN HEAD, BLUB LIGHT, RIGELIAN, DONE at $0D2A) and texts, then six zeros to the end of SEG1"
  },
  {
   "address": 58368,
   "type": "line",
   "text": "Raises the alarm with value A ($083B), unless one is already up: every guard (type $21) is given motion kind 3, chasing the player, or kind 1, wandering, when the value is 3; the siren (effect 2) sounds unless the value is 1. Values: $A0 an alarm plate or a locked door, $A1 a safe, 1 Bassruti's monsters, 2 and 4 from a talk script, 3 at Trochal"
  },
  {
   "address": 58423,
   "type": "line",
   "text": "Clears the chart's part of the screen for a text page: the drawing window at x 8, bottom row $40, $AF wide and $7F high ($8E17), filled with colour 1 ($8F80, $901D)"
  },
  {
   "address": 58476,
   "type": "line",
   "text": "SEG1A's set-up on arrival (MAIN, $A4D4). Rumours are let out ($E55E) by the plot: rumour 2 when plot flag 2 ($0790) is set, 3 for flag 3, 4 for flag 5, 5 for flag 0, 6 once rumour 2 is used up ($0786 negative), 7 once rumour 1 is, 8 once rumour 7 is, 9 when the player owns the Manchi egg ($0743)"
  },
  {
   "address": 58556,
   "type": "line",
   "text": "When the map gives a visitor's place ($5611, $5612; Bassruti's is $FF), a visitor is put there: a random one of the 32 scripts whose picture ($08B5 + script) is positive, in a free entry ($B9DD) as a solid wanderer (flags $82) that can be talked to (action $85)"
  },
  {
   "address": 58609,
   "type": "line",
   "text": "Items already taken (type bit 7, their count left at $0752 + item zero) are taken off the map; so is script 0's person (Duchess Avenstar) once plot flag 2 is set, and script 13's once the player owns the repair droid ($0740)"
  },
  {
   "address": 58663,
   "type": "line",
   "text": "At Trochal (L6x) the alarm is raised at 3 when plot flag 5 is set, otherwise the Manchi egg's entry (type $86) is taken off; at Bassruti (L51) the alarm is raised at 1, so its monsters chase from the start"
  },
  {
   "address": 58718,
   "type": "line",
   "text": "Rumour X's state ($0784 + X) goes from 2, not out, to 1, ready to be told"
  },
  {
   "address": 58729,
   "type": "line",
   "text": "A conversation with entry Y, its type ($5590) the script's number: the script at $5740 plus the offset at $5700 + 2 * type, its texts the 64 disk texts from $C000 + 64 * type. The talk's own flags ($08B1-$08B4) and $0835 are cleared and window 2 blanked; then node after node, its text ($E5D3), its action ($E5EE) and its answer ($E63F) lead to the next ($E616) until one ends the talk ($E7C7)"
  },
  {
   "address": 58835,
   "type": "line",
   "text": "Clears the text page ($E437, window 4) and prints the node's text: when its first byte has bit 7 clear, the disk text that many (its low six bits) from the script's first"
  },
  {
   "address": 58862,
   "type": "line",
   "text": "When the node's first byte has bit 6 set, an action follows it: the third byte, the operand, kept in $C6 and decoded as a variable's address ($E801), and the second byte run as one of talk_ops (by RTS); the answer byte is then at offset 3, else 1 ($C2)"
  },
  {
   "address": 58902,
   "type": "line",
   "text": "Waits for a key after a text unless the answer was a menu, then moves on to the node at offset A in the script; A = $FF ends the talk (carry set)"
  },
  {
   "address": 58943,
   "type": "line",
   "text": "Reads the node's answer byte ($C1): bits 0-2 the number of choices (0 ends the talk, A = $FF), bits 6-7 the kind: $00 a menu ($E699), $80 a random choice ($E72A), $40 or $C0 a test of the variable whose operand is the byte before the targets ($E801): it is compared with each value in turn by the branch that bits 4-5 pick (BNE, BEQ, BCC, BCS from talk_branches, patched into $E68D), the first value that passes picking its target and the last target taken when none does. Returns the target, an offset in the script"
  },
  {
   "address": 59021,
   "type": "line",
   "text": "The branch patched with the test: BNE, BEQ, BCC or BCS"
  },
  {
   "address": 59026,
   "type": "line",
   "text": "The CPY's operand, patched with the offset where the values end"
  },
  {
   "address": 59033,
   "type": "line",
   "text": "The answers up to the first with bit 7 set (OTHER...) are put up as a menu in window 2 at column 2, row $26, 20 wide, their texts' addresses gathered at $A8. Picking OTHER lets the player type a line ($E8A2), searched ($9E17) for the keyword texts from OTHER's own on: the first one found is the choice, the last answer being taken when none is"
  },
  {
   "address": 59178,
   "type": "line",
   "text": "A random choice among the node's targets"
  },
  {
   "address": 59188,
   "type": "line",
   "text": "The text for answer byte A: with bit 7 set it is OTHER, whose number is kept in $BC, the item \"OTHER...\" ($E7A8) and carry set to end the menu; otherwise the address of disk text (A AND $3F) of the script's 64, carry clear"
  },
  {
   "address": 59217,
   "type": "line",
   "text": "The target for choice A: the byte at $C4 + A in the node"
  },
  {
   "address": 59224,
   "type": "line",
   "text": "Talk action 0: the variable at ($7A) set to 1"
  },
  {
   "address": 59231,
   "type": "line",
   "text": "Talk action 1: the variable set to 0"
  },
  {
   "address": 59235,
   "type": "line",
   "text": "Talk action 2: 1 added to the variable"
  },
  {
   "address": 59245,
   "type": "line",
   "text": "Talk action 3: 1 taken off the variable"
  },
  {
   "address": 59255,
   "type": "line",
   "text": "Talk action 4: the operand given in credits ($2F22), and the credits shown"
  },
  {
   "address": 59269,
   "type": "line",
   "text": "Talk action 5: the operand taken in credits ($2F03); the talk's flag 0 ($08B1) is 0 when they were paid, 1 when the player was short; the credits shown"
  },
  {
   "address": 59293,
   "type": "line",
   "text": "Talk action 6: the alarm raised with the operand as its value ($E400)"
  },
  {
   "address": 59298,
   "type": "line",
   "text": "Talk action 8: $0835 set to the operand; a negative value kills the player when the talk ends, with death text $CEAF plus (the value's complement)"
  },
  {
   "address": 59304,
   "type": "line",
   "text": "\"OTHER...\", the menu item that lets the player type, zero-ended"
  },
  {
   "address": 59313,
   "type": "line",
   "text": "The talk actions' routines, the address less one of each: set to 1, set to 0, add 1, take 1, give credits, take credits, alarm, nothing (action 7's entry is zero), and $0835"
  },
  {
   "address": 59314,
   "type": "line",
   "text": "The high byte of talk action 0's address"
  },
  {
   "address": 59331,
   "type": "line",
   "text": "The tests' branch opcodes, picked by the answer byte's bits 4-5: BNE ($D0), BEQ ($F0), BCC ($90), BCS ($B0)"
  },
  {
   "address": 59335,
   "type": "line",
   "text": "After a talk: a person of motion kind 4 (one who watches the player) becomes a solid wanderer, flags $82 and action $85. A negative $0835 is death ($1B90). With plot flag 8 ($0796) set the player is put in system 9, Ja-Karn, at sector 0, 0 ($071D-$071F), the visit ends ($A673) and every object slot but the player's is freed ($1A8A)"
  },
  {
   "address": 59393,
   "type": "line",
   "text": "The variable named by operand A, its address in $7A/$7B: bits 5-7 the class, bits 0-4 the index. Class 0 the talk's flags from $08B1 (the visitors' pictures from $08B5 follow them), 1 the items owned from $073D, 2 the plot flags from $078E, 3 and 4 the day's lists from $07AE, 5 one of five player values (the standings $072E-$0730, the rank $072A, the bounty's high byte $0727); 6 and 7 leave the pointer as it was"
  },
  {
   "address": 59449,
   "type": "line",
   "text": "The classes' base addresses, a word each: $08B1, $073D, $078E, $07AE and $07AE"
  },
  {
   "address": 59450,
   "type": "line",
   "text": "The high byte of class 0's base"
  },
  {
   "address": 59459,
   "type": "line",
   "text": "Class 5's five addresses: $072E, $072F and $0730 (the standings with the pirates, the Guild and the Imperium), $072A (the rank) and $0727 (the bounty's high byte)"
  },
  {
   "address": 59460,
   "type": "line",
   "text": "The high byte of the pirates' standing's address"
  },
  {
   "address": 59469,
   "type": "line",
   "text": "For every entry with a type below $80 (a person), bit 6 of its flags is set while it is in sight ($E86E) and cleared when it is not"
  },
  {
   "address": 59502,
   "type": "line",
   "text": "Carry clear when entry Y is in the chart window around the player and its cell is not blacked out"
  },
  {
   "address": 59538,
   "type": "line",
   "text": "The highest entry with bit 7 of its flags clear and bit 6 set (one that can be walked through, in sight), in Y and A, or 0"
  },
  {
   "address": 59554,
   "type": "line",
   "text": "Lets the player type a line at the cursor into $FF05, zero-ended, under a blinking underline ($E8FB): Return ends it, DEL or $08 rubs out a letter, keys below space are ignored and the line stops short of the window's right edge"
  },
  {
   "address": 59643,
   "type": "line",
   "text": "The typing cursor's blink, flipped between 0 and $FF each turn: an underline is printed when it is $FF, a space when 0"
  },
  {
   "address": 59644,
   "type": "line",
   "text": "Zeros that fill SEG1A's file out to $EAFF; no code reads them, and at the end of a game END is loaded over $E900 ($1B90)"
  }
 ]
}