{
 "schema": 1,
 "platform": "c64",
 "game": "castle-master",
 "build": "Dualis disk release; language menu reached from a hard reset",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    55295,
    "I/O and colour RAM"
   ],
   [
    56320,
    57343,
    "I/O and colour RAM"
   ],
   [
    50341,
    50370,
    "screen RAM"
   ],
   [
    50381,
    50410,
    "screen RAM"
   ],
   [
    50421,
    50450,
    "screen RAM"
   ],
   [
    50461,
    50490,
    "screen RAM"
   ],
   [
    50501,
    50530,
    "screen RAM"
   ],
   [
    50541,
    50570,
    "screen RAM"
   ],
   [
    50581,
    50610,
    "screen RAM"
   ],
   [
    50621,
    50650,
    "screen RAM"
   ],
   [
    50661,
    50690,
    "screen RAM"
   ],
   [
    50701,
    50730,
    "screen RAM"
   ],
   [
    50741,
    50770,
    "screen RAM"
   ],
   [
    50781,
    50810,
    "screen RAM"
   ],
   [
    50821,
    50850,
    "screen RAM"
   ],
   [
    50861,
    50890,
    "screen RAM"
   ],
   [
    50901,
    50930,
    "screen RAM"
   ],
   [
    34764,
    38363,
    "Runtime linear viewport; menu occupant retained in the source snapshot"
   ],
   [
    57090,
    57343,
    "Runtime zero-page backing store"
   ],
   [
    0,
    255,
    "Runtime CPU port, vertex/scratch buffers and game pointers; exchanged through $87B1 and written by traced routines"
   ],
   [
    512,
    1023,
    "System runtime workspace and RAM vectors, including vectors restored from ROM by $062F"
   ],
   [
    51206,
    51332,
    "Runtime SID player caches, per-voice counters and effect state initialized by $CF1B and updated by $C885"
   ],
   [
    58664,
    58903,
    "Runtime 3D viewport bitmap, character row 0; all 240 bytes zero at cold hand-over"
   ],
   [
    58984,
    59223,
    "Runtime 3D viewport bitmap, character row 1; all 240 bytes zero at cold hand-over"
   ],
   [
    59304,
    59543,
    "Runtime 3D viewport bitmap, character row 2; all 240 bytes zero at cold hand-over"
   ],
   [
    59624,
    59863,
    "Runtime 3D viewport bitmap, character row 3; all 240 bytes zero at cold hand-over"
   ],
   [
    59944,
    60183,
    "Runtime 3D viewport bitmap, character row 4; all 240 bytes zero at cold hand-over"
   ],
   [
    60264,
    60503,
    "Runtime 3D viewport bitmap, character row 5; all 240 bytes zero at cold hand-over"
   ],
   [
    60584,
    60823,
    "Runtime 3D viewport bitmap, character row 6; all 240 bytes zero at cold hand-over"
   ],
   [
    60904,
    61143,
    "Runtime 3D viewport bitmap, character row 7; all 240 bytes zero at cold hand-over"
   ],
   [
    61224,
    61463,
    "Runtime 3D viewport bitmap, character row 8; all 240 bytes zero at cold hand-over"
   ],
   [
    61544,
    61783,
    "Runtime 3D viewport bitmap, character row 9; all 240 bytes zero at cold hand-over"
   ],
   [
    61864,
    62103,
    "Runtime 3D viewport bitmap, character row 10; all 240 bytes zero at cold hand-over"
   ],
   [
    62184,
    62423,
    "Runtime 3D viewport bitmap, character row 11; all 240 bytes zero at cold hand-over"
   ],
   [
    62504,
    62743,
    "Runtime 3D viewport bitmap, character row 12; all 240 bytes zero at cold hand-over"
   ],
   [
    62824,
    63063,
    "Runtime 3D viewport bitmap, character row 13; all 240 bytes zero at cold hand-over"
   ],
   [
    63144,
    63383,
    "Runtime 3D viewport bitmap, character row 14; all 240 bytes zero at cold hand-over"
   ],
   [
    50341,
    50370,
    "Runtime viewport palette cells, row 0; $61A8 overwrites them from active area attributes"
   ],
   [
    50381,
    50410,
    "Runtime viewport palette cells, row 1; $61A8 overwrites them from active area attributes"
   ],
   [
    50421,
    50450,
    "Runtime viewport palette cells, row 2; $61A8 overwrites them from active area attributes"
   ],
   [
    50461,
    50490,
    "Runtime viewport palette cells, row 3; $61A8 overwrites them from active area attributes"
   ],
   [
    50501,
    50530,
    "Runtime viewport palette cells, row 4; $61A8 overwrites them from active area attributes"
   ],
   [
    50541,
    50570,
    "Runtime viewport palette cells, row 5; $61A8 overwrites them from active area attributes"
   ],
   [
    50581,
    50610,
    "Runtime viewport palette cells, row 6; $61A8 overwrites them from active area attributes"
   ],
   [
    50621,
    50650,
    "Runtime viewport palette cells, row 7; $61A8 overwrites them from active area attributes"
   ],
   [
    50661,
    50690,
    "Runtime viewport palette cells, row 8; $61A8 overwrites them from active area attributes"
   ],
   [
    50701,
    50730,
    "Runtime viewport palette cells, row 9; $61A8 overwrites them from active area attributes"
   ],
   [
    50741,
    50770,
    "Runtime viewport palette cells, row 10; $61A8 overwrites them from active area attributes"
   ],
   [
    50781,
    50810,
    "Runtime viewport palette cells, row 11; $61A8 overwrites them from active area attributes"
   ],
   [
    50821,
    50850,
    "Runtime viewport palette cells, row 12; $61A8 overwrites them from active area attributes"
   ],
   [
    50861,
    50890,
    "Runtime viewport palette cells, row 13; $61A8 overwrites them from active area attributes"
   ],
   [
    50901,
    50930,
    "Runtime viewport palette cells, row 14; $61A8 overwrites them from active area attributes"
   ],
   [
    4264,
    4634,
    "Runtime render pointers/counters,120-row scanline endpoints and status, written by face emitters and edge walkers"
   ],
   [
    20315,
    20386,
    "Runtime collision position/extent/contact scratch, populated by collision solver and consumed by response"
   ],
   [
    4972,
    4973,
    "Dynamic one-face colour and count written at $3373/$3384/$338E"
   ],
   [
    4167,
    4167,
    "Previous area ID runtime state"
   ],
   [
    4169,
    4251,
    "Runtime collision/geometry/event state and counters updated by movement/render/main loop; constant radius1048 retained"
   ],
   [
    4635,
    4667,
    "Runtime text cursor, timing, filename length, rendering pointer and sound/menu state; authored trig begins123C"
   ],
   [
    9222,
    9327,
    "106-byte mutable gameplay/save state; native serializer/deserializer and disk round trip check all bytes"
   ],
   [
    33466,
    33473,
    "Runtime effect mode/count and destination pointer; separate authored lookup/pattern bytes follow"
   ],
   [
    34162,
    34186,
    "Runtime text descriptor and expanded16-byte glyph buffer; native six-glyph expansion checks outputs"
   ],
   [
    1040,
    1043,
    "Runtime save traversal counters and flags written by native save/load"
   ],
   [
    26852,
    26868,
    "Runtime FCL selector/stream-length/skip/layout state"
   ],
   [
    29520,
    29532,
    "Runtime IRQ blink/animation counters and state"
   ],
   [
    30702,
    30716,
    "Runtime information-menu selection/key state"
   ],
   [
    31476,
    31490,
    "Runtime filename-entry cursor and buffer, cleared/edited by native UI"
   ],
   [
    26188,
    26208,
    "Runtime coordinate/pointer scratch following viewport copy routine"
   ],
   [
    9629,
    9630,
    "Runtime signed-division sign/magnitude scratch"
   ],
   [
    10061,
    10067,
    "Runtime camera/background height and interpolation scratch, writers2829/2889 and consumer284A"
   ],
   [
    10560,
    10561,
    "Runtime view-octant bounds counters written294E/295E and read2961/297A"
   ],
   [
    11551,
    11551,
    "Runtime transformed-vertex loop counter written2EC4/decremented2F05"
   ],
   [
    13023,
    13024,
    "Runtime geometry vertex count and colour copied by32F4 and consumed3361/3379"
   ],
   [
    13218,
    13218,
    "Runtime geometry saved selector written3430/read3449"
   ],
   [
    13800,
    13800,
    "Runtime painter-object counter written3618/decremented3657"
   ],
   [
    19971,
    19972,
    "Runtime area/object reset traversal counts written4E52/4E82"
   ],
   [
    19027,
    19031,
    "Runtime global/area condition-list counters and cursors written4ACD/4B03 and decremented4AE8/4B1E"
   ],
   [
    24017,
    24023,
    "Runtime movement/direction/action arithmetic scratch; writers5E51/5EF2/5F89, readers5E6C/5E93/5FD4"
   ],
   [
    24998,
    24999,
    "Runtime fifteen-row viewport palette count and packed colour written by61A8 setup"
   ],
   [
    25313,
    25319,
    "Runtime interpreter-object state scratch written63CC/640F and read6408"
   ],
   [
    28709,
    28715,
    "Runtime HUD cached counters/state compared72DD and updated7322"
   ],
   [
    33128,
    33131,
    "Runtime supporting-height temporary pair and quarter-height clearance written81A8/81B6 and read81CF"
   ],
   [
    32739,
    32741,
    "Runtime small-bitmap horizontal offset,width,height used by7FE6/802C/8037"
   ],
   [
    34400,
    34402,
    "Runtime keyboard CHROUT saved character/state;8661 written86DD/8751 and read8722"
   ]
  ],
  "extra": [
   [
    40192,
    49039,
    "Complete authored Freescape area/object/condition database, including spans cut by memory-map edges"
   ],
   [
    5136,
    6111,
    "Sixty-one sixteen-byte authored messages including shared area-name slots"
   ],
   [
    57344,
    65343,
    "Complete initial bitmap footprint; viewport outputs excluded separately"
   ],
   [
    55296,
    56319,
    "Complete authored initial third-colour shadow and its padding"
   ],
   [
    50176,
    51199,
    "Complete loaded initial matrix/pointers; runtime viewport cells excluded separately"
   ],
   [
    38364,
    39293,
    "Retained authored German-language source tail outside runtime viewport"
   ],
   [
    4668,
    4811,
    "Complete authored72-pair trigonometric table"
   ],
   [
    4812,
    4971,
    "Five complete authored face-topology templates plus dynamic one-face header"
   ],
   [
    3441,
    3542,
    "Complete51-word song-root directory"
   ],
   [
    30074,
    30146,
    "Complete eight-group keyboard lookup and terminator"
   ],
   [
    34403,
    34510,
    "Complete54-word keyboard RAM copy directory"
   ],
   [
    1818,
    3334,
    "Complete independently parsed51 SID phrases"
   ],
   [
    3934,
    4105,
    "Authored pitch/vibrato sequence allocation"
   ],
   [
    15469,
    15509,
    "Retained alternate signed projection scaling path"
   ],
   [
    33474,
    33494,
    "Complete21-byte effect progression sequence"
   ]
  ]
 },
 "blocks": [
  {
   "start": 0,
   "end": 1058,
   "type": "Byte"
  },
  {
   "start": 1059,
   "end": 1625,
   "type": "Code"
  },
  {
   "start": 1626,
   "end": 3440,
   "type": "Byte"
  },
  {
   "start": 3441,
   "end": 3542,
   "type": "Word"
  },
  {
   "start": 3543,
   "end": 5101,
   "type": "Byte"
  },
  {
   "start": 5102,
   "end": 5119,
   "type": "Word"
  },
  {
   "start": 5120,
   "end": 7284,
   "type": "Byte"
  },
  {
   "start": 7285,
   "end": 7640,
   "type": "Word"
  },
  {
   "start": 7641,
   "end": 9327,
   "type": "Byte"
  },
  {
   "start": 9328,
   "end": 9628,
   "type": "Code"
  },
  {
   "start": 9629,
   "end": 9630,
   "type": "Byte"
  },
  {
   "start": 9631,
   "end": 10060,
   "type": "Code"
  },
  {
   "start": 10061,
   "end": 10067,
   "type": "Byte"
  },
  {
   "start": 10068,
   "end": 10559,
   "type": "Code"
  },
  {
   "start": 10560,
   "end": 10561,
   "type": "Byte"
  },
  {
   "start": 10562,
   "end": 10774,
   "type": "Code"
  },
  {
   "start": 10775,
   "end": 10790,
   "type": "Word"
  },
  {
   "start": 10791,
   "end": 11378,
   "type": "Code"
  },
  {
   "start": 11379,
   "end": 11396,
   "type": "Byte"
  },
  {
   "start": 11397,
   "end": 11550,
   "type": "Code"
  },
  {
   "start": 11551,
   "end": 11551,
   "type": "Byte"
  },
  {
   "start": 11552,
   "end": 13022,
   "type": "Code"
  },
  {
   "start": 13023,
   "end": 13024,
   "type": "Byte"
  },
  {
   "start": 13025,
   "end": 13217,
   "type": "Code"
  },
  {
   "start": 13218,
   "end": 13218,
   "type": "Byte"
  },
  {
   "start": 13219,
   "end": 13799,
   "type": "Code"
  },
  {
   "start": 13800,
   "end": 13800,
   "type": "Byte"
  },
  {
   "start": 13801,
   "end": 13974,
   "type": "Code"
  },
  {
   "start": 13975,
   "end": 13992,
   "type": "Byte"
  },
  {
   "start": 13993,
   "end": 14279,
   "type": "Code"
  },
  {
   "start": 14280,
   "end": 14289,
   "type": "Word"
  },
  {
   "start": 14290,
   "end": 15468,
   "type": "Code"
  },
  {
   "start": 15469,
   "end": 15509,
   "type": "Byte"
  },
  {
   "start": 15510,
   "end": 16237,
   "type": "Code"
  },
  {
   "start": 16238,
   "end": 16245,
   "type": "Byte"
  },
  {
   "start": 16246,
   "end": 16914,
   "type": "Code"
  },
  {
   "start": 16915,
   "end": 16915,
   "type": "Byte"
  },
  {
   "start": 16916,
   "end": 18434,
   "type": "Code"
  },
  {
   "start": 18435,
   "end": 18444,
   "type": "Byte"
  },
  {
   "start": 18445,
   "end": 19026,
   "type": "Code"
  },
  {
   "start": 19027,
   "end": 19031,
   "type": "Byte"
  },
  {
   "start": 19032,
   "end": 19336,
   "type": "Code"
  },
  {
   "start": 19337,
   "end": 19344,
   "type": "Byte"
  },
  {
   "start": 19345,
   "end": 19970,
   "type": "Code"
  },
  {
   "start": 19971,
   "end": 19972,
   "type": "Byte"
  },
  {
   "start": 19973,
   "end": 20313,
   "type": "Code"
  },
  {
   "start": 20314,
   "end": 20386,
   "type": "Byte"
  },
  {
   "start": 20387,
   "end": 24016,
   "type": "Code"
  },
  {
   "start": 24017,
   "end": 24023,
   "type": "Byte"
  },
  {
   "start": 24024,
   "end": 24997,
   "type": "Code"
  },
  {
   "start": 24998,
   "end": 24999,
   "type": "Byte"
  },
  {
   "start": 25000,
   "end": 25110,
   "type": "Code"
  },
  {
   "start": 25111,
   "end": 25115,
   "type": "Byte"
  },
  {
   "start": 25116,
   "end": 25312,
   "type": "Code"
  },
  {
   "start": 25313,
   "end": 25319,
   "type": "Byte"
  },
  {
   "start": 25320,
   "end": 26187,
   "type": "Code"
  },
  {
   "start": 26188,
   "end": 26208,
   "type": "Byte"
  },
  {
   "start": 26209,
   "end": 26851,
   "type": "Code"
  },
  {
   "start": 26852,
   "end": 26868,
   "type": "Byte"
  },
  {
   "start": 26869,
   "end": 28708,
   "type": "Code"
  },
  {
   "start": 28709,
   "end": 28715,
   "type": "Byte"
  },
  {
   "start": 28716,
   "end": 29517,
   "type": "Code"
  },
  {
   "start": 29518,
   "end": 29532,
   "type": "Byte"
  },
  {
   "start": 29533,
   "end": 30073,
   "type": "Code"
  },
  {
   "start": 30074,
   "end": 30146,
   "type": "Byte"
  },
  {
   "start": 30147,
   "end": 30414,
   "type": "Code"
  },
  {
   "start": 30415,
   "end": 30415,
   "type": "Byte"
  },
  {
   "start": 30416,
   "end": 30675,
   "type": "Code"
  },
  {
   "start": 30676,
   "end": 30717,
   "type": "Byte"
  },
  {
   "start": 30718,
   "end": 31475,
   "type": "Code"
  },
  {
   "start": 31476,
   "end": 31490,
   "type": "Byte"
  },
  {
   "start": 31491,
   "end": 31980,
   "type": "Code"
  },
  {
   "start": 31981,
   "end": 31989,
   "type": "Byte"
  },
  {
   "start": 31990,
   "end": 32738,
   "type": "Code"
  },
  {
   "start": 32739,
   "end": 32741,
   "type": "Byte"
  },
  {
   "start": 32742,
   "end": 33127,
   "type": "Code"
  },
  {
   "start": 33128,
   "end": 33131,
   "type": "Byte"
  },
  {
   "start": 33132,
   "end": 33465,
   "type": "Code"
  },
  {
   "start": 33466,
   "end": 33506,
   "type": "Byte"
  },
  {
   "start": 33507,
   "end": 34161,
   "type": "Code"
  },
  {
   "start": 34162,
   "end": 34186,
   "type": "Byte"
  },
  {
   "start": 34187,
   "end": 34399,
   "type": "Code"
  },
  {
   "start": 34400,
   "end": 34402,
   "type": "Byte"
  },
  {
   "start": 34403,
   "end": 34510,
   "type": "Word"
  },
  {
   "start": 34511,
   "end": 34763,
   "type": "Code"
  },
  {
   "start": 34764,
   "end": 39293,
   "type": "Byte"
  },
  {
   "start": 39294,
   "end": 39491,
   "type": "Word"
  },
  {
   "start": 39492,
   "end": 40171,
   "type": "Code"
  },
  {
   "start": 40172,
   "end": 40257,
   "type": "Byte"
  },
  {
   "start": 40258,
   "end": 40261,
   "type": "Word"
  },
  {
   "start": 40262,
   "end": 40270,
   "type": "Byte"
  },
  {
   "start": 40271,
   "end": 40338,
   "type": "Word"
  },
  {
   "start": 40339,
   "end": 49663,
   "type": "Byte"
  },
  {
   "start": 49664,
   "end": 49716,
   "type": "Code"
  },
  {
   "start": 49717,
   "end": 51199,
   "type": "Byte"
  },
  {
   "start": 51200,
   "end": 51205,
   "type": "Code"
  },
  {
   "start": 51206,
   "end": 51332,
   "type": "Byte"
  },
  {
   "start": 51333,
   "end": 51867,
   "type": "Code"
  },
  {
   "start": 51868,
   "end": 51868,
   "type": "Byte"
  },
  {
   "start": 51869,
   "end": 51871,
   "type": "Code"
  },
  {
   "start": 51872,
   "end": 51872,
   "type": "Byte"
  },
  {
   "start": 51873,
   "end": 51875,
   "type": "Code"
  },
  {
   "start": 51876,
   "end": 51876,
   "type": "Byte"
  },
  {
   "start": 51877,
   "end": 53203,
   "type": "Code"
  },
  {
   "start": 53204,
   "end": 53207,
   "type": "Byte"
  },
  {
   "start": 53208,
   "end": 53230,
   "type": "Code"
  },
  {
   "start": 53231,
   "end": 65351,
   "type": "Byte"
  },
  {
   "start": 65352,
   "end": 65370,
   "type": "Code"
  },
  {
   "start": 65371,
   "end": 65529,
   "type": "Byte"
  },
  {
   "start": 65530,
   "end": 65535,
   "type": "Word"
  }
 ],
 "symbols": [
  {
   "address": 0,
   "name": "zpf_00",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 1,
   "name": "CPU_MEMORY_CONFIG",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2,
   "name": "zp_scratch_0002",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3,
   "name": "zp_scratch_0003",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4,
   "name": "zp_scratch_0004",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5,
   "name": "zp_scratch_0005",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6,
   "name": "zp_scratch_0006",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7,
   "name": "zp_scratch_0007",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8,
   "name": "zp_scratch_0008",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9,
   "name": "zp_scratch_0009",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10,
   "name": "zp_scratch_000a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11,
   "name": "zp_scratch_000b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 12,
   "name": "zp_scratch_000c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13,
   "name": "zp_scratch_000d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14,
   "name": "zp_scratch_000e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15,
   "name": "zp_scratch_000f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 16,
   "name": "zp_scratch_0010",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17,
   "name": "zp_scratch_0011",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18,
   "name": "zp_scratch_0012",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19,
   "name": "zp_scratch_0013",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20,
   "name": "zp_scratch_0014",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21,
   "name": "zp_scratch_0015",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 22,
   "name": "zp_scratch_0016",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23,
   "name": "zp_scratch_0017",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24,
   "name": "zp_scratch_0018",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25,
   "name": "zp_scratch_0019",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26,
   "name": "zp_scratch_001a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27,
   "name": "zp_scratch_001b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28,
   "name": "zp_scratch_001c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29,
   "name": "zp_scratch_001d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30,
   "name": "zp_scratch_001e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31,
   "name": "zp_scratch_001f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32,
   "name": "zp_scratch_0020",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33,
   "name": "zp_scratch_0021",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34,
   "name": "zp_scratch_0022",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35,
   "name": "zp_scratch_0023",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36,
   "name": "zp_scratch_0024",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37,
   "name": "zp_scratch_0025",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38,
   "name": "zp_scratch_0026",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39,
   "name": "zp_scratch_0027",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40,
   "name": "zp_scratch_0028",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41,
   "name": "zp_scratch_0029",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42,
   "name": "zp_scratch_002a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43,
   "name": "zp_scratch_002b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44,
   "name": "zp_scratch_002c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45,
   "name": "zp_scratch_002d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46,
   "name": "zp_scratch_002e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47,
   "name": "zp_scratch_002f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48,
   "name": "zp_scratch_0030",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49,
   "name": "zp_scratch_0031",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56,
   "name": "zpf_38",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 57,
   "name": "zpf_39",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 58,
   "name": "zpf_3A",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 59,
   "name": "zpf_3B",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 60,
   "name": "zpf_3C",
   "type": "ZeroPageField",
   "kind": "auto"
  },
  {
   "address": 61,
   "name": "f_003D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62,
   "name": "zp_scratch_003e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63,
   "name": "zp_scratch_003f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64,
   "name": "zp_scratch_0040",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65,
   "name": "zp_scratch_0041",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 66,
   "name": "zp_scratch_0042",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 67,
   "name": "zp_scratch_0043",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 68,
   "name": "zp_scratch_0044",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 69,
   "name": "zp_scratch_0045",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 70,
   "name": "zp_scratch_0046",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 71,
   "name": "zp_scratch_0047",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 72,
   "name": "zp_scratch_0048",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 73,
   "name": "zp_scratch_0049",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 74,
   "name": "zp_scratch_004a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 75,
   "name": "zp_scratch_004b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 76,
   "name": "zp_scratch_004c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 77,
   "name": "zp_scratch_004d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 78,
   "name": "zp_scratch_004e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 79,
   "name": "zp_scratch_004f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 80,
   "name": "zp_scratch_0050",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 81,
   "name": "zp_scratch_0051",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 82,
   "name": "zp_scratch_0052",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 83,
   "name": "zp_scratch_0053",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 84,
   "name": "zp_scratch_0054",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 85,
   "name": "zp_scratch_0055",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 86,
   "name": "zp_scratch_0056",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 87,
   "name": "zp_scratch_0057",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 88,
   "name": "zp_scratch_0058",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 89,
   "name": "zp_scratch_0059",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 90,
   "name": "zp_scratch_005a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 91,
   "name": "zp_scratch_005b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 92,
   "name": "zp_scratch_005c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 93,
   "name": "zp_scratch_005d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 94,
   "name": "zp_scratch_005e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 95,
   "name": "zp_scratch_005f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 96,
   "name": "zp_scratch_0060",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 97,
   "name": "zp_scratch_0061",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 98,
   "name": "zp_scratch_0062",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 99,
   "name": "zp_scratch_0063",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 100,
   "name": "zp_scratch_0064",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 101,
   "name": "zp_scratch_0065",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 102,
   "name": "zp_scratch_0066",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 103,
   "name": "zp_scratch_0067",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 104,
   "name": "zp_scratch_0068",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 105,
   "name": "zp_scratch_0069",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 106,
   "name": "zp_scratch_006a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 107,
   "name": "zp_scratch_006b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 108,
   "name": "zp_scratch_006c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 109,
   "name": "zp_scratch_006d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 111,
   "name": "f_006F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 122,
   "name": "zp_scratch_007a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 123,
   "name": "zp_scratch_007b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 124,
   "name": "ACTIVE_RECORD_PTR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 125,
   "name": "zp_scratch_007d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 126,
   "name": "zp_scratch_007e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 127,
   "name": "zp_scratch_007f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 128,
   "name": "zp_scratch_0080",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 129,
   "name": "zp_scratch_0081",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 130,
   "name": "zp_scratch_0082",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 131,
   "name": "zp_scratch_0083",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 132,
   "name": "zp_scratch_0084",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 133,
   "name": "zp_scratch_0085",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 136,
   "name": "zp_scratch_0088",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 137,
   "name": "zp_scratch_0089",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 138,
   "name": "zp_scratch_008a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 139,
   "name": "zp_scratch_008b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 140,
   "name": "zp_scratch_008c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 141,
   "name": "zp_scratch_008d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 154,
   "name": "zp_scratch_009a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 160,
   "name": "zp_scratch_00a0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 161,
   "name": "zp_scratch_00a1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 162,
   "name": "zp_scratch_00a2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 163,
   "name": "zp_scratch_00a3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 164,
   "name": "zp_scratch_00a4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 165,
   "name": "zp_scratch_00a5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 166,
   "name": "zp_scratch_00a6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 167,
   "name": "zp_scratch_00a7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 168,
   "name": "zp_scratch_00a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 169,
   "name": "zp_scratch_00a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 170,
   "name": "zp_scratch_00aa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 171,
   "name": "zp_scratch_00ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 172,
   "name": "zp_scratch_00ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 173,
   "name": "zp_scratch_00ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 175,
   "name": "zp_scratch_00af",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 176,
   "name": "zp_scratch_00b0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 177,
   "name": "zp_scratch_00b1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 178,
   "name": "zp_scratch_00b2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 179,
   "name": "zp_scratch_00b3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 180,
   "name": "zp_scratch_00b4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 181,
   "name": "zp_scratch_00b5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 182,
   "name": "zp_scratch_00b6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 183,
   "name": "zp_scratch_00b7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 184,
   "name": "zp_scratch_00b8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 188,
   "name": "zp_scratch_00bc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 189,
   "name": "zp_scratch_00bd",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 190,
   "name": "zp_scratch_00be",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 191,
   "name": "zp_scratch_00bf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 192,
   "name": "zp_scratch_00c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 193,
   "name": "zp_scratch_00c1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 194,
   "name": "zp_scratch_00c2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 195,
   "name": "zp_scratch_00c3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 247,
   "name": "zp_scratch_00f7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 248,
   "name": "zp_scratch_00f8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 249,
   "name": "zp_scratch_00f9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 250,
   "name": "zp_scratch_00fa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 251,
   "name": "zp_scratch_00fb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 252,
   "name": "zp_scratch_00fc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 253,
   "name": "zp_scratch_00fd",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 254,
   "name": "zp_scratch_00fe",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 260,
   "name": "f_0104",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 678,
   "name": "system_ram_02a6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 788,
   "name": "IRQ_VECTOR_RAM",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 789,
   "name": "system_ram_0315",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 790,
   "name": "BRK_VECTOR_RAM",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 792,
   "name": "NMI_VECTOR_RAM",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 793,
   "name": "system_ram_0319",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 806,
   "name": "CHROUT_VECTOR_RAM",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 807,
   "name": "system_ram_0327",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1024,
   "name": "loader_signature_residue",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1040,
   "name": "runtime_workspace_0410",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1041,
   "name": "runtime_workspace_0411",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1042,
   "name": "runtime_workspace_0412",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1043,
   "name": "runtime_workspace_0413",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1044,
   "name": "invalid_file_text_record",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1059,
   "name": "LOAD_SAVE_DISPATCH",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1066,
   "name": "load_save_dispatch_local_042a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1094,
   "name": "load_save_dispatch_local_0446",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1160,
   "name": "load_save_dispatch_local_0488",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1177,
   "name": "load_save_dispatch_local_0499",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1179,
   "name": "load_save_dispatch_local_049b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1198,
   "name": "marshal_save_payload",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1214,
   "name": "load_save_dispatch_local_04be",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1237,
   "name": "load_save_dispatch_local_04d5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1240,
   "name": "load_save_dispatch_local_04d8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1254,
   "name": "load_save_dispatch_local_04e6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1270,
   "name": "load_save_dispatch_local_04f6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1307,
   "name": "serialize_all_object_flags_local_051b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1385,
   "name": "serialize_all_object_flags_local_0569",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1388,
   "name": "restore_save_payload",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1392,
   "name": "serialize_all_object_flags_local_0570",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1415,
   "name": "serialize_all_object_flags_local_0587",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1418,
   "name": "serialize_all_object_flags_local_058a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1432,
   "name": "serialize_all_object_flags_local_0598",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1448,
   "name": "serialize_all_object_flags_local_05a8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1460,
   "name": "serialize_all_object_flags_local_05b4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1467,
   "name": "serialize_all_object_flags_local_05bb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1476,
   "name": "serialize_all_object_flags_local_05c4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1496,
   "name": "save_begin_database_flags",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1516,
   "name": "save_next_database_area",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1559,
   "name": "advance_to_next_serialized_object_local_0617",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1560,
   "name": "save_next_database_object",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1576,
   "name": "restore_kernal_vectors_local_0628",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1583,
   "name": "RESTORE_KERNAL_VECTORS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 1590,
   "name": "restore_kernal_vectors_local_0636",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 1626,
   "name": "sid_frequency_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1722,
   "name": "sid_frequency_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1818,
   "name": "sid_phrase_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1822,
   "name": "sid_phrase_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1826,
   "name": "sid_phrase_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1830,
   "name": "sid_phrase_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1838,
   "name": "sid_phrase_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1842,
   "name": "sid_phrase_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1852,
   "name": "sid_phrase_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1856,
   "name": "sid_phrase_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1868,
   "name": "sid_phrase_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1884,
   "name": "sid_phrase_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1892,
   "name": "sid_phrase_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1900,
   "name": "sid_phrase_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1910,
   "name": "sid_phrase_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 1962,
   "name": "sid_phrase_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2014,
   "name": "sid_phrase_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2034,
   "name": "sid_phrase_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2048,
   "name": "sid_phrase_15_memory_edge_continuation",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2068,
   "name": "sid_phrase_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2074,
   "name": "sid_phrase_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2080,
   "name": "sid_phrase_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2092,
   "name": "sid_phrase_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2106,
   "name": "sid_phrase_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2126,
   "name": "sid_phrase_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2148,
   "name": "sid_phrase_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2198,
   "name": "sid_phrase_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2221,
   "name": "sid_phrase_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2244,
   "name": "sid_phrase_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2300,
   "name": "sid_phrase_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2336,
   "name": "sid_phrase_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2370,
   "name": "sid_phrase_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2422,
   "name": "sid_phrase_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2463,
   "name": "sid_phrase_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2544,
   "name": "sid_phrase_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2600,
   "name": "sid_phrase_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2634,
   "name": "sid_phrase_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2688,
   "name": "sid_phrase_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2743,
   "name": "sid_phrase_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2783,
   "name": "sid_phrase_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2837,
   "name": "sid_phrase_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2847,
   "name": "sid_phrase_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2853,
   "name": "sid_phrase_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2859,
   "name": "sid_phrase_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2865,
   "name": "sid_phrase_41",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2913,
   "name": "sid_phrase_42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2918,
   "name": "sid_phrase_43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 2984,
   "name": "sid_phrase_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3070,
   "name": "sid_phrase_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3120,
   "name": "sid_phrase_46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3206,
   "name": "sid_phrase_47",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3251,
   "name": "sid_phrase_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3293,
   "name": "sid_phrase_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3330,
   "name": "sid_phrase_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3335,
   "name": "sid_phrase_pointer_low",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3388,
   "name": "sid_phrase_pointer_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3441,
   "name": "sid_song_channel_roots",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3442,
   "name": "sid_song_root_words_continuation",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3443,
   "name": "checked_table_byte_0d73",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3444,
   "name": "checked_table_byte_0d74",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3445,
   "name": "checked_table_byte_0d75",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3446,
   "name": "checked_table_byte_0d76",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3543,
   "name": "sid_order_at_0dd7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3547,
   "name": "sid_order_at_0ddb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3551,
   "name": "sid_order_at_0ddf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3555,
   "name": "sid_order_at_0de3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3559,
   "name": "sid_order_at_0de7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3563,
   "name": "sid_order_at_0deb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3567,
   "name": "sid_order_at_0def",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3571,
   "name": "sid_order_at_0df3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3575,
   "name": "sid_order_at_0df7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3579,
   "name": "sid_order_at_0dfb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3583,
   "name": "sid_order_at_0dff",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3587,
   "name": "sid_order_at_0e03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3627,
   "name": "sid_order_at_0e2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3631,
   "name": "sid_order_at_0e2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3635,
   "name": "sid_order_at_0e33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3639,
   "name": "sid_order_at_0e37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3645,
   "name": "sid_order_at_0e3d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3651,
   "name": "sid_order_at_0e43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3657,
   "name": "sid_order_at_0e49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3662,
   "name": "sid_order_at_0e4e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3666,
   "name": "sid_order_at_0e52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3671,
   "name": "sid_order_at_0e57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3675,
   "name": "sid_order_at_0e5b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3679,
   "name": "sid_order_at_0e5f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3695,
   "name": "sid_order_at_0e6f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3699,
   "name": "sid_order_at_0e73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3703,
   "name": "sid_order_at_0e77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3707,
   "name": "sid_order_at_0e7b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3711,
   "name": "sid_order_at_0e7f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3715,
   "name": "sid_order_at_0e83",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3731,
   "name": "sid_order_at_0e93",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3735,
   "name": "sid_order_at_0e97",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3739,
   "name": "sid_order_at_0e9b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3743,
   "name": "sid_order_at_0e9f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3749,
   "name": "sid_order_at_0ea5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3755,
   "name": "sid_order_at_0eab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3761,
   "name": "sid_order_at_0eb1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3776,
   "name": "sid_order_at_0ec0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3802,
   "name": "sid_order_at_0eda",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3828,
   "name": "sid_order_at_0ef4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3844,
   "name": "sid_order_at_0f04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3851,
   "name": "sid_order_at_0f0b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3861,
   "name": "sid_instrument_parameter_windows",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 3862,
   "name": "sid_instrument_window_fields",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3863,
   "name": "checked_table_byte_0f17",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3864,
   "name": "checked_table_byte_0f18",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3865,
   "name": "checked_table_byte_0f19",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3866,
   "name": "checked_table_byte_0f1a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3867,
   "name": "checked_table_byte_0f1b",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3868,
   "name": "checked_table_byte_0f1c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3869,
   "name": "checked_table_byte_0f1d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3870,
   "name": "checked_table_byte_0f1e",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 3934,
   "name": "sid_pitch_sequence_bytes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4058,
   "name": "sid_pitch_sequence_tail",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4066,
   "name": "sid_vibrato_sequence_bytes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4096,
   "name": "sid_vibrato_memory_edge_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4106,
   "name": "sid_waveform_control_lookup",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4109,
   "name": "sid_waveform_sequence_headers",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4110,
   "name": "sid_waveform_sequence_body_base",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4119,
   "name": "sid_live_instrument_remapping",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4143,
   "name": "sid_default_instrument_remapping",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4167,
   "name": "PREVIOUS_AREA_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4168,
   "name": "player_collision_radius_constant",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4170,
   "name": "engine_state_104a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4171,
   "name": "engine_state_104b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4172,
   "name": "engine_state_104c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4173,
   "name": "engine_state_104d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4174,
   "name": "engine_state_104e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4175,
   "name": "engine_state_104f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4176,
   "name": "engine_state_1050",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4177,
   "name": "engine_state_1051",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4178,
   "name": "SAVE_DEVICE_NUMBER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4179,
   "name": "engine_state_1053",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4180,
   "name": "engine_state_1054",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4181,
   "name": "engine_state_1055",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4182,
   "name": "engine_state_1056",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4185,
   "name": "RENDER_REQUEST_FLAGS_A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4186,
   "name": "RENDER_REQUEST_FLAGS_B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4187,
   "name": "engine_state_105b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4188,
   "name": "LOOKUP_OBJECT_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4189,
   "name": "EVENT_FALLBACK_FLAGS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4190,
   "name": "DEFERRED_SOUND_INDEX",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4191,
   "name": "engine_state_105f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4192,
   "name": "GLOBAL_OBJECT_COUNT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4193,
   "name": "GLOBAL_OBJECT_LIST_PTR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4194,
   "name": "engine_state_1062",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4195,
   "name": "FCL_DELAY_COUNTDOWN",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4196,
   "name": "engine_state_1064",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4197,
   "name": "engine_state_1065",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4198,
   "name": "DESTINATION_ENTRANCE_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4199,
   "name": "engine_state_1067",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4200,
   "name": "engine_state_1068",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4201,
   "name": "engine_state_1069",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4202,
   "name": "engine_state_106a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4203,
   "name": "engine_state_106b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4204,
   "name": "engine_state_106c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4206,
   "name": "engine_state_106e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4207,
   "name": "f_106F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4210,
   "name": "engine_state_1072",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4212,
   "name": "engine_state_1074",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4213,
   "name": "f_1075",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4217,
   "name": "engine_state_1079",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4218,
   "name": "engine_state_107a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4220,
   "name": "engine_state_107c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4221,
   "name": "engine_state_107d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4222,
   "name": "engine_state_107e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4225,
   "name": "engine_state_1081",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4226,
   "name": "EVENT_OBJECT_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4228,
   "name": "ACTIVE_EVENT_MASK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4229,
   "name": "PENDING_EVENT_MASK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4230,
   "name": "PENDING_CRUSH_CHECK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4231,
   "name": "PENDING_SUPPORT_CHECK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4232,
   "name": "engine_state_1088",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4233,
   "name": "engine_state_1089",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4234,
   "name": "engine_state_108a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4235,
   "name": "engine_state_108b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4236,
   "name": "engine_state_108c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4237,
   "name": "engine_state_108d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4238,
   "name": "engine_state_108e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4239,
   "name": "engine_state_108f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4240,
   "name": "engine_state_1090",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4246,
   "name": "GLOBAL_CONDITION_LIST_PTR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4247,
   "name": "engine_state_1097",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4249,
   "name": "SENSOR_COUNT_REBUILT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4250,
   "name": "ACTIVE_SENSOR_COUNT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4251,
   "name": "SESSION_END_REASON",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4252,
   "name": "database_base_and_directory_pointers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4253,
   "name": "database_base_pointer_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4254,
   "name": "allocation_alias_109e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4255,
   "name": "allocation_alias_109f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4256,
   "name": "WORK_BUFFER_PTR_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4257,
   "name": "work_buffer_pointer_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4258,
   "name": "render_buffer_partition_pointers",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4259,
   "name": "render_buffer_partition_pointer_high",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4260,
   "name": "allocation_alias_10a4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4261,
   "name": "allocation_alias_10a5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4262,
   "name": "allocation_alias_10a6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4263,
   "name": "allocation_alias_10a7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4264,
   "name": "engine_state_10a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4265,
   "name": "engine_state_10a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4266,
   "name": "engine_state_10aa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4267,
   "name": "engine_state_10ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4268,
   "name": "engine_state_10ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4269,
   "name": "engine_state_10ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4272,
   "name": "engine_state_10b0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4273,
   "name": "f_10B1",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4394,
   "name": "scanline_second_endpoint",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4515,
   "name": "scanline_edge_status",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4636,
   "name": "engine_state_121c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4637,
   "name": "engine_state_121d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4638,
   "name": "engine_state_121e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4639,
   "name": "engine_state_121f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4640,
   "name": "f_1220",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 4654,
   "name": "engine_state_122e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4655,
   "name": "engine_state_122f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4656,
   "name": "SAVE_FILENAME_LENGTH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4657,
   "name": "engine_state_1231",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4658,
   "name": "engine_state_1232",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4659,
   "name": "engine_state_1233",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4661,
   "name": "engine_state_1235",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4663,
   "name": "engine_state_1237",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4664,
   "name": "engine_state_1238",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4665,
   "name": "engine_state_1239",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4666,
   "name": "SOUND_GATE_STATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4667,
   "name": "sound_menu_state_and_trig_boundary",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4668,
   "name": "checked_table_byte_123c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4669,
   "name": "checked_table_byte_123d",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4811,
   "name": "trig_final_cosine",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4812,
   "name": "face_topology_box",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4813,
   "name": "box_topology_byte_12cd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4819,
   "name": "box_topology_byte_12d3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 4849,
   "name": "face_topology_five_face_template_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4876,
   "name": "face_topology_five_face_template_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4905,
   "name": "face_topology_five_face_template_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4934,
   "name": "face_topology_six_face_template_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4971,
   "name": "face_topology_single_face_count",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4972,
   "name": "engine_state_136c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4973,
   "name": "engine_state_136d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4974,
   "name": "face_topology_dynamic_vertex_indices",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4985,
   "name": "RAW_CONTROL_COUNT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4986,
   "name": "keyboard_decoded_control_buffer",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4992,
   "name": "allocation_alias_1380",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4993,
   "name": "allocation_alias_1381",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 4994,
   "name": "CONTROL_ACTION_MAP",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5038,
   "name": "FCL_TOKEN_LENGTHS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5087,
   "name": "OBJECT_BASE_SIZE_BY_TYPE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5102,
   "name": "riddle_ptrs_13ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5103,
   "name": "riddle_pointer_directory_high_byte",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5120,
   "name": "fixed_messages_1400",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5136,
   "name": "text_message_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5152,
   "name": "text_message_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5168,
   "name": "text_message_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5184,
   "name": "text_message_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5200,
   "name": "text_message_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5216,
   "name": "text_message_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5232,
   "name": "text_message_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5248,
   "name": "text_message_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5264,
   "name": "text_message_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5280,
   "name": "text_message_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5296,
   "name": "text_message_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5312,
   "name": "text_message_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5328,
   "name": "text_message_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5344,
   "name": "text_message_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5360,
   "name": "text_message_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5376,
   "name": "text_message_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5392,
   "name": "text_message_17",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 5408,
   "name": "text_message_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5424,
   "name": "text_message_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5440,
   "name": "text_message_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5456,
   "name": "text_message_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5472,
   "name": "text_message_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5488,
   "name": "text_message_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5504,
   "name": "text_message_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5520,
   "name": "text_message_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5536,
   "name": "text_message_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5552,
   "name": "text_message_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5568,
   "name": "text_message_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5584,
   "name": "text_message_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5600,
   "name": "text_message_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5616,
   "name": "text_message_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5632,
   "name": "text_message_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5648,
   "name": "text_message_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5664,
   "name": "text_message_34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5680,
   "name": "text_message_35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5696,
   "name": "text_message_36",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5712,
   "name": "text_message_37",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5728,
   "name": "text_message_38",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5744,
   "name": "text_message_39",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5760,
   "name": "text_message_40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5776,
   "name": "text_message_41",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5792,
   "name": "text_message_42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5808,
   "name": "text_message_43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5824,
   "name": "text_message_44",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5840,
   "name": "text_message_45",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5856,
   "name": "text_message_46",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5872,
   "name": "text_message_47",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5888,
   "name": "text_message_48",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5904,
   "name": "text_message_49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5920,
   "name": "text_message_50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5936,
   "name": "text_message_51",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5952,
   "name": "text_message_52",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5968,
   "name": "text_message_53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 5984,
   "name": "text_message_54",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6000,
   "name": "text_message_55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6016,
   "name": "text_message_56",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6032,
   "name": "text_message_57",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6048,
   "name": "text_message_58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6064,
   "name": "text_message_59",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6080,
   "name": "text_message_60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6096,
   "name": "text_message_61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6112,
   "name": "ui_strength_labels_17e0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6230,
   "name": "information_key_count_digits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6231,
   "name": "information_second_key_digit",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6246,
   "name": "information_spirit_count_digits",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6247,
   "name": "allocation_alias_1867",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6268,
   "name": "allocation_alias_187c",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 6276,
   "name": "save_prompts_1884",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6299,
   "name": "file_device_choice_caption",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6318,
   "name": "riddle_panel_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6408,
   "name": "riddle_panel_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6475,
   "name": "riddle_panel_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6544,
   "name": "riddle_panel_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6622,
   "name": "riddle_panel_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6715,
   "name": "riddle_panel_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6785,
   "name": "riddle_panel_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6892,
   "name": "riddle_panel_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 6953,
   "name": "riddle_panel_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7245,
   "name": "dynamic_riddle_caption_length",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7268,
   "name": "irq_clock_and_save_filename_boundary",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7271,
   "name": "disk_replacement_prefix_colon",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 7272,
   "name": "allocation_alias_1c68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7277,
   "name": "allocation_alias_1c6d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7281,
   "name": "allocation_alias_1c71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7282,
   "name": "allocation_alias_1c72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7283,
   "name": "allocation_alias_1c73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7284,
   "name": "allocation_alias_1c74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7285,
   "name": "linear_row_ptrs_1c75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7525,
   "name": "bitmap_hud_ptrs_1d65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 7641,
   "name": "packed_hud_graphics_1dd9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8227,
   "name": "riddle_frame_row_triplets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8248,
   "name": "raster_frames_2038",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8272,
   "name": "hud_animation_frame0_second_half",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8296,
   "name": "hud_animation_frames_1_to_3",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8320,
   "name": "checked_table_byte_2080",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8344,
   "name": "checked_table_byte_2098",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8368,
   "name": "checked_table_byte_20b0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8392,
   "name": "checked_table_byte_20c8",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8416,
   "name": "checked_table_byte_20e0",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 8440,
   "name": "background_edge_masks_20f8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8698,
   "name": "area1_background_texture_21fa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 8986,
   "name": "text_font_packed_four_pixels",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9222,
   "name": "SAVE_STATE_MARKER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9223,
   "name": "PLAYER_X_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9224,
   "name": "PLAYER_X_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9225,
   "name": "PLAYER_Y_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9226,
   "name": "PLAYER_Y_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9227,
   "name": "PLAYER_Z_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9228,
   "name": "PLAYER_Z_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9229,
   "name": "MOVE_STEP_SCALED_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9230,
   "name": "MOVE_STEP_SCALED_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9231,
   "name": "MOVE_STEP_RAW",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9232,
   "name": "VIEW_PITCH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9233,
   "name": "VIEW_YAW",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9234,
   "name": "PLAYER_HEIGHT_UNITS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9235,
   "name": "PLAYER_HEIGHT_SCALED",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9236,
   "name": "FALL_DAMAGE_THRESHOLD",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9237,
   "name": "MAX_FLOOR_STEP",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9238,
   "name": "CURRENT_AREA_SCALE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9239,
   "name": "engine_internal_2417",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9240,
   "name": "engine_internal_2418",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9241,
   "name": "f_2419",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9257,
   "name": "CURRENT_AREA_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9258,
   "name": "CURRENT_AREA_OBJECT_COUNT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9259,
   "name": "CURRENT_AREA_OBJECT_LIST_PTR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9260,
   "name": "engine_internal_242c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9263,
   "name": "CURRENT_AREA_CONDITION_LIST_PTR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9264,
   "name": "engine_internal_2430",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9265,
   "name": "engine_internal_2431",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9266,
   "name": "engine_internal_2432",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9267,
   "name": "engine_internal_2433",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9268,
   "name": "engine_internal_2434",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9269,
   "name": "engine_internal_2435",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9270,
   "name": "engine_internal_2436",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9271,
   "name": "engine_internal_2437",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9272,
   "name": "FCL_VARIABLE_BASE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9273,
   "name": "f_2439",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 9276,
   "name": "engine_internal_243c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9277,
   "name": "VISITED_AREA_BITS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9282,
   "name": "SCORE_U24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9283,
   "name": "SCORE_U24_MID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9284,
   "name": "SCORE_U24_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9300,
   "name": "SPIRITS_DESTROYED",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9301,
   "name": "STRENGTH_SHIELD",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9302,
   "name": "MOVEMENT_MODE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9303,
   "name": "KEYS_COLLECTED",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9304,
   "name": "PENDING_KEY_ID",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9305,
   "name": "LIGHTNING_COUNTDOWN",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9306,
   "name": "COLLECTED_KEY_IDS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9316,
   "name": "AREA_SKY_FLOOR_COLORS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9317,
   "name": "AIM_SELECTOR_X",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9318,
   "name": "AIM_SELECTOR_Y",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9319,
   "name": "AIM_MODE_ENABLED",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9320,
   "name": "LIGHTNING_DIVIDER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9321,
   "name": "PERIODIC_TICK_DIVIDER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9322,
   "name": "SPIRITS_METER_ELAPSED",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9323,
   "name": "engine_internal_246b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9324,
   "name": "PREVIOUS_TIMER_TICK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9325,
   "name": "CURRENT_TIMER_TICK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9326,
   "name": "PLAYER_CHARACTER_CHOICE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9327,
   "name": "engine_internal_246f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9328,
   "name": "MUL_S16_S8_TO_S24",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9363,
   "name": "mul_s16_s8_to_s24_local_2493",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9373,
   "name": "mul_s16_s8_to_s24_local_249d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9391,
   "name": "mul_s16_s8_to_s24_local_24af",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9393,
   "name": "mul_s16_s8_to_s24_local_24b1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9416,
   "name": "mul_s16_s16_to_s32_local_24c8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9463,
   "name": "mul_s16_s16_to_s32_local_24f7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9469,
   "name": "mul_s16_s16_to_s32_local_24fd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9470,
   "name": "MUL_S16_S16_TO_S32",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9489,
   "name": "mul_s16_s16_to_s32_local_2511",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9490,
   "name": "mul_s16_s16_to_s32_local_2512",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9517,
   "name": "mul_s16_s16_to_s32_local_252d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9520,
   "name": "mul_s16_s16_to_s32_local_2530",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9541,
   "name": "mul_s16_s16_to_s32_local_2545",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9544,
   "name": "mul_s16_s16_to_s32_local_2548",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9547,
   "name": "mul_s16_s16_to_s32_local_254b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9570,
   "name": "div_s24_by_s16_local_2562",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9619,
   "name": "div_s24_by_s16_local_2593",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9620,
   "name": "div_s24_by_s16_local_2594",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9629,
   "name": "signed_division_temporary_sign",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9630,
   "name": "engine_internal_259e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 9631,
   "name": "DIV_S24_BY_S16",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9664,
   "name": "div_s24_by_s16_local_25c0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9687,
   "name": "div_s24_by_s16_local_25d7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9698,
   "name": "div_s24_by_s16_local_25e2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9736,
   "name": "mul_s8_s8_to_s16_local_2608",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9737,
   "name": "mul_s8_s8_to_s16_local_2609",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9770,
   "name": "mul_s8_s8_to_s16_local_262a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9794,
   "name": "mul_s8_s8_to_s16_local_2642",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9795,
   "name": "MUL_S8_S8_TO_S16",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9820,
   "name": "mul_s8_s8_to_s16_local_265c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9835,
   "name": "mul_s8_s8_to_s16_local_266b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9845,
   "name": "mul_s8_s8_to_s16_local_2675",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9862,
   "name": "div_s32_by_s16_local_2686",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9898,
   "name": "div_s32_by_s16_local_26aa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9899,
   "name": "DIV_S32_BY_S16",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 9919,
   "name": "div_s32_by_s16_local_26bf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9926,
   "name": "div_s32_by_s16_local_26c6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9958,
   "name": "div_s32_by_s16_local_26e6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9982,
   "name": "div_s32_by_s16_local_26fe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 9985,
   "name": "render_scene_if_dirty_local_2701",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10017,
   "name": "render_scene_if_dirty_local_2721",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10060,
   "name": "render_scene_if_dirty_local_274c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10061,
   "name": "engine_internal_274d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10062,
   "name": "engine_internal_274e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10063,
   "name": "engine_internal_274f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10064,
   "name": "engine_internal_2750",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10065,
   "name": "engine_internal_2751",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10066,
   "name": "engine_internal_2752",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10067,
   "name": "engine_internal_2753",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10068,
   "name": "RENDER_SCENE_IF_DIRTY",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10081,
   "name": "render_scene_if_dirty_local_2761",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10117,
   "name": "render_scene_if_dirty_local_2785",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10135,
   "name": "traverse_object_list_local_2797",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10141,
   "name": "traverse_object_list_local_279d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10148,
   "name": "traverse_object_list_local_27a4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10160,
   "name": "traverse_object_list_local_27b0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10163,
   "name": "traverse_object_list_local_27b3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10167,
   "name": "TRAVERSE_OBJECT_LIST",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10170,
   "name": "traverse_object_list_local_27ba",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10202,
   "name": "traverse_object_list_local_27da",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10205,
   "name": "traverse_object_list_local_27dd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10219,
   "name": "traverse_object_list_local_27eb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10231,
   "name": "traverse_object_list_local_27f7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10246,
   "name": "traverse_object_list_local_2806",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10254,
   "name": "traverse_object_list_local_280e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10276,
   "name": "traverse_object_list_local_2824",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10338,
   "name": "traverse_object_list_local_2862",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10346,
   "name": "traverse_object_list_local_286a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10424,
   "name": "compute_coarse_view_bounds_local_28b8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10459,
   "name": "compute_coarse_view_bounds_local_28db",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10467,
   "name": "compute_coarse_view_bounds_local_28e3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10503,
   "name": "compute_coarse_view_bounds_local_2907",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10513,
   "name": "compute_coarse_view_bounds_local_2911",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10523,
   "name": "compute_coarse_view_bounds_local_291b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10526,
   "name": "compute_coarse_view_bounds_local_291e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10559,
   "name": "compute_coarse_view_bounds_local_293f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10560,
   "name": "engine_internal_2940",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10561,
   "name": "engine_internal_2941",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10562,
   "name": "COMPUTE_COARSE_VIEW_BOUNDS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 10570,
   "name": "compute_coarse_view_bounds_local_294a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10579,
   "name": "compute_coarse_view_bounds_local_2953",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10593,
   "name": "compute_coarse_view_bounds_local_2961",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10604,
   "name": "compute_coarse_view_bounds_local_296c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10617,
   "name": "compute_coarse_view_bounds_local_2979",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10621,
   "name": "compute_coarse_view_bounds_local_297d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10629,
   "name": "compute_coarse_view_bounds_local_2985",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10642,
   "name": "compute_coarse_view_bounds_local_2992",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10646,
   "name": "compute_coarse_view_bounds_local_2996",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10654,
   "name": "compute_coarse_view_bounds_local_299e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10665,
   "name": "compute_coarse_view_bounds_local_29a9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10669,
   "name": "compute_coarse_view_bounds_local_29ad",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10677,
   "name": "compute_coarse_view_bounds_local_29b5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10688,
   "name": "compute_coarse_view_bounds_local_29c0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10689,
   "name": "compute_coarse_view_bounds_local_29c1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10699,
   "name": "compute_coarse_view_bounds_local_29cb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10708,
   "name": "compute_coarse_view_bounds_local_29d4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10717,
   "name": "compute_coarse_view_bounds_local_29dd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10719,
   "name": "compute_coarse_view_bounds_local_29df",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10728,
   "name": "compute_coarse_view_bounds_local_29e8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10737,
   "name": "compute_coarse_view_bounds_local_29f1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10743,
   "name": "compute_coarse_view_bounds_local_29f7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10755,
   "name": "compute_coarse_view_bounds_local_2a03",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10756,
   "name": "compute_coarse_view_bounds_local_2a04",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10772,
   "name": "compute_coarse_view_bounds_local_2a14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10773,
   "name": "geometry_dispatch_jump_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10774,
   "name": "geometry_dispatch_jump_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 10775,
   "name": "VIEW_OCTANT_BOUNDS_DISPATCH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 10776,
   "name": "view_octant_first_target_high",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 10791,
   "name": "SET_VIEW_BOUNDS_CASE_0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10809,
   "name": "SET_VIEW_BOUNDS_CASE_1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10827,
   "name": "SET_VIEW_BOUNDS_CASE_2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10845,
   "name": "SET_VIEW_BOUNDS_CASE_3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10863,
   "name": "SET_VIEW_BOUNDS_CASE_4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10881,
   "name": "SET_VIEW_BOUNDS_CASE_5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10899,
   "name": "SET_VIEW_BOUNDS_CASE_6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10917,
   "name": "SET_VIEW_BOUNDS_CASE_7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10932,
   "name": "FINISH_VIEW_BOUNDS_SAMPLES",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10940,
   "name": "build_cuboid_camera_basis_local_2abc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10974,
   "name": "build_cuboid_camera_basis_local_2ade",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 10987,
   "name": "build_cuboid_camera_basis_local_2aeb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11021,
   "name": "build_cuboid_camera_basis_local_2b0d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11034,
   "name": "build_cuboid_camera_basis_local_2b1a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11068,
   "name": "build_cuboid_camera_basis_local_2b3c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11081,
   "name": "build_cuboid_camera_basis_local_2b49",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11082,
   "name": "BUILD_CUBOID_CAMERA_BASIS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11102,
   "name": "build_cuboid_camera_basis_local_2b5e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11146,
   "name": "build_cuboid_camera_basis_local_2b8a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11189,
   "name": "build_cuboid_camera_basis_local_2bb5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11232,
   "name": "build_cuboid_camera_basis_local_2be0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11265,
   "name": "build_view_projection_matrix_local_2c01",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11289,
   "name": "build_view_projection_matrix_local_2c19",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11378,
   "name": "matrix_vertex_transform_return",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11387,
   "name": "identity_matrix_final_entry",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 11397,
   "name": "BUILD_VIEW_PROJECTION_MATRIX",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11399,
   "name": "build_view_projection_matrix_local_2c87",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11439,
   "name": "build_view_projection_matrix_local_2caf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11446,
   "name": "build_view_projection_matrix_local_2cb6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11487,
   "name": "queue_cuboid_object_local_2cdf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11489,
   "name": "queue_cuboid_object_local_2ce1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11551,
   "name": "engine_internal_2d1f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 11552,
   "name": "QUEUE_CUBOID_OBJECT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 11953,
   "name": "queue_pyramid_object_local_2eb1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11977,
   "name": "queue_pyramid_object_local_2ec9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 11990,
   "name": "queue_pyramid_object_local_2ed6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12002,
   "name": "queue_pyramid_object_local_2ee2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12015,
   "name": "queue_pyramid_object_local_2eef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12031,
   "name": "queue_pyramid_object_local_2eff",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12061,
   "name": "queue_pyramid_object_local_2f1d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12064,
   "name": "queue_pyramid_object_local_2f20",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12065,
   "name": "QUEUE_PYRAMID_OBJECT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 12102,
   "name": "queue_pyramid_object_local_2f46",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12109,
   "name": "queue_pyramid_object_local_2f4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12126,
   "name": "queue_pyramid_object_local_2f5e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12130,
   "name": "queue_pyramid_object_local_2f62",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12143,
   "name": "queue_pyramid_object_local_2f6f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12188,
   "name": "queue_pyramid_object_local_2f9c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12295,
   "name": "queue_pyramid_object_local_3007",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12298,
   "name": "queue_pyramid_object_local_300a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12360,
   "name": "queue_pyramid_object_local_3048",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12367,
   "name": "queue_pyramid_object_local_304f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12473,
   "name": "queue_pyramid_object_local_30b9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12480,
   "name": "queue_pyramid_object_local_30c0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12583,
   "name": "queue_explicit_line_or_polygon_object_local_3127",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12645,
   "name": "queue_explicit_line_or_polygon_object_local_3165",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12652,
   "name": "queue_explicit_line_or_polygon_object_local_316c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12758,
   "name": "queue_explicit_line_or_polygon_object_local_31d6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12861,
   "name": "queue_explicit_line_or_polygon_object_local_323d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12920,
   "name": "queue_explicit_line_or_polygon_object_local_3278",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12948,
   "name": "queue_explicit_line_or_polygon_object_local_3294",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 12975,
   "name": "queue_explicit_line_or_polygon_object_local_32af",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13004,
   "name": "queue_explicit_line_or_polygon_object_local_32cc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13019,
   "name": "queue_explicit_line_or_polygon_object_local_32db",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13022,
   "name": "queue_explicit_line_or_polygon_object_local_32de",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13023,
   "name": "engine_internal_32df",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13024,
   "name": "engine_internal_32e0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13025,
   "name": "QUEUE_EXPLICIT_LINE_OR_POLYGON_OBJECT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13057,
   "name": "queue_explicit_line_or_polygon_object_local_3301",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13196,
   "name": "queue_rectangle_object_local_338c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13203,
   "name": "queue_rectangle_object_local_3393",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13214,
   "name": "queue_rectangle_object_local_339e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13217,
   "name": "queue_rectangle_object_local_33a1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13218,
   "name": "engine_internal_33a2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13219,
   "name": "QUEUE_RECTANGLE_OBJECT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13358,
   "name": "painter_sort_visible_entries_local_342e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13360,
   "name": "painter_sort_visible_entries_local_3430",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13377,
   "name": "painter_sort_visible_entries_local_3441",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13398,
   "name": "painter_sort_visible_entries_local_3456",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13400,
   "name": "painter_sort_visible_entries_local_3458",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13418,
   "name": "painter_sort_visible_entries_local_346a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13427,
   "name": "painter_sort_visible_entries_local_3473",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13445,
   "name": "painter_sort_visible_entries_local_3485",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13448,
   "name": "painter_sort_visible_entries_local_3488",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13449,
   "name": "painter_sort_visible_entries_local_3489",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13452,
   "name": "PAINTER_SORT_VISIBLE_ENTRIES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13455,
   "name": "painter_sort_visible_entries_local_348f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13470,
   "name": "painter_sort_visible_entries_local_349e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13500,
   "name": "painter_sort_visible_entries_local_34bc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13509,
   "name": "painter_sort_visible_entries_local_34c5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13535,
   "name": "painter_sort_visible_entries_local_34df",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13576,
   "name": "painter_sort_visible_entries_local_3508",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13637,
   "name": "draw_sorted_visible_queue_local_3545",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13646,
   "name": "draw_sorted_visible_queue_local_354e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13663,
   "name": "draw_sorted_visible_queue_local_355f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13672,
   "name": "draw_sorted_visible_queue_local_3568",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13678,
   "name": "draw_sorted_visible_queue_local_356e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13689,
   "name": "draw_sorted_visible_queue_local_3579",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13725,
   "name": "draw_sorted_visible_queue_local_359d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13763,
   "name": "draw_sorted_visible_queue_local_35c3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13769,
   "name": "draw_sorted_visible_queue_local_35c9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13782,
   "name": "draw_sorted_visible_queue_local_35d6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13789,
   "name": "draw_sorted_visible_queue_local_35dd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13798,
   "name": "draw_sorted_visible_queue_local_35e6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13799,
   "name": "draw_sorted_visible_queue_local_35e7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13800,
   "name": "engine_internal_35e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 13801,
   "name": "DRAW_SORTED_VISIBLE_QUEUE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13824,
   "name": "draw_sorted_visible_queue_local_3600",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13857,
   "name": "draw_sorted_visible_queue_local_3621",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13887,
   "name": "present_frame_local_363f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13890,
   "name": "present_frame_local_3642",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13916,
   "name": "present_frame_local_365c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13927,
   "name": "present_frame_local_3667",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13933,
   "name": "present_frame_local_366d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13946,
   "name": "present_frame_local_367a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13947,
   "name": "PRESENT_FRAME",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 13961,
   "name": "present_frame_local_3689",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13970,
   "name": "present_frame_local_3692",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 13973,
   "name": "viewport_effect_call_operand_high",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13974,
   "name": "viewport_effect_return",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13975,
   "name": "embedded_asterisk_text_fragment",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13976,
   "name": "embedded_asterisk_fragment_semicolon",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 13993,
   "name": "MULTIPLY_3X3_FIXED_MATRICES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14001,
   "name": "multiply_3x3_fixed_matrices_local_36b1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14011,
   "name": "multiply_3x3_fixed_matrices_local_36bb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14017,
   "name": "multiply_3x3_fixed_matrices_local_36c1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14087,
   "name": "transform_vertices_to_camera_space_local_3707",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14103,
   "name": "transform_vertices_to_camera_space_local_3717",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14128,
   "name": "TRANSFORM_VERTICES_TO_CAMERA_SPACE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14143,
   "name": "transform_vertices_to_camera_space_local_373f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14164,
   "name": "transform_vertices_to_camera_space_local_3754",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14168,
   "name": "transform_vertices_to_camera_space_local_3758",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14170,
   "name": "transform_vertices_to_camera_space_local_375a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14246,
   "name": "clip_edge_to_selected_plane_local_37a6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 14255,
   "name": "CLIP_EDGE_TO_SELECTED_PLANE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 14277,
   "name": "intersect_x_plus_z_plane_local_37c5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14278,
   "name": "clip_plane_jump_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14279,
   "name": "clip_plane_jump_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 14280,
   "name": "CLIP_PLANE_INTERSECTION_DISPATCH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14281,
   "name": "clip_plane_dispatch_directory_high_byte",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 14290,
   "name": "INTERSECT_X_PLUS_Z_PLANE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14488,
   "name": "INTERSECT_Y_PLUS_Z_PLANE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14686,
   "name": "INTERSECT_Z_MINUS_X_PLANE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 14871,
   "name": "INTERSECT_Z_MINUS_Y_PLANE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15056,
   "name": "INTERSECT_Z_ZERO_PLANE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15208,
   "name": "CLASSIFY_VERTEX_AGAINST_CLIP_PLANE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15238,
   "name": "classify_vertex_against_clip_plane_local_3b86",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15245,
   "name": "classify_vertex_against_clip_plane_local_3b8d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15265,
   "name": "classify_vertex_against_clip_plane_local_3ba1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15270,
   "name": "classify_vertex_against_clip_plane_local_3ba6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15277,
   "name": "classify_vertex_against_clip_plane_local_3bad",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15297,
   "name": "project_vertices_perspective_local_3bc1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15302,
   "name": "project_vertices_perspective_local_3bc6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15303,
   "name": "project_vertices_perspective_local_3bc7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15310,
   "name": "project_vertices_perspective_local_3bce",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15335,
   "name": "project_vertices_perspective_local_3be7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15342,
   "name": "project_vertices_perspective_local_3bee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15358,
   "name": "project_vertices_perspective_local_3bfe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15362,
   "name": "project_vertices_perspective_local_3c02",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15363,
   "name": "project_vertices_perspective_local_3c03",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15365,
   "name": "PROJECT_VERTICES_PERSPECTIVE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15378,
   "name": "project_vertices_perspective_local_3c12",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15408,
   "name": "project_vertices_perspective_local_3c30",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15432,
   "name": "project_vertices_perspective_local_3c48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15452,
   "name": "project_vertices_perspective_local_3c5c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15469,
   "name": "projection_alternate_quarter_scale",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 15510,
   "name": "project_x_signed_division",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15532,
   "name": "reject_polygon_outside_view_volume_local_3cac",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15558,
   "name": "reject_polygon_outside_view_volume_local_3cc6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15578,
   "name": "reject_polygon_outside_view_volume_local_3cda",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15614,
   "name": "reject_polygon_outside_view_volume_local_3cfe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15634,
   "name": "reject_polygon_outside_view_volume_local_3d12",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15635,
   "name": "REJECT_POLYGON_OUTSIDE_VIEW_VOLUME",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15638,
   "name": "REJECT_PRETRANSFORMED_POLYGON_OUTSIDE_VIEW_VOLUME",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15649,
   "name": "reject_pretransformed_polygon_outside_view_volume_local_3d21",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15661,
   "name": "reject_pretransformed_polygon_outside_view_volume_local_3d2d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15675,
   "name": "clip_polygon_to_view_volume_local_3d3b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15678,
   "name": "clip_polygon_to_view_volume_local_3d3e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15699,
   "name": "clip_polygon_to_view_volume_local_3d53",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15703,
   "name": "CLIP_POLYGON_TO_VIEW_VOLUME",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 15709,
   "name": "clip_polygon_to_view_volume_local_3d5d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15726,
   "name": "clip_polygon_to_view_volume_local_3d6e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15741,
   "name": "clip_polygon_to_view_volume_local_3d7d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15743,
   "name": "clip_polygon_to_view_volume_local_3d7f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15765,
   "name": "clip_polygon_to_view_volume_local_3d95",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15775,
   "name": "clip_polygon_to_view_volume_local_3d9f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15820,
   "name": "clip_polygon_to_view_volume_local_3dcc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15827,
   "name": "clip_polygon_to_view_volume_local_3dd3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15859,
   "name": "clip_polygon_to_view_volume_local_3df3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15875,
   "name": "clip_polygon_to_view_volume_local_3e03",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15883,
   "name": "clip_polygon_to_view_volume_local_3e0b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15898,
   "name": "clip_polygon_to_view_volume_local_3e1a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15920,
   "name": "classify_projected_winding_local_3e30",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15936,
   "name": "classify_projected_winding_local_3e40",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15944,
   "name": "classify_projected_winding_local_3e48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15959,
   "name": "classify_projected_winding_local_3e57",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 15975,
   "name": "classify_projected_winding_local_3e67",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16013,
   "name": "classify_projected_winding_local_3e8d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16029,
   "name": "classify_projected_winding_local_3e9d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16041,
   "name": "classify_projected_winding_local_3ea9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16054,
   "name": "classify_projected_winding_local_3eb6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16071,
   "name": "classify_projected_winding_local_3ec7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16082,
   "name": "classify_projected_winding_local_3ed2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16092,
   "name": "classify_projected_winding_local_3edc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16100,
   "name": "classify_projected_winding_local_3ee4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16101,
   "name": "CLASSIFY_PROJECTED_WINDING",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16118,
   "name": "classify_projected_winding_local_3ef6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16229,
   "name": "paint_scanline_spans_linear_local_3f65",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16238,
   "name": "scanline_partial_byte_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16242,
   "name": "scanline_right_edge_masks",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 16246,
   "name": "PAINT_SCANLINE_SPANS_LINEAR",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 16262,
   "name": "paint_scanline_spans_linear_local_3f86",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16296,
   "name": "paint_scanline_spans_linear_local_3fa8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16303,
   "name": "paint_scanline_spans_linear_local_3faf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16315,
   "name": "paint_scanline_spans_linear_local_3fbb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16332,
   "name": "paint_scanline_spans_linear_local_3fcc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16342,
   "name": "paint_scanline_spans_linear_local_3fd6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16362,
   "name": "paint_scanline_spans_linear_local_3fea",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16388,
   "name": "paint_scanline_spans_linear_local_4004",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16397,
   "name": "paint_scanline_spans_linear_local_400d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16406,
   "name": "paint_scanline_spans_linear_local_4016",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16408,
   "name": "paint_scanline_spans_linear_local_4018",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16421,
   "name": "paint_scanline_spans_linear_local_4025",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16430,
   "name": "paint_scanline_spans_linear_local_402e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16439,
   "name": "paint_scanline_spans_linear_local_4037",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16441,
   "name": "paint_scanline_spans_linear_local_4039",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16470,
   "name": "paint_scanline_spans_linear_local_4056",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16502,
   "name": "paint_scanline_spans_linear_local_4076",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16542,
   "name": "paint_scanline_spans_linear_local_409e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16572,
   "name": "paint_scanline_spans_linear_local_40bc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16573,
   "name": "polygon_fill_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16574,
   "name": "polygon_fill_store_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16578,
   "name": "paint_scanline_spans_linear_local_40c2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16589,
   "name": "paint_scanline_spans_linear_local_40cd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16601,
   "name": "paint_scanline_spans_linear_local_40d9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16602,
   "name": "paint_scanline_spans_linear_local_40da",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16652,
   "name": "paint_scanline_spans_linear_local_410c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16668,
   "name": "paint_scanline_spans_linear_local_411c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16689,
   "name": "paint_scanline_spans_linear_local_4131",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16751,
   "name": "paint_scanline_spans_linear_local_416f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16781,
   "name": "paint_scanline_spans_linear_local_418d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16793,
   "name": "paint_scanline_spans_linear_local_4199",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16801,
   "name": "paint_scanline_spans_linear_local_41a1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16802,
   "name": "face_count_increment_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16803,
   "name": "face_count_increment_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 16825,
   "name": "paint_scanline_spans_linear_local_41b9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16832,
   "name": "paint_scanline_spans_linear_local_41c0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16911,
   "name": "rasterize_polygon_edges_local_420f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16914,
   "name": "rasterize_polygon_edges_local_4212",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16916,
   "name": "emit_clipped_object_faces",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16929,
   "name": "rasterize_polygon_edges_local_4221",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16974,
   "name": "rasterize_polygon_edges_local_424e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 16993,
   "name": "rasterize_polygon_edges_local_4261",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17014,
   "name": "rasterize_polygon_edges_local_4276",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17034,
   "name": "rasterize_polygon_edges_local_428a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17065,
   "name": "rasterize_polygon_edges_local_42a9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17116,
   "name": "rasterize_polygon_edges_local_42dc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17156,
   "name": "rasterize_polygon_edges_local_4304",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17159,
   "name": "rasterize_polygon_edges_local_4307",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17166,
   "name": "rasterize_polygon_edges_local_430e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17181,
   "name": "rasterize_polygon_edges_local_431d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17209,
   "name": "rasterize_polygon_edges_local_4339",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17246,
   "name": "rasterize_polygon_edges_local_435e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17260,
   "name": "rasterize_polygon_edges_local_436c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17272,
   "name": "rasterize_polygon_edges_local_4378",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17292,
   "name": "rasterize_polygon_edges_local_438c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17298,
   "name": "rasterize_polygon_edges_local_4392",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17330,
   "name": "rasterize_polygon_edges_local_43b2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17337,
   "name": "rasterize_polygon_edges_local_43b9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17342,
   "name": "rasterize_polygon_edges_local_43be",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17421,
   "name": "rasterize_polygon_edges_local_440d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17424,
   "name": "rasterize_polygon_edges_local_4410",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17425,
   "name": "RASTERIZE_POLYGON_EDGES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17431,
   "name": "rasterize_polygon_edges_local_4417",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17466,
   "name": "rasterize_polygon_edges_local_443a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17483,
   "name": "rasterize_polygon_edges_local_444b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17491,
   "name": "rasterize_polygon_edges_local_4453",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17505,
   "name": "rasterize_polygon_edges_local_4461",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17522,
   "name": "rasterize_polygon_edges_local_4472",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17541,
   "name": "rasterize_polygon_edges_local_4485",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17544,
   "name": "rasterize_polygon_edges_local_4488",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17555,
   "name": "rasterize_polygon_edges_local_4493",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17556,
   "name": "rasterize_polygon_edges_local_4494",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17574,
   "name": "rasterize_polygon_edges_local_44a6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17576,
   "name": "rasterize_polygon_edges_local_44a8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17594,
   "name": "rasterize_polygon_edges_local_44ba",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17613,
   "name": "rasterize_polygon_edges_local_44cd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17621,
   "name": "rasterize_polygon_edges_local_44d5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17650,
   "name": "rasterize_polygon_edges_local_44f2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17658,
   "name": "rasterize_polygon_edges_local_44fa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17687,
   "name": "rasterize_line_spans_local_4517",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17695,
   "name": "rasterize_line_spans_local_451f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17708,
   "name": "rasterize_line_spans_local_452c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17730,
   "name": "rasterize_line_spans_local_4542",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17750,
   "name": "rasterize_line_spans_local_4556",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17784,
   "name": "rasterize_line_spans_local_4578",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17791,
   "name": "rasterize_line_spans_local_457f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17800,
   "name": "rasterize_line_spans_local_4588",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17822,
   "name": "rasterize_line_spans_local_459e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17842,
   "name": "rasterize_line_spans_local_45b2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17845,
   "name": "rasterize_line_spans_local_45b5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17880,
   "name": "rasterize_line_spans_local_45d8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17895,
   "name": "rasterize_line_spans_local_45e7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17896,
   "name": "RASTERIZE_LINE_SPANS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 17952,
   "name": "rasterize_line_spans_local_4620",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17976,
   "name": "rasterize_line_spans_local_4638",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 17983,
   "name": "rasterize_line_spans_local_463f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18002,
   "name": "rasterize_line_spans_local_4652",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18024,
   "name": "rasterize_line_spans_local_4668",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18065,
   "name": "rasterize_line_spans_local_4691",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18100,
   "name": "engine_initialize_local_46b4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18109,
   "name": "engine_initialize_local_46bd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18128,
   "name": "engine_initialize_local_46d0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18144,
   "name": "engine_initialize_local_46e0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18165,
   "name": "engine_initialize_local_46f5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18175,
   "name": "engine_initialize_local_46ff",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18220,
   "name": "engine_initialize_local_472c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18235,
   "name": "ENGINE_INITIALIZE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18287,
   "name": "RESET_VECTOR_TARGET",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18373,
   "name": "MAIN_LOOP",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18413,
   "name": "update_frame_input_events_local_47ed",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18416,
   "name": "update_frame_input_events_local_47f0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18435,
   "name": "embedded_decom_text_fragment",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18436,
   "name": "embedded_decom_fragment_cr",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 18442,
   "name": "allocation_alias_480a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18443,
   "name": "allocation_alias_480b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18444,
   "name": "allocation_alias_480c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18445,
   "name": "UPDATE_FRAME_INPUT_EVENTS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18494,
   "name": "update_frame_input_events_local_483e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18519,
   "name": "update_frame_input_events_local_4857",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18537,
   "name": "update_frame_input_events_local_4869",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18556,
   "name": "update_frame_input_events_local_487c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18572,
   "name": "update_frame_input_events_local_488c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18588,
   "name": "update_frame_input_events_local_489c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18600,
   "name": "update_frame_input_events_local_48a8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18616,
   "name": "update_frame_input_events_local_48b8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18622,
   "name": "update_frame_input_events_local_48be",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18625,
   "name": "update_frame_input_events_local_48c1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18636,
   "name": "update_frame_input_events_local_48cc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18653,
   "name": "update_frame_input_events_local_48dd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18658,
   "name": "update_frame_input_events_local_48e2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18667,
   "name": "update_frame_input_events_local_48eb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18673,
   "name": "update_frame_input_events_local_48f1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18706,
   "name": "wait_for_session_message_local_4912",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18712,
   "name": "wait_for_session_message_local_4918",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18737,
   "name": "wait_for_session_message_local_4931",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18743,
   "name": "wait_for_session_message_local_4937",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18753,
   "name": "wait_for_session_message_local_4941",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18771,
   "name": "wait_for_session_message_local_4953",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18772,
   "name": "wait_for_session_message_local_4954",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18820,
   "name": "wait_for_session_message_local_4984",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18875,
   "name": "wait_for_session_message_local_49bb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18879,
   "name": "wait_for_session_message_local_49bf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18884,
   "name": "wait_for_session_message_local_49c4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18898,
   "name": "wait_for_session_message_local_49d2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18907,
   "name": "wait_for_session_message_local_49db",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18940,
   "name": "WAIT_FOR_SESSION_MESSAGE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 18949,
   "name": "wait_for_session_message_local_4a05",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18975,
   "name": "wait_for_session_message_local_4a1f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 18993,
   "name": "dispatch_frame_conditions_local_4a31",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19006,
   "name": "dispatch_frame_conditions_local_4a3e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19011,
   "name": "dispatch_frame_conditions_local_4a43",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19027,
   "name": "engine_internal_4a53",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19029,
   "name": "engine_internal_4a55",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19030,
   "name": "FCL_NO_EVENT_FALLBACK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19032,
   "name": "DISPATCH_FRAME_CONDITIONS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19041,
   "name": "dispatch_frame_conditions_local_4a61",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19108,
   "name": "dispatch_frame_conditions_local_4aa4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19127,
   "name": "dispatch_frame_conditions_local_4ab7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19149,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4acd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19152,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4ad0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19160,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4ad8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19174,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4ae6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19181,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4aed",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19203,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b03",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19206,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b06",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19214,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b0e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19228,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b1c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19235,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b23",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19236,
   "name": "BLIT_LINEAR_VIEWPORT_TO_VIC_BITMAP",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19244,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b2c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19270,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b46",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19276,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b4c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19278,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b4e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19279,
   "name": "reversed_viewport_source_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19280,
   "name": "operand_4b4e_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19281,
   "name": "blit_linear_viewport_to_vic_bitmap_local_4b51",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19282,
   "name": "operand_4b51_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19283,
   "name": "operand_4b51_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19315,
   "name": "draw_sky_floor_background_local_4b73",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19332,
   "name": "draw_sky_floor_background_local_4b84",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19337,
   "name": "background_fill_runtime_fields",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19338,
   "name": "allocation_alias_4b8a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19339,
   "name": "allocation_alias_4b8b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19340,
   "name": "allocation_alias_4b8c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19341,
   "name": "allocation_alias_4b8d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19342,
   "name": "allocation_alias_4b8e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19343,
   "name": "allocation_alias_4b8f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19345,
   "name": "DRAW_SKY_FLOOR_BACKGROUND",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19365,
   "name": "draw_sky_floor_background_local_4ba5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19368,
   "name": "draw_sky_floor_background_local_4ba8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19371,
   "name": "draw_sky_floor_background_local_4bab",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19411,
   "name": "draw_sky_floor_background_local_4bd3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19444,
   "name": "draw_sky_floor_background_local_4bf4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19446,
   "name": "draw_sky_floor_background_local_4bf6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19498,
   "name": "draw_sky_floor_background_local_4c2a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19510,
   "name": "fill_background_rows_with_pattern_local_4c36",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19524,
   "name": "fill_background_rows_with_pattern_local_4c44",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19527,
   "name": "fill_background_rows_with_pattern_local_4c47",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19565,
   "name": "fill_background_rows_with_pattern_local_4c6d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19577,
   "name": "fill_background_rows_with_pattern_local_4c79",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19587,
   "name": "fill_background_rows_with_pattern_local_4c83",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19594,
   "name": "fill_background_rows_with_pattern_local_4c8a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19614,
   "name": "fill_background_rows_with_pattern_local_4c9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19622,
   "name": "fill_background_rows_with_pattern_local_4ca6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19630,
   "name": "fill_background_rows_with_pattern_local_4cae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19640,
   "name": "fill_background_rows_with_pattern_local_4cb8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19650,
   "name": "fill_background_rows_with_pattern_local_4cc2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19651,
   "name": "FILL_BACKGROUND_ROWS_WITH_PATTERN",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19661,
   "name": "fill_background_rows_with_pattern_local_4ccd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19673,
   "name": "fill_background_rows_with_pattern_local_4cd9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19682,
   "name": "fill_lower_background_rows_local_4ce2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19698,
   "name": "fill_lower_background_rows_local_4cf2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19702,
   "name": "FILL_LOWER_BACKGROUND_ROWS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19718,
   "name": "fill_lower_background_rows_local_4d06",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19744,
   "name": "fill_lower_background_rows_local_4d20",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19755,
   "name": "fill_lower_background_rows_local_4d2b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19758,
   "name": "fill_lower_background_rows_local_4d2e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19784,
   "name": "apply_lightning_streak_mask_local_4d48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19785,
   "name": "repeating_tile_source_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19786,
   "name": "operand_4d48_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19795,
   "name": "apply_lightning_streak_mask_local_4d53",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19801,
   "name": "apply_lightning_streak_mask_local_4d59",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19802,
   "name": "operand_4d59_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19803,
   "name": "operand_4d59_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19815,
   "name": "apply_lightning_streak_mask_local_4d67",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19816,
   "name": "operand_4d67_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19817,
   "name": "operand_4d67_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 19835,
   "name": "apply_lightning_streak_mask_local_4d7b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19846,
   "name": "apply_lightning_streak_mask_local_4d86",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19856,
   "name": "APPLY_LIGHTNING_STREAK_MASK",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 19859,
   "name": "apply_lightning_streak_mask_local_4d93",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19868,
   "name": "apply_lightning_streak_mask_local_4d9c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19887,
   "name": "apply_lightning_streak_mask_local_4daf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19922,
   "name": "initialize_new_session_local_4dd2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19931,
   "name": "initialize_new_session_local_4ddb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19933,
   "name": "initialize_new_session_local_4ddd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19959,
   "name": "initialize_new_session_local_4df7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 19971,
   "name": "engine_internal_4e03",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19972,
   "name": "engine_internal_4e04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19973,
   "name": "INITIALIZE_NEW_SESSION",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20009,
   "name": "initialize_new_session_local_4e29",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20028,
   "name": "initialize_new_session_local_4e3c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20073,
   "name": "enter_destination_area_local_4e69",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20074,
   "name": "reset_object_directory_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20075,
   "name": "reset_object_directory_read_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20083,
   "name": "enter_destination_area_local_4e73",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20084,
   "name": "operand_4e73_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20085,
   "name": "operand_4e73_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 20112,
   "name": "enter_destination_area_local_4e90",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20122,
   "name": "enter_destination_area_local_4e9a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20137,
   "name": "enter_destination_area_local_4ea9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20142,
   "name": "enter_destination_area_local_4eae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20147,
   "name": "enter_destination_area_local_4eb3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20163,
   "name": "ENTER_DESTINATION_AREA",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20182,
   "name": "enter_destination_area_local_4ed6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20216,
   "name": "enter_destination_area_local_4ef8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20248,
   "name": "enter_destination_area_local_4f18",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20274,
   "name": "enter_destination_area_local_4f32",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20296,
   "name": "solve_player_collision_local_4f48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20313,
   "name": "solve_player_collision_local_4f59",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20314,
   "name": "engine_internal_4f5a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20315,
   "name": "engine_internal_4f5b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20316,
   "name": "engine_internal_4f5c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20317,
   "name": "engine_internal_4f5d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20318,
   "name": "engine_internal_4f5e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20319,
   "name": "engine_internal_4f5f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20320,
   "name": "engine_internal_4f60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20321,
   "name": "engine_internal_4f61",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20322,
   "name": "engine_internal_4f62",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20323,
   "name": "engine_internal_4f63",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20324,
   "name": "engine_internal_4f64",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20325,
   "name": "engine_internal_4f65",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20326,
   "name": "engine_internal_4f66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20327,
   "name": "engine_internal_4f67",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20328,
   "name": "engine_internal_4f68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20329,
   "name": "engine_internal_4f69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20330,
   "name": "engine_internal_4f6a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20331,
   "name": "engine_internal_4f6b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20332,
   "name": "engine_internal_4f6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20333,
   "name": "engine_internal_4f6d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20334,
   "name": "engine_internal_4f6e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20335,
   "name": "engine_internal_4f6f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20336,
   "name": "engine_internal_4f70",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20337,
   "name": "engine_internal_4f71",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20338,
   "name": "engine_internal_4f72",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20339,
   "name": "engine_internal_4f73",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20340,
   "name": "engine_internal_4f74",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20341,
   "name": "engine_internal_4f75",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20342,
   "name": "engine_internal_4f76",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20343,
   "name": "engine_internal_4f77",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20344,
   "name": "engine_internal_4f78",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20345,
   "name": "engine_internal_4f79",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20346,
   "name": "engine_internal_4f7a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20347,
   "name": "engine_internal_4f7b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20348,
   "name": "engine_internal_4f7c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20349,
   "name": "engine_internal_4f7d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20350,
   "name": "f_4F7E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20351,
   "name": "f_4F7F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20356,
   "name": "engine_internal_4f84",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20357,
   "name": "engine_internal_4f85",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20358,
   "name": "engine_internal_4f86",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20359,
   "name": "engine_internal_4f87",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20360,
   "name": "engine_internal_4f88",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20361,
   "name": "engine_internal_4f89",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20362,
   "name": "f_4F8A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20363,
   "name": "f_4F8B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 20368,
   "name": "engine_internal_4f90",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20369,
   "name": "engine_internal_4f91",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20370,
   "name": "engine_internal_4f92",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20371,
   "name": "engine_internal_4f93",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20372,
   "name": "engine_internal_4f94",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20373,
   "name": "engine_internal_4f95",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20374,
   "name": "engine_internal_4f96",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20375,
   "name": "engine_internal_4f97",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20376,
   "name": "engine_internal_4f98",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20377,
   "name": "engine_internal_4f99",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20378,
   "name": "engine_internal_4f9a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20379,
   "name": "engine_internal_4f9b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20380,
   "name": "engine_internal_4f9c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20381,
   "name": "engine_internal_4f9d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20382,
   "name": "engine_internal_4f9e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20383,
   "name": "engine_internal_4f9f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20384,
   "name": "engine_internal_4fa0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20385,
   "name": "engine_internal_4fa1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20386,
   "name": "engine_internal_4fa2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20387,
   "name": "SOLVE_PLAYER_COLLISION",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 20454,
   "name": "solve_player_collision_local_4fe6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20491,
   "name": "solve_player_collision_local_500b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20502,
   "name": "solve_player_collision_local_5016",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20507,
   "name": "solve_player_collision_local_501b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20551,
   "name": "solve_player_collision_local_5047",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20563,
   "name": "solve_player_collision_local_5053",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20586,
   "name": "solve_player_collision_local_506a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20604,
   "name": "solve_player_collision_local_507c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20689,
   "name": "solve_player_collision_local_50d1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20728,
   "name": "solve_player_collision_local_50f8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20737,
   "name": "solve_player_collision_local_5101",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20743,
   "name": "solve_player_collision_local_5107",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20746,
   "name": "solve_player_collision_local_510a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20817,
   "name": "solve_player_collision_local_5151",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20927,
   "name": "solve_player_collision_local_51bf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20939,
   "name": "solve_player_collision_local_51cb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20947,
   "name": "solve_player_collision_local_51d3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20961,
   "name": "solve_player_collision_local_51e1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20964,
   "name": "solve_player_collision_local_51e4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 20978,
   "name": "solve_player_collision_local_51f2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21130,
   "name": "scan_objects_for_collision_local_528a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21151,
   "name": "scan_objects_for_collision_local_529f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21165,
   "name": "scan_objects_for_collision_local_52ad",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21168,
   "name": "scan_objects_for_collision_local_52b0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21182,
   "name": "scan_objects_for_collision_local_52be",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21291,
   "name": "scan_objects_for_collision_local_532b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21312,
   "name": "scan_objects_for_collision_local_5340",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21325,
   "name": "scan_objects_for_collision_local_534d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21330,
   "name": "scan_objects_for_collision_local_5352",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21332,
   "name": "scan_objects_for_collision_local_5354",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21355,
   "name": "scan_objects_for_collision_local_536b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21391,
   "name": "scan_objects_for_collision_local_538f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21411,
   "name": "collision_candidate_y_store_operand",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21449,
   "name": "scan_objects_for_collision_local_53c9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21463,
   "name": "scan_objects_for_collision_local_53d7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21501,
   "name": "scan_objects_for_collision_local_53fd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21504,
   "name": "scan_objects_for_collision_local_5400",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21545,
   "name": "scan_objects_for_collision_local_5429",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21548,
   "name": "scan_objects_for_collision_local_542c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21598,
   "name": "scan_objects_for_collision_local_545e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21601,
   "name": "scan_objects_for_collision_local_5461",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21610,
   "name": "scan_objects_for_collision_local_546a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21611,
   "name": "SCAN_OBJECTS_FOR_COLLISION",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21629,
   "name": "scan_objects_for_collision_local_547d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21647,
   "name": "scan_object_list_for_candidate_overlap_local_548f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21654,
   "name": "scan_object_list_for_candidate_overlap_local_5496",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21668,
   "name": "scan_object_list_for_candidate_overlap_local_54a4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21669,
   "name": "scan_object_list_for_candidate_overlap_local_54a5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21672,
   "name": "SCAN_OBJECT_LIST_FOR_CANDIDATE_OVERLAP",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21821,
   "name": "compute_manhattan_distance_from_player_local_553d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21834,
   "name": "compute_manhattan_distance_from_player_local_554a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21840,
   "name": "compute_manhattan_distance_from_player_local_5550",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21841,
   "name": "COMPUTE_MANHATTAN_DISTANCE_FROM_PLAYER",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21859,
   "name": "compute_manhattan_distance_from_player_local_5563",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21860,
   "name": "distance_coordinate_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21861,
   "name": "operand_5563_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21869,
   "name": "compute_manhattan_distance_from_player_local_556d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21870,
   "name": "operand_556d_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21871,
   "name": "operand_556d_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21895,
   "name": "scale_world_byte_by_64_local_5587",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21914,
   "name": "SCALE_WORLD_BYTE_BY_64",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21927,
   "name": "CONSIDER_BLOCKING_FACE_CANDIDATE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 21977,
   "name": "consider_blocking_face_candidate_local_55d9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 21998,
   "name": "find_nearest_support_below_point_local_55ee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22013,
   "name": "find_nearest_support_below_point_local_55fd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22030,
   "name": "find_nearest_support_below_point_local_560e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22067,
   "name": "find_nearest_support_below_point_local_5633",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22068,
   "name": "FIND_NEAREST_SUPPORT_BELOW_POINT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 22103,
   "name": "scan_object_list_for_nearest_support_local_5657",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22121,
   "name": "scan_object_list_for_nearest_support_local_5669",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22122,
   "name": "scan_object_list_for_nearest_support_local_566a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22125,
   "name": "SCAN_OBJECT_LIST_FOR_NEAREST_SUPPORT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 22291,
   "name": "scan_all_objects_for_blocking_faces_local_5713",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22308,
   "name": "scan_all_objects_for_blocking_faces_local_5724",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22321,
   "name": "scan_all_objects_for_blocking_faces_local_5731",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22327,
   "name": "scan_all_objects_for_blocking_faces_local_5737",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22328,
   "name": "SCAN_ALL_OBJECTS_FOR_BLOCKING_FACES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 22346,
   "name": "scan_all_objects_for_blocking_faces_local_574a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22364,
   "name": "scan_object_list_for_blocking_faces_local_575c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22365,
   "name": "SCAN_OBJECT_LIST_FOR_BLOCKING_FACES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 22497,
   "name": "scan_object_list_for_blocking_faces_local_57e1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22500,
   "name": "scan_object_list_for_blocking_faces_local_57e4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22528,
   "name": "scan_object_list_for_blocking_faces_local_5800",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22531,
   "name": "scan_object_list_for_blocking_faces_local_5803",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22551,
   "name": "scan_object_list_for_blocking_faces_local_5817",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22553,
   "name": "scan_object_list_for_blocking_faces_local_5819",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22729,
   "name": "scan_object_list_for_blocking_faces_local_58c9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22774,
   "name": "scan_object_list_for_blocking_faces_local_58f6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22777,
   "name": "scan_object_list_for_blocking_faces_local_58f9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22904,
   "name": "scan_object_list_for_blocking_faces_local_5978",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 22937,
   "name": "scan_object_list_for_blocking_faces_local_5999",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23017,
   "name": "scan_object_list_for_blocking_faces_local_59e9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23023,
   "name": "scan_object_list_for_blocking_faces_local_59ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23026,
   "name": "scan_object_list_for_blocking_faces_local_59f2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23054,
   "name": "scan_object_list_for_blocking_faces_local_5a0e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23057,
   "name": "scan_object_list_for_blocking_faces_local_5a11",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23077,
   "name": "scan_object_list_for_blocking_faces_local_5a25",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23079,
   "name": "scan_object_list_for_blocking_faces_local_5a27",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23249,
   "name": "dispatch_player_movement_local_5ad1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23294,
   "name": "dispatch_player_movement_local_5afe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23297,
   "name": "dispatch_player_movement_local_5b01",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23389,
   "name": "collision_y_bounds_and_z_planes",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 23421,
   "name": "dispatch_player_movement_local_5b7d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23466,
   "name": "dispatch_player_movement_local_5baa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23491,
   "name": "dispatch_player_movement_local_5bc3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23506,
   "name": "dispatch_player_movement_local_5bd2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23512,
   "name": "dispatch_player_movement_local_5bd8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23515,
   "name": "dispatch_player_movement_local_5bdb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23543,
   "name": "dispatch_player_movement_local_5bf7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23563,
   "name": "dispatch_player_movement_local_5c0b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23565,
   "name": "dispatch_player_movement_local_5c0d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23766,
   "name": "dispatch_player_movement_local_5cd6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23769,
   "name": "dispatch_player_movement_local_5cd9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23989,
   "name": "dispatch_player_movement_local_5db5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 23995,
   "name": "dispatch_player_movement_local_5dbb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24008,
   "name": "dispatch_player_movement_local_5dc8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24016,
   "name": "dispatch_player_movement_local_5dd0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24017,
   "name": "engine_internal_5dd1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24018,
   "name": "engine_internal_5dd2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24019,
   "name": "engine_internal_5dd3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24020,
   "name": "engine_internal_5dd4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24021,
   "name": "engine_internal_5dd5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24022,
   "name": "engine_internal_5dd6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24023,
   "name": "engine_internal_5dd7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24024,
   "name": "DISPATCH_PLAYER_MOVEMENT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 24067,
   "name": "dispatch_player_movement_local_5e03",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24077,
   "name": "dispatch_player_movement_local_5e0d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24102,
   "name": "dispatch_player_movement_local_5e26",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24105,
   "name": "dispatch_player_movement_local_5e29",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24113,
   "name": "dispatch_player_movement_local_5e31",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24211,
   "name": "dispatch_player_movement_local_5e93",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24231,
   "name": "dispatch_player_movement_local_5ea7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24234,
   "name": "dispatch_player_movement_local_5eaa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24247,
   "name": "dispatch_player_movement_local_5eb7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24336,
   "name": "dispatch_player_movement_local_5f10",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24368,
   "name": "dispatch_player_movement_local_5f30",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24401,
   "name": "dispatch_player_movement_local_5f51",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24437,
   "name": "dispatch_player_movement_local_5f75",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24442,
   "name": "dispatch_player_movement_local_5f7a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24445,
   "name": "dispatch_player_movement_local_5f7d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24512,
   "name": "present_action_feedback_local_5fc0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24583,
   "name": "present_action_feedback_local_6007",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24657,
   "name": "present_action_feedback_local_6051",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24679,
   "name": "present_action_feedback_local_6067",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24700,
   "name": "present_action_feedback_local_607c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24703,
   "name": "present_action_feedback_local_607f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24724,
   "name": "present_action_feedback_local_6094",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24727,
   "name": "present_action_feedback_local_6097",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24739,
   "name": "present_action_feedback_local_60a3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24757,
   "name": "present_action_feedback_local_60b5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24771,
   "name": "present_action_feedback_local_60c3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24789,
   "name": "present_action_feedback_local_60d5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24815,
   "name": "present_action_feedback_local_60ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24823,
   "name": "present_action_feedback_local_60f7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24828,
   "name": "present_action_feedback_local_60fc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24856,
   "name": "present_action_feedback_local_6118",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24864,
   "name": "present_action_feedback_local_6120",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24866,
   "name": "present_action_feedback_local_6122",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24877,
   "name": "present_action_feedback_local_612d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24894,
   "name": "present_action_feedback_local_613e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24909,
   "name": "present_action_feedback_local_614d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24918,
   "name": "present_action_feedback_local_6156",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24940,
   "name": "present_action_feedback_local_616c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24943,
   "name": "present_action_feedback_local_616f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24951,
   "name": "present_action_feedback_local_6177",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 24970,
   "name": "PRESENT_ACTION_FEEDBACK",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 24998,
   "name": "engine_internal_61a6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 24999,
   "name": "engine_internal_61a7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25000,
   "name": "UPDATE_VIEWPORT_COLOR_CELLS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25016,
   "name": "update_viewport_color_cells_local_61b8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25058,
   "name": "update_viewport_color_cells_local_61e2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25061,
   "name": "find_object_by_id_local_61e5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25064,
   "name": "find_object_by_id_local_61e8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25065,
   "name": "viewport_colour_hardware_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 25066,
   "name": "operand_61e8_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 25070,
   "name": "find_object_by_id_local_61ee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25071,
   "name": "operand_61ee_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 25072,
   "name": "operand_61ee_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 25096,
   "name": "find_object_by_id_local_6208",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25111,
   "name": "object_lookup_runtime_scratch",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25112,
   "name": "allocation_alias_6218",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25114,
   "name": "allocation_alias_621a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25115,
   "name": "allocation_alias_621b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25116,
   "name": "FIND_OBJECT_BY_ID",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25144,
   "name": "find_object_by_id_local_6238",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25156,
   "name": "find_object_by_id_local_6244",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25168,
   "name": "find_object_by_id_local_6250",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25173,
   "name": "find_object_by_id_local_6255",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25189,
   "name": "find_object_by_id_local_6265",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25208,
   "name": "find_object_by_id_local_6278",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25246,
   "name": "dispatch_aim_fire_activate_local_629e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25262,
   "name": "dispatch_aim_fire_activate_local_62ae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25269,
   "name": "dispatch_aim_fire_activate_local_62b5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25290,
   "name": "dispatch_aim_fire_activate_local_62ca",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25295,
   "name": "dispatch_aim_fire_activate_local_62cf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25304,
   "name": "dispatch_aim_fire_activate_local_62d8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25313,
   "name": "engine_internal_62e1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25314,
   "name": "engine_internal_62e2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25315,
   "name": "engine_internal_62e3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25316,
   "name": "engine_internal_62e4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25317,
   "name": "engine_internal_62e5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25318,
   "name": "engine_internal_62e6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25319,
   "name": "engine_internal_62e7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 25320,
   "name": "DISPATCH_AIM_FIRE_ACTIVATE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 25360,
   "name": "dispatch_aim_fire_activate_local_6310",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25373,
   "name": "dispatch_aim_fire_activate_local_631d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25381,
   "name": "dispatch_aim_fire_activate_local_6325",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25397,
   "name": "dispatch_aim_fire_activate_local_6335",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25417,
   "name": "dispatch_aim_fire_activate_local_6349",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25422,
   "name": "dispatch_aim_fire_activate_local_634e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25427,
   "name": "dispatch_aim_fire_activate_local_6353",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25430,
   "name": "dispatch_aim_fire_activate_local_6356",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25438,
   "name": "dispatch_aim_fire_activate_local_635e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25456,
   "name": "dispatch_aim_fire_activate_local_6370",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25476,
   "name": "dispatch_aim_fire_activate_local_6384",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25496,
   "name": "dispatch_aim_fire_activate_local_6398",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25516,
   "name": "dispatch_aim_fire_activate_local_63ac",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25523,
   "name": "dispatch_aim_fire_activate_local_63b3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25582,
   "name": "dispatch_aim_fire_activate_local_63ee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25587,
   "name": "dispatch_aim_fire_activate_local_63f3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25643,
   "name": "dispatch_aim_fire_activate_local_642b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25673,
   "name": "redraw_center_sight_state_local_6449",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25708,
   "name": "redraw_center_sight_state_local_646c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25712,
   "name": "redraw_center_sight_state_local_6470",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25715,
   "name": "redraw_center_sight_state_local_6473",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25747,
   "name": "redraw_center_sight_state_local_6493",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25839,
   "name": "redraw_center_sight_state_local_64ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25883,
   "name": "redraw_center_sight_state_local_651b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25905,
   "name": "redraw_center_sight_state_local_6531",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25932,
   "name": "redraw_center_sight_state_local_654c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25964,
   "name": "redraw_center_sight_state_local_656c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 25972,
   "name": "redraw_center_sight_state_local_6574",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26003,
   "name": "redraw_center_sight_state_local_6593",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26011,
   "name": "redraw_center_sight_state_local_659b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26012,
   "name": "REDRAW_CENTER_SIGHT_STATE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26022,
   "name": "POSITION_ENABLE_AIM_SPRITES",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26052,
   "name": "position_enable_aim_sprites_local_65c4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26078,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_65de",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26080,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_65e0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26087,
   "name": "BLIT_LINEAR_BUFFER_FORWARD_TO_VIC_BITMAP",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26095,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_65ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26121,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_6609",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26127,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_660f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26129,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_6611",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26130,
   "name": "viewport_source_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26131,
   "name": "viewport_source_read_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26132,
   "name": "blit_linear_buffer_forward_to_vic_bitmap_local_6614",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26133,
   "name": "operand_6614_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26134,
   "name": "operand_6614_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 26166,
   "name": "pick_rendered_object_local_6636",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26183,
   "name": "pick_rendered_object_local_6647",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26188,
   "name": "viewport_copy_zero_workspace",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26189,
   "name": "engine_internal_664d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26190,
   "name": "engine_internal_664e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26196,
   "name": "engine_internal_6654",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26197,
   "name": "engine_internal_6655",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26199,
   "name": "engine_internal_6657",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26200,
   "name": "engine_internal_6658",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26201,
   "name": "engine_internal_6659",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26202,
   "name": "engine_internal_665a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26203,
   "name": "engine_internal_665b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26204,
   "name": "engine_internal_665c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26205,
   "name": "engine_internal_665d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26207,
   "name": "engine_internal_665f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26208,
   "name": "engine_internal_6660",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26209,
   "name": "PICK_RENDERED_OBJECT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26227,
   "name": "pick_rendered_object_local_6673",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26255,
   "name": "pick_rendered_object_local_668f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26281,
   "name": "pick_rendered_object_local_66a9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26289,
   "name": "pick_rendered_object_local_66b1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26300,
   "name": "pick_rendered_object_local_66bc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26325,
   "name": "pick_rendered_object_local_66d5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26340,
   "name": "pick_rendered_object_local_66e4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26345,
   "name": "pick_rendered_object_local_66e9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26347,
   "name": "pick_rendered_object_local_66eb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26369,
   "name": "pick_rendered_object_local_6701",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26374,
   "name": "pick_rendered_object_local_6706",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26376,
   "name": "pick_rendered_object_local_6708",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26398,
   "name": "pick_rendered_object_local_671e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26416,
   "name": "pick_rendered_object_local_6730",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26431,
   "name": "pick_rendered_object_local_673f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26434,
   "name": "pick_rendered_object_local_6742",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26453,
   "name": "pick_rendered_object_local_6755",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26471,
   "name": "pick_rendered_object_local_6767",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26489,
   "name": "pick_rendered_object_local_6779",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26497,
   "name": "pick_rendered_object_local_6781",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26518,
   "name": "pick_rendered_object_local_6796",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26520,
   "name": "pick_rendered_object_local_6798",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26542,
   "name": "execute_fcl_stream_local_67ae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26544,
   "name": "execute_fcl_stream_local_67b0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26554,
   "name": "execute_fcl_stream_local_67ba",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26565,
   "name": "execute_fcl_stream_local_67c5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26576,
   "name": "execute_fcl_stream_local_67d0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26607,
   "name": "execute_fcl_stream_local_67ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26629,
   "name": "execute_fcl_stream_local_6805",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26700,
   "name": "execute_fcl_stream_local_684c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26744,
   "name": "execute_fcl_stream_local_6878",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26758,
   "name": "execute_fcl_stream_local_6886",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26768,
   "name": "execute_fcl_stream_local_6890",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26780,
   "name": "execute_fcl_stream_local_689c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26798,
   "name": "execute_fcl_stream_local_68ae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26802,
   "name": "execute_fcl_stream_local_68b2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26813,
   "name": "execute_fcl_stream_local_68bd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26822,
   "name": "execute_fcl_stream_local_68c6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26830,
   "name": "execute_fcl_stream_local_68ce",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26851,
   "name": "execute_fcl_stream_local_68e3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26852,
   "name": "FCL_SKIP_FLAG",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26854,
   "name": "FCL_OPCODE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26864,
   "name": "FCL_REMAINING_LENGTH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26865,
   "name": "engine_internal_68f1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26866,
   "name": "engine_internal_68f2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26867,
   "name": "engine_internal_68f3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 26869,
   "name": "EXECUTE_FCL_STREAM",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 26883,
   "name": "execute_fcl_stream_local_6903",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26910,
   "name": "execute_fcl_stream_local_691e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26924,
   "name": "execute_fcl_stream_local_692c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26935,
   "name": "execute_fcl_stream_local_6937",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26938,
   "name": "execute_fcl_stream_local_693a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26945,
   "name": "execute_fcl_stream_local_6941",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26957,
   "name": "execute_fcl_stream_local_694d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26966,
   "name": "execute_fcl_stream_local_6956",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26969,
   "name": "execute_fcl_stream_local_6959",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 26972,
   "name": "execute_fcl_stream_local_695c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27006,
   "name": "execute_fcl_stream_local_697e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27029,
   "name": "execute_fcl_stream_local_6995",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27042,
   "name": "execute_fcl_stream_local_69a2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27049,
   "name": "execute_fcl_stream_local_69a9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27076,
   "name": "execute_fcl_stream_local_69c4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27106,
   "name": "execute_fcl_stream_local_69e2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27132,
   "name": "execute_fcl_stream_local_69fc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27135,
   "name": "execute_fcl_stream_local_69ff",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27156,
   "name": "execute_fcl_stream_local_6a14",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27159,
   "name": "execute_fcl_stream_local_6a17",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27168,
   "name": "execute_fcl_stream_local_6a20",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27184,
   "name": "execute_fcl_stream_local_6a30",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27197,
   "name": "execute_fcl_stream_local_6a3d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27201,
   "name": "execute_fcl_stream_local_6a41",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27233,
   "name": "execute_fcl_stream_local_6a61",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27252,
   "name": "execute_fcl_stream_local_6a74",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27255,
   "name": "execute_fcl_stream_local_6a77",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27289,
   "name": "execute_fcl_stream_local_6a99",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27292,
   "name": "execute_fcl_stream_local_6a9c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27323,
   "name": "execute_fcl_stream_local_6abb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27362,
   "name": "execute_fcl_stream_local_6ae2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27372,
   "name": "execute_fcl_stream_local_6aec",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27384,
   "name": "execute_fcl_stream_local_6af8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27393,
   "name": "execute_fcl_stream_local_6b01",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27420,
   "name": "execute_fcl_stream_local_6b1c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27469,
   "name": "execute_fcl_stream_local_6b4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27472,
   "name": "execute_fcl_stream_local_6b50",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27493,
   "name": "execute_fcl_stream_local_6b65",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27496,
   "name": "execute_fcl_stream_local_6b68",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27518,
   "name": "execute_fcl_stream_local_6b7e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27531,
   "name": "execute_fcl_stream_local_6b8b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27535,
   "name": "execute_fcl_stream_local_6b8f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27544,
   "name": "execute_fcl_stream_local_6b98",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27550,
   "name": "execute_fcl_stream_local_6b9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27559,
   "name": "execute_fcl_stream_local_6ba7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27583,
   "name": "execute_fcl_stream_local_6bbf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27601,
   "name": "execute_fcl_stream_local_6bd1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27611,
   "name": "execute_fcl_stream_local_6bdb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27625,
   "name": "execute_fcl_stream_local_6be9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27639,
   "name": "expand_bordered_row_30_local_6bf7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27653,
   "name": "expand_bordered_row_30_local_6c05",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27660,
   "name": "expand_bordered_row_30_local_6c0c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27663,
   "name": "expand_bordered_row_30_local_6c0f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27666,
   "name": "expand_bordered_row_30_local_6c12",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27685,
   "name": "expand_bordered_row_30_local_6c25",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27694,
   "name": "expand_bordered_row_30_local_6c2e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27705,
   "name": "expand_bordered_row_30_local_6c39",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27717,
   "name": "expand_bordered_row_30_local_6c45",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27725,
   "name": "expand_bordered_row_30_local_6c4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27743,
   "name": "expand_bordered_row_30_local_6c5f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27747,
   "name": "expand_bordered_row_30_local_6c63",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27775,
   "name": "expand_bordered_row_30_local_6c7f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27778,
   "name": "expand_bordered_row_30_local_6c82",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27782,
   "name": "expand_bordered_row_30_local_6c86",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27796,
   "name": "expand_bordered_row_30_local_6c94",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27806,
   "name": "expand_bordered_row_30_local_6c9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27815,
   "name": "expand_bordered_row_30_local_6ca7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27818,
   "name": "expand_bordered_row_30_local_6caa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27840,
   "name": "expand_bordered_row_30_local_6cc0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27850,
   "name": "expand_bordered_row_30_local_6cca",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27860,
   "name": "expand_bordered_row_30_local_6cd4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27893,
   "name": "fcl_goto_and_print_continuation",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 27908,
   "name": "expand_bordered_row_30_local_6d04",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27919,
   "name": "expand_bordered_row_30_local_6d0f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27926,
   "name": "expand_bordered_row_30_local_6d16",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27930,
   "name": "expand_bordered_row_30_local_6d1a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27952,
   "name": "expand_bordered_row_30_local_6d30",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27972,
   "name": "expand_bordered_row_30_local_6d44",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27981,
   "name": "expand_bordered_row_30_local_6d4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 27988,
   "name": "expand_bordered_row_30_local_6d54",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28003,
   "name": "expand_bordered_row_30_local_6d63",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28037,
   "name": "expand_bordered_row_30_local_6d85",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28049,
   "name": "expand_bordered_row_30_local_6d91",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28063,
   "name": "expand_bordered_row_30_local_6d9f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28106,
   "name": "expand_bordered_row_30_local_6dca",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28118,
   "name": "expand_bordered_row_30_local_6dd6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28143,
   "name": "expand_bordered_row_30_local_6def",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28157,
   "name": "expand_bordered_row_30_local_6dfd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28201,
   "name": "expand_bordered_row_30_local_6e29",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28218,
   "name": "expand_bordered_row_30_local_6e3a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28302,
   "name": "expand_bordered_row_30_local_6e8e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28321,
   "name": "expand_bordered_row_30_local_6ea1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28335,
   "name": "expand_bordered_row_30_local_6eaf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28346,
   "name": "expand_bordered_row_30_local_6eba",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28349,
   "name": "expand_bordered_row_30_local_6ebd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28376,
   "name": "expand_bordered_row_30_local_6ed8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28382,
   "name": "expand_bordered_row_30_local_6ede",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28391,
   "name": "EXPAND_BORDERED_ROW_30",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28408,
   "name": "expand_bordered_row_30_local_6ef8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28435,
   "name": "expand_bordered_row_30_local_6f13",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28436,
   "name": "expand_bordered_row_30_local_6f14",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28466,
   "name": "expand_bordered_row_30_local_6f32",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28477,
   "name": "expand_bordered_row_30_local_6f3d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28485,
   "name": "expand_bordered_row_30_local_6f45",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28492,
   "name": "expand_bordered_row_30_local_6f4c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28559,
   "name": "add_score_u24_local_6f8f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28564,
   "name": "add_score_u24_local_6f94",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28581,
   "name": "add_score_u24_local_6fa5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28598,
   "name": "add_score_u24_local_6fb6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28605,
   "name": "ADD_SCORE_U24",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28629,
   "name": "FORMAT_UNSIGNED_DECIMAL",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28654,
   "name": "format_unsigned_decimal_local_6fee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28677,
   "name": "refresh_hud_stats_local_7005",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28700,
   "name": "refresh_hud_stats_local_701c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28709,
   "name": "engine_internal_7025",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28710,
   "name": "engine_internal_7026",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28711,
   "name": "engine_internal_7027",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28712,
   "name": "engine_internal_7028",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28713,
   "name": "engine_internal_7029",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28714,
   "name": "engine_internal_702a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28715,
   "name": "engine_internal_702b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 28716,
   "name": "REFRESH_HUD_STATS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 28769,
   "name": "refresh_hud_stats_local_7061",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28785,
   "name": "refresh_hud_stats_local_7071",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28807,
   "name": "refresh_hud_stats_local_7087",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28837,
   "name": "refresh_hud_stats_local_70a5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28843,
   "name": "refresh_hud_stats_local_70ab",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28847,
   "name": "refresh_hud_stats_local_70af",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28919,
   "name": "refresh_hud_stats_local_70f7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 28930,
   "name": "refresh_hud_stats_local_7102",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29001,
   "name": "refresh_hud_stats_local_7149",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29017,
   "name": "refresh_hud_stats_local_7159",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29041,
   "name": "refresh_hud_stats_local_7171",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29107,
   "name": "refresh_action_status_local_71b3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29166,
   "name": "refresh_action_status_local_71ee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29191,
   "name": "refresh_action_status_local_7207",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29235,
   "name": "refresh_action_status_local_7233",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29242,
   "name": "refresh_action_status_local_723a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29272,
   "name": "refresh_action_status_local_7258",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29290,
   "name": "refresh_action_status_local_726a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29362,
   "name": "refresh_action_status_local_72b2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29366,
   "name": "refresh_action_status_local_72b6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29401,
   "name": "refresh_action_status_local_72d9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29402,
   "name": "REFRESH_ACTION_STATUS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29417,
   "name": "refresh_action_status_local_72e9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29442,
   "name": "refresh_action_status_local_7302",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29456,
   "name": "refresh_action_status_local_7310",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29471,
   "name": "install_runtime_vectors_local_731f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29482,
   "name": "install_runtime_vectors_local_732a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29489,
   "name": "install_runtime_vectors_local_7331",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29517,
   "name": "install_runtime_vectors_local_734d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29520,
   "name": "engine_internal_7350",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29521,
   "name": "engine_internal_7351",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29522,
   "name": "engine_internal_7352",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29523,
   "name": "engine_internal_7353",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29524,
   "name": "engine_internal_7354",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29525,
   "name": "engine_internal_7355",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29526,
   "name": "engine_internal_7356",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29527,
   "name": "engine_internal_7357",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29528,
   "name": "engine_internal_7358",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29529,
   "name": "engine_internal_7359",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29530,
   "name": "f_735A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 29533,
   "name": "INSTALL_RUNTIME_VECTORS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 29567,
   "name": "COMMON_IRQ_SOURCE_DISPATCHER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 29579,
   "name": "IRQ_VIC_RASTER_BRANCH",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29601,
   "name": "common_irq_source_dispatcher_local_73a1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29616,
   "name": "common_irq_source_dispatcher_local_73b0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29627,
   "name": "IRQ_CIA1_PERIODIC_BRANCH",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29643,
   "name": "common_irq_source_dispatcher_local_73cb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29653,
   "name": "common_irq_source_dispatcher_local_73d5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29663,
   "name": "common_irq_source_dispatcher_local_73df",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29668,
   "name": "common_irq_source_dispatcher_local_73e4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29686,
   "name": "common_irq_source_dispatcher_local_73f6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29702,
   "name": "common_irq_source_dispatcher_local_7406",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29716,
   "name": "common_irq_source_dispatcher_local_7414",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29718,
   "name": "common_irq_source_dispatcher_local_7416",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29719,
   "name": "irq_colour_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29720,
   "name": "irq_colour_store_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 29739,
   "name": "common_irq_source_dispatcher_local_742b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29743,
   "name": "common_irq_source_dispatcher_local_742f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29797,
   "name": "common_irq_source_dispatcher_local_7465",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29807,
   "name": "common_irq_source_dispatcher_local_746f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29813,
   "name": "common_irq_source_dispatcher_local_7475",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29870,
   "name": "irq_nmi_return_local_74ae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29883,
   "name": "irq_nmi_return_local_74bb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29886,
   "name": "irq_nmi_return_local_74be",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29917,
   "name": "irq_nmi_return_local_74dd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29935,
   "name": "irq_nmi_return_local_74ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29953,
   "name": "irq_nmi_return_local_7501",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29971,
   "name": "irq_nmi_return_local_7513",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 29986,
   "name": "irq_nmi_return_local_7522",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30011,
   "name": "irq_nmi_return_local_753b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30034,
   "name": "irq_nmi_return_local_7552",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30047,
   "name": "irq_nmi_return_local_755f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30060,
   "name": "IRQ_CIA1_ACKNOWLEDGE",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30063,
   "name": "IRQ_COMMON_EPILOGUE",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30073,
   "name": "IRQ_NMI_RETURN",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30074,
   "name": "keyboard_column_masks_and_codes",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 30147,
   "name": "READ_CONTROL_INPUT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30164,
   "name": "read_control_input_local_75d4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30175,
   "name": "read_control_input_local_75df",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30186,
   "name": "read_control_input_local_75ea",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30197,
   "name": "read_control_input_local_75f5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30206,
   "name": "read_control_input_local_75fe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30215,
   "name": "read_control_input_local_7607",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30227,
   "name": "install_global_database_pointers_local_7613",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30235,
   "name": "install_global_database_pointers_local_761b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30238,
   "name": "install_global_database_pointers_local_761e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30251,
   "name": "install_global_database_pointers_local_762b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30280,
   "name": "install_global_database_pointers_local_7648",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30290,
   "name": "install_global_database_pointers_local_7652",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30291,
   "name": "install_global_database_pointers_local_7653",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30298,
   "name": "install_global_database_pointers_local_765a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30302,
   "name": "INSTALL_GLOBAL_DATABASE_POINTERS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30348,
   "name": "install_global_database_pointers_local_768c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30384,
   "name": "select_area_local_76b0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30393,
   "name": "select_area_local_76b9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30414,
   "name": "select_area_local_76ce",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30415,
   "name": "area_loader_zero_prefix",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30416,
   "name": "SELECT_AREA",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30453,
   "name": "select_area_local_76f5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30495,
   "name": "select_area_local_771f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30663,
   "name": "run_information_menu_local_77c7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30664,
   "name": "area_name_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 30665,
   "name": "area_name_read_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 30675,
   "name": "run_information_menu_local_77d3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30676,
   "name": "menu_return_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30677,
   "name": "information_menu_blank_caption",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30702,
   "name": "engine_internal_77ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30713,
   "name": "engine_internal_77f9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30714,
   "name": "engine_internal_77fa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30715,
   "name": "engine_internal_77fb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30716,
   "name": "engine_internal_77fc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30717,
   "name": "information_menu_zero_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 30718,
   "name": "RUN_INFORMATION_MENU",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 30726,
   "name": "run_information_menu_local_7806",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30953,
   "name": "run_information_menu_local_78e9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 30974,
   "name": "run_information_menu_local_78fe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31054,
   "name": "format_menu_statistics_local_794e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31071,
   "name": "format_menu_statistics_local_795f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31116,
   "name": "format_menu_statistics_local_798c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31147,
   "name": "format_menu_statistics_local_79ab",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31167,
   "name": "format_menu_statistics_local_79bf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31195,
   "name": "format_menu_statistics_local_79db",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31200,
   "name": "format_menu_statistics_local_79e0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31205,
   "name": "format_menu_statistics_local_79e5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31213,
   "name": "format_menu_statistics_local_79ed",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31256,
   "name": "format_menu_statistics_local_7a18",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31267,
   "name": "format_menu_statistics_local_7a23",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31275,
   "name": "format_menu_statistics_local_7a2b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31291,
   "name": "format_menu_statistics_local_7a3b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31304,
   "name": "format_menu_statistics_local_7a48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31309,
   "name": "format_menu_statistics_local_7a4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31312,
   "name": "format_menu_statistics_local_7a50",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31332,
   "name": "format_menu_statistics_local_7a64",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31346,
   "name": "format_menu_statistics_local_7a72",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31354,
   "name": "format_menu_statistics_local_7a7a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31360,
   "name": "FORMAT_MENU_STATISTICS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31382,
   "name": "format_score_for_menu_local_7a96",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31392,
   "name": "FORMAT_SCORE_FOR_MENU",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31424,
   "name": "format_spirits_destroyed_for_menu_local_7ac0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31434,
   "name": "FORMAT_SPIRITS_DESTROYED_FOR_MENU",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31446,
   "name": "format_spirits_destroyed_for_menu_local_7ad6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31459,
   "name": "format_spirits_destroyed_for_menu_local_7ae3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31475,
   "name": "prompt_save_device_and_name_local_7af3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31476,
   "name": "f_7AF4",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 31477,
   "name": "engine_internal_7af5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31491,
   "name": "PROMPT_SAVE_DEVICE_AND_NAME",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31545,
   "name": "prompt_save_device_and_name_local_7b39",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31562,
   "name": "prompt_save_device_and_name_local_7b4a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31603,
   "name": "prompt_save_device_and_name_local_7b73",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31663,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7baf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31698,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7bd2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31719,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7be7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31738,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7bfa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31767,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7c17",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31803,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7c3b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31821,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7c4d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31834,
   "name": "RESET_GLOBAL_OBJECT_FLAGS_AND_APPLY_ID_FF_ALLOWLIST",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31850,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7c6a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31873,
   "name": "reset_global_object_flags_and_apply_id_ff_allowlist_local_7c81",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31906,
   "name": "clear_linear_30byte_rows_local_7ca2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31933,
   "name": "clear_linear_30byte_rows_local_7cbd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31939,
   "name": "clear_linear_30byte_rows_local_7cc3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31942,
   "name": "clear_linear_30byte_rows_local_7cc6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31943,
   "name": "CLEAR_LINEAR_30BYTE_ROWS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 31957,
   "name": "clear_linear_30byte_rows_local_7cd5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31961,
   "name": "clear_linear_30byte_rows_local_7cd9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31977,
   "name": "blit_packed_2bpp_graphic_local_7ce9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 31981,
   "name": "bitmap_blitter_runtime_descriptor",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31982,
   "name": "allocation_alias_7cee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31983,
   "name": "allocation_alias_7cef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31984,
   "name": "allocation_alias_7cf0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31985,
   "name": "allocation_alias_7cf1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31986,
   "name": "allocation_alias_7cf2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31987,
   "name": "allocation_alias_7cf3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31988,
   "name": "allocation_alias_7cf4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31989,
   "name": "allocation_alias_7cf5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 31990,
   "name": "BLIT_PACKED_2BPP_GRAPHIC",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32047,
   "name": "blit_packed_2bpp_graphic_local_7d2f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32055,
   "name": "blit_packed_2bpp_graphic_local_7d37",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32071,
   "name": "blit_packed_2bpp_graphic_local_7d47",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32098,
   "name": "blit_packed_2bpp_graphic_local_7d62",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32100,
   "name": "blit_packed_2bpp_graphic_local_7d64",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32143,
   "name": "blit_packed_2bpp_graphic_local_7d8f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32145,
   "name": "blit_packed_2bpp_graphic_local_7d91",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32146,
   "name": "hud_aligned_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32147,
   "name": "hud_aligned_store_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32160,
   "name": "blit_packed_2bpp_graphic_local_7da0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32172,
   "name": "blit_packed_2bpp_graphic_local_7dac",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32173,
   "name": "hud_masked_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32174,
   "name": "hud_masked_read_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32177,
   "name": "blit_packed_2bpp_graphic_local_7db1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32178,
   "name": "operand_7db1_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32179,
   "name": "operand_7db1_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32199,
   "name": "blit_packed_2bpp_graphic_local_7dc7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32200,
   "name": "blit_packed_2bpp_graphic_local_7dc8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32220,
   "name": "blit_packed_2bpp_graphic_local_7ddc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32232,
   "name": "blit_packed_2bpp_graphic_local_7de8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32233,
   "name": "blit_packed_2bpp_graphic_local_7de9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32303,
   "name": "blit_packed_2bpp_graphic_local_7e2f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32312,
   "name": "blit_packed_2bpp_graphic_local_7e38",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32313,
   "name": "operand_7e38_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32314,
   "name": "operand_7e38_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32317,
   "name": "blit_packed_2bpp_graphic_local_7e3d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32318,
   "name": "operand_7e3d_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32319,
   "name": "operand_7e3d_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32338,
   "name": "blit_packed_2bpp_graphic_local_7e52",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32348,
   "name": "blit_packed_2bpp_graphic_local_7e5c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32357,
   "name": "blit_packed_2bpp_graphic_local_7e65",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32358,
   "name": "operand_7e65_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32359,
   "name": "operand_7e65_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32373,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7e75",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32386,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7e82",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32402,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7e92",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32409,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7e99",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32410,
   "name": "operand_7e99_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32411,
   "name": "operand_7e99_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32414,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7e9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32415,
   "name": "operand_7e9e_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32416,
   "name": "operand_7e9e_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32425,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ea9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32435,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7eb3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32446,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ebe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32447,
   "name": "operand_7ebe_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32448,
   "name": "operand_7ebe_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32461,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ecd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32472,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ed8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32473,
   "name": "operand_7ed8_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32474,
   "name": "operand_7ed8_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32493,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7eed",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32496,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ef0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32551,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f27",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32561,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f31",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32571,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f3b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32581,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f45",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32591,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f4f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32606,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f5e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32612,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f64",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32626,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f72",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32633,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f79",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32638,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f7e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32639,
   "name": "operand_7f7e_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32640,
   "name": "operand_7f7e_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32644,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7f84",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32645,
   "name": "operand_7f84_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32646,
   "name": "operand_7f84_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32673,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fa1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32679,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fa7",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32697,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fb9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32703,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fbf",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32708,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fc4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32709,
   "name": "operand_7fc4_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32710,
   "name": "operand_7fc4_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32713,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fc9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32714,
   "name": "operand_7fc9_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32715,
   "name": "operand_7fc9_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32731,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7fdb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32739,
   "name": "engine_internal_7fe3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32740,
   "name": "engine_internal_7fe4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32741,
   "name": "engine_internal_7fe5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 32742,
   "name": "COPY_BITMAP_RECTANGLE_FROM_ROW_POINTERS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32754,
   "name": "copy_bitmap_rectangle_from_row_pointers_local_7ff2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32800,
   "name": "check_newly_visible_crush_local_8020",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32801,
   "name": "bitmap_small_picture_source_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32802,
   "name": "operand_8020_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32803,
   "name": "check_newly_visible_crush_local_8023",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32804,
   "name": "operand_8023_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32805,
   "name": "operand_8023_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 32829,
   "name": "CHECK_NEWLY_VISIBLE_CRUSH",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 32918,
   "name": "scan_updated_objects_for_crush_local_8096",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32936,
   "name": "scan_updated_objects_for_crush_local_80a8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 32941,
   "name": "SCAN_UPDATED_OBJECTS_FOR_CRUSH",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33029,
   "name": "apply_fall_damage_local_8105",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33070,
   "name": "apply_fall_damage_local_812e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33083,
   "name": "apply_fall_damage_local_813b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33089,
   "name": "apply_fall_damage_local_8141",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33090,
   "name": "APPLY_FALL_DAMAGE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33111,
   "name": "apply_fall_damage_local_8157",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33128,
   "name": "engine_internal_8168",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33129,
   "name": "engine_internal_8169",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33130,
   "name": "engine_internal_816a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33131,
   "name": "engine_internal_816b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33132,
   "name": "DROP_PLAYER_TO_SUPPORT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33276,
   "name": "position_enable_vic_sprite_local_81fc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33300,
   "name": "POSITION_ENABLE_VIC_SPRITE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33332,
   "name": "position_enable_vic_sprite_local_8234",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33336,
   "name": "position_enable_vic_sprite_local_8238",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33358,
   "name": "disable_vic_sprite_local_824e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33366,
   "name": "disable_vic_sprite_local_8256",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33372,
   "name": "disable_vic_sprite_local_825c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33373,
   "name": "DISABLE_VIC_SPRITE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33383,
   "name": "disable_vic_sprite_local_8267",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33387,
   "name": "disable_vic_sprite_local_826b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33401,
   "name": "xor_center_reticle_in_linear_viewport_local_8279",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33402,
   "name": "XOR_CENTER_RETICLE_IN_LINEAR_VIEWPORT",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33421,
   "name": "xor_center_reticle_in_linear_viewport_local_828d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33451,
   "name": "xor_center_reticle_in_linear_viewport_local_82ab",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33466,
   "name": "engine_internal_82ba",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33467,
   "name": "engine_internal_82bb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33468,
   "name": "engine_internal_82bc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33469,
   "name": "engine_internal_82bd",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33470,
   "name": "engine_internal_82be",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33471,
   "name": "engine_internal_82bf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33472,
   "name": "engine_internal_82c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33473,
   "name": "engine_internal_82c1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33474,
   "name": "viewport_effect_step_sequence",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 33495,
   "name": "viewport_effect_pattern_triplets",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 33507,
   "name": "RUN_VIEWPORT_TRANSITION",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33519,
   "name": "run_viewport_transition_local_82ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33545,
   "name": "run_viewport_transition_local_8309",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33554,
   "name": "run_viewport_transition_local_8312",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33582,
   "name": "apply_vertical_bitmap_transition_step_local_832e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33587,
   "name": "apply_vertical_bitmap_transition_step_local_8333",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33609,
   "name": "apply_vertical_bitmap_transition_step_local_8349",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33624,
   "name": "apply_vertical_bitmap_transition_step_local_8358",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33638,
   "name": "apply_vertical_bitmap_transition_step_local_8366",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33639,
   "name": "APPLY_VERTICAL_BITMAP_TRANSITION_STEP",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 33661,
   "name": "apply_vertical_bitmap_transition_step_local_837d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33695,
   "name": "apply_vertical_bitmap_transition_step_local_839f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33709,
   "name": "apply_vertical_bitmap_transition_step_local_83ad",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33730,
   "name": "apply_vertical_bitmap_transition_step_local_83c2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33741,
   "name": "apply_vertical_bitmap_transition_step_local_83cd",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33744,
   "name": "apply_vertical_bitmap_transition_step_local_83d0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33754,
   "name": "apply_vertical_bitmap_transition_step_local_83da",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33775,
   "name": "apply_vertical_bitmap_transition_step_local_83ef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33786,
   "name": "apply_vertical_bitmap_transition_step_local_83fa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33793,
   "name": "apply_vertical_bitmap_transition_step_local_8401",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33799,
   "name": "apply_vertical_bitmap_transition_step_local_8407",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33810,
   "name": "apply_vertical_bitmap_transition_step_local_8412",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33836,
   "name": "apply_vertical_bitmap_transition_step_local_842c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33842,
   "name": "apply_vertical_bitmap_transition_step_local_8432",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33843,
   "name": "effect_bitmap_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33844,
   "name": "effect_bitmap_store_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33854,
   "name": "apply_vertical_bitmap_transition_step_local_843e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33855,
   "name": "effect_second_pattern_store_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33856,
   "name": "effect_second_pattern_store_operand_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33866,
   "name": "apply_vertical_bitmap_transition_step_local_844a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33867,
   "name": "operand_844a_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33868,
   "name": "operand_844a_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33898,
   "name": "apply_vertical_bitmap_transition_step_local_846a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33902,
   "name": "apply_vertical_bitmap_transition_step_local_846e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33916,
   "name": "draw_text_high_bit_merge_local_847c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33928,
   "name": "draw_text_high_bit_merge_local_8488",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33956,
   "name": "draw_text_high_bit_merge_local_84a4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33962,
   "name": "draw_text_high_bit_merge_local_84aa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33963,
   "name": "operand_84aa_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33964,
   "name": "operand_84aa_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33973,
   "name": "draw_text_high_bit_merge_local_84b5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33974,
   "name": "operand_84b5_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33975,
   "name": "operand_84b5_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33988,
   "name": "draw_text_high_bit_merge_local_84c4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 33989,
   "name": "operand_84c4_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 33990,
   "name": "operand_84c4_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34017,
   "name": "draw_text_high_bit_merge_local_84e1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34030,
   "name": "draw_text_high_bit_merge_local_84ee",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34057,
   "name": "draw_text_high_bit_merge_local_8509",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34078,
   "name": "draw_text_high_bit_merge_local_851e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34083,
   "name": "draw_text_high_bit_merge_local_8523",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34099,
   "name": "draw_text_high_bit_merge_local_8533",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34101,
   "name": "draw_text_high_bit_merge_local_8535",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34102,
   "name": "operand_8535_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34103,
   "name": "operand_8535_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 34154,
   "name": "draw_text_high_bit_merge_local_856a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34159,
   "name": "draw_text_high_bit_merge_local_856f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34162,
   "name": "engine_internal_8572",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34163,
   "name": "engine_internal_8573",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34164,
   "name": "engine_internal_8574",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34165,
   "name": "engine_internal_8575",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34170,
   "name": "f_857A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34171,
   "name": "f_857B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34173,
   "name": "f_857D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 34187,
   "name": "DRAW_TEXT_HIGH_BIT_MERGE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34192,
   "name": "DRAW_TEXT_TO_BITMAP",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34194,
   "name": "draw_text_to_bitmap_local_8592",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34225,
   "name": "draw_text_to_bitmap_local_85b1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34268,
   "name": "draw_text_to_bitmap_local_85dc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34273,
   "name": "draw_text_to_bitmap_local_85e1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34283,
   "name": "draw_text_to_bitmap_local_85eb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34296,
   "name": "draw_text_to_bitmap_local_85f8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34302,
   "name": "draw_text_to_bitmap_local_85fe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34308,
   "name": "draw_text_to_bitmap_local_8604",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34314,
   "name": "draw_text_to_bitmap_local_860a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34333,
   "name": "draw_text_to_bitmap_local_861d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34339,
   "name": "draw_text_to_bitmap_local_8623",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34345,
   "name": "draw_text_to_bitmap_local_8629",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34351,
   "name": "draw_text_to_bitmap_local_862f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34357,
   "name": "custom_chrout_local_8635",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34399,
   "name": "custom_chrout_local_865f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34401,
   "name": "engine_internal_8661",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34402,
   "name": "engine_internal_8662",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34403,
   "name": "filename_bitmap_copy_addresses",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34404,
   "name": "filename_bitmap_first_destination_high",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34425,
   "name": "keyboard_copy_overlapping_source_words",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34426,
   "name": "checked_table_byte_867a",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 34511,
   "name": "CUSTOM_CHROUT",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34524,
   "name": "custom_chrout_local_86dc",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34533,
   "name": "custom_chrout_local_86e5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34548,
   "name": "custom_chrout_local_86f4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34570,
   "name": "custom_chrout_local_870a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34594,
   "name": "custom_chrout_local_8722",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34616,
   "name": "custom_chrout_local_8738",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34623,
   "name": "custom_chrout_local_873f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34635,
   "name": "swap_game_and_kernal_zero_page_local_874b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34644,
   "name": "swap_game_and_kernal_zero_page_local_8754",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34697,
   "name": "swap_game_and_kernal_zero_page_local_8789",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34711,
   "name": "swap_game_and_kernal_zero_page_local_8797",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34717,
   "name": "swap_game_and_kernal_zero_page_local_879d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34730,
   "name": "swap_game_and_kernal_zero_page_local_87aa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34737,
   "name": "SWAP_GAME_AND_KERNAL_ZERO_PAGE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 34744,
   "name": "swap_game_and_kernal_zero_page_local_87b8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 34764,
   "name": "menu_language_common_87cc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34794,
   "name": "engine_internal_87ea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34824,
   "name": "menu_runtime_data_8808",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34849,
   "name": "MENU_SELECTION",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34854,
   "name": "menu_runtime_data_8826",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34884,
   "name": "menu_runtime_data_8844",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34914,
   "name": "menu_runtime_data_8862",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34944,
   "name": "menu_runtime_data_8880",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 34974,
   "name": "menu_runtime_data_889e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35004,
   "name": "menu_runtime_data_88bc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35034,
   "name": "menu_runtime_data_88da",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35064,
   "name": "menu_runtime_data_88f8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35094,
   "name": "menu_runtime_data_8916",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35124,
   "name": "menu_runtime_data_8934",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35154,
   "name": "menu_runtime_data_8952",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35173,
   "name": "french_language_source_8965",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35184,
   "name": "menu_runtime_data_8970",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35214,
   "name": "menu_runtime_data_898e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35244,
   "name": "menu_runtime_data_89ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35274,
   "name": "menu_runtime_data_89ca",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35304,
   "name": "menu_runtime_data_89e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35334,
   "name": "menu_runtime_data_8a06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35364,
   "name": "menu_runtime_data_8a24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35394,
   "name": "menu_runtime_data_8a42",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35416,
   "name": "SAVE_PAYLOAD_END",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35424,
   "name": "menu_runtime_data_8a60",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35454,
   "name": "menu_runtime_data_8a7e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35484,
   "name": "menu_runtime_data_8a9c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35514,
   "name": "menu_runtime_data_8aba",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35544,
   "name": "menu_runtime_data_8ad8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35574,
   "name": "menu_runtime_data_8af6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35604,
   "name": "menu_runtime_data_8b14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35634,
   "name": "menu_runtime_data_8b32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35664,
   "name": "menu_runtime_data_8b50",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35694,
   "name": "menu_runtime_data_8b6e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35724,
   "name": "menu_runtime_data_8b8c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35754,
   "name": "menu_runtime_data_8baa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35784,
   "name": "menu_runtime_data_8bc8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35814,
   "name": "menu_runtime_data_8be6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35844,
   "name": "menu_runtime_data_8c04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35874,
   "name": "menu_runtime_data_8c22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35904,
   "name": "menu_runtime_data_8c40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35934,
   "name": "menu_runtime_data_8c5e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35964,
   "name": "menu_runtime_data_8c7c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 35994,
   "name": "menu_runtime_data_8c9a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36024,
   "name": "menu_runtime_data_8cb8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36054,
   "name": "menu_runtime_data_8cd6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36084,
   "name": "menu_runtime_data_8cf4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36114,
   "name": "menu_runtime_data_8d12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36144,
   "name": "menu_runtime_data_8d30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36174,
   "name": "menu_runtime_data_8d4e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36204,
   "name": "menu_runtime_data_8d6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36234,
   "name": "menu_runtime_data_8d8a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36264,
   "name": "menu_runtime_data_8da8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36294,
   "name": "menu_runtime_data_8dc6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36324,
   "name": "menu_runtime_data_8de4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36354,
   "name": "menu_runtime_data_8e02",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36384,
   "name": "menu_runtime_data_8e20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36414,
   "name": "menu_runtime_data_8e3e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36444,
   "name": "menu_runtime_data_8e5c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36474,
   "name": "menu_runtime_data_8e7a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36504,
   "name": "menu_runtime_data_8e98",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36534,
   "name": "menu_runtime_data_8eb6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36564,
   "name": "menu_runtime_data_8ed4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36594,
   "name": "menu_runtime_data_8ef2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36624,
   "name": "menu_runtime_data_8f10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36654,
   "name": "menu_runtime_data_8f2e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36684,
   "name": "menu_runtime_data_8f4c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36714,
   "name": "menu_runtime_data_8f6a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36744,
   "name": "menu_runtime_data_8f88",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36774,
   "name": "menu_runtime_data_8fa6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36804,
   "name": "menu_runtime_data_8fc4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36834,
   "name": "menu_runtime_data_8fe2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36864,
   "name": "menu_runtime_data_9000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36894,
   "name": "menu_runtime_data_901e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36924,
   "name": "menu_runtime_data_903c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36954,
   "name": "menu_runtime_data_905a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 36984,
   "name": "menu_runtime_data_9078",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37014,
   "name": "menu_runtime_data_9096",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37044,
   "name": "menu_runtime_data_90b4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37074,
   "name": "menu_runtime_data_90d2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37104,
   "name": "menu_runtime_data_90f0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37134,
   "name": "menu_runtime_data_910e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37164,
   "name": "menu_runtime_data_912c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37170,
   "name": "german_language_source_9132",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37194,
   "name": "menu_runtime_data_914a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37224,
   "name": "menu_runtime_data_9168",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37254,
   "name": "menu_runtime_data_9186",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37284,
   "name": "menu_runtime_data_91a4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37314,
   "name": "menu_runtime_data_91c2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37344,
   "name": "menu_runtime_data_91e0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37374,
   "name": "menu_runtime_data_91fe",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37404,
   "name": "menu_runtime_data_921c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37434,
   "name": "menu_runtime_data_923a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37464,
   "name": "menu_runtime_data_9258",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37494,
   "name": "menu_runtime_data_9276",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37524,
   "name": "menu_runtime_data_9294",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37554,
   "name": "menu_runtime_data_92b2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37584,
   "name": "menu_runtime_data_92d0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37614,
   "name": "menu_runtime_data_92ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37644,
   "name": "menu_runtime_data_930c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37674,
   "name": "menu_runtime_data_932a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37704,
   "name": "menu_runtime_data_9348",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37734,
   "name": "menu_runtime_data_9366",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37764,
   "name": "menu_runtime_data_9384",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37794,
   "name": "menu_runtime_data_93a2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37824,
   "name": "menu_runtime_data_93c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37854,
   "name": "menu_runtime_data_93de",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37884,
   "name": "menu_runtime_data_93fc",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37914,
   "name": "menu_runtime_data_941a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37944,
   "name": "menu_runtime_data_9438",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 37974,
   "name": "menu_runtime_data_9456",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38004,
   "name": "menu_runtime_data_9474",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38034,
   "name": "menu_runtime_data_9492",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38064,
   "name": "menu_runtime_data_94b0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38094,
   "name": "menu_runtime_data_94ce",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38124,
   "name": "menu_runtime_data_94ec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38154,
   "name": "menu_runtime_data_950a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38184,
   "name": "menu_runtime_data_9528",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38214,
   "name": "menu_runtime_data_9546",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38244,
   "name": "menu_runtime_data_9564",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38274,
   "name": "menu_runtime_data_9582",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38304,
   "name": "menu_runtime_data_95a0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38334,
   "name": "menu_runtime_data_95be",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 38364,
   "name": "german_language_retained_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39294,
   "name": "menu_bitmap_ptrs_997e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39492,
   "name": "BUILD_MAIN_MENU",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 39708,
   "name": "RUN_TITLE_AND_CHARACTER_MENUS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 39741,
   "name": "run_title_and_character_menus_local_9b3d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39797,
   "name": "run_title_and_character_menus_local_9b75",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39811,
   "name": "run_title_and_character_menus_local_9b83",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39828,
   "name": "run_title_and_character_menus_local_9b94",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39838,
   "name": "run_title_and_character_menus_local_9b9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39854,
   "name": "run_title_and_character_menus_local_9bae",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39856,
   "name": "run_title_and_character_menus_local_9bb0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39870,
   "name": "run_title_and_character_menus_local_9bbe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39874,
   "name": "run_title_and_character_menus_local_9bc2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39881,
   "name": "run_title_and_character_menus_local_9bc9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39930,
   "name": "run_title_and_character_menus_local_9bfa",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39956,
   "name": "run_title_and_character_menus_local_9c14",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 39982,
   "name": "run_title_and_character_menus_local_9c2e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40008,
   "name": "run_title_and_character_menus_local_9c48",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40087,
   "name": "run_title_and_character_menus_local_9c97",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40112,
   "name": "run_title_and_character_menus_local_9cb0",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40168,
   "name": "run_title_and_character_menus_local_9ce8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 40192,
   "name": "freescape_database_header",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40195,
   "name": "database_initial_area_id",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40196,
   "name": "database_initial_entrance",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40197,
   "name": "database_initial_strength",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40198,
   "name": "database_dither_patterns",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 40258,
   "name": "FREESCAPE_DEMO_POINTER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40260,
   "name": "database_global_condition_offset",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40261,
   "name": "database_global_condition_offset_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 40262,
   "name": "RAW_CRAWL_DISTANCE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40263,
   "name": "database_movement_and_threshold_constants",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40264,
   "name": "database_run_and_remaining_parameters",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40265,
   "name": "allocation_alias_9d49",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40266,
   "name": "allocation_alias_9d4a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40267,
   "name": "allocation_alias_9d4b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40268,
   "name": "allocation_alias_9d4c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40269,
   "name": "allocation_alias_9d4d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40270,
   "name": "allocation_alias_9d4e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40271,
   "name": "freescape_area_offsets",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40339,
   "name": "freescape_global_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40402,
   "name": "freescape_area_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40932,
   "name": "freescape_area_1_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40933,
   "name": "freescape_area_255",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 40960,
   "name": "freescape_global_objects_across_a000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 41738,
   "name": "freescape_area_255_objects_66",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42225,
   "name": "freescape_area_255_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42226,
   "name": "freescape_area_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42449,
   "name": "freescape_area_4_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42450,
   "name": "freescape_area_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42653,
   "name": "freescape_area_5_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42654,
   "name": "freescape_area_9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42847,
   "name": "freescape_area_9_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 42848,
   "name": "freescape_area_17",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43123,
   "name": "freescape_area_17_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43124,
   "name": "freescape_area_18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43270,
   "name": "freescape_area_18_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43271,
   "name": "freescape_area_21",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43610,
   "name": "freescape_area_21_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43614,
   "name": "freescape_area_14",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43718,
   "name": "freescape_area_14_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 43725,
   "name": "freescape_area_19",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44040,
   "name": "freescape_area_19_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44041,
   "name": "freescape_area_16",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44295,
   "name": "freescape_area_16_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44299,
   "name": "freescape_area_15",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44453,
   "name": "freescape_area_15_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44454,
   "name": "freescape_area_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44765,
   "name": "freescape_area_6_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44782,
   "name": "freescape_area_24",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44911,
   "name": "freescape_area_24_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 44912,
   "name": "freescape_area_22",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45040,
   "name": "freescape_area_22_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45041,
   "name": "freescape_area_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45697,
   "name": "freescape_area_2_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45698,
   "name": "freescape_area_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45936,
   "name": "freescape_area_7_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 45937,
   "name": "freescape_area_13",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46292,
   "name": "freescape_area_13_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46400,
   "name": "freescape_area_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46688,
   "name": "freescape_area_8_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46697,
   "name": "freescape_area_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46919,
   "name": "freescape_area_3_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 46920,
   "name": "freescape_area_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47090,
   "name": "freescape_area_12_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47091,
   "name": "freescape_area_10",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47201,
   "name": "freescape_area_10_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47202,
   "name": "freescape_area_11",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47744,
   "name": "freescape_area_11_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47748,
   "name": "freescape_area_20",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47924,
   "name": "freescape_area_20_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 47925,
   "name": "freescape_area_25",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48057,
   "name": "freescape_area_25_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48058,
   "name": "freescape_area_26",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48066,
   "name": "area_26_global_object_allowlist",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48157,
   "name": "freescape_area_26_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48158,
   "name": "freescape_area_27",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48305,
   "name": "freescape_area_27_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48306,
   "name": "freescape_area_28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48415,
   "name": "freescape_area_28_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48416,
   "name": "freescape_area_23",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48568,
   "name": "freescape_area_23_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48569,
   "name": "freescape_area_29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48660,
   "name": "freescape_area_29_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48661,
   "name": "freescape_area_30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48751,
   "name": "freescape_area_30_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48752,
   "name": "freescape_area_31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48826,
   "name": "freescape_area_31_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48827,
   "name": "freescape_area_32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48950,
   "name": "freescape_area_32_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 48963,
   "name": "freescape_area_33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49039,
   "name": "freescape_area_33_conditions",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49152,
   "name": "vic_sprite_slot_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49216,
   "name": "vic_sprite_slot_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49280,
   "name": "vic_sprite_slot_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49344,
   "name": "vic_sprite_slot_3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49408,
   "name": "vic_sprite_slot_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49472,
   "name": "vic_sprite_slot_5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49536,
   "name": "vic_sprite_slot_6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49600,
   "name": "vic_sprite_slot_7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49664,
   "name": "initialize_colour_ram_from_shadow",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 49671,
   "name": "b_C207",
   "type": "Branch",
   "kind": "auto"
  },
  {
   "address": 49717,
   "name": "palette_loader_zero_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50176,
   "name": "loaded_hud_colour_matrix",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 50941,
   "name": "hud_colour_cell_c6fd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 51176,
   "name": "vic_matrix_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51192,
   "name": "vic_sprite_ptrs_c7f8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51200,
   "name": "SID_INITIALIZE_ENTRY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51203,
   "name": "SID_TICK_ENTRY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51206,
   "name": "SID_STATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51207,
   "name": "sid_player_state_c807",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51208,
   "name": "sid_player_state_c808",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51209,
   "name": "sid_player_state_c809",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51210,
   "name": "f_C80A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51213,
   "name": "f_C80D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51216,
   "name": "f_C810",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51219,
   "name": "sid_player_state_c813",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51220,
   "name": "sid_player_state_c814",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51221,
   "name": "sid_player_state_c815",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51222,
   "name": "sid_player_state_c816",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51223,
   "name": "sid_player_state_c817",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51224,
   "name": "sid_player_state_c818",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51225,
   "name": "sid_player_state_c819",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51226,
   "name": "sid_player_state_c81a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51227,
   "name": "sid_player_state_c81b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51228,
   "name": "sid_player_state_c81c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51229,
   "name": "sid_player_state_c81d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51230,
   "name": "sid_player_state_c81e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51231,
   "name": "sid_player_state_c81f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51232,
   "name": "sid_player_state_c820",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51233,
   "name": "sid_player_state_c821",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51234,
   "name": "sid_player_state_c822",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51235,
   "name": "sid_player_state_c823",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51236,
   "name": "sid_player_state_c824",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51237,
   "name": "sid_player_state_c825",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51238,
   "name": "sid_player_state_c826",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51239,
   "name": "sid_player_state_c827",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51240,
   "name": "sid_player_state_c828",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51241,
   "name": "sid_player_state_c829",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51242,
   "name": "sid_player_state_c82a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51243,
   "name": "sid_player_state_c82b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51244,
   "name": "sid_player_state_c82c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51245,
   "name": "f_C82D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51248,
   "name": "sid_player_state_c830",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51249,
   "name": "sid_player_state_c831",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51250,
   "name": "sid_player_state_c832",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51254,
   "name": "f_C836",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51257,
   "name": "f_C839",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51260,
   "name": "f_C83C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51263,
   "name": "f_C83F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51266,
   "name": "f_C842",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51269,
   "name": "f_C845",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51272,
   "name": "f_C848",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51275,
   "name": "f_C84B",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51278,
   "name": "f_C84E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51281,
   "name": "f_C851",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51284,
   "name": "f_C854",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51287,
   "name": "f_C857",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51290,
   "name": "f_C85A",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51293,
   "name": "f_C85D",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51296,
   "name": "f_C860",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51299,
   "name": "f_C863",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51302,
   "name": "sid_player_state_c866",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51303,
   "name": "sid_player_state_c867",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51304,
   "name": "sid_player_state_c868",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51305,
   "name": "f_C869",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51308,
   "name": "f_C86C",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51311,
   "name": "f_C86F",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51314,
   "name": "f_C872",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51317,
   "name": "f_C875",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51320,
   "name": "f_C878",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51326,
   "name": "f_C87E",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51329,
   "name": "f_C881",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 51332,
   "name": "sid_player_state_c884",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51333,
   "name": "SID_PLAYER_TICK",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51339,
   "name": "sid_player_tick_local_c88b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51354,
   "name": "sid_player_tick_local_c89a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51369,
   "name": "sid_player_tick_local_c8a9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51384,
   "name": "sid_player_tick_local_c8b8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51545,
   "name": "sid_update_one_voice_local_c959",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51556,
   "name": "sid_update_one_voice_local_c964",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51603,
   "name": "sid_update_one_voice_local_c993",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51650,
   "name": "sid_update_one_voice_local_c9c2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51704,
   "name": "sid_update_one_voice_local_c9f8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51729,
   "name": "SID_UPDATE_ONE_VOICE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 51740,
   "name": "sid_update_one_voice_local_ca1c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51752,
   "name": "sid_update_one_voice_local_ca28",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51764,
   "name": "sid_update_one_voice_local_ca34",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51773,
   "name": "sid_update_one_voice_local_ca3d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51775,
   "name": "sid_update_one_voice_local_ca3f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51794,
   "name": "sid_update_one_voice_local_ca52",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51797,
   "name": "sid_update_one_voice_local_ca55",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51798,
   "name": "sid_order_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51799,
   "name": "operand_ca55_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51826,
   "name": "sid_update_one_voice_local_ca72",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51846,
   "name": "sid_update_one_voice_local_ca86",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51863,
   "name": "sid_update_one_voice_local_ca97",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51864,
   "name": "operand_ca97_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 51865,
   "name": "sid_update_one_voice_local_ca99",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51869,
   "name": "sid_order_wait_dispatch_slot",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51873,
   "name": "sid_order_frequency_offset_dispatch_slot",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51877,
   "name": "sid_order_instrument_remap_dispatch",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 51880,
   "name": "sid_update_one_voice_local_caa8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51905,
   "name": "sid_update_one_voice_local_cac1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51910,
   "name": "sid_update_one_voice_local_cac6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51941,
   "name": "sid_update_one_voice_local_cae5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51960,
   "name": "sid_update_one_voice_local_caf8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 51982,
   "name": "sid_update_one_voice_local_cb0e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52031,
   "name": "sid_update_one_voice_local_cb3f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52042,
   "name": "sid_update_one_voice_local_cb4a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52050,
   "name": "sid_update_one_voice_local_cb52",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52056,
   "name": "sid_select_instrument",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52059,
   "name": "sid_update_one_voice_local_cb5b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52060,
   "name": "sid_instrument_voice_base_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 52161,
   "name": "sid_begin_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52219,
   "name": "sid_update_one_voice_local_cbfb",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52228,
   "name": "sid_update_one_voice_local_cc04",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52230,
   "name": "sid_update_one_voice_local_cc06",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52253,
   "name": "sid_update_one_voice_local_cc1d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52295,
   "name": "sid_update_one_voice_local_cc47",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52314,
   "name": "sid_update_one_voice_local_cc5a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52339,
   "name": "sid_update_one_voice_local_cc73",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52352,
   "name": "sid_sustain_note",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52371,
   "name": "sid_update_one_voice_local_cc93",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52382,
   "name": "sid_player_initialize_local_cc9e",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52383,
   "name": "sid_player_initialize_local_cc9f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52402,
   "name": "sid_player_initialize_local_ccb2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52414,
   "name": "sid_player_initialize_local_ccbe",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52446,
   "name": "sid_player_initialize_local_ccde",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52465,
   "name": "sid_player_initialize_local_ccf1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52473,
   "name": "sid_player_initialize_local_ccf9",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52481,
   "name": "sid_player_initialize_local_cd01",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52519,
   "name": "sid_player_initialize_local_cd27",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52532,
   "name": "sid_player_initialize_local_cd34",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52587,
   "name": "sid_player_initialize_local_cd6b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52605,
   "name": "sid_player_initialize_local_cd7d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52615,
   "name": "sid_player_initialize_local_cd87",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52625,
   "name": "sid_player_initialize_local_cd91",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52628,
   "name": "sid_player_initialize_local_cd94",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52631,
   "name": "sid_player_initialize_local_cd97",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52639,
   "name": "sid_player_initialize_local_cd9f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52652,
   "name": "sid_player_initialize_local_cdac",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52658,
   "name": "sid_player_initialize_local_cdb2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52690,
   "name": "sid_player_initialize_local_cdd2",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52714,
   "name": "sid_player_initialize_local_cdea",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52719,
   "name": "sid_player_initialize_local_cdef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52742,
   "name": "sid_player_initialize_local_ce06",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52774,
   "name": "sid_player_initialize_local_ce26",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52858,
   "name": "sid_player_initialize_local_ce7a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52861,
   "name": "sid_player_initialize_local_ce7d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52869,
   "name": "sid_player_initialize_local_ce85",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52877,
   "name": "sid_player_initialize_local_ce8d",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52899,
   "name": "sid_player_initialize_local_cea3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52902,
   "name": "sid_player_initialize_local_cea6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52975,
   "name": "sid_player_initialize_local_ceef",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 52981,
   "name": "sid_player_initialize_local_cef5",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53018,
   "name": "sid_player_initialize_local_cf1a",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53019,
   "name": "SID_PLAYER_INITIALIZE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 53079,
   "name": "sid_player_initialize_local_cf57",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53087,
   "name": "sid_player_initialize_local_cf5f",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53095,
   "name": "sid_player_initialize_local_cf67",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53113,
   "name": "sid_read_current_voice_stream_byte_local_cf79",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53116,
   "name": "sid_read_current_voice_stream_byte_local_cf7c",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53117,
   "name": "sid_order_parameter_read_operand",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53118,
   "name": "operand_cf7c_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53128,
   "name": "sid_read_current_voice_stream_byte_local_cf88",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53131,
   "name": "sid_read_current_voice_stream_byte_local_cf8b",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53132,
   "name": "operand_cf8b_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53133,
   "name": "operand_cf8b_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53143,
   "name": "sid_read_current_voice_stream_byte_local_cf97",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53158,
   "name": "sid_read_current_voice_stream_byte_local_cfa6",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53159,
   "name": "operand_cfa6_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53160,
   "name": "operand_cfa6_high",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53164,
   "name": "sid_read_current_voice_stream_byte_local_cfac",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53165,
   "name": "operand_cfac_low",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 53172,
   "name": "sid_read_current_voice_stream_byte_local_cfb4",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53184,
   "name": "SID_READ_CURRENT_VOICE_STREAM_BYTE",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 53194,
   "name": "sid_read_current_voice_stream_byte_local_cfca",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53201,
   "name": "sid_initialize_if_enabled_local_cfd1",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53204,
   "name": "sid_voice_base_step_constants",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 53208,
   "name": "SID_INITIALIZE_IF_ENABLED",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 53219,
   "name": "sid_clear_registers_local_cfe3",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53220,
   "name": "SID_CLEAR_REGISTERS",
   "type": "Subroutine",
   "kind": "user"
  },
  {
   "address": 53224,
   "name": "sid_clear_registers_local_cfe8",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 53264,
   "name": "VIC_SPRITE_X_MSB",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53265,
   "name": "VIC_CONTROL_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53266,
   "name": "VIC_RASTER_COUNTER",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53269,
   "name": "VIC_SPRITE_ENABLE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53270,
   "name": "VIC_CONTROL_2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53271,
   "name": "VIC_SPRITE_Y_EXPAND",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53272,
   "name": "VIC_MEMORY_POINTERS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53273,
   "name": "VIC_IRQ_STATUS",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53275,
   "name": "VIC_SPRITE_PRIORITY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53276,
   "name": "VIC_SPRITE_MULTICOLOR_ENABLE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53277,
   "name": "VIC_SPRITE_X_EXPAND",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53280,
   "name": "VIC_BORDER_COLOR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53281,
   "name": "VIC_BACKGROUND_COLOR_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53285,
   "name": "VIC_SPRITE_MULTICOLOR_0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 53286,
   "name": "VIC_SPRITE_MULTICOLOR_1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54272,
   "name": "SID_VOICE1_FREQ_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54273,
   "name": "SID_VOICE1_FREQ_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54274,
   "name": "SID_VOICE1_PULSE_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54275,
   "name": "SID_VOICE1_PULSE_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54276,
   "name": "SID_VOICE1_CONTROL",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54277,
   "name": "SID_VOICE1_ATTACK_DECAY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54278,
   "name": "SID_VOICE1_SUSTAIN_RELEASE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54279,
   "name": "SID_VOICE2_FREQ_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54280,
   "name": "SID_VOICE2_FREQ_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54281,
   "name": "SID_VOICE2_PULSE_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54282,
   "name": "SID_VOICE2_PULSE_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54283,
   "name": "SID_VOICE2_CONTROL",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54284,
   "name": "SID_VOICE2_ATTACK_DECAY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54285,
   "name": "SID_VOICE2_SUSTAIN_RELEASE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54286,
   "name": "SID_VOICE3_FREQ_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54287,
   "name": "SID_VOICE3_FREQ_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54288,
   "name": "SID_VOICE3_PULSE_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54289,
   "name": "SID_VOICE3_PULSE_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54290,
   "name": "SID_VOICE3_CONTROL",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54291,
   "name": "SID_VOICE3_ATTACK_DECAY",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54292,
   "name": "SID_VOICE3_SUSTAIN_RELEASE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54293,
   "name": "SID_FILTER_CUTOFF_LO",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54294,
   "name": "SID_FILTER_CUTOFF_HI",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54295,
   "name": "SID_FILTER_RESONANCE_ROUTE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 54296,
   "name": "SID_FILTER_MODE_VOLUME",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55296,
   "name": "loaded_initial_colour_shadow",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 55552,
   "name": "initial_colour_shadow_page_d900",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 55808,
   "name": "initial_colour_shadow_page_da00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56061,
   "name": "initial_colour_shadow_cell_dafd",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56064,
   "name": "initial_colour_shadow_page_db00",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 56296,
   "name": "initial_colour_shadow_padding",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56320,
   "name": "CIA1_PORT_A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56321,
   "name": "CIA1_PORT_B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56333,
   "name": "CIA1_INTERRUPT_CONTROL",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56334,
   "name": "CIA1_CONTROL_A",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 56576,
   "name": "CIA2_PORT_A_VIC_BANK",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57088,
   "name": "f_DF00",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 57344,
   "name": "hud_bitmap_e000",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 57640,
   "name": "hud_pixel_byte_e128",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 57960,
   "name": "hud_pixel_byte_e268",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 58304,
   "name": "hud_bitmap_e3c0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58904,
   "name": "hud_bitmap_e618",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58986,
   "name": "bitmap_or_high_ram_e66a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58987,
   "name": "bitmap_or_high_ram_e66b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58988,
   "name": "bitmap_or_high_ram_e66c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58989,
   "name": "bitmap_or_high_ram_e66d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58990,
   "name": "bitmap_or_high_ram_e66e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 58991,
   "name": "bitmap_or_high_ram_e66f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59224,
   "name": "hud_bitmap_e758",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59304,
   "name": "bitmap_or_high_ram_e7a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59305,
   "name": "bitmap_or_high_ram_e7a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59306,
   "name": "bitmap_or_high_ram_e7aa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59307,
   "name": "bitmap_or_high_ram_e7ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59308,
   "name": "bitmap_or_high_ram_e7ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59309,
   "name": "bitmap_or_high_ram_e7ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59310,
   "name": "bitmap_or_high_ram_e7ae",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59311,
   "name": "bitmap_or_high_ram_e7af",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59544,
   "name": "hud_bitmap_e898",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59557,
   "name": "hud_pixel_byte_e8a5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59624,
   "name": "bitmap_or_high_ram_e8e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59625,
   "name": "bitmap_or_high_ram_e8e9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59626,
   "name": "bitmap_or_high_ram_e8ea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59627,
   "name": "bitmap_or_high_ram_e8eb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59628,
   "name": "bitmap_or_high_ram_e8ec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59629,
   "name": "bitmap_or_high_ram_e8ed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59630,
   "name": "bitmap_or_high_ram_e8ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59631,
   "name": "bitmap_or_high_ram_e8ef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59864,
   "name": "hud_bitmap_e9d8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59944,
   "name": "bitmap_or_high_ram_ea28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59945,
   "name": "bitmap_or_high_ram_ea29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59946,
   "name": "bitmap_or_high_ram_ea2a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59947,
   "name": "bitmap_or_high_ram_ea2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59948,
   "name": "bitmap_or_high_ram_ea2c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59949,
   "name": "bitmap_or_high_ram_ea2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59950,
   "name": "bitmap_or_high_ram_ea2e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 59951,
   "name": "bitmap_or_high_ram_ea2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60184,
   "name": "hud_bitmap_eb18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60264,
   "name": "bitmap_or_high_ram_eb68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60265,
   "name": "bitmap_or_high_ram_eb69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60266,
   "name": "bitmap_or_high_ram_eb6a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60267,
   "name": "bitmap_or_high_ram_eb6b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60268,
   "name": "bitmap_or_high_ram_eb6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60269,
   "name": "bitmap_or_high_ram_eb6d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60270,
   "name": "bitmap_or_high_ram_eb6e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60271,
   "name": "bitmap_or_high_ram_eb6f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60504,
   "name": "hud_bitmap_ec58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60584,
   "name": "bitmap_or_high_ram_eca8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60585,
   "name": "bitmap_or_high_ram_eca9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60586,
   "name": "bitmap_or_high_ram_ecaa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60587,
   "name": "bitmap_or_high_ram_ecab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60588,
   "name": "bitmap_or_high_ram_ecac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60589,
   "name": "bitmap_or_high_ram_ecad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60590,
   "name": "bitmap_or_high_ram_ecae",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60591,
   "name": "bitmap_or_high_ram_ecaf",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60648,
   "name": "bitmap_or_high_ram_ece8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60649,
   "name": "bitmap_or_high_ram_ece9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60650,
   "name": "bitmap_or_high_ram_ecea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60651,
   "name": "bitmap_or_high_ram_eceb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60652,
   "name": "bitmap_or_high_ram_ecec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60653,
   "name": "bitmap_or_high_ram_eced",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60654,
   "name": "bitmap_or_high_ram_ecee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60655,
   "name": "bitmap_or_high_ram_ecef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60824,
   "name": "hud_bitmap_ed98",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60904,
   "name": "bitmap_or_high_ram_ede8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60905,
   "name": "bitmap_or_high_ram_ede9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60906,
   "name": "bitmap_or_high_ram_edea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60907,
   "name": "bitmap_or_high_ram_edeb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60908,
   "name": "bitmap_or_high_ram_edec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60909,
   "name": "bitmap_or_high_ram_eded",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60910,
   "name": "bitmap_or_high_ram_edee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60911,
   "name": "bitmap_or_high_ram_edef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60968,
   "name": "bitmap_or_high_ram_ee28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60969,
   "name": "bitmap_or_high_ram_ee29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60970,
   "name": "bitmap_or_high_ram_ee2a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60971,
   "name": "bitmap_or_high_ram_ee2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60972,
   "name": "bitmap_or_high_ram_ee2c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60973,
   "name": "bitmap_or_high_ram_ee2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60974,
   "name": "bitmap_or_high_ram_ee2e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 60975,
   "name": "bitmap_or_high_ram_ee2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61144,
   "name": "hud_bitmap_eed8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61224,
   "name": "bitmap_or_high_ram_ef28",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61225,
   "name": "bitmap_or_high_ram_ef29",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61226,
   "name": "bitmap_or_high_ram_ef2a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61227,
   "name": "bitmap_or_high_ram_ef2b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61228,
   "name": "bitmap_or_high_ram_ef2c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61229,
   "name": "bitmap_or_high_ram_ef2d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61230,
   "name": "bitmap_or_high_ram_ef2e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61231,
   "name": "bitmap_or_high_ram_ef2f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61273,
   "name": "f_EF59",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 61288,
   "name": "bitmap_or_high_ram_ef68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61289,
   "name": "bitmap_or_high_ram_ef69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61290,
   "name": "bitmap_or_high_ram_ef6a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61291,
   "name": "bitmap_or_high_ram_ef6b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61292,
   "name": "bitmap_or_high_ram_ef6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61293,
   "name": "bitmap_or_high_ram_ef6d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61294,
   "name": "bitmap_or_high_ram_ef6e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61295,
   "name": "bitmap_or_high_ram_ef6f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61464,
   "name": "hud_bitmap_f018",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61544,
   "name": "bitmap_or_high_ram_f068",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61545,
   "name": "bitmap_or_high_ram_f069",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61546,
   "name": "bitmap_or_high_ram_f06a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61547,
   "name": "bitmap_or_high_ram_f06b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61548,
   "name": "bitmap_or_high_ram_f06c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61549,
   "name": "bitmap_or_high_ram_f06d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61550,
   "name": "bitmap_or_high_ram_f06e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61551,
   "name": "bitmap_or_high_ram_f06f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61608,
   "name": "bitmap_or_high_ram_f0a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61609,
   "name": "bitmap_or_high_ram_f0a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61610,
   "name": "bitmap_or_high_ram_f0aa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61611,
   "name": "bitmap_or_high_ram_f0ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61612,
   "name": "bitmap_or_high_ram_f0ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61613,
   "name": "bitmap_or_high_ram_f0ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61614,
   "name": "bitmap_or_high_ram_f0ae",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61615,
   "name": "bitmap_or_high_ram_f0af",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61784,
   "name": "hud_bitmap_f158",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61835,
   "name": "hud_pixel_byte_f18b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61864,
   "name": "bitmap_or_high_ram_f1a8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61865,
   "name": "bitmap_or_high_ram_f1a9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61866,
   "name": "bitmap_or_high_ram_f1aa",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61867,
   "name": "bitmap_or_high_ram_f1ab",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61868,
   "name": "bitmap_or_high_ram_f1ac",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61869,
   "name": "bitmap_or_high_ram_f1ad",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61870,
   "name": "bitmap_or_high_ram_f1ae",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61871,
   "name": "bitmap_or_high_ram_f1af",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61898,
   "name": "bitmap_or_high_ram_f1ca",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61898,
   "name": "KERNAL_CHROUTj",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 61928,
   "name": "bitmap_or_high_ram_f1e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61929,
   "name": "bitmap_or_high_ram_f1e9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61930,
   "name": "bitmap_or_high_ram_f1ea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61931,
   "name": "bitmap_or_high_ram_f1eb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61932,
   "name": "bitmap_or_high_ram_f1ec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61933,
   "name": "bitmap_or_high_ram_f1ed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61934,
   "name": "bitmap_or_high_ram_f1ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 61935,
   "name": "bitmap_or_high_ram_f1ef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62039,
   "name": "f_F257",
   "type": "Field",
   "kind": "auto"
  },
  {
   "address": 62104,
   "name": "hud_bitmap_f298",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62184,
   "name": "bitmap_or_high_ram_f2e8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62185,
   "name": "bitmap_or_high_ram_f2e9",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62186,
   "name": "bitmap_or_high_ram_f2ea",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62187,
   "name": "bitmap_or_high_ram_f2eb",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62188,
   "name": "bitmap_or_high_ram_f2ec",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62189,
   "name": "bitmap_or_high_ram_f2ed",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62190,
   "name": "bitmap_or_high_ram_f2ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62191,
   "name": "bitmap_or_high_ram_f2ef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62248,
   "name": "bitmap_or_high_ram_f328",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62249,
   "name": "bitmap_or_high_ram_f329",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62250,
   "name": "bitmap_or_high_ram_f32a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62251,
   "name": "bitmap_or_high_ram_f32b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62255,
   "name": "bitmap_or_high_ram_f32f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62424,
   "name": "hud_bitmap_f3d8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62504,
   "name": "bitmap_or_high_ram_f428",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62505,
   "name": "bitmap_or_high_ram_f429",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62506,
   "name": "bitmap_or_high_ram_f42a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62507,
   "name": "bitmap_or_high_ram_f42b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62508,
   "name": "bitmap_or_high_ram_f42c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62509,
   "name": "bitmap_or_high_ram_f42d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62510,
   "name": "bitmap_or_high_ram_f42e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62511,
   "name": "bitmap_or_high_ram_f42f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62744,
   "name": "hud_bitmap_f518",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62824,
   "name": "bitmap_or_high_ram_f568",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62825,
   "name": "bitmap_or_high_ram_f569",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62826,
   "name": "bitmap_or_high_ram_f56a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62827,
   "name": "bitmap_or_high_ram_f56b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 62828,
   "name": "bitmap_or_high_ram_f56c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63064,
   "name": "hud_bitmap_f658",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63384,
   "name": "hud_bitmap_f798",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63470,
   "name": "hud_pixel_byte_f7ee",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63471,
   "name": "hud_pixel_byte_f7ef",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63784,
   "name": "hud_pixel_byte_f928",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63785,
   "name": "hud_pixel_byte_f929",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63786,
   "name": "hud_pixel_byte_f92a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63787,
   "name": "hud_pixel_byte_f92b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63788,
   "name": "hud_pixel_byte_f92c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63789,
   "name": "hud_pixel_byte_f92d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63790,
   "name": "hud_pixel_byte_f92e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63791,
   "name": "hud_pixel_byte_f92f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63897,
   "name": "hud_pixel_byte_f999",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63898,
   "name": "hud_pixel_byte_f99a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63899,
   "name": "hud_pixel_byte_f99b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63900,
   "name": "hud_pixel_byte_f99c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63901,
   "name": "hud_pixel_byte_f99d",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63902,
   "name": "hud_pixel_byte_f99e",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 63903,
   "name": "hud_pixel_byte_f99f",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64004,
   "name": "hud_pixel_byte_fa04",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64005,
   "name": "hud_pixel_byte_fa05",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64006,
   "name": "hud_pixel_byte_fa06",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64007,
   "name": "hud_pixel_byte_fa07",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64104,
   "name": "hud_pixel_byte_fa68",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64105,
   "name": "hud_pixel_byte_fa69",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64106,
   "name": "hud_pixel_byte_fa6a",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64107,
   "name": "hud_pixel_byte_fa6b",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64108,
   "name": "hud_pixel_byte_fa6c",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64216,
   "name": "hud_pixel_byte_fad8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64320,
   "name": "hud_pixel_byte_fb40",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64344,
   "name": "hud_bitmap_fb58",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64435,
   "name": "hud_pixel_byte_fbb3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64436,
   "name": "hud_pixel_byte_fbb4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64437,
   "name": "hud_pixel_byte_fbb5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64438,
   "name": "hud_pixel_byte_fbb6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64439,
   "name": "hud_pixel_byte_fbb7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64502,
   "name": "hud_pixel_byte_fbf6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64503,
   "name": "hud_pixel_byte_fbf7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64752,
   "name": "hud_pixel_byte_fcf0",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64753,
   "name": "hud_pixel_byte_fcf1",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64754,
   "name": "hud_pixel_byte_fcf2",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64755,
   "name": "hud_pixel_byte_fcf3",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64756,
   "name": "hud_pixel_byte_fcf4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64757,
   "name": "hud_pixel_byte_fcf5",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64758,
   "name": "hud_pixel_byte_fcf6",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64759,
   "name": "hud_pixel_byte_fcf7",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64816,
   "name": "hud_pixel_byte_fd30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64817,
   "name": "hud_pixel_byte_fd31",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64818,
   "name": "hud_pixel_byte_fd32",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64819,
   "name": "hud_pixel_byte_fd33",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64820,
   "name": "hud_pixel_byte_fd34",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 64821,
   "name": "hud_pixel_byte_fd35",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65072,
   "name": "hud_pixel_byte_fe30",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65304,
   "name": "hud_bitmap_ff18",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65347,
   "name": "KERNAL_RESIDUE_FF43",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65352,
   "name": "IRQ_DISPATCH",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65368,
   "name": "irq_dispatch_local_ff58",
   "type": "Branch",
   "kind": "user"
  },
  {
   "address": 65371,
   "name": "KERNAL_RESIDUE_FF5B",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65374,
   "name": "retained_kernal_irq_service_tail",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65409,
   "name": "annotation_ff81",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65424,
   "name": "KERNAL_SETMSG_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65424,
   "name": "KERNAL_SETMSG",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65466,
   "name": "KERNAL_SETLFS_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65466,
   "name": "KERNAL_SETLFS",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65469,
   "name": "KERNAL_SETNAM_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65469,
   "name": "KERNAL_SETNAM",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65493,
   "name": "KERNAL_LOAD_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65493,
   "name": "KERNAL_LOAD",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65496,
   "name": "KERNAL_SAVE_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65496,
   "name": "KERNAL_SAVE",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65520,
   "name": "KERNAL_PLOT_GATE",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65520,
   "name": "KERNAL_PLOT",
   "type": "Predefined",
   "kind": "system"
  },
  {
   "address": 65530,
   "name": "NMI_VECTOR",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65532,
   "name": "physical_reset_and_irq_vectors",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 65534,
   "name": "physical_irq_vector_word",
   "type": "UserDefined",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 1024,
   "type": "line",
   "text": "Sixteen-byte retained pre-dispatch occupant $0400-$040F, raw 1B2F1D200219200415010C0913273930. Distinct from save counters at $0410 and dispatcher $0423. Origin/encoding is unresolved; preserve as a specifically bounded open residue rather than silently excluding it."
  },
  {
   "address": 1044,
   "type": "line",
   "text": "Structured text record: clear flag 0 at $0414 followed by fourteen characters INVALID FILE and two spaces through $0422. Distinct from runtime traversal counters $0410-$0413 and dispatcher $0423. Preserves the first letter I at $0415, rather than incorrectly excluding it with the save counters."
  },
  {
   "address": 1059,
   "type": "line",
   "text": "Load/save dispatcher.\nPurpose: select the save path when A=$53 and the load path otherwise, then perform the KERNAL file operation and restore game state.\nInputs: A is the command character; filename and state buffers are already prepared.\nOutputs: saved or loaded state; runtime vectors and display state restored.\nAssumptions: KERNAL ROM and I/O can be banked in.\nClobbers: A, X, Y, flags, KERNAL workspace.\nHardware changes: switches $01 banking and calls KERNAL PLOT, SETLFS, SETNAM, LOAD/SAVE."
  },
  {
   "address": 1198,
   "type": "line",
   "text": "Save serializer: copies 106 bytes $2406-$246F, then visits all 34 database entries and appends byte zero (flags/type) from each of 546 object records. Record length at +8 advances the source; directory traversal uses $05D8/$05EC. Native execution stopped before $04F6 produces exactly 652 bytes at the work-buffer root $10A0/$10A1, compared byte-for-byte with an independent database walk. A separate native disk-device-8 SAVE/LOAD round trip on a private copy of the contributor image writes EST  .CM and reads all 652 payload bytes back exactly."
  },
  {
   "address": 1388,
   "type": "line",
   "text": "Load deserializer after KERNAL success and $EA signature check: copies 106 bytes into $2406-$246F, then restores byte zero of each of 546 database objects in directory order. Native execution stopped at $05A8 restores all 652 independently generated test bytes exactly; record sizes remain unchanged because only flags/type byte zero is replaced. $05A8 then adjusts sprite-enable bits using $2467. The disk-device-8 SAVE/LOAD round trip reproduces the payload exactly; with IRQs masked for the final comparison, all 106 state and 546 object flags are restored. Tape transfer is untested."
  },
  {
   "address": 1496,
   "type": "line",
   "text": "Initializes area offset pointer from $109E/$109F and area count from database byte $9D00. Falls through $05EC with Y=$FF to select the first directory word. Shared by save and restore; both controlled native traversals visit 34 areas and 546 records."
  },
  {
   "address": 1516,
   "type": "line",
   "text": "Increments directory-byte index, reads one little-endian base-relative area offset via ($7A), adds database base $109C/$109D, stores object count from header +1 at $0411, and advances object pointer $7E/$7F by eight. Saves directory position at $0413. Native serializer/deserializer both reproduce the independent directory order."
  },
  {
   "address": 1560,
   "type": "line",
   "text": "Advances object pointer $7E/$7F by total record length read at +8, restores directory index Y from $0413 and decrements remaining object count $0411. Native save and restore tests traverse all 546 exact object boundaries without changing their length bytes."
  },
  {
   "address": 1583,
   "type": "line",
   "text": "KERNAL-vector restoration bridge.\nPurpose: copy the 32-byte canonical vector table from KERNAL ROM $FD30-$FD4F to RAM $0314-$0333, then install CHROUT=$86CF and NMI=$7579.\nInputs: standard C64 KERNAL ROM.\nOutputs: restored RAM vectors, custom output/NMI hooks, sprites disabled.\nAssumptions: $01=$37 selects KERNAL ROM and I/O.\nClobbers: A, Y, flags.\nHardware changes: masks IRQs during the copy, writes $01, $0314-$0333, and VIC sprite-enable $D015."
  },
  {
   "address": 1626,
   "type": "line",
   "text": "Low bytes of 96 SID frequency words, paired with $06BA-$0719 high bytes. Note decoder $CBC1 adds channel transpose and twenty to note byte, then indexes both arrays with Y; $CBCD adds per-channel fine offset into the low byte and propagates carry into high. This is authored music pitch data, not runtime workspace."
  },
  {
   "address": 1722,
   "type": "line",
   "text": "High bytes of 96 split SID frequency words through $0719, paired with low bytes at $065A. Consumer $CBC1-$CBE0 forms note index from note, transpose and twenty, and applies fine tuning with carry. The following $071A-$0D06 allocation contains 51 distinct terminated phrase streams; it is a separate format."
  },
  {
   "address": 1818,
   "type": "line",
   "text": "SID phrase 0, $071A-$071D, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1822,
   "type": "line",
   "text": "SID phrase 1, $071E-$0721, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1826,
   "type": "line",
   "text": "SID phrase 2, $0722-$0725, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1830,
   "type": "line",
   "text": "SID phrase 3, $0726-$072D, 5 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1838,
   "type": "line",
   "text": "SID phrase 4, $072E-$0731, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1842,
   "type": "line",
   "text": "SID phrase 5, $0732-$073B, 6 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1852,
   "type": "line",
   "text": "SID phrase 6, $073C-$073F, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1856,
   "type": "line",
   "text": "SID phrase 7, $0740-$074B, 7 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1868,
   "type": "line",
   "text": "SID phrase 8, $074C-$075B, 9 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1884,
   "type": "line",
   "text": "SID phrase 9, $075C-$0763, 5 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1892,
   "type": "line",
   "text": "SID phrase 10, $0764-$076B, 6 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1900,
   "type": "line",
   "text": "SID phrase 11, $076C-$0775, 6 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1910,
   "type": "line",
   "text": "SID phrase 12, $0776-$07A9, 28 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 1962,
   "type": "line",
   "text": "SID phrase 13, $07AA-$07DD, 28 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2014,
   "type": "line",
   "text": "SID phrase 14, $07DE-$07F1, 11 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2034,
   "type": "line",
   "text": "SID phrase 15, $07F2-$0813, 18 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2048,
   "type": "line",
   "text": "Nineteen-byte continuation $0800-$0812 of independently parsed phrase 15 beginning $07F2. Its physical end is next phrase $0813, not a BASIC-program boundary. The phrase directory $0D07/$0D3C and bounded command parse establish ownership; cold BASIC SYS bytes are a different phase occupant overwritten before the menu snapshot."
  },
  {
   "address": 2068,
   "type": "line",
   "text": "SID phrase 16, $0814-$0819, 4 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2074,
   "type": "line",
   "text": "SID phrase 17, $081A-$081F, 4 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2080,
   "type": "line",
   "text": "SID phrase 18, $0820-$082B, 7 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2092,
   "type": "line",
   "text": "SID phrase 19, $082C-$0839, 8 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2106,
   "type": "line",
   "text": "SID phrase 20, $083A-$084D, 11 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2126,
   "type": "line",
   "text": "SID phrase 21, $084E-$0863, 12 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2148,
   "type": "line",
   "text": "SID phrase 22, $0864-$0895, 26 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2198,
   "type": "line",
   "text": "SID phrase 23, $0896-$08AC, 13 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2221,
   "type": "line",
   "text": "SID phrase 24, $08AD-$08C3, 13 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2244,
   "type": "line",
   "text": "SID phrase 25, $08C4-$08FB, 29 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2300,
   "type": "line",
   "text": "SID phrase 26, $08FC-$091F, 19 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2336,
   "type": "line",
   "text": "SID phrase 27, $0920-$0941, 18 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2370,
   "type": "line",
   "text": "SID phrase 28, $0942-$0975, 27 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2422,
   "type": "line",
   "text": "SID phrase 29, $0976-$099E, 22 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2463,
   "type": "line",
   "text": "SID phrase 30, $099F-$09EF, 49 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2544,
   "type": "line",
   "text": "SID phrase 31, $09F0-$0A27, 29 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2600,
   "type": "line",
   "text": "SID phrase 32, $0A28-$0A49, 18 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2634,
   "type": "line",
   "text": "SID phrase 33, $0A4A-$0A7F, 28 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2688,
   "type": "line",
   "text": "SID phrase 34, $0A80-$0AB6, 28 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2743,
   "type": "line",
   "text": "SID phrase 35, $0AB7-$0ADE, 21 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2783,
   "type": "line",
   "text": "SID phrase 36, $0ADF-$0B14, 28 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2837,
   "type": "line",
   "text": "SID phrase 37, $0B15-$0B1E, 6 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2847,
   "type": "line",
   "text": "SID phrase 38, $0B1F-$0B24, 4 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2853,
   "type": "line",
   "text": "SID phrase 39, $0B25-$0B2A, 4 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2859,
   "type": "line",
   "text": "SID phrase 40, $0B2B-$0B30, 4 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2865,
   "type": "line",
   "text": "SID phrase 41, $0B31-$0B60, 25 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2913,
   "type": "line",
   "text": "SID phrase 42, $0B61-$0B65, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2918,
   "type": "line",
   "text": "SID phrase 43, $0B66-$0BA7, 34 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 2984,
   "type": "line",
   "text": "SID phrase 44, $0BA8-$0BFD, 52 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3070,
   "type": "line",
   "text": "SID phrase 45, $0BFE-$0C2F, 26 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3120,
   "type": "line",
   "text": "SID phrase 46, $0C30-$0C85, 44 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3206,
   "type": "line",
   "text": "SID phrase 47, $0C86-$0CB2, 23 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3251,
   "type": "line",
   "text": "SID phrase 48, $0CB3-$0CDC, 22 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3293,
   "type": "line",
   "text": "SID phrase 49, $0CDD-$0D01, 19 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3330,
   "type": "line",
   "text": "SID phrase 50, $0D02-$0D06, 3 tokens including final $FF. Directory entry low/high at $0D07/$0D3C identifies this stream. Independent parsing follows native $CAC1 command widths: note and duration two bytes; $A0 wait plus argument two; $C0-$FE pitch-slide command plus three arguments four; other high-bit commands one. The final $FF lands exactly before the next physical phrase (or directory for phrase 50). Music data retained identically between menu and gameplay, not disposable runtime workspace."
  },
  {
   "address": 3335,
   "type": "line",
   "text": "Low bytes of 53 split phrase pointers, paired with 53 high bytes $0D3C-$0D70. Entries 0-50 identify 51 distinct streams filling $071A-$0D06 exactly. Entries 51 and 52 both point at $0D07, the directory itself; none of the 51 supplied channel order lists selects them. This bounded directory check does not establish that arbitrary runtime selection is safe."
  },
  {
   "address": 3388,
   "type": "line",
   "text": "High half of the 53-entry phrase directory at $0D07. $CAA8-$CAB5 chooses a phrase and installs the pointer in voice-specific zero-page pairs $F7/$F8, $F9/$FA or $FB/$FC. Entries 51/52 point into the directory and are not real phrase allocations."
  },
  {
   "address": 3441,
   "type": "line",
   "text": "Seventeen groups of three little-endian order-stream pointers, 51 words through $0DD6. Initialization $CF1B multiplies song selector by six into $C813; tick $C885 selects each voice root at base +0/+2/+4. The 51 roots identify 42 distinct order-stream starts in $0DD7-$0F14. Order commands may change transpose, repeat count, fine tuning, instrument remapping or volume before selecting a phrase."
  },
  {
   "address": 3442,
   "type": "line",
   "text": "Second byte of the first root word in the seventeen three-voice song directory $0D71-$0DD6: 51 little-endian words. Independent parse finds 42 distinct order starts in $0DD7-$0F14; shared suffixes are allowed. Song initialization $CF1B selects the six-byte group and installs three order pointers; it is not a separate one-byte table."
  },
  {
   "address": 3443,
   "type": "line",
   "text": "Song-root directory word 1, song 0, voice 1, pointer $0EC0; this symbol begins byte 0 of that little-endian word. The full 51-word allocation ends $0DD6. Independent directory/order parse verifies 42 unique order starts and overlapping suffixes; root initializer is $CF1B."
  },
  {
   "address": 3444,
   "type": "line",
   "text": "Song-root directory word 1, song 0, voice 1, pointer $0EC0; this symbol begins byte 1 of that little-endian word. The full 51-word allocation ends $0DD6. Independent directory/order parse verifies 42 unique order starts and overlapping suffixes; root initializer is $CF1B."
  },
  {
   "address": 3445,
   "type": "line",
   "text": "Song-root directory word 2, song 0, voice 2, pointer $0EDA; this symbol begins byte 0 of that little-endian word. The full 51-word allocation ends $0DD6. Independent directory/order parse verifies 42 unique order starts and overlapping suffixes; root initializer is $CF1B."
  },
  {
   "address": 3446,
   "type": "line",
   "text": "Song-root directory word 2, song 0, voice 2, pointer $0EDA; this symbol begins byte 1 of that little-endian word. The full 51-word allocation ends $0DD6. Independent directory/order parse verifies 42 unique order starts and overlapping suffixes; root initializer is $CF1B."
  },
  {
   "address": 3543,
   "type": "line",
   "text": "SID channel order stream $0DD7-$0DDA, referenced by song root slot 18. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3547,
   "type": "line",
   "text": "SID channel order stream $0DDB-$0DDE, referenced by song root slot 19. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3551,
   "type": "line",
   "text": "SID channel order stream $0DDF-$0DE2, referenced by song root slot 20. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3555,
   "type": "line",
   "text": "SID channel order stream $0DE3-$0DE6, referenced by song root slot 12. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3559,
   "type": "line",
   "text": "SID channel order stream $0DE7-$0DEA, referenced by song root slot 13. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3563,
   "type": "line",
   "text": "SID channel order stream $0DEB-$0DEE, referenced by song root slot 14. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3567,
   "type": "line",
   "text": "SID channel order stream $0DEF-$0DF2, referenced by song root slot 48. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3571,
   "type": "line",
   "text": "SID channel order stream $0DF3-$0DF6, referenced by song root slot 49. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3575,
   "type": "line",
   "text": "SID channel order stream $0DF7-$0DFA, referenced by song root slot 50. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3579,
   "type": "line",
   "text": "SID channel order stream $0DFB-$0DFE, referenced by song root slot 15. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3583,
   "type": "line",
   "text": "SID channel order stream $0DFF-$0E02, referenced by song root slot 16. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3587,
   "type": "line",
   "text": "SID channel order stream $0E03-$0E06, referenced by song root slot 17. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3627,
   "type": "line",
   "text": "SID channel order stream $0E2B-$0E2E, referenced by song root slot 6. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3631,
   "type": "line",
   "text": "SID channel order stream $0E2F-$0E32, referenced by song root slot 7. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3635,
   "type": "line",
   "text": "SID channel order stream $0E33-$0E36, referenced by song root slot 8. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3639,
   "type": "line",
   "text": "SID channel order stream $0E37-$0E3C, referenced by song root slot 27. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3645,
   "type": "line",
   "text": "SID channel order stream $0E3D-$0E42, referenced by song root slot 28. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3651,
   "type": "line",
   "text": "SID channel order stream $0E43-$0E48, referenced by song root slot 29. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3657,
   "type": "line",
   "text": "SID channel order stream $0E49-$0E4D, referenced by song root slot 30. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3662,
   "type": "line",
   "text": "SID channel order stream $0E4E-$0E51, referenced by song root slot 31. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3666,
   "type": "line",
   "text": "SID channel order stream $0E52-$0E56, referenced by song root slot 32. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3671,
   "type": "line",
   "text": "SID channel order stream $0E57-$0E5A, referenced by song root slot 36. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3675,
   "type": "line",
   "text": "SID channel order stream $0E5B-$0E5E, referenced by song root slot 37. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3679,
   "type": "line",
   "text": "SID channel order stream $0E5F-$0E62, referenced by song root slot 38. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3695,
   "type": "line",
   "text": "SID channel order stream $0E6F-$0E72, referenced by song root slot 39. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3699,
   "type": "line",
   "text": "SID channel order stream $0E73-$0E76, referenced by song root slot 40. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3703,
   "type": "line",
   "text": "SID channel order stream $0E77-$0E7A, referenced by song root slot 41. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3707,
   "type": "line",
   "text": "SID channel order stream $0E7B-$0E7E, referenced by song root slot 24. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3711,
   "type": "line",
   "text": "SID channel order stream $0E7F-$0E82, referenced by song root slot 25. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3715,
   "type": "line",
   "text": "SID channel order stream $0E83-$0E86, referenced by song root slot 26. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3731,
   "type": "line",
   "text": "SID channel order stream $0E93-$0E96, referenced by song root slot 21. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3735,
   "type": "line",
   "text": "SID channel order stream $0E97-$0E9A, referenced by song root slot 22. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3739,
   "type": "line",
   "text": "SID channel order stream $0E9B-$0E9E, referenced by song root slot 23. Contains 3 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3743,
   "type": "line",
   "text": "SID channel order stream $0E9F-$0EA4, referenced by song root slot 9. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3749,
   "type": "line",
   "text": "SID channel order stream $0EA5-$0EAA, referenced by song root slot 10. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3755,
   "type": "line",
   "text": "SID channel order stream $0EAB-$0EB0, referenced by song root slot 11. Contains 4 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3761,
   "type": "line",
   "text": "SID channel order stream $0EB1-$0EBF, referenced by song root slot 0. Contains 14 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3776,
   "type": "line",
   "text": "SID channel order stream $0EC0-$0ED9, referenced by song root slot 1. Contains 25 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3802,
   "type": "line",
   "text": "SID channel order stream $0EDA-$0EF3, referenced by song root slot 2. Contains 25 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3828,
   "type": "line",
   "text": "SID channel order stream $0EF4-$0F03, referenced by song root slot 3. Contains 13 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3844,
   "type": "line",
   "text": "SID channel order stream $0F04-$0F0A, referenced by song root slot 4. Contains 6 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3851,
   "type": "line",
   "text": "SID channel order stream $0F0B-$0F14, referenced by song root slot 5. Contains 9 commands including final $FF. Values below $80 select phrases 0-50 in this supplied stream; high-bit commands set transpose, repetition, fine tuning, instrument remap or volume. Native $CA52-$CAA7 and $CF79-$CFBD define command widths. Independently walking all 51 roots yields 42 distinct starts and confines all supplied order payloads to $0DD7-$0F14; shared suffixes may overlap."
  },
  {
   "address": 3861,
   "type": "line",
   "text": "Instrument parameter allocation used by $CB58-$CBBA. The default eight remapped offsets are 0,9,18,27,36,45,54,63; the decoder reads ten bytes at $0F15+offset through +9. Thus successive parameter windows overlap by one byte, rather than forming disjoint ten-byte records. Fields include pulse high, waveform/control, attack/decay, sustain/release, release timing and modulation selectors/counters. The last default window ends at $0F5D; later data at $0F5E is consumed by modulation helpers. Live fixtures check the exact cached outputs separately."
  },
  {
   "address": 3862,
   "type": "line",
   "text": "Instrument-window field beginning at pulse-width-high byte of default instrument 0. Decoder $CB58 reads ten bytes from $0F15+offset; default offsets 0,9,..63 create eight overlapping windows ending $0F5D. In each window fields+0 nibble reset counters,+1 pulse high,+2 control,+3 AD,+4 SR,+5 gate-release point,+6 pitch-sequence offset,+7 vibrato offset,+8 waveform offset,+9 extra modulation. Eight controlled native calls reproduce all 14 destination fields. Table ownership ends $0F5D; pitch sequences start $0F5E."
  },
  {
   "address": 3863,
   "type": "line",
   "text": "Instrument storage offset 2: SID control for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3864,
   "type": "line",
   "text": "Instrument storage offset 3: attack/decay for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3865,
   "type": "line",
   "text": "Instrument storage offset 4: sustain/release for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3866,
   "type": "line",
   "text": "Instrument storage offset 5: gate-release point for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3867,
   "type": "line",
   "text": "Instrument storage offset 6: pitch-sequence offset for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3868,
   "type": "line",
   "text": "Instrument storage offset 7: vibrato offset for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3869,
   "type": "line",
   "text": "Instrument storage offset 8: waveform-sequence offset for default window 0. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3870,
   "type": "line",
   "text": "Instrument storage offset 9: counter resets for default window 1. Also the extra-modulation byte of the previous window. The complete overlapping-window layout and consumer are described at $0F15."
  },
  {
   "address": 3934,
   "type": "line",
   "text": "Pitch-sequence data consumed via base $0F5E in note initialization $CC60 and pitch modulation $CE7D-$CF1A. Header low 3 bits plus one are compared with the incremented sequence index; bits 3-6 give initial delay, incremented at $CC6B; bit 7 influences termination/reset. Subsequent bytes pack signed/unsigned semitone contribution in bits 3-7 and duration in low 3. Modulation combines that pitch with cached base note and split frequency table, then advances sequence index until header length test selects hold($FF) or restart(0). Vibrato data starts $0FE2, so this physical allocation is $0F5E-$0FE1. Full sequence playback is a separate native progression check."
  },
  {
   "address": 4058,
   "type": "line",
   "text": "Eight-byte suffix $0FDA-$0FE1 of pitch-sequence allocation based $0F5E, immediately before vibrato base $0FE2. Packed low 3 duration and upper pitch contribution are read by $CE99/$CEA3; header count/stop tests live at $CED7-$CEF0. This boundary prevents a generic alias from hiding the subsequent vibrato allocation."
  },
  {
   "address": 4066,
   "type": "line",
   "text": "Vibrato bytes through $1009, read from base $0FE2. Offset comes from instrument field+7 cached at $C845+voice. First byte initializes $C842 delay/repeat state; subsequent indexed signed steps add/subtract magnitude from sixteen-bit frequency. $CE06-$CE23 advances a seven-step index then XORs $89 to reverse direction, decrementing finite repeat state on one turnaround. Waveform remap bytes begin $100A. These are traced authored modulation data; complete playback remains verification work."
  },
  {
   "address": 4096,
   "type": "line",
   "text": "Last ten bytes of the authored vibrato allocation $0FE2-$1009, continuing across the $1000 ledger edge. Read from $0FE2+instrument offset+step in $CDBC; signed values alter 16-bit frequency. Next $100A is waveform control lookup. Independent physical layout description and traced consumer do not imply sustained playback verification."
  },
  {
   "address": 4106,
   "type": "line",
   "text": "Waveform/control lookup read at $CC37/$CE4B with index low 3 of a sequence byte. Values supply SID control bits while preserving/adding gate bit. Numeric lookup indices may overlap neighbouring header/sequence bytes: this is an indexed base, not a claim of disjoint records."
  },
  {
   "address": 4109,
   "type": "line",
   "text": "Waveform sequence header base $100D. Instrument+8 selects offset cached at $C84B; $CE65 reads header low 3 as the incremented-index termination threshold, bit 7 chooses restart(0) versus hold($FF). Body bytes are read from $100E+offset+index, high nibble reloads duration counter as nibble+1, low 3 selects the control lookup at $100A. Published default remapping array begins $1017; these indexed address windows can overlap. Exact default instrument decode is native checked, sustained waveform progression remains separate."
  },
  {
   "address": 4110,
   "type": "line",
   "text": "Waveform body base one byte after header base $100D. Decoder $CC23/$CE3A reads here plus instrument waveform offset and current index, high nibble duration+1, low 3 waveform lookup index. Header $100D+offset gives the incremented-index termination threshold and stop/restart bit. Windows can overlap remap arrays; no disjoint-record model is asserted."
  },
  {
   "address": 4119,
   "type": "line",
   "text": "Twenty-four mutable instrument offsets, eight per voice. Instrument command low 4 plus 16 plus rewritten voice base 0/8/16 indexes this array in $CB58; supplied default values repeat offsets 0,9,..63 for each voice. Order command handler $CF97 rewrites a selected slot; $CF65 restores all 24 from $102F-$1046. These are remapping slots, not frequency words."
  },
  {
   "address": 4143,
   "type": "line",
   "text": "Twenty-four authored default instrument offsets through $1046, copied backward into $1017 by $CF65. Three repeats of 0,9,18,27,36,45,54,63. Each points to a ten-byte window at $0F15 despite nine-byte stride; all eight distinct windows were independently modelled and native checked."
  },
  {
   "address": 4168,
   "type": "line",
   "text": "Collision clearance/radius byte, value 2 in captured image. Read by collision solver $5343 and used in object extent/plane adjustment. When zero $5348 returns X=1 early; nonzero enters ordinary response. Kept in authored denominator separately from neighbouring runtime event state."
  },
  {
   "address": 4226,
   "type": "line",
   "text": "Gameplay event dispatch state. EVENT_OBJECT_ID $1082 identifies the triggering object. ACTIVE_EVENT_MASK $1084 uses bit 0 collided/movement, bit 3 timer, bit 2 shot and bit 1 activated; PENDING_EVENT_MASK $1085 is promoted/consumed by the frame path. UPDATE_FRAME_INPUT_EVENTS produces these fields and DISPATCH_FRAME_CONDITIONS selects FCL tokens from them. Verified from exact producers and all four interpreter event tests."
  },
  {
   "address": 4230,
   "type": "line",
   "text": "Geometry-update consequences. PENDING_CRUSH_CHECK $1086 requests a scan after ordinary geometry becomes visible. PENDING_SUPPORT_CHECK $1087 requests a support/fall pass after geometry becomes invisible. CHECK_NEWLY_VISIBLE_CRUSH and DROP_PLAYER_TO_SUPPORT consume them. SENSOR_COUNT_REBUILT $1099 is rebuilt by rendering and copied to ACTIVE_SENSOR_COUNT $109A for periodic strength drain."
  },
  {
   "address": 4252,
   "type": "line",
   "text": "Two initial little-endian pointers: database base $9D00 at $109C/$109D, area offset-table base $9D4F at $109E/$109F. Native 34-area loader and 652-byte serializer/deserializer traversal tests use both and match the independently parsed physical addresses."
  },
  {
   "address": 4253,
   "type": "line",
   "text": "High byte of base pointer $109C/$109D=$9D00. Following area-table pointer $109E/$109F=$9D4F. Independent parse and 34 native area loads verify both bases and relative-offset interpretation."
  },
  {
   "address": 4254,
   "type": "line",
   "text": "Byte $109E, captured value $4F, inside the bounded allocation described at $109C; offset 2. Two initial little-endian pointers: database base $9D00 at $109C/$109D, area offset-table base $9D4F at $109E/$109F. Native 34-area loader and 652-byte serializer/deserializer traversal tests use both and match the independently parsed physical addresses."
  },
  {
   "address": 4255,
   "type": "line",
   "text": "Byte $109F, captured value $9D, inside the bounded allocation described at $109C; offset 3. Two initial little-endian pointers: database base $9D00 at $109C/$109D, area offset-table base $9D4F at $109E/$109F. Native 34-area loader and 652-byte serializer/deserializer traversal tests use both and match the independently parsed physical addresses."
  },
  {
   "address": 4256,
   "type": "line",
   "text": "Little-endian work-buffer pointer initialized to $87CC. The renderer uses that storage as its 120x30-byte linear pixel buffer. LOAD_SAVE_DISPATCH reuses the same base for its 652-byte serialized payload, then advances its private cursor to end-exclusive $8A58 before KERNAL SAVE. The user-defined DATA reference records this exact pointer value without changing the byte typing."
  },
  {
   "address": 4257,
   "type": "line",
   "text": "High byte of little-endian root $10A0/$10A1, captured $87CC. Renderer and native 652-byte save/load tests use this root. Next pairs $10A2/$10A3 and $10A4/$10A5 hold work-buffer boundaries, and $10A6/$10A7 a related rendering allocation base; these distinct pointer fields are separate from runtime face outputs beginning $10A8."
  },
  {
   "address": 4258,
   "type": "line",
   "text": "Three little-endian initialized rendering allocation pointers: $10A2/$10A3=$969A, $10A4/$10A5=$87CC, $10A6/$10A7=$95FA in the menu image. Consumers reference these separately for render/directory storage; they are distinct from viewport root $10A0 and dynamic face pointers $10A8 onward. Detailed capacity/overlap limits remain open."
  },
  {
   "address": 4259,
   "type": "line",
   "text": "High byte of initial pointer $10A2/$10A3=$969A. Following pairs at $10A4=$87CC and $10A6=$95FA name different render allocation bases. See $10A2 for consumer scope and open capacity/overlap limits."
  },
  {
   "address": 4260,
   "type": "line",
   "text": "Byte $10A4, captured value $CC, inside the bounded allocation described at $10A2; offset 2. Three little-endian initialized rendering allocation pointers: $10A2/$10A3=$969A, $10A4/$10A5=$87CC, $10A6/$10A7=$95FA in the menu image. Consumers reference these separately for render/directory storage; they are distinct from viewport root $10A0 and dynamic face pointers $10A8 onward. Detailed capacity/overlap limits remain open."
  },
  {
   "address": 4261,
   "type": "line",
   "text": "Byte $10A5, captured value $87, inside the bounded allocation described at $10A2; offset 3. Three little-endian initialized rendering allocation pointers: $10A2/$10A3=$969A, $10A4/$10A5=$87CC, $10A6/$10A7=$95FA in the menu image. Consumers reference these separately for render/directory storage; they are distinct from viewport root $10A0 and dynamic face pointers $10A8 onward. Detailed capacity/overlap limits remain open."
  },
  {
   "address": 4262,
   "type": "line",
   "text": "Byte $10A6, captured value $FA, inside the bounded allocation described at $10A2; offset 4. Three little-endian initialized rendering allocation pointers: $10A2/$10A3=$969A, $10A4/$10A5=$87CC, $10A6/$10A7=$95FA in the menu image. Consumers reference these separately for render/directory storage; they are distinct from viewport root $10A0 and dynamic face pointers $10A8 onward. Detailed capacity/overlap limits remain open."
  },
  {
   "address": 4263,
   "type": "line",
   "text": "Byte $10A7, captured value $95, inside the bounded allocation described at $10A2; offset 5. Three little-endian initialized rendering allocation pointers: $10A2/$10A3=$969A, $10A4/$10A5=$87CC, $10A6/$10A7=$95FA in the menu image. Consumers reference these separately for render/directory storage; they are distinct from viewport root $10A0 and dynamic face pointers $10A8 onward. Detailed capacity/overlap limits remain open."
  },
  {
   "address": 4394,
   "type": "line",
   "text": "120-byte runtime scanline endpoint array $112A-$11A1. Edge walkers $43BB-$473A store mirrored horizontal endpoint 119-u indexed by raster row; fill $3F76 reads endpoints together with $10B1-$1128 and status $11A3-$121A. These are generated polygon boundaries, not authored picture data. Exact boundary behavior remains native verification work."
  },
  {
   "address": 4515,
   "type": "line",
   "text": "120-byte runtime status array $11A3-$121A, read/updated by edge walkers $43BB-$473A and scanline fill $3F76. Records whether intersections have initialized one or both bounds, with updates selecting the min/max horizontal endpoints. Indexed by row 0-119; generated for each polygon rather than loaded level data. Boundary/pixel equivalence remains a separate native check."
  },
  {
   "address": 4666,
   "type": "line",
   "text": "Castle sound/music menu state, not a hardware-enable register. SOUND_MENU_STATE $123B is toggled by the information menu and mirrored to SOUND_GATE_STATE $123A. SID_INITIALIZE_IF_ENABLED runs a request only when $123A is zero; nonzero returns. The IRQ/player state mirrors this gate as needed."
  },
  {
   "address": 4667,
   "type": "line",
   "text": "Mutable menu sound flag, toggled by the information menu and mirrored to $123A. Immediately following $123C-$12CB is authored trig data: 72 signed sine/cosine byte pairs for 0..355 degrees in five-degree steps at scale 64. Do not let this state-field label describe or hide the adjacent table."
  },
  {
   "address": 4668,
   "type": "line",
   "text": "Trig table pair 0, angle 0 degrees, sine component 0 at scale 64. Complete 72-pair allocation $123C-$12CB is indexed in five-degree units by camera/movement rotation code; signed byte interpretation is required. Boundary is face topology at $12CC."
  },
  {
   "address": 4669,
   "type": "line",
   "text": "Trig table pair 0, angle 0 degrees, cosine component 64 at scale 64. Complete 72-pair allocation $123C-$12CB is indexed in five-degree units by camera/movement rotation code; signed byte interpretation is required. Boundary is face topology at $12CC."
  },
  {
   "address": 4811,
   "type": "line",
   "text": "Final cosine byte of pair 71 (355 degrees), raw $40=64 in the 72-pair sine/cosine table $123C-$12CB. Paired sine at $12CA is $FA=-6. Face-topology templates begin at $12CC and are a distinct allocation."
  },
  {
   "address": 4812,
   "type": "line",
   "text": "Face topology template at $12CC-$12F0: six faces, each mutable colour/control byte, vertex-count byte 4, then four vertex indices. The six lists are [0,3,7,4], [5,6,2,1], [0,4,5,1], [2,6,7,3], [0,1,2,3], [5,4,7,6]. Independent parsing exhausts this 37-byte template. Consumers $40FC/$410C and clipped path $4240 read these counted records; colour zero suppresses a face. Coordinates come from runtime vertex arrays."
  },
  {
   "address": 4813,
   "type": "line",
   "text": "Byte offset 1 in the 37-byte six-face topology template $12CC-$12F0. Layout: face count 6, then six records of colour/control, vertex count 4, and four vertex indices. The complete face-index lists and independent boundary parse are documented at $12CC. Colour/control bytes are populated for each object before emission; coordinates are separate runtime vertices."
  },
  {
   "address": 4819,
   "type": "line",
   "text": "Byte offset 7 in the 37-byte six-face topology template $12CC-$12F0. Layout: face count 6, then six records of colour/control, vertex count 4, and four vertex indices. The complete face-index lists and independent boundary parse are documented at $12CC. Colour/control bytes are populated for each object before emission; coordinates are separate runtime vertices."
  },
  {
   "address": 4849,
   "type": "line",
   "text": "27-byte template through $130B: five faces with indices [0,3,4], [3,2,4], [2,1,4], [1,0,4], [0,1,2,3]. Each record is colour/control, vertex count, indices. Independent structural parse reaches $130C exactly. Consumer uses the same counted layout as $12CC; rendered object-type selection is traced separately."
  },
  {
   "address": 4876,
   "type": "line",
   "text": "29-byte counted template through $1328: five faces [0,3,5,4], [3,2,5], [2,1,4,5], [1,0,4], [0,1,2,3]. Colour/control precedes vertex count in each face. Independent parse exhausts this extent; next template begins $1329."
  },
  {
   "address": 4905,
   "type": "line",
   "text": "29-byte counted template through $1345: five faces [0,3,4], [3,2,5,4], [2,1,5], [1,0,4,5], [0,1,2,3]. Its independently checked physical end is $1346; it is a topology table, not runtime scratch."
  },
  {
   "address": 4934,
   "type": "line",
   "text": "37-byte template through $136A: six four-vertex faces [0,3,7,4], [3,2,5,7], [2,1,6,5], [1,0,4,6], [0,1,2,3], [4,7,5,6]. Independent parsing of five authored templates $12CC-$136A reaches every boundary exactly. Following $136B is a one-face template with mutable colour/count."
  },
  {
   "address": 4971,
   "type": "line",
   "text": "Constant one-face header for the dynamic template at offset $9F from base $12CC. Object geometry path $336E selects offset $9F and writes vertex count $136D and colour/control $136C before sending the template to $40DA or $4214. Thus the captured zero count at $136D is runtime state, not evidence of a malformed authored face."
  },
  {
   "address": 4974,
   "type": "line",
   "text": "Identity vertex indices 0,1,2,3,4,5 at $136E-$1373 belong to the one-face template headed $136B. Its active vertex count is written at $136D by $3373. Remaining captured bytes $1374-$1378 are 01,00,02,00,00; their detailed use is an open boundary, not silently assigned to this index list."
  },
  {
   "address": 4985,
   "type": "line",
   "text": "Raw control collection. RAW_CONTROL_COUNT $1379 bounds at five; RAW_CONTROL_CODES $137A onward holds active joystick/keyboard codes. READ_CONTROL_INPUT produces them from CIA 1. UPDATE_FRAME_INPUT_EVENTS translates them through CONTROL_ACTION_MAP $1382-$13AD."
  },
  {
   "address": 4986,
   "type": "line",
   "text": "Five-entry decoded-control output buffer $137A-$137E plus scanner count/modifier state through $1381. $75C3 maps joystick bits to codes $91-$95 and keyboard column/row matches into this buffer; $1379 holds count and $1380 signals a matched modifier code. These are runtime scanner outputs; eight-group lookup $757A is authored separately."
  },
  {
   "address": 4992,
   "type": "line",
   "text": "Byte $1380, captured value $00, inside the bounded allocation described at $137A; offset 6. Five-entry decoded-control output buffer $137A-$137E plus scanner count/modifier state through $1381. $75C3 maps joystick bits to codes $91-$95 and keyboard column/row matches into this buffer; $1379 holds count and $1380 signals a matched modifier code. These are runtime scanner outputs; eight-group lookup $757A is authored separately."
  },
  {
   "address": 4993,
   "type": "line",
   "text": "Byte $1381, captured value $16, inside the bounded allocation described at $137A; offset 7. Five-entry decoded-control output buffer $137A-$137E plus scanner count/modifier state through $1381. $75C3 maps joystick bits to codes $91-$95 and keyboard column/row matches into this buffer; $1379 holds count and $1380 signals a matched modifier code. These are runtime scanner outputs; eight-group lookup $757A is authored separately."
  },
  {
   "address": 4994,
   "type": "line",
   "text": "CONTROL_ACTION_MAP ($1382-$13AD)\nPurpose: 22 raw-code/action pairs shared by keyboard and joystick.\nExact mapping: ^,*,$91 -> action 3; =,$92 -> 4; Z,$93 -> 5; X,$94 -> 6; P -> 7; L -> 8; C -> 9; W -> 10; R -> 11; F -> 12; U -> 13; + -> 21; 1,$95 -> 22; A -> 27; Space -> 30; I -> 41.\nConsumer: UPDATE_FRAME_INPUT_EVENTS at $48C1-$48E2.\nEvidence: all 44 bytes observed and dispatch comparisons verified."
  },
  {
   "address": 5038,
   "type": "line",
   "text": "Forty-nine lengths for opcodes 0-48, including selector/opcode byte. $6905 masks low six bits; $6F94 indexes this table to advance the pointer and subtract remaining length. Zero lengths take the interpreter return path rather than advance. Independent parsing of 177 object residual streams, five global streams and eleven area streams gives 809 tokens with exact declared boundaries. Local type-0 allowlists and nine-byte type-2 records are not included in that script count. This validates structure, not all opcode semantics."
  },
  {
   "address": 5087,
   "type": "line",
   "text": "Fifteen fixed-size bytes for object types 0-14, indexed by the low nibble of record byte 0 in $4A75-$4A9E. The object-trigger path subtracts this size from total record length (+8) to locate residual FCL. This is not a universal record validator: local type-0 object ID $FF supplies the global-object allowlist consumed by $7C5A, and all 21 type-2 records have total length nine, shorter than table value fourteen. Parsing renderable records plus four global type-0 records, global and area lists independently gives 193 streams and 809 bounded tokens."
  },
  {
   "address": 5102,
   "type": "line",
   "text": "riddle_ptrs_13ee ($13EE-$13FF). Nine little-endian pointers selected by FCL print values $80-$88 after masking to 0-8. Values in selector order: $1B29,$18AE,$1908,$194B,$1990,$19DE,$1A3B,$1A81,$1AEC. Consumer $6DB1-$6DB9. This is not a terminator for the following message table."
  },
  {
   "address": 5103,
   "type": "line",
   "text": "High byte of first word in nine-pointer riddle directory $13EE-$13FF. Each little-endian word selects a counted layout panel. Independent parse exhausts all 9 panels and their declared records; second word begins $13F0. This is a pointer-byte alias, not a separate string."
  },
  {
   "address": 5120,
   "type": "line",
   "text": "fixed_messages_1400 ($1400-$17DF). Exactly 62 fixed 16-byte records {control/blanking flag, 15 glyph bytes}; FCL ordinary message n uses $1410 + 16*(n-1). First record is 00 followed by ` DUALIS-CRACK! `. Exact stride/consumer contradict the former 75 terminator-record interpretation."
  },
  {
   "address": 5136,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 1 at $1410: leading background/clear flag 0 followed by fifteen character bytes, \"OVERPOWERED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5152,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 2 at $1420: leading background/clear flag 1 followed by fifteen character bytes, \"YOU COLLAPSE\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5168,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 3 at $1430: leading background/clear flag 0 followed by fifteen character bytes, \"CRUSHED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5184,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 4 at $1440: leading background/clear flag 1 followed by fifteen character bytes, \"FATAL FALL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5200,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 5 at $1450: leading background/clear flag 1 followed by fifteen character bytes, \"YOU DID IT !\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5216,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 6 at $1460: leading background/clear flag 0 followed by fifteen character bytes, \"CASTLE MASTER\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5232,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 7 at $1470: leading background/clear flag 1 followed by fifteen character bytes, \"OUT OF REACH\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5248,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 8 at $1480: leading background/clear flag 0 followed by fifteen character bytes, \"NO EFFECT\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5264,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 9 at $1490: leading background/clear flag 0 followed by fifteen character bytes, \"CHOMP CHOMP AHH\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5280,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 10 at $14A0: leading background/clear flag 1 followed by fifteen character bytes, \"GLUG GLUG GLUG\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5296,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 11 at $14B0: leading background/clear flag 0 followed by fifteen character bytes, \"NOT ENOUGH ROOM\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5312,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 12 at $14C0: leading background/clear flag 1 followed by fifteen character bytes, \"TOO WEAK\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5328,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 13 at $14D0: leading background/clear flag 1 followed by fifteen character bytes, \"CRAWL SELECTED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5344,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 14 at $14E0: leading background/clear flag 0 followed by fifteen character bytes, \"WALK SELECTED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5360,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 15 at $14F0: leading background/clear flag 1 followed by fifteen character bytes, \"RUN SELECTED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5376,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 16 at $1500: leading background/clear flag 1 followed by fifteen character bytes, \"NEED TEN KEYS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5392,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 17 at $1510: leading background/clear flag 1 followed by fifteen character bytes, \"WILDERNESS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5408,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 18 at $1520: leading background/clear flag 0 followed by fifteen character bytes, \"COURTYARD\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5424,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 19 at $1530: leading background/clear flag 0 followed by fifteen character bytes, \"CARPENTER'S\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5440,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 20 at $1540: leading background/clear flag 1 followed by fifteen character bytes, \"WIZARD'S HUT\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5456,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 21 at $1550: leading background/clear flag 0 followed by fifteen character bytes, \"STABLES\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5472,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 22 at $1560: leading background/clear flag 1 followed by fifteen character bytes, \"GREAT HALL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5488,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 23 at $1570: leading background/clear flag 1 followed by fifteen character bytes, \"SMITHY\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5504,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 24 at $1580: leading background/clear flag 1 followed by fifteen character bytes, \"BALLROOM\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5520,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 25 at $1590: leading background/clear flag 0 followed by fifteen character bytes, \"PASSAGE\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5536,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 26 at $15A0: leading background/clear flag 0 followed by fifteen character bytes, \"LIBRARY\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5552,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 27 at $15B0: leading background/clear flag 0 followed by fifteen character bytes, \"STAIRWELL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5568,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 28 at $15C0: leading background/clear flag 1 followed by fifteen character bytes, \"CHAPEL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5584,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 29 at $15D0: leading background/clear flag 0 followed by fifteen character bytes, \"CATACOMBS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5600,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 30 at $15E0: leading background/clear flag 1 followed by fifteen character bytes, \"HOSPITAL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5616,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 31 at $15F0: leading background/clear flag 1 followed by fifteen character bytes, \"BARRACKS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5632,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 32 at $1600: leading background/clear flag 1 followed by fifteen character bytes, \"MAGISTER\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5648,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 33 at $1610: leading background/clear flag 0 followed by fifteen character bytes, \"KITCHEN\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5664,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 34 at $1620: leading background/clear flag 1 followed by fifteen character bytes, \"KING'S SOLAR\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5680,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 35 at $1630: leading background/clear flag 0 followed by fifteen character bytes, \"HOT BATHS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5696,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 36 at $1640: leading background/clear flag 0 followed by fifteen character bytes, \"LOBBY\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5712,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 37 at $1650: leading background/clear flag 0 followed by fifteen character bytes, \"DRAGON'S LAIR\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5728,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 38 at $1660: leading background/clear flag 1 followed by fifteen character bytes, \"CAVERN\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5744,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 39 at $1670: leading background/clear flag 1 followed by fifteen character bytes, \"CORRIDOR\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5760,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 40 at $1680: leading background/clear flag 1 followed by fifteen character bytes, \"LARDER\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5776,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 41 at $1690: leading background/clear flag 1 followed by fifteen character bytes, \"STORES\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5792,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 42 at $16A0: leading background/clear flag 1 followed by fifteen character bytes, \"SPIRITS' ABODE\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5808,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 43 at $16B0: leading background/clear flag 1 followed by fifteen character bytes, \"GUARD ROOM\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5824,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 44 at $16C0: leading background/clear flag 1 followed by fifteen character bytes, \"DRAGON'S HOARD\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5840,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 45 at $16D0: leading background/clear flag 0 followed by fifteen character bytes, \"JUNK ROOM\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5856,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 46 at $16E0: leading background/clear flag 1 followed by fifteen character bytes, \"DOOR TO...\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5872,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 47 at $16F0: leading background/clear flag 1 followed by fifteen character bytes, \"NEED RIGHT KEY\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5888,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 48 at $1700: leading background/clear flag 0 followed by fifteen character bytes, \"KEY FOUND FOR\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5904,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 49 at $1710: leading background/clear flag 0 followed by fifteen character bytes, \"A POTION FOR...\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5920,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 50 at $1720: leading background/clear flag 1 followed by fifteen character bytes, \"STRENGTH\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5936,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 51 at $1730: leading background/clear flag 0 followed by fifteen character bytes, \"ROCK TRAVEL\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5952,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 52 at $1740: leading background/clear flag 1 followed by fifteen character bytes, \"REVITALISATION\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5968,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 53 at $1750: leading background/clear flag 1 followed by fifteen character bytes, \"THE DOOR OPENS\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 5984,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 54 at $1760: leading background/clear flag 1 followed by fifteen character bytes, \"HIGH LEDGE\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6000,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 55 at $1770: leading background/clear flag 1 followed by fifteen character bytes, \"TREASURE CHEST\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6016,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 56 at $1780: leading background/clear flag 1 followed by fifteen character bytes, \"TREASURE FOUND\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6032,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 57 at $1790: leading background/clear flag 0 followed by fifteen character bytes, \"CAPTIVE\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6048,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 58 at $17A0: leading background/clear flag 0 followed by fifteen character bytes, \"HELP ME HELP ME\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6064,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 59 at $17B0: leading background/clear flag 1 followed by fifteen character bytes, \"AAAAAARRRGH!\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6080,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 60 at $17C0: leading background/clear flag 0 followed by fifteen character bytes, \"SMASH!!\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6096,
   "type": "line",
   "text": "Fixed sixteen-byte message slot 61 at $17D0: leading background/clear flag 0 followed by fifteen character bytes, \"DOOR LOCKED\" (space padded). Positive FCL PRINT argument n selects $1410+16*(n-1) at $6EA1. Area names share this allocation: name index k copies sixteen bytes from $1500+16*k at $77C7. Renderer $8590 uses the leading flag and fifteen characters; flag zero skips its preliminary clear/background pass, while nonzero enables it. This is authored text, not a runtime asset."
  },
  {
   "address": 6112,
   "type": "line",
   "text": "Active-language UI records ($17E0-$1883). Starts with six 11-byte strength labels, followed by the 23-byte information-menu command line, keys/spirits/strength labels, and three fixed 16-byte count/score templates. Digits at $1856/$1857, $1866/$1867, and $187C-$1882 are mutable display fields."
  },
  {
   "address": 6230,
   "type": "line",
   "text": "Two mutable decimal display digits at $1856/$1857, initialized XX in active-language template. $7A82/$7A90 replace them for the key count. Remaining label text through $1863 reads COLLECTED; next sixteen-byte template $1864-$1873 has clear flag 0, two XX digits at $1866/$1867 and DESTROYED suffix. Score template $1874-$1883 has clear flag 1 and seven mutable digits at $187C-$1882. These are structured text templates, not generic runtime blobs."
  },
  {
   "address": 6231,
   "type": "line",
   "text": "Second mutable key-count digit in $1856/$1857, initialized X. Remaining structured templates and their exact bounds are described at $1856: COLLECTED record ends $1863, DESTROYED ends $1873, seven-digit SCORE ends $1883. Save device prompt begins $1884 and is a separate record."
  },
  {
   "address": 6246,
   "type": "line",
   "text": "Two mutable count digits $1866/$1867 in DESTROYED record $1864-$1873. Next SCORE record $1874-$1883 contains seven mutable decimal digits $187C-$1882. Clear flags are 0 and 1 respectively; labels and digits are structured text rather than an arbitrary asset pool. Native font output is checked separately."
  },
  {
   "address": 6247,
   "type": "line",
   "text": "Byte $1867, captured value $58, inside the bounded allocation described at $1866; offset 1. Two mutable count digits $1866/$1867 in DESTROYED record $1864-$1873. Next SCORE record $1874-$1883 contains seven mutable decimal digits $187C-$1882. Clear flags are 0 and 1 respectively; labels and digits are structured text rather than an arbitrary asset pool. Native font output is checked separately."
  },
  {
   "address": 6268,
   "type": "line",
   "text": "Byte $187C, captured value $58, inside the bounded allocation described at $1866; offset 22. Two mutable count digits $1866/$1867 in DESTROYED record $1864-$1873. Next SCORE record $1874-$1883 contains seven mutable decimal digits $187C-$1882. Clear flags are 0 and 1 respectively; labels and digits are structured text rather than an arbitrary asset pool. Native font output is checked separately."
  },
  {
   "address": 6276,
   "type": "line",
   "text": "save_prompts_1884 ($1884-$18AD). Three fixed 14-byte records {control,13 glyphs}: `TAPE OR DISC `, `(T/D) ? #    `, and filename prompt. $189B is patched with the chosen device letter."
  },
  {
   "address": 6299,
   "type": "line",
   "text": "Mutable device-choice cursor at $189B, initially# then replaced by selected T or D in $7B4D. Trailing spaces through $189F pad the choice record. Following $18A0-$18AD is clear flag 0 plus thirteen characters FILENAME : and spaces, drawn by the native save/load UI. It ends immediately before first riddle at $18AE."
  },
  {
   "address": 6318,
   "type": "line",
   "text": "Structured riddle panel 1, $18AE-$1907, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6408,
   "type": "line",
   "text": "Structured riddle panel 2, $1908-$194A, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6475,
   "type": "line",
   "text": "Structured riddle panel 3, $194B-$198F, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6544,
   "type": "line",
   "text": "Structured riddle panel 4, $1990-$19DD, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6622,
   "type": "line",
   "text": "Structured riddle panel 5, $19DE-$1A3A, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6715,
   "type": "line",
   "text": "Structured riddle panel 6, $1A3B-$1A80, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6785,
   "type": "line",
   "text": "Structured riddle panel 7, $1A81-$1AEB, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6892,
   "type": "line",
   "text": "Structured riddle panel 8, $1AEC-$1B28, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 5 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 6953,
   "type": "line",
   "text": "Structured riddle panel 0, $1B29-$1B76, selected through $13EE by high-bit FCL PRINT arguments. First byte counts 6 line records. Each record starts signed/wrapping horizontal delta added to $68F2 and absolute logical row used to index $1C75, then length. Length $FF inserts dynamic caption $1C4E without a literal payload; ordinary length is followed by one clear/background flag and exactly that many character bytes. $6DB1-$6E3E and $858B consume it. Independent parsing exhausts the physical record and yields printable lines at the specified positions; this is authored text/layout, not runtime workspace."
  },
  {
   "address": 7245,
   "type": "line",
   "text": "Length 21 ($15) read by $6E10 for riddle length $FF form. Dynamic caption starts $1C4E with clear flag 0 and 21 characters $1C4F-$1C63, initially asterisks. Riddle routine uses $858B without requiring a literal length byte in source; pointer rewinds by one before the common loop increment. Following $1C64 is frame/clock state, not caption text."
  },
  {
   "address": 7268,
   "type": "line",
   "text": "Runtime IRQ counter incremented at $73C0; lightning and effect routines use its low bits/modulo arithmetic. Following $1C65-$1C67 is literal @0: replacement prefix, five-byte name $1C68-$1C6C and suffix $60 C M at $1C6D-$1C6F. Native disk UI produces EST  .CM and a 652-byte round trip. Max filename length 5 is stored $1C70; save/load flag $1C71 and text/IRQ state $1C72-$1C74 are separate runtime fields."
  },
  {
   "address": 7271,
   "type": "line",
   "text": "Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7272,
   "type": "line",
   "text": "Byte $1C68, captured value $20, inside the bounded allocation described at $1C67; offset 1. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7277,
   "type": "line",
   "text": "Byte $1C6D, captured value $60, inside the bounded allocation described at $1C67; offset 6. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7281,
   "type": "line",
   "text": "Byte $1C71, captured value $00, inside the bounded allocation described at $1C67; offset 10. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7282,
   "type": "line",
   "text": "Byte $1C72, captured value $00, inside the bounded allocation described at $1C67; offset 11. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7283,
   "type": "line",
   "text": "Byte $1C73, captured value $01, inside the bounded allocation described at $1C67; offset 12. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7284,
   "type": "line",
   "text": "Byte $1C74, captured value $08, inside the bounded allocation described at $1C67; offset 13. Final colon of literal @0: replacement prefix $1C65-$1C67. Dispatcher uses this prefix for disk saves, followed by five padded filename characters and suffix $60CM. Native device 8 round trip confirms EST  .CM creation/load. Max name length 5$1C70 and runtime flags $1C71 onward are separately bounded."
  },
  {
   "address": 7285,
   "type": "line",
   "text": "linear_row_ptrs_1c75 ($1C75-$1D64). 120 little-endian row pointers; entry n is exactly $87CC + 30*n. Generic blitter $7CF6-$7FDB, rectangular copy $7FE6, and HUD/text callers consume them."
  },
  {
   "address": 7525,
   "type": "line",
   "text": "bitmap_hud_ptrs_1d65 ($1D65-$1DD8). 58 little-endian pointers into non-contiguous VIC bitmap/HUD locations, consumed by $7FE6 and HUD routines $702C-$72D9."
  },
  {
   "address": 7641,
   "type": "line",
   "text": "packed_hud_graphics_1dd9 ($1DD9-$2036). Generic records begin with five-byte header {row_bytes, row_count, last_byte_mask, frame_stride_lo, frame_stride_hi}, followed by packed two-bit pixels. Exact record starts: $1DD9,$1E32,$1E45,$1E8A,$1E9F,$1F49,$1F6F,$1FB0; the final record has 13 structurally verified 10-byte frames. Low seven selector bits choose frame; bit 7 selects alternate compositing. Individual icon meanings are inferred from callers, while format/bounds are verified."
  },
  {
   "address": 8227,
   "type": "line",
   "text": "Seven three-byte row patterns $2023-$2037,21 bytes. Helper $6EE7 writes first triplet byte at column 0, repeats middle byte across 28 columns and writes final byte at column 29, then advances linear row pointer by 30 and X by 3. These form the riddle panel’s packed bitmap border/interior rows. The immediately following $2038 begins four HUD animation pictures."
  },
  {
   "address": 8248,
   "type": "line",
   "text": "raster_frames_2038 ($2038-$20F7). Eight 24-byte raster/HUD animation frames. IRQ path $74C8-$7520 copies phase pairs to multicolor bitmap destinations $E128 and $E268."
  },
  {
   "address": 8272,
   "type": "line",
   "text": "Second 24-byte half of HUD animation frame zero, $2050-$2067. IRQ phase zero copies $2038-$204F to $E128 and this half to $E268; phases one through three select the subsequent pairs at $2068/$2080, $2098/$20B0 and $20C8/$20E0. The phase cycles every eight IRQ ticks via $7354/$7356. These are authored bitmap fragments, not runtime state."
  },
  {
   "address": 8296,
   "type": "line",
   "text": "Frames 1,2,3 of the four 48-byte HUD animation pictures at $2038-$20F7. Each frame has two 24-byte fragments copied by IRQ code to $E128 and $E268. Frame 1 begins $2068, frame 2 $2098, frame 3 $20C8. The split matches three bitmap columns by eight raster rows per fragment; IRQ advances selector every eight ticks. All initialized-display pixels match the controlled native capture, but that static-frame check does not verify full animation progression."
  },
  {
   "address": 8320,
   "type": "line",
   "text": "HUD animation frame 1, fragment 1, byte 0; four 48-byte frames occupy $2038-$20F7. Fragment 0 is copied to $E128 and fragment 1 to $E268 by IRQ code; each fragment has three bitmap cells with 8 raster bytes each. Captured byte $00. Frame selector advances every 8 ticks; exact animation progression remains a native timing check."
  },
  {
   "address": 8344,
   "type": "line",
   "text": "HUD animation frame 2, fragment 0, byte 0; four 48-byte frames occupy $2038-$20F7. Fragment 0 is copied to $E128 and fragment 1 to $E268 by IRQ code; each fragment has three bitmap cells with 8 raster bytes each. Captured byte $00. Frame selector advances every 8 ticks; exact animation progression remains a native timing check."
  },
  {
   "address": 8368,
   "type": "line",
   "text": "HUD animation frame 2, fragment 1, byte 0; four 48-byte frames occupy $2038-$20F7. Fragment 0 is copied to $E128 and fragment 1 to $E268 by IRQ code; each fragment has three bitmap cells with 8 raster bytes each. Captured byte $00. Frame selector advances every 8 ticks; exact animation progression remains a native timing check."
  },
  {
   "address": 8392,
   "type": "line",
   "text": "HUD animation frame 3, fragment 0, byte 0; four 48-byte frames occupy $2038-$20F7. Fragment 0 is copied to $E128 and fragment 1 to $E268 by IRQ code; each fragment has three bitmap cells with 8 raster bytes each. Captured byte $00. Frame selector advances every 8 ticks; exact animation progression remains a native timing check."
  },
  {
   "address": 8416,
   "type": "line",
   "text": "HUD animation frame 3, fragment 1, byte 0; four 48-byte frames occupy $2038-$20F7. Fragment 0 is copied to $E128 and fragment 1 to $E268 by IRQ code; each fragment has three bitmap cells with 8 raster bytes each. Captured byte $00. Frame selector advances every 8 ticks; exact animation progression remains a native timing check."
  },
  {
   "address": 8440,
   "type": "line",
   "text": "background_edge_masks_20f8 ($20F8-$21F9). 86 three-byte mask records selected as X=3*$4B8C by $4D90, then AND/OR composited into each linear-framebuffer row. Artistic identities are inferred; record format and consumer are observed."
  },
  {
   "address": 8698,
   "type": "line",
   "text": "area 1_background_texture_21fa ($21FA-$2319). Eighteen 16-byte texture/rotation records for the special area-1 background. $4CF6-$4D8F selects/rotates row patterns from yaw $2411&7."
  },
  {
   "address": 8986,
   "type": "line",
   "text": "Fifty-nine packed glyphs for characters $20-$5A, four bytes per glyph through $2405. $85E1 subtracts $20 and shifts twice, giving an eight-bit offset; each source nibble supplies four logical monochrome pixels. Native expansion $85EB-$863D builds eight two-byte rows at $857B for bitmap blitter $7CF6: high nibbles map set bits to pair value 1, low nibbles normally map to 1 after AND $55, while the first low-nibble row keeps pair value 3. Second byte of each row is zero. Thus treating four source bytes as a standard eight-bit C64 character is incorrect. Characters outside this allocation wrap the eight-bit index; ordinary input range remains a separate check."
  },
  {
   "address": 9222,
   "type": "line",
   "text": "SAVE_STATE_MARKER begins the 106-byte mutable engine-state span $2406-$246F. Marker $EA validates loaded files. LOAD_SAVE_DISPATCH copies this span to $87CC-$8835, then SERIALIZE_ALL_OBJECT_FLAGS appends 546 record flag bytes at $8836-$8A57. Total payload is 652 bytes ($028C), end-exclusive $8A58; a PRG container adds load address $87CC for a 654-byte file."
  },
  {
   "address": 9223,
   "type": "line",
   "text": "Player pose in little-endian 16-bit world coordinates: X $2407/$2408, vertical/Y $2409/$240A, Z $240B/$240C. MOVE_STEP_SCALED $240D/$240E and MOVE_STEP_RAW $240F feed translation. VIEW_PITCH $2410 and VIEW_YAW $2411 wrap in the $00-$47 (72-step) angular domain. Verified from trig-table, movement, entrance and collision use."
  },
  {
   "address": 9234,
   "type": "line",
   "text": "Player stance/collision dimensions. PLAYER_HEIGHT_UNITS $2412 is inferred from crawl transitions and stand-up adjustment. PLAYER_HEIGHT_SCALED $2413 is verified in collision/fall calculations. FALL_DAMAGE_THRESHOLD $2414 equals 2*CURRENT_AREA_SCALE; MAX_FLOOR_STEP $2415 equals 1*scale; CURRENT_AREA_SCALE is $2416. The threshold roles supersede the earlier generic collision-extent names."
  },
  {
   "address": 9272,
   "type": "line",
   "text": "FCL_VARIABLE_BASE. Castle condition bytecode addresses variables as $2438+index. The live high variables are score $2442-$2444, spirits destroyed $2454 (v28), strength/shield $2455 (v29), movement mode $2456 (v30), key count $2457 (v31), and pending key ID $2458 (v32)."
  },
  {
   "address": 9282,
   "type": "line",
   "text": "Unsigned 24-bit little-endian score at $2442-$2444. ADD_SCORE_U24 propagates carry across all three bytes; FORMAT_UNSIGNED_DECIMAL and menu/HUD paths display seven decimal digits. First area visits add 17,500 ($00445C); collected keys add 125,000 ($01E848)."
  },
  {
   "address": 9300,
   "type": "line",
   "text": "Castle Master game-state variables exposed to Freescape condition bytecode. $2454 is FCL variable 28, spirits destroyed; $2455 is variable 29, strength/shield; $2456 is variable 30, movement mode; $2457 is variable 31, keys collected; $2458 is variable 32, pending key ID. The spirits-meter update computes elapsed * (21 - destroyed) / 21 and triggers completion when the normalized result reaches 64."
  },
  {
   "address": 9305,
   "type": "line",
   "text": "Thunder/lightning scheduler. LIGHTNING_COUNTDOWN $2459 is decremented by LIGHTNING_DIVIDER $2468 (reload 60). Zero reseeds to ($1C64 & $3F)+10; outdoors this requests sound 8, flashes VIC border/background white for one interrupt interval, restores area colors and requests redraw. Count 1 incorporates the lightning graphic, then becomes zero. This is not gameplay time."
  },
  {
   "address": 9317,
   "type": "line",
   "text": "Aim and periodic state. AIM_SELECTOR_X/Y are $2465/$2466 and AIM_MODE_ENABLED is $2467. LIGHTNING_DIVIDER $2468 reloads 60. PERIODIC_TICK_DIVIDER $2469 reloads 10 and increments CURRENT_TIMER_TICK $246D; comparison with PREVIOUS_TIMER_TICK $246C raises the FCL timer event. SPIRITS_METER_ELAPSED $246A increments on the longer IRQ divider."
  },
  {
   "address": 9328,
   "type": "line",
   "text": "MUL_S16_S8_TO_S24 ($2470-$24FD)\nPurpose: multiply a signed 16-bit value by a signed 8-bit value using shift/add arithmetic.\nInputs: signed factor in A low/X high, signed factor in Y, and interrupt-state convention byte $1C72.\nOutputs: signed 24-bit product in $82-$84.\nAssumptions: binary two's-complement operands; $1C72 accurately says whether the engine already owns the interrupt-disabled arithmetic critical section.\nClobbers: A, X, Y, flags, $82-$8C, and sign scratch $1056.\nHardware changes: executes SEI; executes CLI before return only when $1C72=0, otherwise leaves interrupts disabled; no VIC-II, SID, or CIA register changes."
  },
  {
   "address": 9470,
   "type": "line",
   "text": "MUL_S16_S16_TO_S32 ($24FE-$259C)\nPurpose: multiply two signed 16-bit values using magnitude conversion and shift/add arithmetic.\nInputs: signed factors in $88/$89 and $8C/$8D.\nOutputs: signed 32-bit product in $82-$85; zero input produces zero output through the fast path.\nAssumptions: binary two's-complement operands and writable shared arithmetic workspace.\nClobbers: A, X, flags, $82-$8D including operand work bytes, and sign scratch $1056; Y is preserved.\nHardware changes: none."
  },
  {
   "address": 9629,
   "type": "line",
   "text": "Two-byte scratch preceding signed division $259F, written/read while magnitude conversion and sign restoration occur. Independent projection fixtures exercise signed division results, including signed extremes. It is runtime arithmetic state, distinct from the following code."
  },
  {
   "address": 9631,
   "type": "line",
   "text": "DIV_S24_BY_S16 ($259F-$2642)\nPurpose: divide a signed 24-bit dividend by a signed 16-bit divisor using restoring long division.\nInputs: dividend in A low/X middle/Y high; divisor in $8C/$8D.\nOutputs: signed quotient in $88-$8A and signed remainder in $82-$84.\nAssumptions: binary two's-complement operands; divisor is nonzero. This routine has no divide-by-zero guard, so zero is an invalid caller state.\nClobbers: A, X, Y, flags, $82-$8D, and self-held sign bytes $259D/$259E.\nHardware changes: none."
  },
  {
   "address": 9795,
   "type": "line",
   "text": "MUL_S8_S8_TO_S16 ($2643-$26AA)\nPurpose: multiply two signed 8-bit values using shift/add arithmetic.\nInputs: signed factors in X and Y.\nOutputs: signed 16-bit product in $82/$83; zero input produces zero output through the fast path.\nAssumptions: binary two's-complement operands and writable shared arithmetic workspace.\nClobbers: A, X, Y, flags, $82-$88, $8C, and sign scratch $1056.\nHardware changes: none."
  },
  {
   "address": 9899,
   "type": "line",
   "text": "DIV_S32_BY_S16 ($26AB-$274C)\nPurpose: divide a signed 32-bit dividend by a signed 16-bit divisor using restoring long division.\nInputs: dividend in $88-$8B and divisor in $8C/$8D.\nOutputs: signed quotient in $88-$8B and unsigned-magnitude remainder in $82/$83. A zero dividend returns zero immediately; a zero divisor also returns early without a meaningful quotient and is an invalid caller state.\nAssumptions: binary two's-complement operands; valid callers provide a nonzero divisor.\nClobbers: A, X, Y, flags, $82-$8D, and sign scratch $1056.\nHardware changes: none."
  },
  {
   "address": 10068,
   "type": "line",
   "text": "Purpose: Render and present one scene when dirty/effect state requires it.\nInputs: effect $1086, dirty flags $1059/$105A, object-list roots $1060-$1062 and $242A-$242C.\nOutputs: rendered/presented scene, sensor count $1099, and status update through $72DA.\nAssumptions: bounds, matrix, traversal, painter-sort, draw, HUD and presentation routines.\nClobbers: A, X, Y, flags and renderer scratch; changes bitmap/screen/color memory through callees but no SID/CIA state directly.\nHardware changes: Writes renderer buffers and VIC-visible bitmap, screen, and color memory through callees; no direct SID or CIA access."
  },
  {
   "address": 10167,
   "type": "line",
   "text": "Purpose: Traverse one variable-size Freescape object list.\nInputs: X=count and $80/$81=first record; record byte 8 supplies the next size.\nOutputs: visible geometry queued for drawing and sensor count $1099. Type 0 and flag $40 skip; type 2 counts a sensor; type 1 dispatches cube, type 3 rectangle, types 4..9 pyramid, and >=10 line/polygon.\nAssumptions: coarse bounds unless bypass $2417.\nClobbers: A, X, Y, flags, $7A/$7B, $80/$81 and local self-modified scratch; no C64 hardware registers are changed.\nHardware changes: None directly."
  },
  {
   "address": 10562,
   "type": "line",
   "text": "Purpose: Compute coarse view bounds for object rejection.\nInputs: 72-step pitch/yaw $2410/$2411, camera/player coordinates $2407-$240C, and bypass flag $2417.\nOutputs: six signed axis min/max bounds $1089-$108E.\nAssumptions: VIEW_OCTANT_BOUNDS_DISPATCH.\nClobbers: A, X, flags and scratch $2940/$2941; no C64 hardware registers are changed. It samples four view-corner octants, then translates remaining open bounds by camera position; coarse AABB/octant-frustum wording is descriptive, while the bounds algorithm is exact.\nHardware changes: None."
  },
  {
   "address": 10772,
   "type": "line",
   "text": "Self-modified eight-way coarse-bound dispatch.\nPurpose: transfer to the octant-specific initializer selected by the current pitch/yaw quadrant.\nInputs: $2A0B/$2A11 have written this JMP operand from VIEW_OCTANT_BOUNDS_DISPATCH using the index derived at $2A04-$2A07.\nOutputs: control enters one of SET_VIEW_BOUNDS_CASE_0..7, which initializes the applicable coarse bounds before FINISH_VIEW_BOUNDS_SAMPLES.\nAssumptions: the dispatch table contains eight valid resident targets and this RAM operand is writable; captured $FFFF is only the pre-patch placeholder.\nClobbers: none at the JMP itself; the selected initializer clobbers A and flags.\nHardware changes: None."
  },
  {
   "address": 10773,
   "type": "line",
   "text": "Mutable two-byte JMP operand at $2A14, loaded from the eight little-endian handler pointers $2A17-$2A26 by $2A08/$2A0E. This address is an operand byte, not an entry point. Low/high values are installed before dispatch to the selected geometry operation."
  },
  {
   "address": 10774,
   "type": "line",
   "text": "High operand byte of JMP $2A14, written from high half of selected directory word at $2A18+X. See $2A15 for directory bounds and the paired low byte; no entry begins here."
  },
  {
   "address": 10775,
   "type": "line",
   "text": "Eight absolute destination words $2A27,$2A39,$2A4B,$2A5D,$2A6F,$2A81,$2A93,$2AA5. The absolute JMP operand at $2A15/$2A16 is rewritten from the selected table word by view octant. Each target sets coarse lower/upper bound bytes at $1089-$108E before joining $2AB4. This sixteen-byte pointer table ends before code $2A27."
  },
  {
   "address": 10776,
   "type": "line",
   "text": "High byte of the first word in the eight-entry view-octant dispatch at $2A17-$2A26. This names a data byte, not an independent array of the following code. The first target is $2A27; all eight words resolve to the bounded case code following the table."
  },
  {
   "address": 10791,
   "type": "line",
   "text": "First of eight octant cases selected through $2A17. Writes coarse bound extrema $7F/$3F into $1089,$108B,$108D; remaining cases begin at $2A39,$2A4B,$2A5D,$2A6F,$2A81,$2A93,$2AA5 and choose zero or maximum for their side. All join $2AB4, decrement the remaining sample count and repeat sampling at $2961. Completion scales player coordinates by four to fill any bounds still $FF, then continues cuboid basis construction. Native geometric output remains a separate check."
  },
  {
   "address": 11082,
   "type": "line",
   "text": "BUILD_CUBOID_CAMERA_BASIS ($2B4A-$2C72)\nPurpose: transform a cuboid's lower corner and three axis extents into a camera-space origin plus three edge vectors.\nInputs: relative bounds through $10AA/$10AB, active object record $108F/$1090, and view matrix $106C-$1074.\nOutputs: transformed origin $003E-$0043 and transformed edge vectors $0002-$0013.\nAssumptions: type-1 record extents are bytes +4 through +6 and matrix coefficients use scale 64.\nClobbers: A, X, Y, flags, $80-$84, $B0-$B5, and geometry workspace.\nHardware changes: none."
  },
  {
   "address": 11378,
   "type": "line",
   "text": "Final RTS of the vertex-transform loop ending $2C70. The loop writes transformed words to indexed vertex scratch, increments source/coefficient offsets and decrements vertex count. Next $2C73 begins an authored identity matrix rather than code continuation."
  },
  {
   "address": 11387,
   "type": "line",
   "text": "Final entry $40 of the 3x3 signed-byte identity matrix $2C73-$2C7B, scale 64. The following nine-byte diagonal aspect/depth matrix $2C7C-$2C84 has diagonal 40,64,32 and zero off-diagonal entries. Camera matrix builder consumes both as separate matrices; exact signed transforms remain controlled-native verification work."
  },
  {
   "address": 11397,
   "type": "line",
   "text": "Purpose: Build the fixed-point view/projection matrix.\nInputs: pitch/yaw $2410/$2411, trig table $123C-$12CB with 72 sin/cos pairs at 5-degree spacing and scale 64, identity $2C73-$2C7B, and aspect/depth diagonal $2C7C-$2C84=(40,64,32).\nOutputs: view matrix $106C-$1074.\nAssumptions: MULTIPLY_3X3_FIXED_MATRICES.\nClobbers: A, X, Y, flags and matrix scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 11552,
   "type": "line",
   "text": "QUEUE_CUBOID_OBJECT ($2D20-$2F20)\nPurpose: expand a cuboid's eight vertices, reject it against the view volume, select visible face colors, and project/clip/append surviving faces.\nInputs: active object record $108F/$1090, camera-basis inputs, object ID $105C, side mask $1055, and packed face colors.\nOutputs: appends surviving faces to the visible queue and updates count $106A, or appends nothing when rejected or colorless.\nAssumptions: the type-1 record and cuboid topology templates at $12CC+ are valid.\nClobbers: A, X, Y, flags, $02-$6D, $80-$84, $1055, and clip/project/queue scratch.\nHardware changes: none."
  },
  {
   "address": 12065,
   "type": "line",
   "text": "QUEUE_PYRAMID_OBJECT ($2F21-$32DE)\nPurpose: construct orientation-specific pyramid vertices/faces, reject them, select packed colors, and project/clip/queue surviving faces.\nInputs: active record, object type $1068 for types 4-9, relative bounds, view matrix, player-relative workspace, and side mask $1055.\nOutputs: appends surviving visible queue entries or nothing after rejection.\nAssumptions: the type 4-9 record, its four ordinate bytes, and topology tables are valid.\nClobbers: A, X, Y, flags, zero-page vertex workspace, self-held counters, and clip/project/queue state.\nHardware changes: none."
  },
  {
   "address": 13025,
   "type": "line",
   "text": "QUEUE_EXPLICIT_LINE_OR_POLYGON_OBJECT ($32E1-$33A1)\nPurpose: decode explicit vertices, convert them to player-relative coordinates, reject/transform them, and queue a line or polygon.\nInputs: record $108F/$1090, type $1068, color byte +9, coordinate triples beginning at +10, and player pose $2407-$240C.\nOutputs: sets vertex count $10B0=type-8 and appends the transformed/projected queue entry, using line mode for two vertices.\nAssumptions: types 10-14 encode two through six vertices with three coordinate bytes per vertex.\nClobbers: A, X, Y, flags, $02+, $7A/$7B, $82/$83, mutable bytes $32DF/$32E0, and render scratch.\nHardware changes: none."
  },
  {
   "address": 13219,
   "type": "line",
   "text": "QUEUE_RECTANGLE_OBJECT ($33A3-$3488)\nPurpose: construct the appropriate four-corner planar rectangle from object bounds, select its relevant color side, and project/clip/queue it.\nInputs: bounds through $10AA/$10AB, active record $108F/$1090, side mask $1055, and packed color byte +9.\nOutputs: appends one visible quad entry or nothing after rejection/color testing.\nAssumptions: a type-3 record has one zero extent identifying its plane.\nClobbers: A, X, Y, flags, $02-$19, $7A-$7D, mutable byte $33A2, and clip/project/queue scratch.\nHardware changes: none."
  },
  {
   "address": 13452,
   "type": "line",
   "text": "Purpose: Painter-sort visible 4-byte entries with adjacent bubble passes.\nInputs: queued entries and their world AABBs.\nOutputs: stable draw order after per-axis relations are packed into 2-bit codes; codes $02,$08,$20,$0A,$22,$28,$2A keep order, all others swap until stable. This is an overlap-based painter algorithm with no z-buffer.\nAssumptions: Caller-established pointers, counts, tables, and scratch state described in Inputs are valid.\nClobbers: A, X, Y, flags and compare/swap scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 13801,
   "type": "line",
   "text": "Purpose: Draw the sorted visible queue.\nInputs: painter-sorted face/object commands.\nOutputs: complete linear frame buffer after background $4B91, polygon spans $4411 or line spans $45E8, and fill $3F76.\nAssumptions: queue records are valid.\nClobbers: A, X, Y, flags and renderer scratch; writes frame-buffer memory but no SID/CIA state.\nHardware changes: Writes ordinary renderer frame-buffer RAM; no direct SID or CIA access."
  },
  {
   "address": 13947,
   "type": "line",
   "text": "Purpose: Present the completed frame.\nInputs: linear viewport and state $1064.\nOutputs: color cells through $61A8 when selected, normal bitmap blit through $4B24, or alternate transition/effect through $82E3.\nAssumptions: renderer buffers are complete.\nClobbers: A, X, Y, flags and presentation scratch; changes VIC-visible bitmap/screen/color memory through callees.\nHardware changes: Writes VIC-visible bitmap, screen, and color memory through callees."
  },
  {
   "address": 13973,
   "type": "line",
   "text": "High operand byte of JSR $82E3 at $3693, reached after SEC $3692. Caller returns at $3696. Bytes $3697-$36A8 are a distinct captured text fragment, not a continuation entered here."
  },
  {
   "address": 13974,
   "type": "line",
   "text": "RTS immediately after SEC/JSR $82E3 at $3692-$3695. The text fragment at $3697 is a separate non-code occupant; next genuine routine begins $36A9."
  },
  {
   "address": 13975,
   "type": "line",
   "text": "Eighteen-byte retained text fragment: linefeed $0A, semicolon $3B and sixteen asterisk $2A bytes. Bounded between RTS $3696 and next routine $36A9. Previously code-typed despite those separate boundaries. Exact bytes are directly readable; producer and source-level purpose remain open rather than guessed."
  },
  {
   "address": 13976,
   "type": "line",
   "text": "Second byte (semicolon $3B) of the eighteen-byte retained fragment beginning $3697 with linefeed, followed by sixteen asterisks through $36A8. Bounded by RTS $3696 and code $36A9; its source-level purpose remains explicitly unknown."
  },
  {
   "address": 13993,
   "type": "line",
   "text": "Purpose: Multiply two 3x3 signed fixed-point matrices.\nInputs: matrices through caller-established internal pointer/state.\nOutputs: a 3x3 result, accumulating products then rounding and rescaling by 64.\nAssumptions: MUL_S8_S8_TO_S16.\nClobbers: A, X, Y, flags, $82-$84/$88/$8C and loop/pointer scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 14128,
   "type": "line",
   "text": "TRANSFORM_VERTICES_TO_CAMERA_SPACE ($3730-$37AE)\nPurpose: apply the current 3x3 fixed-point view matrix to caller-prepared vertex triples.\nInputs: vertex count $10B0, caller-established source/global pointer and coordinate workspace, and matrix $106C-$1074.\nOutputs: signed 16-bit camera-space x/y/z triples at $003E onward with six-byte stride; dot products are divided by 64.\nAssumptions: the caller has already prepared the source coordinates, including any viewer-relative translation; the count fits the fixed work buffer and matrix coefficients use scale 64.\nClobbers: A, X, Y, flags, $B0-$B5, $82-$84, multiplication scratch, and the destination workspace.\nHardware changes: none."
  },
  {
   "address": 14255,
   "type": "line",
   "text": "Purpose: Dispatch one polygon-edge intersection to the active view-volume plane.\nInputs: X selects the edge/vertex slot and $104B is plane number 1..5.\nOutputs: the selected routine writes an intersection point and restores X before returning.\nAssumptions: CLIP_PLANE_INTERSECTION_DISPATCH plus signed multiply $24FE and divide $26AB.\nClobbers: A, Y, flags and clipper/math scratch; no C64 hardware registers are changed. $37BC/$37C2 patch JMP $37C5.\nHardware changes: None."
  },
  {
   "address": 14277,
   "type": "line",
   "text": "Self-modified five-way clip-plane intersection dispatch.\nPurpose: transfer to the edge-intersection routine for the active view-volume plane.\nInputs: $37BC/$37C2 have written this JMP operand from CLIP_PLANE_INTERSECTION_DISPATCH using plane selector $104B; X selects the edge/vertex slot.\nOutputs: control enters the selected intersection routine, which writes the crossing point and returns to the shared polygon clipper.\nAssumptions: selector $104B is 1..5, the dispatch table contains valid resident targets, and this RAM operand is writable; captured $FFFF is only the pre-patch placeholder.\nClobbers: none at the JMP itself; the selected routine clobbers A, X, Y, flags, and clipper/math scratch while preserving the calling convention.\nHardware changes: None."
  },
  {
   "address": 14278,
   "type": "line",
   "text": "Mutable low byte of the absolute JMP operand at $37C5. $37BC/$37C2 install a target from the five-way clip-plane intersection directory at $37C8, indexed by plane selector $104B. The operand belongs to polygon clipping, not geometry construction."
  },
  {
   "address": 14279,
   "type": "line",
   "text": "Mutable high byte of the absolute JMP operand at $37C5, paired with $37C6. The directory at $37C8 selects the intersection routine for the active clipping plane."
  },
  {
   "address": 14280,
   "type": "line",
   "text": "Five little-endian entry points selected by the self-modified JMP at $37C5. Each routine clips/intersects an edge against one view-volume plane and returns to the shared polygon clipper."
  },
  {
   "address": 14281,
   "type": "line",
   "text": "High byte of the first target word in the five-way clip-plane intersection directory at $37C8. $37B2-$37C2 index it with plane selector $104B and patch the absolute JMP at $37C5. Subsequent words select the other plane-intersection routines."
  },
  {
   "address": 14290,
   "type": "line",
   "text": "Purpose: Intersect a crossing polygon edge with plane x+z=0.\nInputs: X selects endpoint records in signed 16-bit camera-coordinate arrays.\nOutputs: interpolated crossing point written back to the clipper work arrays, with x+z constrained to zero.\nAssumptions: signed multiply $24FE and divide $26AB; clobbers A, X, Y, flags and zero-page clipper/math scratch; no C64 hardware registers are changed.\nClobbers: A, X, Y, flags, and routine scratch as used by the implementation.\nHardware changes: None."
  },
  {
   "address": 14488,
   "type": "line",
   "text": "Purpose: Intersect a crossing polygon edge with plane y+z=0.\nInputs: X selects endpoint records in signed 16-bit camera-coordinate arrays.\nOutputs: interpolated crossing point written back to the clipper work arrays, with y+z constrained to zero.\nAssumptions: signed multiply $24FE and divide $26AB; clobbers A, X, Y, flags and zero-page clipper/math scratch; no C64 hardware registers are changed.\nClobbers: A, X, Y, flags, and routine scratch as used by the implementation.\nHardware changes: None."
  },
  {
   "address": 14686,
   "type": "line",
   "text": "Purpose: Intersect a crossing polygon edge with plane z-x=0.\nInputs: X selects endpoint records in signed 16-bit camera-coordinate arrays.\nOutputs: interpolated crossing point written back to the clipper work arrays, with z-x constrained to zero.\nAssumptions: signed multiply $24FE and divide $26AB; clobbers A, X, Y, flags and zero-page clipper/math scratch; no C64 hardware registers are changed.\nClobbers: A, X, Y, flags, and routine scratch as used by the implementation.\nHardware changes: None."
  },
  {
   "address": 14871,
   "type": "line",
   "text": "Purpose: Intersect a crossing polygon edge with plane z-y=0.\nInputs: X selects endpoint records in signed 16-bit camera-coordinate arrays.\nOutputs: interpolated crossing point written back to the clipper work arrays, with z-y constrained to zero.\nAssumptions: signed multiply $24FE and divide $26AB; clobbers A, X, Y, flags and zero-page clipper/math scratch; no C64 hardware registers are changed.\nClobbers: A, X, Y, flags, and routine scratch as used by the implementation.\nHardware changes: None."
  },
  {
   "address": 15056,
   "type": "line",
   "text": "Purpose: Intersect a crossing polygon edge with near plane z=0.\nInputs: X selects endpoint records in signed 16-bit camera-coordinate arrays.\nOutputs: interpolated crossing point written back to the clipper work arrays, with z constrained to zero.\nAssumptions: signed multiply $24FE and divide $26AB; clobbers A, X, Y, flags and zero-page clipper/math scratch; no C64 hardware registers are changed.\nClobbers: A, X, Y, flags, and routine scratch as used by the implementation.\nHardware changes: None."
  },
  {
   "address": 15208,
   "type": "line",
   "text": "Purpose: Classify one camera-space vertex against the selected clip plane.\nInputs: selector $104B and the current signed x, y, z vertex. It evaluates 1: x+z, 2: y+z, 3: z-x, 4: z-y, default: z.\nOutputs: Y=$00 inside/positive, $01 outside/negative, or $FF on-plane. This proves volume |x|<=z, |y|<=z, z>=0.\nAssumptions: Caller-established pointers, counts, tables, and scratch state described in Inputs are valid.\nClobbers: A, X, flags and arithmetic scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 15365,
   "type": "line",
   "text": "Purpose: Project camera-space vertices to a 120x120 logical viewport.\nInputs: count $10B0 and signed x, y, z triples at $3E onward.\nOutputs: projected u, v byte pairs at $C0 onward, u=60+60*x/z and v=60+60*y/z, saturated to 0 or 119 outside side planes; The initial zero-depth loop writes (60,60) only until the first nonzero-depth vertex; subsequent iterations jump to $3C30 and bypass it. Fourteen controlled native vertices confirm integer truncation, edges and this loop qualification.\nAssumptions: Caller-established pointers, counts, tables, and scratch state described in Inputs are valid.\nClobbers: A, X, Y, flags, division scratch and $C0+; no C64 hardware registers are changed. Active $3C6A jumps to $3C96, bypassing alternate numerator-scaling bytes $3C6D-$3C95; other entry paths into those bytes remain an open check.\nHardware changes: None."
  },
  {
   "address": 15469,
   "type": "line",
   "text": "Forty-one-byte alternate signed 24-bit scaling path $3C6D-$3C95. Builds numerator from A and signed input X bytes, then arithmetic-shifts it right twice (sign fill for negative high byte; logical shift for nonnegative), before rejoining divide path $3C96. Normal entry bypasses it through JMP $3C96 at $3C6A. No global unreachable claim: alternate entries or patches remain open. Direct instruction decoding establishes the arithmetic and exact join."
  },
  {
   "address": 15510,
   "type": "line",
   "text": "Projection continuation after signed 24-bit numerator 60*x. Divides by z through $259F, stores low signed quotient plus sixty at $C0+2*vertex, then repeats for y and writes $C1+2*vertex. Boundary comparisons use signs of wrapped 16-bit x+z or x-z, with 0/119 saturation. Important loop detail: zero-depth shortcut $3C12 is used only until the first nonzero-depth vertex; after that, $3D0F jumps directly to $3C30 for subsequent vertices. Later z=0 therefore takes ordinary comparisons, rather than automatically writing (60,60). Fourteen controlled native vertices in three batches match this integer/loop model, including both zero-depth positions, truncation, edges and signed extremes."
  },
  {
   "address": 15635,
   "type": "line",
   "text": "Purpose: Reject a polygon against the whole view volume.\nInputs: vertex count $10B0 and signed 6-byte x, y, z records.\nOutputs: caller-consumed classification separating all-inside, trivially-outside, and needs-clipping cases after scanning active planes.\nAssumptions: TRANSFORM_VERTICES_TO_CAMERA_SPACE and CLASSIFY_VERTEX_AGAINST_CLIP_PLANE.\nClobbers: A, X, Y, flags and plane scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 15638,
   "type": "line",
   "text": "REJECT_PRETRANSFORMED_POLYGON_OUTSIDE_VIEW_VOLUME ($3D16-$3D56)\nPurpose: classify already camera-space vertices against the view planes, trivially reject wholly outside polygons, and decide whether clipping is required.\nInputs: six-byte camera-space vertices at $003E+, count $10B0, and plane count $107E.\nOutputs: sets $105B=0 for trivial rejection or nonzero for survival; $104A distinguishes clipping-required from direct projection.\nAssumptions: vertices are already camera-space and classifier $3B68 is valid; callers may enter after $3D13 transforms or directly with pretransformed vertices.\nClobbers: A, X, Y, flags, $B0/$B1, $104A/$104B, and $105B.\nHardware changes: none."
  },
  {
   "address": 15703,
   "type": "line",
   "text": "Purpose: Clip a polygon to the view volume using Sutherland-Hodgman passes.\nInputs: count $10B0, 6-byte signed x, y, z vertices, and plane count $107E (normally 5).\nOutputs: clipped list/count in scratch $8A24 for projection, or empty rejection.\nAssumptions: classifier and edge-intersection routines.\nClobbers: A, X, Y, flags and clip buffers/counters; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 16101,
   "type": "line",
   "text": "Purpose: Classify projected polygon winding.\nInputs: projected 2D vertices.\nOutputs: signed-area determinant sign selecting front/back packed color nybble; chosen color zero discards the face.\nAssumptions: a valid projected polygon.\nClobbers: A, X, Y, flags and determinant scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 16238,
   "type": "line",
   "text": "Eight authored bit masks 00, FC, F 0, C0,03,0F,3F, FF at $3F6E-$3F75, read at $405E to preserve or replace partial two-bit-pixel byte edges in scanline filling. Next $3F76 starts the fill routine; masks are data rather than continuation instructions."
  },
  {
   "address": 16242,
   "type": "line",
   "text": "Last four partial-byte masks at $3F72-$3F75: 03,0F,3F, FF, complementary to initial 00, FC, F 0, C0 at $3F6E. Fill $405E uses the eight-entry table to preserve packed two-bit pixel boundaries. Next $3F76 is a routine entry."
  },
  {
   "address": 16246,
   "type": "line",
   "text": "Purpose: Paint scanline spans into the linear viewport.\nInputs: row bounds $1054/$1053, endpoints $10B1-$1128 and $112A-$11A1, status $11A3-$121A, and selected 2-bit color/dither pattern.\nOutputs: 120x30-byte buffer $87CC-$95DB, using x/4 byte offsets, x mod 4 edge masks, interior fills and four-phase pattern rows.\nAssumptions: Caller-established pointers, counts, tables, and scratch state described in Inputs are valid.\nClobbers: A, X, Y, flags and row pointers/counters; no VIC registers are changed.\nHardware changes: Writes ordinary linear frame-buffer RAM; no VIC-II register access."
  },
  {
   "address": 16573,
   "type": "line",
   "text": "Low byte of rewritten STA abs, Y operand at $40BC, not a callable entry. The scanline filler writes spans into the thirty-byte linear viewport row, advances row pointer by thirty and loops through final Y bound $1053. The continuation $40DA-$4212 projects vertices, uses face descriptor table $12CC to emit colour/count/coordinate records into buffer $10A8/$10A9, handles one- or two-sided polygon classification and adds a four-byte pointer/depth entry at $10AC/$10AD for painter sorting. Exact fill output remains a native-image check."
  },
  {
   "address": 16574,
   "type": "line",
   "text": "High byte of the rewritten store operand at $40BD/$40BE. The following code is the scanline-fill tail and un-clipped face-descriptor projection/emission path, described at $40BD. This symbol is an operand alias; do not interpret bytes starting here as a separate instruction stream."
  },
  {
   "address": 16802,
   "type": "line",
   "text": "Mutable address operand of INC abs, X at $41A1. In the un-clipped face-emission path, increments accepted-face count in the packed object header, appends colour/count and coordinate data through ($7A), and advances by face record size $A2. If any face was emitted ($105B), writes a four-byte render-buffer pointer/depth directory entry at $10AC/$10AD, advances that directory by four and depth value $10AA/$10AB by twelve, and increments object count $106A. Exact painter pixels remain a separate check."
  },
  {
   "address": 16803,
   "type": "line",
   "text": "High byte of face_count_increment_operand at $41A2. This address is the second operand byte of the preceding instruction, not an instruction entry. Mutable address operand of INC abs, X at $41A1. In the un-clipped face-emission path, increments accepted-face count in the packed object header, appends colour/count and coordinate data through ($7A), and advances by face record size $A2. If any face was emitted ($105B), writes a four-byte render-buffer pointer/depth directory entry at $10AC/$10AD, advances that directory by four and depth value $10AA/$10AB by twelve, and increments object count $106A. Exact painter pixels remain a separate check."
  },
  {
   "address": 16916,
   "type": "line",
   "text": "Continuation entered after saving the caller selector at $4213. Copies all original 16-bit vertex triples from $3E onward into zero-page scratch beginning $02, then visits faces described by $12CC. Rebuilds each face from six-byte indexed vertex records, clips through $3D57, projects surviving vertices and emits packed colour/count plus screen-coordinate pairs into render buffer $10A8/$10A9. Optional sidedness check $3EE5 selects a colour nibble or rejects the face. Completed objects add four-byte pointer/depth entries to painter directory $10AC/$10AD and increment object count $106A."
  },
  {
   "address": 17425,
   "type": "line",
   "text": "Purpose: Rasterize polygon edges into scanline spans.\nInputs: count $10B0 and projected pairs at $C0 onward.\nOutputs: mirrored x=119-u endpoints in $10B1-$1128 and $112A-$11A1, status $11A3-$121A, and min/max y $1054/$1053; the last vertex closes to the first.\nAssumptions: coordinates 0..119.\nClobbers: A, X, Y, flags and edge scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 17896,
   "type": "line",
   "text": "Purpose: Rasterize one projected line into the same span representation.\nInputs: two projected points.\nOutputs: mirrored 119-u endpoints, row status and vertical bounds in the polygon span arrays.\nAssumptions: coordinates 0..119.\nClobbers: A, X, Y, flags and line-step scratch; no C64 hardware registers are changed.\nHardware changes: None."
  },
  {
   "address": 18235,
   "type": "line",
   "text": "ENGINE_INITIALIZE ($473B-$476E)\nPurpose: Perform the early engine-initialization stage, then fall through into the reset/vector stage at $476F.\nInputs: Resident captured menu/runtime code and tables; standard KERNAL visible under $01=$37 when $FF90 is called.\nOutputs: Configures KERNAL message mode, swaps game/KERNAL zero page through $87B1, initializes SID selector 0, sets sound states $123A/$123B=1, installs custom CHROUT vector $0326/$0327=$86CF, resets SP=$FF, leaves $01=$35, and falls through to $476F.\nAssumptions: The standard KERNAL $FF90 gate is visible at $01=$37; the symmetric zero-page shadow swap is valid; resident engine and SID tables are initialized.\nClobbers: A, X, Y, flags, stack pointer/contents, zero-page/shadow state, sound state, and CHROUT vector state.\nHardware changes: Executes SEI; writes CPU port $01=$37 then $35; reaches SID voice-control registers through $CF1B. VIC/CIA/vector installation belongs to the $476F continuation."
  },
  {
   "address": 18287,
   "type": "line",
   "text": "RESET_VECTOR_TARGET ($476F-$47C4)\nPurpose: Complete engine reset/initialization by installing interrupts and session defaults, configuring the display, building the menu, and falling into the main loop.\nInputs: Early engine initialization completed with $01=$35 and I/O visible; resident menu assets and engine tables are valid.\nOutputs: Initializes session state, IRQ/NMI vectors and raster schedule, disables sprite expansion/priority as configured, clears SID voices, selects VIC bank $C000, enables multicolor bitmap mode, clears border/background, builds the main menu, and falls through to $47C5.\nAssumptions: Underlying RAM vectors are writable; VIC bank/layout and menu assets are valid; called initialization routines preserve their documented contracts.\nClobbers: A, X, Y, flags, engine/session state, interrupt vectors, SID state, and menu/display scratch.\nHardware changes: Writes RAM vectors; SID $D400-$D413 through $CFE4; CIA 2 $DD00 bits 0-1; VIC-II $D011/$D016/$D017/$D018/$D01B/$D01C/$D01D/$D020/$D021/$D025/$D026 and VIC-visible menu memory."
  },
  {
   "address": 18373,
   "type": "line",
   "text": "Top-level engine loop.\nPurpose: reset per-session sound/control state, run the frame/game update routines, and restart after a completed session.\nInputs: initialized engine and selected menu mode.\nOutputs: continually updated world, render, input, and sound state.\nAssumptions: Caller-established runtime state described in Inputs is valid.\nClobbers: A, X, Y, flags and transient engine state.\nHardware changes: clears SID registers at loop entry; called subsystems update VIC-II and SID."
  },
  {
   "address": 18435,
   "type": "line",
   "text": "Ten retained ASCII bytes $4803-$480C: semicolon, CR, LF, semicolon, space, Decom. Between transfer JMP $47C5 at $4800 and main-loop routine $480D. Exact bytes and boundaries are checked; source-level origin/purpose remains open."
  },
  {
   "address": 18436,
   "type": "line",
   "text": "CR byte of retained text at $4803-$480C. Complete ten-byte sequence is semicolon, CR, LF, semicolon, space, Decom. These bytes are between separate control-flow boundaries; source-level provenance remains open."
  },
  {
   "address": 18442,
   "type": "line",
   "text": "Byte $480A, captured value $63, inside the bounded allocation described at $4803; offset 7. Ten retained ASCII bytes $4803-$480C: semicolon, CR, LF, semicolon, space, Decom. Between transfer JMP $47C5 at $4800 and main-loop routine $480D. Exact bytes and boundaries are checked; source-level origin/purpose remains open."
  },
  {
   "address": 18443,
   "type": "line",
   "text": "Byte $480B, captured value $6F, inside the bounded allocation described at $4803; offset 8. Ten retained ASCII bytes $4803-$480C: semicolon, CR, LF, semicolon, space, Decom. Between transfer JMP $47C5 at $4800 and main-loop routine $480D. Exact bytes and boundaries are checked; source-level origin/purpose remains open."
  },
  {
   "address": 18444,
   "type": "line",
   "text": "Byte $480C, captured value $6D, inside the bounded allocation described at $4803; offset 9. Ten retained ASCII bytes $4803-$480C: semicolon, CR, LF, semicolon, space, Decom. Between transfer JMP $47C5 at $4800 and main-loop routine $480D. Exact bytes and boundaries are checked; source-level origin/purpose remains open."
  },
  {
   "address": 18445,
   "type": "line",
   "text": "UPDATE_FRAME_INPUT_EVENTS ($480D-$4953)\nPurpose: clear per-frame action state, poll controls, process movement/collision/firing/timer changes, and produce the event latches consumed by DISPATCH_FRAME_CONDITIONS.\nInputs: keyboard/joystick and current player/world state.\nOutputs: event object $1082; pending/active masks $1085/$1084; fallback/sound/update state including $105D-$105E and $1059-$105A.\nAssumptions: called once from the main frame loop before FCL dispatch.\nClobbers: A, X, Y and documented frame scratch/state; no hardware banking change.\nHardware changes: Reads CIA-backed controls through READ_CONTROL_INPUT; does not change CPU banking, and indirect display/SID effects belong to callees."
  },
  {
   "address": 18940,
   "type": "line",
   "text": "WAIT_FOR_SESSION_MESSAGE ($49FC-$4A52)\nPurpose: poll one post-session message for bounded time and either present its timeout text or accept input and unwind to the enclosing engine transition.\nInputs: X/Y form the message pointer saved in $7E/$7F; CIA-backed input scanning, IRQ countdown $1063, text renderer, render state, and sound state are initialized.\nOutputs: sets $1063=50. On timeout draws the pointed message via $8590 and returns normally. On acknowledgement discards its own return address, reconciles sound state, waits another $1063=30 ticks, sets render flags $1059=2/$105A=0, then returns to its caller's caller.\nAssumptions: the CIA 1 periodic IRQ decrements $1063; callers intentionally permit the acknowledged path's nonlocal return; message data and display tables are valid.\nClobbers: A, X, Y, flags, $7C-$7F, countdown/render/sound state, text-renderer scratch, and two stack bytes deliberately on acknowledgement.\nHardware changes: polls controls through the CIA-backed scanner, writes VIC-visible display RAM through $8590, and may initialize SID state through $CFD8/$CF1B; no banking change."
  },
  {
   "address": 19032,
   "type": "line",
   "text": "DISPATCH_FRAME_CONDITIONS ($4A58-$4B23)\nPurpose: execute event-selected Castle FCL in the original C64 order: triggering object, global streams, then current-area streams.\nInputs: masks $1084/$1085, event object $1082, global list pointer $1096/$1097, area list pointer $242F/$2430.\nOutputs: all state effects of executed FCL; returns immediately when no selected event is pending.\nAssumptions: object records use byte 8 as total size and OBJECT_BASE_SIZE_BY_TYPE to locate residual bytecode. If an object has no residual stream and $105D is set, executes the built-in $4A56 stream 1C 03.\nClobbers: A, X, Y, ACTIVE_RECORD_PTR and FCL scratch; no direct hardware banking change.\nHardware changes: No direct CPU-banking change; executed FCL handlers may update VIC-visible memory or SID state."
  },
  {
   "address": 19236,
   "type": "line",
   "text": "Purpose: Swizzle the linear viewport into VIC-II bitmap layout.\nInputs: $87CC-$95DB.\nOutputs: bitmap $E528 onward, 30 cells wide by 15 character rows by 8 raster lines, with destination character-row stride 320. Temporarily disables IRQs with SEI and restores with CLI.\nAssumptions: Caller-established pointers, counts, tables, and scratch state described in Inputs are valid.\nClobbers: A, X, Y, flags and copy pointers/counters; writes VIC-visible bitmap RAM.\nHardware changes: Executes SEI/CLI and writes VIC-visible bitmap RAM."
  },
  {
   "address": 19279,
   "type": "line",
   "text": "Patched source operand of LDA abs, X at $4B4E, initialized to $94EC. Copies groups of 240 source bytes with descending X while bitmap destination uses increasing eight-byte Y stride. Eight subrows each have thirty cells; IRQs masked within each group. Destination group advances $0140, source decreases $00F0, runtime count $B1 controls groups. Returns at $4B88. This is the reversed-source swizzle path, distinct from forward $65EC."
  },
  {
   "address": 19280,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $4B4E; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4B4F. Patched source operand of LDA abs, X at $4B4E, initialized to $94EC. Copies groups of 240 source bytes with descending X while bitmap destination uses increasing eight-byte Y stride. Eight subrows each have thirty cells; IRQs masked within each group. Destination group advances $0140, source decreases $00F0, runtime count $B1 controls groups. Returns at $4B88. This is the reversed-source swizzle path, distinct from forward $65EC."
  },
  {
   "address": 19282,
   "type": "line",
   "text": "Operand byte 1 of STA aby at $4B51; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4B4F. Patched source operand of LDA abs, X at $4B4E, initialized to $94EC. Copies groups of 240 source bytes with descending X while bitmap destination uses increasing eight-byte Y stride. Eight subrows each have thirty cells; IRQs masked within each group. Destination group advances $0140, source decreases $00F0, runtime count $B1 controls groups. Returns at $4B88. This is the reversed-source swizzle path, distinct from forward $65EC."
  },
  {
   "address": 19283,
   "type": "line",
   "text": "Operand byte 2 of STA aby at $4B51; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4B4F. Patched source operand of LDA abs, X at $4B4E, initialized to $94EC. Copies groups of 240 source bytes with descending X while bitmap destination uses increasing eight-byte Y stride. Eight subrows each have thirty cells; IRQs masked within each group. Destination group advances $0140, source decreases $00F0, runtime count $B1 controls groups. Returns at $4B88. This is the reversed-source swizzle path, distinct from forward $65EC."
  },
  {
   "address": 19337,
   "type": "line",
   "text": "Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19338,
   "type": "line",
   "text": "Byte $4B8A, captured value $00, inside the bounded allocation described at $4B89; offset 1. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19339,
   "type": "line",
   "text": "Byte $4B8B, captured value $00, inside the bounded allocation described at $4B89; offset 2. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19340,
   "type": "line",
   "text": "Byte $4B8C, captured value $00, inside the bounded allocation described at $4B89; offset 3. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19341,
   "type": "line",
   "text": "Byte $4B8D, captured value $00, inside the bounded allocation described at $4B89; offset 4. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19342,
   "type": "line",
   "text": "Byte $4B8E, captured value $00, inside the bounded allocation described at $4B89; offset 5. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19343,
   "type": "line",
   "text": "Byte $4B8F, captured value $00, inside the bounded allocation described at $4B89; offset 6. Eight-byte runtime background/render workspace $4B89-$4B90. Row count $4B89, phase $4B8A, row extent $4B8B, mask selector $4B8C and fill/pattern state are populated and consumed by $4B91-$4DFB. $4D86 decrements row count and $4D8C restores it. These are per-call fill state, distinct from authored fill masks and terrain pattern tables."
  },
  {
   "address": 19345,
   "type": "line",
   "text": "DRAW_SKY_FLOOR_BACKGROUND ($4B91-$4CC2)\nPurpose: initialize the linear viewport with the area sky/floor background and optional lightning band before geometry is painted.\nInputs: packed sky/floor colors $2464, 72-step view pitch $2410, lightning countdown $2459, color patterns $9D06-$9D41, and linear-row pointers/state.\nOutputs: writes background rows in $87CC-$95DB; when both colors are present the horizon is clamp(64 + 11*signed normalized pitch, 0, 120); handles one-frame lightning when $2459=1 and decrements it to zero; uses bottom pointer $95BE. If $2464=0, returns without changing the frame.\nAssumptions: pitch uses the verified 72-unit wrap domain; color nybbles index valid four-byte patterns; the 120x30-byte linear framebuffer is initialized and writable.\nClobbers: A, X, Y, flags, $7A/$7B, $82/$83, mutable bytes $4B89-$4B8F, and fill/pattern counters.\nHardware changes: none; writes ordinary RAM later presented to VIC-II."
  },
  {
   "address": 19651,
   "type": "line",
   "text": "FILL_BACKGROUND_ROWS_WITH_PATTERN ($4CC3-$4CF5)\nPurpose: select one four-byte color pattern and fill Y complete 30-byte framebuffer rows while walking upward.\nInputs: A one-based pattern selector, Y row count, $7A/$7B bottom-row pointer, and patterns at $9D06+.\nOutputs: fills the requested rows and advances $7A/$7B upward by 30 per row.\nAssumptions: selector and row count are nonzero and the pointer addresses valid linear-frame rows.\nClobbers: A, X, Y, flags, $7A/$7B, and $B1-$B4.\nHardware changes: none; writes ordinary framebuffer RAM."
  },
  {
   "address": 19702,
   "type": "line",
   "text": "FILL_LOWER_BACKGROUND_ROWS ($4CF6-$4D8F)\nPurpose: fill the lower background with a solid pattern normally or an orientation/phase-selected repeating texture in area 1.\nInputs: area $2429, row count $4B89, phase $4B8A, yaw $2411, solid selector $4B8E, area-1 texture table $21FA+, and $7A/$7B.\nOutputs: fills lower framebuffer rows and restores $4B89 after the area-1 path.\nAssumptions: area-1 texture records are 16 bytes and patched operands $4D49/$4D5A/$4D68 point at the selected record.\nClobbers: A, X, Y, flags, $7A-$7D, $82, and the patched operands.\nHardware changes: none; writes ordinary framebuffer RAM."
  },
  {
   "address": 19785,
   "type": "line",
   "text": "Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19786,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $4D48; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4D49. Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19802,
   "type": "line",
   "text": "Operand byte 1 of LDA abx at $4D59; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4D49. Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19803,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $4D59; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4D49. Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19816,
   "type": "line",
   "text": "Operand byte 1 of LDA abx at $4D67; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4D49. Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19817,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $4D67; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $4D49. Patched operand of LDA abs, X at $4D48. Continuation repeats source chunks of 16 bytes into a backward destination row; first chunk starts X=$82, full intermediate chunks start X=0, final chunk stops when Y becomes negative. Source advances 16 between rows, destination subtracts 30, and saved row counter $4B89 decrements before restoration. This is a traced tiled-copy continuation, not a new routine entry."
  },
  {
   "address": 19856,
   "type": "line",
   "text": "APPLY_LIGHTNING_STREAK_MASK ($4D90-$4E02)\nPurpose: OR a moving three-byte mask into successive linear-frame rows on the lightning path.\nInputs: $1C64 modulo 27, row count $4B8B, placement/count $4B89, mask selector $4B8C, masks $20F8+, and frame pointer $7A/$7B.\nOutputs: updates masked framebuffer bytes, consumes $4B8B to zero, and restores $7A/$7B.\nAssumptions: the caller derived the row span from lightning state $2459 and mask tables are valid.\nClobbers: A, X, Y, flags, $82-$88, $4B8B/$4B8F, and arithmetic scratch.\nHardware changes: none; writes ordinary framebuffer RAM."
  },
  {
   "address": 19973,
   "type": "line",
   "text": "INITIALIZE_NEW_SESSION ($4E05-$4EC2)\nPurpose: initialize a new Castle Master session, clearing mutable engine state and installing player/game defaults.\nInputs: selected prince/princess choice at $246E and database defaults including strength at $9D05.\nOutputs: reset player, score, key, spirit, timer, event and rendering state; princess choice becomes game bit 32.\nAssumptions: normalized Freescape database is resident at $9D00.\nClobbers: A, X, Y, flags and initialized game-state ranges.\nHardware changes: no direct banking change; called display/sound initialization may update VIC-II/SID state.\nEvidence: observed initialization writes; gender-bit meaning verified by FCL use."
  },
  {
   "address": 20074,
   "type": "line",
   "text": "Patched source operand of LDA abs, X at $4E69; $4E57-$4E66 installs directory base $109E/$109F in both reads. Adds database base to each relative area offset, skips empty areas and traverses each object by length byte +8. Rewrites flags byte as flags AND $9F, then sets bit 6 when bit 7 was set. After all areas, copies initial area and entrance IDs from $9D03/$9D04 to $2429/$1066 and invokes $4EC3. This is a directory operand alias, not a function entry."
  },
  {
   "address": 20075,
   "type": "line",
   "text": "High byte of reset_object_directory_read_operand at $4E6A. This address is the second operand byte of the preceding instruction, not an instruction entry. Patched source operand of LDA abs, X at $4E69; $4E57-$4E66 installs directory base $109E/$109F in both reads. Adds database base to each relative area offset, skips empty areas and traverses each object by length byte +8. Rewrites flags byte as flags AND $9F, then sets bit 6 when bit 7 was set. After all areas, copies initial area and entrance IDs from $9D03/$9D04 to $2429/$1066 and invokes $4EC3. This is a directory operand alias, not a function entry."
  },
  {
   "address": 20084,
   "type": "line",
   "text": "Operand byte 1 of LDA abx at $4E73; captured operand $9D4F. It is not an instruction entry. This continuation belongs to the routine described at $4E6A. Patched source operand of LDA abs, X at $4E69; $4E57-$4E66 installs directory base $109E/$109F in both reads. Adds database base to each relative area offset, skips empty areas and traverses each object by length byte +8. Rewrites flags byte as flags AND $9F, then sets bit 6 when bit 7 was set. After all areas, copies initial area and entrance IDs from $9D03/$9D04 to $2429/$1066 and invokes $4EC3. This is a directory operand alias, not a function entry."
  },
  {
   "address": 20085,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $4E73; captured operand $9D4F. It is not an instruction entry. This continuation belongs to the routine described at $4E6A. Patched source operand of LDA abs, X at $4E69; $4E57-$4E66 installs directory base $109E/$109F in both reads. Adds database base to each relative area offset, skips empty areas and traverses each object by length byte +8. Rewrites flags byte as flags AND $9F, then sets bit 6 when bit 7 was set. After all areas, copies initial area and entrance IDs from $9D03/$9D04 to $2429/$1066 and invokes $4EC3. This is a directory operand alias, not a function entry."
  },
  {
   "address": 20163,
   "type": "line",
   "text": "ENTER_DESTINATION_AREA ($4EC3-$4F59)\nPurpose: select an FCL GOTO destination area, resolve its entrance record, and install the requested player pose.\nInputs: destination/current area $2429, entrance object ID $1066, normalized database pointers, and cached global/current object roots.\nOutputs: installs current-area state through SELECT_AREA; when an entrance coordinate byte +1/+2/+3 is not $FF, converts it to quarter units with $20 low-byte bias and writes player X/Y/Z. Installs pitch/yaw from +4/+5 only when all three coordinates were supplied. A $FF coordinate preserves that current axis.\nAssumptions: A=0 FIND_OBJECT_BY_ID searches area-255/global records first and current-area locals second; the entrance record is valid and its position/orientation fields follow the verified format.\nClobbers: A, X, Y, flags, $7C/$7D, $82, transition scratch, and current-area state.\nHardware changes: none."
  },
  {
   "address": 20314,
   "type": "line",
   "text": "$4F5A-$4FA2 is mutable collision-solver interval/extent workspace used by SOLVE_PLAYER_COLLISION and helpers through $5DD0. It is runtime scratch, not an immutable object, visible-object, model, or Freescape record table."
  },
  {
   "address": 20387,
   "type": "line",
   "text": "SOLVE_PLAYER_COLLISION ($4FA3-$546A)\nPurpose: test a candidate player position against current-area and area-255/global geometry, adjust it to valid supporting/blocking faces, and commit or reject movement.\nInputs: candidate X/Y/Z at $104C-$1051; current X/Y/Z at $2407-$240C; player dimensions/thresholds $2412-$2415; active object lists.\nOutputs: accepted coordinates in $2407-$240C and X=1 when position changed, or original position and X=0 when no movement commits; collision object/event scratch may be updated.\nAssumptions: invisible or destroyed objects do not block and record byte 8 supplies stride.\nClobbers: A, X, Y, flags, interval/math scratch and collision/event state.\nHardware changes: none.\nEvidence: instruction effects observed; return contract verified independently from movement and gravity callers."
  },
  {
   "address": 21411,
   "type": "line",
   "text": "Two-byte destination operand of STA at $53A2, not a routine entry. Collision response continuation subtracts selected vertical clearance $4F9B/$4F9C from candidate Y, compares four-times clearance high byte with player height $2414, dispatches $8142 or installs the selected support object/event. With no raised collision it compares gap to $2415 and invokes $546B. It clears $2417, checks X/Z sign and $1FC0 bounds, compares all six candidate position bytes $104C-$1051 with $2407-$240C, copies changed coordinates and returns X=1 for change or X=0 otherwise. Signed boundary and reachability behavior remain explicit verification work."
  },
  {
   "address": 21611,
   "type": "line",
   "text": "SCAN_OBJECTS_FOR_COLLISION ($546B-$5DD0)\nPurpose: scan local/global variable-size object records and perform axis, face, floor and interval calculations used by SOLVE_PLAYER_COLLISION.\nInputs: active object roots/counts, candidate/player intervals and object origin/extent/flag fields.\nOutputs: blocking/support candidates and collision scratch consumed by the solver.\nAssumptions: record flags exclude invisible/destroyed geometry and byte 8 advances to the next record.\nClobbers: A, X, Y, pointer/math scratch and collision working state.\nHardware changes: none.\nEvidence: individual scans and fixed-point calculations are observed; this higher-level range partition is inferred from callers and shared state."
  },
  {
   "address": 21672,
   "type": "line",
   "text": "SCAN_OBJECT_LIST_FOR_CANDIDATE_OVERLAP ($54A8-$5550; skip trampoline $54A5)\nPurpose: reject candidate acceptance when the player candidate volume overlaps any included object bounding box in one object list.\nInputs: X object count, $7E/$7F first record, and candidate intervals $4F84-$4F89/$4F97-$4F98.\nOutputs: returns normally only after list exhaustion; on overlap deliberately discards the direct caller's return address and exits the enclosing all-list scan without accepting the candidate.\nAssumptions: record byte +8 is total size; flag $40 excludes a record; coordinates/extents use the solver's scale-64 representation. The code does not filter object type.\nClobbers: A, X, Y, flags, $7E/$7F, $82/$83, and stack on overlap.\nHardware changes: none."
  },
  {
   "address": 21841,
   "type": "line",
   "text": "COMPUTE_MANHATTAN_DISTANCE_FROM_PLAYER ($5551-$5599)\nPurpose: sum the absolute 16-bit X, Y, and Z differences between a supplied coordinate triple and the player.\nInputs: X/Y are the low/high bytes of the supplied six-byte triple's base address; player triple $2407-$240C.\nOutputs: 16-bit Manhattan distance in $82/$83, wrapping on 16-bit overflow.\nAssumptions: both triples contain three consecutive little-endian coordinates.\nClobbers: A, X, flags, $82-$85, and patched operands $5564-$556F; Y is preserved.\nHardware changes: none."
  },
  {
   "address": 21860,
   "type": "line",
   "text": "Patched coordinate base operand of LDA abs, X at $5563. Entry $5551 installs caller X/Y into both low/high reads, clears $82/$83, then sums absolute values of three wrapped 16-bit coordinate differences from player $2407-$240C. Negative high-byte differences are two’s-complement negated; sums wrap 16 bits. X advances twice per coordinate, stops at 6 and returns at $5599. The sign test uses wrapped subtraction rather than unbounded mathematical distance at signed extremes."
  },
  {
   "address": 21861,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $5563; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $5564. Patched coordinate base operand of LDA abs, X at $5563. Entry $5551 installs caller X/Y into both low/high reads, clears $82/$83, then sums absolute values of three wrapped 16-bit coordinate differences from player $2407-$240C. Negative high-byte differences are two’s-complement negated; sums wrap 16 bits. X advances twice per coordinate, stops at 6 and returns at $5599. The sign test uses wrapped subtraction rather than unbounded mathematical distance at signed extremes."
  },
  {
   "address": 21870,
   "type": "line",
   "text": "Operand byte 1 of LDA abx at $556D; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $5564. Patched coordinate base operand of LDA abs, X at $5563. Entry $5551 installs caller X/Y into both low/high reads, clears $82/$83, then sums absolute values of three wrapped 16-bit coordinate differences from player $2407-$240C. Negative high-byte differences are two’s-complement negated; sums wrap 16 bits. X advances twice per coordinate, stops at 6 and returns at $5599. The sign test uses wrapped subtraction rather than unbounded mathematical distance at signed extremes."
  },
  {
   "address": 21871,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $556D; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $5564. Patched coordinate base operand of LDA abs, X at $5563. Entry $5551 installs caller X/Y into both low/high reads, clears $82/$83, then sums absolute values of three wrapped 16-bit coordinate differences from player $2407-$240C. Negative high-byte differences are two’s-complement negated; sums wrap 16 bits. X advances twice per coordinate, stops at 6 and returns at $5599. The sign test uses wrapped subtraction rather than unbounded mathematical distance at signed extremes."
  },
  {
   "address": 21914,
   "type": "line",
   "text": "SCALE_WORLD_BYTE_BY_64 ($559A-$55A6)\nPurpose: convert one unsigned database coordinate or extent byte into the collision solver's 16-bit fixed unit.\nInputs: A is the unsigned world byte.\nOutputs: $82/$83=A*64 and A equals the result low byte.\nAssumptions: the source byte is unsigned.\nClobbers: A, flags, $82, and $83; X/Y are preserved.\nHardware changes: none."
  },
  {
   "address": 21927,
   "type": "line",
   "text": "CONSIDER_BLOCKING_FACE_CANDIDATE ($55A7-$5633)\nPurpose: compare prepared collision-face candidates by Manhattan distance and type priority, then retain the preferred result.\nInputs: prepared triples $4F6C-$4F83, existing candidate/priority $4F84-$4F99, current object $7E/$7F, player pose, and mode $1048.\nOutputs: installs selected triples, priority $4F99, event object $1082, and collision/fallback latch $105D=1; mode zero may deliberately unwind seven stack bytes and exit the solver.\nAssumptions: caller prepared valid face-intersection triples; record byte 0 contains type and +7 contains ID.\nClobbers: A, X, Y, flags, $82-$85, collision workspace, and stack on the nonlocal-exit path.\nHardware changes: none."
  },
  {
   "address": 22068,
   "type": "line",
   "text": "FIND_NEAREST_SUPPORT_BELOW_POINT ($5634-$5669)\nPurpose: scan current and global objects for the smallest nonnegative vertical gap beneath a candidate X/Z point.\nInputs: point $4F90/$4F91 and $4F94/$4F95, candidate Y $4F92/$4F93, and both object lists.\nOutputs: best gap $4F9B/$4F9C, support record $4F9D/$4F9E, and support ID $4F9F.\nAssumptions: visible object bounding boxes and origin/extents are valid; zero-gap acceptance differs for planar/explicit types exactly as coded.\nClobbers: A, X, Y, flags, $7E/$7F, $82-$85, and support scratch.\nHardware changes: none."
  },
  {
   "address": 22125,
   "type": "line",
   "text": "SCAN_OBJECT_LIST_FOR_NEAREST_SUPPORT ($566D-$5737; skip trampoline $566A)\nPurpose: perform per-object top-plane, X/Z containment, and best-gap tests for one support-search list.\nInputs: X object count, $7E/$7F list pointer, current point, and best-gap state.\nOutputs: updates best gap, supporting-record pointer, and supporting object ID.\nAssumptions: record byte +8 advances the list; flag $40 excludes a record; coordinate bytes scale by 64.\nClobbers: A, X, Y, flags, $7E/$7F, $82-$85, and $4F9B-$4F9F.\nHardware changes: none."
  },
  {
   "address": 22328,
   "type": "line",
   "text": "SCAN_ALL_OBJECTS_FOR_BLOCKING_FACES ($5738-$575C)\nPurpose: run the detailed collision-face solver over current-area and global object lists.\nInputs: collision intervals, motion flags, and candidate state prepared by $4FA3-$533D; both object lists.\nOutputs: blocking-face candidates and collision-event state consumed by the continuation at $5343+.\nAssumptions: both lists and collision workspace $4F5A-$4FA2 are initialized.\nClobbers: A, X, Y, flags, list pointers, and collision arithmetic scratch.\nHardware changes: none."
  },
  {
   "address": 22365,
   "type": "line",
   "text": "SCAN_OBJECT_LIST_FOR_BLOCKING_FACES ($575D-$5DD0)\nPurpose: bounding-box reject each object, solve relevant axis or sloped-face intersections with fixed-point arithmetic, and submit valid blocking candidates through $55A7.\nInputs: X object count, $7E/$7F list pointer, movement mask $4F96, and player/candidate intervals and deltas $4F5A-$4FA2.\nOutputs: prepares or selects blocking candidate triples, object ID, and collision latches.\nAssumptions: object records and face flags are valid and division denominators satisfy solver invariants; the blocking-face subdivision is inferred from callers/shared collision state.\nClobbers: A, X, Y, flags, balanced saved-count stack state, $7E/$7F, $82-$8D, and collision workspace.\nHardware changes: none."
  },
  {
   "address": 23389,
   "type": "line",
   "text": "Continuation of swept object collision processing at $575D. Completes vertical/Y lower and upper extent checks using scaled record fields and player clearance $1048, then handles Z-facing planes selected by side-mask bits $10/$20. Intersects the motion segment with candidate plane using multiply/divide helpers, interpolates X and Y, rejects outside bounds, and builds radius-adjusted contact endpoints $4F74-$4F7D before submitting through $55A7. Finally advances object pointer by total-size byte +8 and decrements saved record count. Signed high-byte tests and overflow behavior require dedicated native boundary cases."
  },
  {
   "address": 24024,
   "type": "line",
   "text": "DISPATCH_PLAYER_MOVEMENT ($5DD8-$6189)\nPurpose: select crawl/walk/run mode, scale translation, move forward/back, rotate yaw, change vertical view, center view, or perform the 180-degree U-turn.\nInputs: decoded action, movement mode/strength at $2455-$2456, current pose $2407-$2416, raw distances $9D46-$9D48, angle step $9D4C and trig table $123C-$12CB.\nOutputs: updated movement mode, step magnitude, pose/view or collision feedback; yaw and pitch wrap modulo $48.\nAssumptions: SOLVE_PLAYER_COLLISION validates translations and stand-up attempts.\nClobbers: A, X, Y, flags, fixed-point/candidate scratch and movement state.\nHardware changes: none directly.\nEvidence: exact action effects and table use verified from /runtime/ram.bin and callers."
  },
  {
   "address": 24970,
   "type": "line",
   "text": "PRESENT_ACTION_FEEDBACK ($618A-$61A5)\nPurpose: draw one action/HUD feedback graphic selected by the caller and clear its presentation latch.\nInputs: Y is the frame selector; packed graphic family $1FB0, destination table $1D65, and packed-graphic blitter state are valid.\nOutputs: draws the selected graphic and clears latch $1081.\nAssumptions: the packed graphic family and destination pointer table use the format consumed by $7CF6.\nClobbers: A, X, Y, flags, $7A-$7D, and packed-graphic blitter scratch.\nHardware changes: writes VIC-visible display RAM indirectly through $7CF6; no SID or CIA register access."
  },
  {
   "address": 25000,
   "type": "line",
   "text": "UPDATE_VIEWPORT_COLOR_CELLS ($61A8-$6216)\nPurpose: populate the 30x15 viewport's screen/color attributes and install the area border/background color.\nInputs: area/material color state $2431-$2434, active VIC bank/layout, and writable I/O/color RAM.\nOutputs: writes 15 rows of 30 cells at screen $C4A5 and color RAM $D8A5 with stride 40; copies current color state; clears $1064; sets $D020/$D021 from $2431; leaves $01=$35.\nAssumptions: $01=$35 is the normal game mapping with I/O visible; the multicolor bitmap screen/color interpretation and 40-byte row stride are active.\nClobbers: A, X, Y, flags, mutable operands $61E8/$61EE, counters $61A6/$61A7, pointers, and color state.\nHardware changes: writes CPU port $01=$35, VIC-visible screen RAM, color RAM, and VIC-II border/background registers $D020/$D021."
  },
  {
   "address": 25065,
   "type": "line",
   "text": "Patched operand of STA abs, X at $61E8. $61A8 initializes hardware destination $D8A5 and matrix destination $C4A5, writes thirty cells per row from active-area colours $2432-$2434, then adds 40 to both operands for fifteen rows. Final post-loop operands $DAFD/$C6FD are not a sixteenth output row. Sets border/background from $2431 and returns $6216. Port $35 makes writes to $D8xx hardware colour RAM, distinct from retained physical shadow."
  },
  {
   "address": 25066,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $61E8; captured operand $DAFD. It is not an instruction entry. This continuation belongs to the routine described at $61E9. Patched operand of STA abs, X at $61E8. $61A8 initializes hardware destination $D8A5 and matrix destination $C4A5, writes thirty cells per row from active-area colours $2432-$2434, then adds 40 to both operands for fifteen rows. Final post-loop operands $DAFD/$C6FD are not a sixteenth output row. Sets border/background from $2431 and returns $6216. Port $35 makes writes to $D8xx hardware colour RAM, distinct from retained physical shadow."
  },
  {
   "address": 25071,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $61EE; captured operand $C6FD. It is not an instruction entry. This continuation belongs to the routine described at $61E9. Patched operand of STA abs, X at $61E8. $61A8 initializes hardware destination $D8A5 and matrix destination $C4A5, writes thirty cells per row from active-area colours $2432-$2434, then adds 40 to both operands for fifteen rows. Final post-loop operands $DAFD/$C6FD are not a sixteenth output row. Sets border/background from $2431 and returns $6216. Port $35 makes writes to $D8xx hardware colour RAM, distinct from retained physical shadow."
  },
  {
   "address": 25072,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $61EE; captured operand $C6FD. It is not an instruction entry. This continuation belongs to the routine described at $61E9. Patched operand of STA abs, X at $61E8. $61A8 initializes hardware destination $D8A5 and matrix destination $C4A5, writes thirty cells per row from active-area colours $2432-$2434, then adds 40 to both operands for fifteen rows. Final post-loop operands $DAFD/$C6FD are not a sixteenth output row. Sets border/background from $2431 and returns $6216. Port $35 makes writes to $D8xx hardware colour RAM, distinct from retained physical shadow."
  },
  {
   "address": 25111,
   "type": "line",
   "text": "Five-byte runtime workspace for object lookup $621C: outer/record loop counter $6217, saved directory index $6218, scratch/padding $6219, and preserved caller X/Y selector pair $621A/$621B. The routine searches active/global lists or a requested area using ID field+7 and length+8, installing/restoring pointers before return. Writers at $622B,$6269,$6289,$62B2 establish that these are mutable search fields."
  },
  {
   "address": 25112,
   "type": "line",
   "text": "Byte $6218, captured value $4D, inside the bounded allocation described at $6217; offset 1. Five-byte runtime workspace for object lookup $621C: outer/record loop counter $6217, saved directory index $6218, scratch/padding $6219, and preserved caller X/Y selector pair $621A/$621B. The routine searches active/global lists or a requested area using ID field+7 and length+8, installing/restoring pointers before return. Writers at $622B,$6269,$6289,$62B2 establish that these are mutable search fields."
  },
  {
   "address": 25114,
   "type": "line",
   "text": "Byte $621A, captured value $00, inside the bounded allocation described at $6217; offset 3. Five-byte runtime workspace for object lookup $621C: outer/record loop counter $6217, saved directory index $6218, scratch/padding $6219, and preserved caller X/Y selector pair $621A/$621B. The routine searches active/global lists or a requested area using ID field+7 and length+8, installing/restoring pointers before return. Writers at $622B,$6269,$6289,$62B2 establish that these are mutable search fields."
  },
  {
   "address": 25115,
   "type": "line",
   "text": "Byte $621B, captured value $08, inside the bounded allocation described at $6217; offset 4. Five-byte runtime workspace for object lookup $621C: outer/record loop counter $6217, saved directory index $6218, scratch/padding $6219, and preserved caller X/Y selector pair $621A/$621B. The routine searches active/global lists or a requested area using ID field+7 and length+8, installing/restoring pointers before return. Writers at $622B,$6269,$6289,$62B2 establish that these are mutable search fields."
  },
  {
   "address": 25116,
   "type": "line",
   "text": "FIND_OBJECT_BY_ID ($621C-$62E0)\nPurpose: resolve an object record while preserving the caller's X and Y through self-modified save bytes $621A/$621B.\nInputs: LOOKUP_OBJECT_ID $105C; A=0 searches cached area-255/global objects then current-area objects, A!=0 searches only that named area's local list.\nOutputs: A=0 and ACTIVE_RECORD_PTR $7C/$7D at the record when found; A=1 when absent; X and Y restored.\nAssumptions: object ID is record byte +7 and total record size is byte +8.\nClobbers: A and pointer/search scratch; no hardware change.\nHardware changes: None."
  },
  {
   "address": 25320,
   "type": "line",
   "text": "DISPATCH_AIM_FIRE_ACTIVATE ($62E8-$659B)\nPurpose: toggle aim mode, move the crosshair selector, fire at a selected face/object, or activate a nearby selected object.\nInputs: decoded actions; aim flag $2467; selector $2465/$2466; rendered selection data; current objects.\nOutputs: updated aim/selector state; shot latch $1084 bit 2 or activation latch bit 1; event object $1082 and sound/render requests.\nAssumptions: joystick fire outside aim mode is dispatched as aim-on, fire, aim-off by UPDATE_FRAME_INPUT_EVENTS.\nClobbers: A, X, Y, flags and picker/action scratch.\nHardware changes: updates sprite/display state through aim presentation and may request SID effects.\nEvidence: observed effects; semantic names independently correlated with callers and Freescape behavior."
  },
  {
   "address": 26012,
   "type": "line",
   "text": "REDRAW_CENTER_SIGHT_STATE ($659C-$65A5)\nPurpose: toggle/remove the current center-sight pixels, redraw the sorted scene so the required sight state is reinstated, and present the result.\nInputs: linear framebuffer, sorted visible queue, aim state $2467, sight latch $246B, and display pointers.\nOutputs: rebuilds the linear frame and updates the VIC-visible bitmap.\nAssumptions: the visible queue is current and $827A addresses the verified center reticle overlay.\nClobbers: A, X, Y, flags, framebuffer, render, and blit scratch.\nHardware changes: through $4B24 executes SEI/CLI, writes VIC-visible bitmap RAM, and may initialize an already-deferred SID sound."
  },
  {
   "address": 26022,
   "type": "line",
   "text": "POSITION_ENABLE_AIM_SPRITES ($65A6-$65E6)\nPurpose: transform the aim selector into screen coordinates and place/enable the overlapping VIC-II sprites used for aiming.\nInputs: selector $2465/$2466, installed sprite shapes/pointers, visible I/O, and interrupt-context flag $1C72.\nOutputs: computes X=$34+2*selectorX and Y=$C2-selectorY; positions sprites 0/1, assigns colors 1/0, sets their $D010 X-MSB bits and $D015 enable bits, then performs a fixed debounce wait; updates $1233/$1235 scratch.\nAssumptions: selector bounds established by $62E8 are valid and sprite indices 0/1 are configured.\nClobbers: A, X, Y, flags, $82/$83, $1233, and $1235.\nHardware changes: through $8214 executes SEI with conditional CLI when $1C72=0 and writes $D000-$D003, $D010, $D015, $D027, and $D028."
  },
  {
   "address": 26087,
   "type": "line",
   "text": "BLIT_LINEAR_BUFFER_FORWARD_TO_VIC_BITMAP ($65E7-$664B)\nPurpose: swizzle the complete 120x30-byte linear work buffer forward into the VIC bitmap's 30x15-cell, eight-scanline layout.\nInputs: source $87CC-$95DB, bitmap base $1237/$1238, and deferred sound index $105E.\nOutputs: writes all 3,600 source bytes across the destination's 4,800-byte interleaved rectangle in fifteen 240-byte blocks; may consume and initialize a deferred sound request.\nAssumptions: CPU mapping exposes the bitmap RAM and I/O; destination character rows are 320 bytes apart.\nClobbers: A, X, Y, flags, $B1, and self-modified operands $6612-$6616.\nHardware changes: executes SEI/CLI around each 240-byte block, writes VIC-visible bitmap RAM, and may reach SID control/state through $CFD8->$CF1B."
  },
  {
   "address": 26130,
   "type": "line",
   "text": "Patched address operand of LDA abs, X at $6611, belonging to viewport transfer. For each row group, visits eight subrows and thirty cells, reads 240 consecutive linear bytes and writes the bitmap with eight-byte X stride. Protects each group with SEI/CLI. Between groups destination advances $0140 and source advances $00F0; count in $B1 decrements to zero. End is $664B RTS; following $664C-$6660 is a separate zero-filled occupant. The native initialized-frame check is distinct from this traced transfer routine."
  },
  {
   "address": 26131,
   "type": "line",
   "text": "High byte of viewport_source_read_operand at $6612. This address is the second operand byte of the preceding instruction, not an instruction entry. Patched address operand of LDA abs, X at $6611, belonging to viewport transfer. For each row group, visits eight subrows and thirty cells, reads 240 consecutive linear bytes and writes the bitmap with eight-byte X stride. Protects each group with SEI/CLI. Between groups destination advances $0140 and source advances $00F0; count in $B1 decrements to zero. End is $664B RTS; following $664C-$6660 is a separate zero-filled occupant. The native initialized-frame check is distinct from this traced transfer routine."
  },
  {
   "address": 26133,
   "type": "line",
   "text": "Operand byte 1 of STA aby at $6614; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $6612. Patched address operand of LDA abs, X at $6611, belonging to viewport transfer. For each row group, visits eight subrows and thirty cells, reads 240 consecutive linear bytes and writes the bitmap with eight-byte X stride. Protects each group with SEI/CLI. Between groups destination advances $0140 and source advances $00F0; count in $B1 decrements to zero. End is $664B RTS; following $664C-$6660 is a separate zero-filled occupant. The native initialized-frame check is distinct from this traced transfer routine."
  },
  {
   "address": 26134,
   "type": "line",
   "text": "Operand byte 2 of STA aby at $6614; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $6612. Patched address operand of LDA abs, X at $6611, belonging to viewport transfer. For each row group, visits eight subrows and thirty cells, reads 240 consecutive linear bytes and writes the bitmap with eight-byte X stride. Protects each group with SEI/CLI. Between groups destination advances $0140 and source advances $00F0; count in $B1 decrements to zero. End is $664B RTS; following $664C-$6660 is a separate zero-filled occupant. The native initialized-frame check is distinct from this traced transfer routine."
  },
  {
   "address": 26188,
   "type": "line",
   "text": "Twenty-one zero bytes $664C-$6660 after forward viewport copier RTS $664B, before next routine $6661. Used as compact pointer/position workspace by later routines (e.g.$6883 stores indexed bytes into $664E). Captured zeros are runtime scratch, not additional instructions or authored artwork."
  },
  {
   "address": 26209,
   "type": "line",
   "text": "PICK_RENDERED_OBJECT ($6661-$68E3)\nPurpose: identify the rendered face/object under a selector coordinate for fire and activation actions.\nInputs: selector coordinates $2465/$2466 and rendered face/object tables.\nOutputs: selected object/face identity and picker scratch consumed by firing or activation dispatch.\nAssumptions: render queues and face bounds describe the current frame.\nClobbers: A, X, Y, flags and selection/math scratch.\nHardware changes: none.\nEvidence: picker scans are observed; selection role verified by fire/activation callers."
  },
  {
   "address": 26869,
   "type": "line",
   "text": "EXECUTE_FCL_STREAM ($68F5-$6FBC)\nPurpose: interpret one Castle Freescape condition stream.\nInputs: ACTIVE_RECORD_PTR $7C/$7D at first token; A=stream byte length; event mask $1084.\nOutputs: game/world/score/sound/transition effects of selected opcodes; ordinary exits restore the incoming stream pointer.\nAssumptions: token bits 7-6 select collided/timer/shot/activated; bits 5-0 select opcode. FCL_TOKEN_LENGTHS includes the token byte. Control flow uses one flat skip Boolean: ELSE toggles it, ENDIF clears it. Opcode 48 tail-transfers to another object's stream and never resumes the outer remainder.\nClobbers: A, X, Y, stack, $68E4-$68F3, pointer/math scratch and opcode-specific state; no banking change. Unsupported/zero-length/default opcodes end the stream.\nHardware changes: No direct CPU-banking change; individual opcode handlers may update VIC-visible memory or SID state. Controlled sixteen-byte score fixtures confirm selector/event-mask pairs 0/1,1/8,2/4,3/2: masks 0,1,8,4,2,15 produce distinct score additions 0,1,2,4,8,15 and restore the input pointer. All opcode effects and ordinary interaction routes require separate tests."
  },
  {
   "address": 27893,
   "type": "line",
   "text": "Continuation of FCL GOTO handler: preserves interpreter pointer around area/entrance installation $4EC3, then sets visited-area bit in $243D+area/8 and awards one-time values through $6FBD. Updates sound/event state before common token advance. Opcode $22 at $6D4D selects PRINT: positive parameter prints a fixed sixteen-byte message from $1410; high-bit parameter chooses a structured riddle through nine pointers $13EE, suppresses sprites 0/1, draws a framed panel, waits for input and restores display state. The $FF text-length form inserts the dynamic message at $1C4E and rewinds its source pointer by one; it is not an ordinary literal length."
  },
  {
   "address": 28391,
   "type": "line",
   "text": "EXPAND_BORDERED_ROW_30 ($6EE7-$6F13)\nPurpose: expand one source triplet into a 30-byte row containing one left byte, 28 copies of the middle byte, and one right byte.\nInputs: X is the triplet offset into $2023+ and $7A/$7B is the destination pointer.\nOutputs: writes one 30-byte row, advances X by three, and advances $7A/$7B by 30.\nAssumptions: the triplet and destination row are valid; 'bordered' describes the exact 1+28+1 structure, not an inferred artistic identity.\nClobbers: A, X, Y, flags, $7A/$7B, and mutable byte $68F2.\nHardware changes: none."
  },
  {
   "address": 28605,
   "type": "line",
   "text": "ADD_SCORE_U24 ($6FBD-$6FD4)\nPurpose: add an unsigned little-endian 24-bit value to the 24-bit score.\nInputs: addend in the interpreter operand/scratch bytes; score at $2442-$2444.\nOutputs: updated score $2442-$2444 with carry propagated low to high.\nAssumptions: arithmetic is unsigned modulo 2^24.\nClobbers: A, X and arithmetic flags; no hardware change.\nHardware changes: None."
  },
  {
   "address": 28629,
   "type": "line",
   "text": "FORMAT_UNSIGNED_DECIMAL ($6FD5-$7024)\nPurpose: convert a multi-byte unsigned binary value into decimal display digits.\nInputs: source value and destination/display pointers prepared by callers.\nOutputs: decimal digit bytes used by score/stat presentation.\nAssumptions: unsigned arithmetic and the caller-supplied field width.\nClobbers: A, X, Y, arithmetic flags and conversion scratch.\nHardware changes: none.\nEvidence: observed repeated division/subtraction and digit emission; score caller correlation."
  },
  {
   "address": 28716,
   "type": "line",
   "text": "REFRESH_HUD_STATS ($702C-$72D9)\nPurpose: refresh strength, score, key and spirit-pressure HUD fields, process pending keys, and test the game-end meter.\nInputs: score $2442-$2444; spirits $2454; strength $2455; key state $2457-$2458/$245A+; pressure time $246A; target $9D49=21.\nOutputs: updated HUD digits/cells; pending keys become 1-based bits/list entries and add 125,000; pressure result >=64 ends the session.\nAssumptions: score is unsigned 24-bit and pressure arithmetic is (time * (21-destroyed))/21.\nClobbers: A, X, Y, flags, format/math scratch and HUD state.\nHardware changes: display helpers update active VIC-II screen/color data.\nEvidence: exact arithmetic and state effects verified against runtime code and retained save checkpoints."
  },
  {
   "address": 29402,
   "type": "line",
   "text": "REFRESH_ACTION_STATUS ($72DA-$734D)\nPurpose: refresh the action/message status area after gameplay changes.\nInputs: current action/message and render request state.\nOutputs: updated status text/cells and cleared/advanced presentation flags.\nAssumptions: game text and display buffers are installed.\nClobbers: A, X, Y, flags and status-format scratch.\nHardware changes: writes VIC-II screen/color data through display helpers.\nEvidence: observed instruction effects and renderer call sites."
  },
  {
   "address": 29533,
   "type": "line",
   "text": "Runtime interrupt installer.\nPurpose: set IRQ=$737F, NMI=$7579, start raster scheduling at line 0, and clear interrupt-owned state.\nInputs: RAM vector table is writable and I/O is visible.\nOutputs: installed handlers and enabled CPU interrupts.\nAssumptions: Caller-established runtime state described in Inputs is valid.\nClobbers: A, flags.\nHardware changes: writes $0314-$0315, $0318-$0319, VIC raster $D012, then executes CLI."
  },
  {
   "address": 29567,
   "type": "line",
   "text": "COMMON_IRQ_SOURCE_DISPATCHER ($737F-$7579)\nPurpose: dispatch one installed IRQ between the VIC-II raster service and the CIA 1 periodic service, then return through the shared register-restoring epilogue.\nInputs: A/X/Y already stacked by copied dispatcher $FF48; I/O visible; VIC IRQ status $D019; expected CIA 1 IRQ state; engine/timer state $10xx/$1Cxx/$24xx; SID state $C806+.\nOutputs: sets common busy flag $1C72, then clears it. If $D019 bit 0 is set, $738B-$73BA acknowledges VIC, initializes/ticks SID as required, sets $D012=$28, and jumps to $756F. Otherwise $73BB-$756E advances FCL delay, animation/bitmap, lightning, strength, spirits-meter, and timer state, then reads $DC0D to acknowledge CIA 1. $756F-$7579 restores Y/X/A and returns with RTI.\nAssumptions: entry follows the copied KERNAL IRQ convention; configured relevant sources are VIC raster and CIA 1 periodic IRQ; $D019 bit 0 is tested first and has priority; RAM/SID tables and visible I/O are valid. The non-VIC branch assumes CIA 1 but does not inspect which CIA ICR source caused entry.\nClobbers: A, X, Y, flags, interrupt scratch, and branch-specific game/SID state internally; the common epilogue restores caller Y/X/A and RTI restores interrupted status and PC.\nHardware changes: VIC branch reads/acknowledges $D019, writes $D012, and reaches SID $D400-$D418; CIA branch reads $DC0D to acknowledge CIA 1 and writes VIC-visible bitmap RAM/state; no banking change."
  },
  {
   "address": 29719,
   "type": "line",
   "text": "Rewritten two-byte destination operand of STA abs, X at $7416, not a routine entry. $7407-$740E initializes it to $C4A5; the loop fills thirty colour cells on each of fifteen rows, adding forty to the operand after each row. The following IRQ continuation decrements paired HUD blink counters, patches bitmap bytes $E8A5/$F18B, cycles four 48-byte pictures from $2038-$20F7 every eight ticks, and updates time/energy/event counters before acknowledging CIA 1 and restoring registers."
  },
  {
   "address": 29720,
   "type": "line",
   "text": "High byte of the rewritten colour destination $7417/$7418 used by STA $7416. The subsequent IRQ logic updates two blink countdowns, four-frame HUD animation and runtime clock/energy/event counters, then acknowledges CIA 1 and restores interrupted registers. See $7417 for the bounded continuation; this is an operand alias, not a routine entry."
  },
  {
   "address": 30073,
   "type": "line",
   "text": "IRQ_NMI_RETURN ($7579)\nPurpose: execute the final RTI for the common IRQ epilogue and serve as the direct no-op NMI handler.\nInputs: valid hardware interrupt frame; IRQ path arrives after A/X/Y restoration at $756F-$7578; the NMI vector enters directly.\nOutputs: restores the interrupted processor status and PC.\nAssumptions: the stack contains the corresponding IRQ or NMI frame.\nClobbers: none beyond RTI consuming the saved status and PC.\nHardware changes: none."
  },
  {
   "address": 30074,
   "type": "line",
   "text": "Eight 9-byte keyboard groups through $75C1, followed by $FF terminator at $75C2. Each group begins one CIA column-select mask FE, FD, FB, F 7, EF, DF, BF,7F, followed by eight decoded key codes in row-bit order. $7609 scans masks stepping X by 9; $7633 loads the code at base+X+row+1. Includes control codes and PETSCII, not a text string. Native save/load UI exercised D, letters and Return through this scanner."
  },
  {
   "address": 30147,
   "type": "line",
   "text": "READ_CONTROL_INPUT ($75C3-$765D)\nPurpose: collect raw active-low joystick and keyboard controls, retaining at most five simultaneous codes for menu/game action mapping.\nInputs: CIA 1 port A $DC00 and keyboard rows from $DC01 using column masks at $757A+.\nOutputs: raw count at $1379 and codes at $137A+; carry set when at least one control exists. Joystick raw codes $91-$95 represent directions/fire.\nAssumptions: the 22 raw-code/action pairs at $1382-$13AD translate these codes in UPDATE_FRAME_INPUT_EVENTS.\nClobbers: A, X, Y and flags.\nHardware changes: reads and writes CIA 1 ports $DC00/$DC01 for joystick and keyboard matrix scanning.\nEvidence: direct I/O and bounds observed; mapping verified from all table pairs."
  },
  {
   "address": 30302,
   "type": "line",
   "text": "INSTALL_GLOBAL_DATABASE_POINTERS ($765E-$76CE)\nPurpose: derive the global FCL list and area-255 global-object roots from the normalized Freescape database.\nInputs: database base $109C/$109D=$9D00, area table $109E/$109F, header word $9D44/$9D45, area count $9D00, and area-pointer records.\nOutputs: installs global-condition pointer $1096/$1097, global object count/pointer $1060-$1062, run distance $240F from $9D48, and clears mode bytes $2417/$2418. If area ID 255 is absent, global object count becomes zero.\nAssumptions: database-relative words are added directly to $9D00; an area-255 record, when present, contains the global object pool and local objects begin at record +8.\nClobbers: A, X, Y, flags, and pointer scratch $7A-$7D.\nHardware changes: none."
  },
  {
   "address": 30415,
   "type": "line",
   "text": "Single captured zero byte immediately preceding SELECT_AREA entry $76D0. It is data/padding between the previous routine return and loader entry; no semantic consumer or mutable-role claim is asserted."
  },
  {
   "address": 30416,
   "type": "line",
   "text": "SELECT_AREA ($76D0-$77D3)\nPurpose: find an area record by ID and install its local object list, condition list, scale, and related area state.\nInputs: CURRENT_AREA_ID $2429; AREA_TABLE_PTR $109E/$109F; database base $109C/$109D.\nOutputs: object count $242A; object-list pointer $242B/$242C; condition-list pointer $242F/$2430; active area scale/state.\nAssumptions: area-table words are direct offsets from $9D00; area record bytes +3/+4 give its relative condition pointer and local objects begin at +8.\nClobbers: A, X, Y, $7A-$82 and self-modified copy operand $77C8/$77C9; no hardware banking change.\nHardware changes: None."
  },
  {
   "address": 30664,
   "type": "line",
   "text": "Patched two-byte source operand of LDA abs, X at $77C7, installed by multiplying area name index by 16 and adding $1500 at $77B8-$77C2. Copies sixteen name bytes backward into $2419-$2428, then calls global-object allowlist handler $7C5A. All 34 native area loader cases compare the copied sixteen bytes against independently selected slots; physical pointer table includes global entry 255."
  },
  {
   "address": 30665,
   "type": "line",
   "text": "High byte of LDA abs, X operand at $77C7, paired with $77C8. The name-index calculation installs base $1500+16*index; copies sixteen bytes then invokes $7C5A and returns $77D3. All 34 controlled native loads check the copied names."
  },
  {
   "address": 30676,
   "type": "line",
   "text": "Single zero byte following RTS $77D3, before the padded caption/text area beginning $77D5. Separately bounded so a routine description does not conceal subsequent non-code bytes."
  },
  {
   "address": 30677,
   "type": "line",
   "text": "Twenty-three space bytes $77D5-$77EB followed by zero at $77EC and hyphen $2D at $77ED, preceding menu state $77EE. The captured bytes are a blank caption/padding allocation. No complete consumer contract is asserted for the two suffix bytes; their use remains explicit open work."
  },
  {
   "address": 30717,
   "type": "line",
   "text": "Single zero byte $77FD immediately before genuine entry $77FE. The entry opcode is $AD at $77FE, not $77FD; runtime menu data ends before this padding."
  },
  {
   "address": 30718,
   "type": "line",
   "text": "RUN_INFORMATION_MENU ($77FE-$7A7F)\nPurpose: present the in-game information menu and handle save, load, sound/music toggle, key cycling, quit, or resume.\nInputs: decoded control; save/key/sound/session state; current VIC sprite-enable register.\nOutputs: selected menu action and restored overlay state; S saves, L loads, F toggles sound/music, K cycles collected keys, Q quits.\nAssumptions: any other accepted control resumes play.\nClobbers: A, X, Y, flags and menu/text scratch.\nHardware changes: snapshots and restores VIC-II sprite-enable $D015; save/load invokes KERNAL through LOAD_SAVE_DISPATCH.\nEvidence: exact branch effects observed and command semantics verified."
  },
  {
   "address": 31360,
   "type": "line",
   "text": "FORMAT_MENU_STATISTICS ($7A80-$7AF3)\nPurpose: format key count, unsigned 24-bit score and spirits-destroyed values for the information menu.\nInputs: keys $2457, score $2442-$2444 and spirits $2454.\nOutputs: decimal/menu text fields.\nAssumptions: menu text buffers are active.\nClobbers: A, X, Y, flags and formatting scratch.\nHardware changes: none directly; caller presents the formatted fields.\nEvidence: exact source fields and formatter calls observed."
  },
  {
   "address": 31392,
   "type": "line",
   "text": "FORMAT_SCORE_FOR_MENU ($7AA0-$7AC9)\nPurpose: convert the unsigned 24-bit score into the menu's seven-character decimal field.\nInputs: score $2442-$2444 and decimal formatter $6FD5.\nOutputs: stages the value in $121C-$121E, configures formatter scratch $1220-$1226/$1230=7, and writes final field $187C-$1882.\nAssumptions: base-10 three-byte formatter contract is valid.\nClobbers: A, X, Y, flags, and formatter scratch.\nHardware changes: none."
  },
  {
   "address": 31434,
   "type": "line",
   "text": "FORMAT_SPIRITS_DESTROYED_FOR_MENU ($7ACA-$7AF3)\nPurpose: format the spirits-destroyed count as a leading-space/two-digit decimal field and select its horizontal placement.\nInputs: spirits count $2454.\nOutputs: writes ASCII digits/spaces at $1866/$1867 and sets $77FA=$2D for one digit or $32 for two-digit placement.\nAssumptions: gameplay count remains below 100; the verified game target is 21.\nClobbers: A, X, Y, and flags.\nHardware changes: none."
  },
  {
   "address": 31491,
   "type": "line",
   "text": "PROMPT_SAVE_DEVICE_AND_NAME ($7B03-$7C59)\nPurpose: choose tape or disk and collect a bounded five-character filename for save/load.\nInputs: menu action and decoded controls.\nOutputs: device 1 for T or device 8 for D, filename bytes/length, then dispatch to the KERNAL-backed save/load path.\nAssumptions: at most five filename characters are accepted.\nClobbers: A, X, Y, flags, filename and prompt state.\nHardware changes: input uses CIA scanning; LOAD_SAVE_DISPATCH later banks in and calls KERNAL file services.\nEvidence: exact command branches, bounds and KERNAL setup verified."
  },
  {
   "address": 31834,
   "type": "line",
   "text": "RESET_GLOBAL_OBJECT_FLAGS_AND_APPLY_ID_FF_ALLOWLIST ($7C5A-$7CC6)\nPurpose: normalize global-object visibility/transient flags, then use the object-ID-$FF control record as a structural allowlist that re-enables its referenced objects.\nInputs: global count $1060, global list $1061/$1062, object byte +8 stride, FIND_OBJECT_BY_ID, and the ID-$FF control record.\nOutputs: applies (flags & $8F)|$40 to every global object, clearing bits 4/5 and setting invisible bit 6; then clears bit 6 on each referenced object in the ID-$FF list.\nAssumptions: variable records, IDs, and control-list references are valid. 'Allowlist' describes the data action only; no higher-level story meaning is claimed.\nClobbers: A, X, Y, flags, $7A-$7D, lookup ID $105C, and object-lookup scratch.\nHardware changes: none."
  },
  {
   "address": 31943,
   "type": "line",
   "text": "CLEAR_LINEAR_30BYTE_ROWS ($7CC7-$7CEC)\nPurpose: clear X consecutive 30-byte rows, with a carry-selected whole-frame shortcut.\nInputs: when carry is clear, work-buffer pointer $10A0/$10A1 is selected and X becomes 120; when carry is set, caller supplies $7A/$7B and X.\nOutputs: zero-fills 30*X bytes, advances $7A/$7B by 30 per row, and leaves X=0.\nAssumptions: caller-selected X is nonzero and the target rows are writable.\nClobbers: A, X, Y, flags, $7A, and $7B.\nHardware changes: none; writes ordinary framebuffer RAM."
  },
  {
   "address": 31981,
   "type": "line",
   "text": "Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31982,
   "type": "line",
   "text": "Byte $7CEE, captured value $10, inside the bounded allocation described at $7CED; offset 1. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31983,
   "type": "line",
   "text": "Byte $7CEF, captured value $10, inside the bounded allocation described at $7CED; offset 2. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31984,
   "type": "line",
   "text": "Byte $7CF0, captured value $19, inside the bounded allocation described at $7CED; offset 3. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31985,
   "type": "line",
   "text": "Byte $7CF1, captured value $02, inside the bounded allocation described at $7CED; offset 4. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31986,
   "type": "line",
   "text": "Byte $7CF2, captured value $00, inside the bounded allocation described at $7CED; offset 5. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31987,
   "type": "line",
   "text": "Byte $7CF3, captured value $C0, inside the bounded allocation described at $7CED; offset 6. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31988,
   "type": "line",
   "text": "Byte $7CF4, captured value $02, inside the bounded allocation described at $7CED; offset 7. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31989,
   "type": "line",
   "text": "Byte $7CF5, captured value $00, inside the bounded allocation described at $7CED; offset 8. Nine-byte descriptor/workspace $7CED-$7CF5 populated by packed bitmap blitter $7CF6 from source header, frame/placement inputs and masks. Width/height/frame-stride and partial-byte mask drive aligned/shifted/transparent paths. Source pointer/processor flags are saved and restored by the routine. This mutable descriptor is separate from authored picture bytes."
  },
  {
   "address": 31990,
   "type": "line",
   "text": "BLIT_PACKED_2BPP_GRAPHIC ($7CF6-$7FE2)\nPurpose: select a frame from a five-byte-headed packed graphic, decode/mask its two-bit pixels, and merge it into bitmap rows addressed by a destination-pointer table, including unaligned spill.\nInputs: A low seven bits select the frame/record and bit 7 selects the alternate merge path; X is horizontal/bit offset; $7A/$7B points to graphic descriptor/data; $7C/$7D points to row pointers; $1C74 describes destination layout.\nOutputs: updates the selected bitmap region and restores the original $7A/$7B and processor status.\nAssumptions: dimensions/header/stride are nonzero and valid and destination pointers are writable. No visual meaning is assigned to the bit-7 alternate merge without further proof.\nClobbers: A, X, Y, $82/$83, $7CED-$7CF5, and multiple self-modified absolute operands; processor flags/status are restored on return.\nHardware changes: executes PHP/SEI and PLP to restore the original interrupt state; writes VIC-visible bitmap RAM but no VIC-II registers."
  },
  {
   "address": 32146,
   "type": "line",
   "text": "Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32147,
   "type": "line",
   "text": "High byte of the rewritten store operand $7D92/$7D93, belonging to STA at $7D91. The continuation through $7FE2 implements aligned and shifted bitmap row copies, final-byte masking and transparent zero-valued two-bit pixels. See $7D92 for inputs/header format and each branch. This label names an operand, not code entered at this byte."
  },
  {
   "address": 32173,
   "type": "line",
   "text": "Mutable address operand of AND abs, X at $7DAC. The aligned blitter merges the last byte as (source AND final mask) OR (destination AND inverse mask), stores through patched $7DB2, restores saved row state, and decrements row count. The following shifted path $7DC7-$7EED builds shifted bytes and preserves partial edges; transparent path $7EF0-$7FD8 treats zero two-bit pixels as unchanged destination, then common $7FDB restores source pointer and flags. It is an operand alias, not a new instruction entry. Exact whole-blit image output remains to be tested."
  },
  {
   "address": 32174,
   "type": "line",
   "text": "High byte of hud_masked_read_operand at $7DAD. This address is the second operand byte of the preceding instruction, not an instruction entry. Mutable address operand of AND abs, X at $7DAC. The aligned blitter merges the last byte as (source AND final mask) OR (destination AND inverse mask), stores through patched $7DB2, restores saved row state, and decrements row count. The following shifted path $7DC7-$7EED builds shifted bytes and preserves partial edges; transparent path $7EF0-$7FD8 treats zero two-bit pixels as unchanged destination, then common $7FDB restores source pointer and flags. It is an operand alias, not a new instruction entry. Exact whole-blit image output remains to be tested."
  },
  {
   "address": 32178,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7DB1; captured operand $F257. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32179,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7DB1; captured operand $F257. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32313,
   "type": "line",
   "text": "Operand byte 1 of AND abx at $7E38; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32314,
   "type": "line",
   "text": "Operand byte 2 of AND abx at $7E38; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32318,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7E3D; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32319,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7E3D; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32358,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7E65; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32359,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7E65; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32410,
   "type": "line",
   "text": "Operand byte 1 of AND abx at $7E99; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32411,
   "type": "line",
   "text": "Operand byte 2 of AND abx at $7E99; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32415,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7E9E; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32416,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7E9E; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32447,
   "type": "line",
   "text": "Operand byte 1 of AND abx at $7EBE; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32448,
   "type": "line",
   "text": "Operand byte 2 of AND abx at $7EBE; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32473,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7ED8; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32474,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7ED8; captured operand $EF59. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32639,
   "type": "line",
   "text": "Operand byte 1 of AND abx at $7F7E; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32640,
   "type": "line",
   "text": "Operand byte 2 of AND abx at $7F7E; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32645,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7F84; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32646,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7F84; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32709,
   "type": "line",
   "text": "Operand byte 1 of AND abx at $7FC4; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32710,
   "type": "line",
   "text": "Operand byte 2 of AND abx at $7FC4; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32714,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $7FC9; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32715,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $7FC9; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $7D92. Rewritten destination operand of STA abs, X at $7D91, inside bitmap blitter $7CF6. $7D65-$7D7D installs row-pointer plus aligned X offset in this and the final masked-byte operations. Source header gives byte width, row count, final-byte mask and frame stride; A low seven bits chooses a frame. Aligned opaque copy uses $7D64-$7DC4; shifted opaque $7DC7-$7EED carries pixels between bytes and preserves boundary masks; A bit 7 selects transparent two-bit-zero masking at $7EF0-$7FD8. Source pointer $7A/$7B and processor flags are saved/restored. Exact picture output still requires native blit tests."
  },
  {
   "address": 32742,
   "type": "line",
   "text": "COPY_BITMAP_RECTANGLE_FROM_ROW_POINTERS ($7FE6-$803C)\nPurpose: copy a bitmap rectangle using paired source and destination row-pointer tables.\nInputs: A offset selecting destination base+A and source base+8*A, X byte width, Y row count, source words at $7A/$7B, and destination words at $7C/$7D.\nOutputs: for each row copies X source bytes to destination locations spaced eight bytes; pointer tables remain unchanged.\nAssumptions: X and Y are nonzero and all pointer-table entries are valid.\nClobbers: A, X, Y, flags, $7FE3-$7FE5, and self-modified operands $8021-$8025.\nHardware changes: writes bitmap RAM; no register or interrupt-state changes."
  },
  {
   "address": 32801,
   "type": "line",
   "text": "Patched source operand of LDA abs, X at $8020. Small-picture continuation copies each row’s source bytes consecutively while destination Y advances 8 per cell. Width at $7FE4 decrements then is restored from stack; height $7FE5 decrements between rows, which use destination pointer words plus eight-times horizontal offset $7FE3. Returns $803C. Exact blit pixels remain a native verification check."
  },
  {
   "address": 32802,
   "type": "line",
   "text": "Operand byte 2 of LDA abx at $8020; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8021. Patched source operand of LDA abs, X at $8020. Small-picture continuation copies each row’s source bytes consecutively while destination Y advances 8 per cell. Width at $7FE4 decrements then is restored from stack; height $7FE5 decrements between rows, which use destination pointer words plus eight-times horizontal offset $7FE3. Returns $803C. Exact blit pixels remain a native verification check."
  },
  {
   "address": 32804,
   "type": "line",
   "text": "Operand byte 1 of STA aby at $8023; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8021. Patched source operand of LDA abs, X at $8020. Small-picture continuation copies each row’s source bytes consecutively while destination Y advances 8 per cell. Width at $7FE4 decrements then is restored from stack; height $7FE5 decrements between rows, which use destination pointer words plus eight-times horizontal offset $7FE3. Returns $803C. Exact blit pixels remain a native verification check."
  },
  {
   "address": 32805,
   "type": "line",
   "text": "Operand byte 2 of STA aby at $8023; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8021. Patched source operand of LDA abs, X at $8020. Small-picture continuation copies each row’s source bytes consecutively while destination Y advances 8 per cell. Width at $7FE4 decrements then is restored from stack; height $7FE5 decrements between rows, which use destination pointer words plus eight-times horizontal offset $7FE3. Returns $803C. Exact blit pixels remain a native verification check."
  },
  {
   "address": 32829,
   "type": "line",
   "text": "CHECK_NEWLY_VISIBLE_CRUSH ($803D-$8141)\nPurpose: consume newly-visible object marks and detect geometry that has materialized around the player.\nInputs: pending flag $1086; player X/Y/Z $2407-$240C; player height $2413; current and global object lists; transient object bit $10; object origins and extents.\nOutputs: clears $1086 and every examined transient bit $10. On enclosure sets session-end reason $109B=7, clears render flags $1059/$105A after refreshing/blitting the display, and returns carry set. Otherwise reconciles collision through $4FA3 and returns carry clear.\nAssumptions: object byte +8 is total stride; bit $10 marks newly made visible geometry; X/Z tests use the scaled player point while Y uses the player-height interval; relevant object records have valid origin/extents.\nClobbers: A, X, Y, flags/carry, $7A/$7B, $82, $B0-$B2, candidate bytes $104C-$1051, object/presentation scratch, and the stack on the deliberate nonlocal crush exit.\nHardware changes: crush path writes VIC-visible bitmap RAM through $7CC7/$4B24; $4B24 may service an already-deferred sound request. This routine makes no immediate SID request."
  },
  {
   "address": 32941,
   "type": "line",
   "text": "SCAN_UPDATED_OBJECTS_FOR_CRUSH ($80AD-$8141)\nPurpose: scan one variable-length object list, consume newly-visible marks, and test the scaled player X/Z point plus Y-height interval against object extents.\nInputs: X object count, list pointer $7A/$7B, scaled player coordinates $B0-$B2 prepared by $803D, and player height $2413.\nOutputs: clears each encountered transient bit $10. Normal exhaustion returns at $8141. Enclosure sets $109B=7, clears and blits the frame, clears $1059/$105A, discards its own return address, and returns carry set from the enclosing CHECK_NEWLY_VISIBLE_CRUSH.\nAssumptions: record +8 is stride, extents are +1 through +6, and this helper is called only by the enclosing crush routine.\nClobbers: A, X, Y, flags, $82, list/presentation scratch, and stack on the deliberate nonlocal crush path.\nHardware changes: crush path writes VIC-visible bitmap through $7CC7/$4B24 and may initialize an already-deferred SID sound; otherwise none."
  },
  {
   "address": 33090,
   "type": "line",
   "text": "APPLY_FALL_DAMAGE ($8142-$8167)\nPurpose: apply and present damage after the caller has established a fall at or above the configured threshold.\nInputs: strength $2455 and initialized display/presentation state; the caller has already compared the measured drop with $2414.\nOutputs: resets pitch $2410; stores max(strength-5,0); when lethal sets session-end reason $109B=4; clears and blits the viewport; stores deferred sound index $105E=8.\nAssumptions: the caller performed the threshold comparison; $7CC7/$4B24 are ready; the unconditional CLI is valid under the engine's interrupt-state convention.\nClobbers: A, X, Y, flags, interrupt-enable state, framebuffer/blit scratch, and damage/presentation state.\nHardware changes: executes SEI then CLI and writes VIC-visible bitmap RAM through $4B24; it does not write SID registers immediately, because sound 8 is deferred in $105E."
  },
  {
   "address": 33132,
   "type": "line",
   "text": "DROP_PLAYER_TO_SUPPORT ($816C-$8213)\nPurpose: re-seat the player on supporting geometry after hidden/removed-world updates, measure the vertical drop, and invoke fall damage at the configured threshold.\nInputs: pending-support flag $1087, player pose $2407-$240C, scaled height $2413, fall threshold $2414, and the collision/world model used by $4FA3.\nOutputs: clears $1087; runs the collision solver with special mode $2418=1 then restores $2418=0; installs the supported/snapped Y position; sets $1059 bits $14 for a nonzero drop; invokes $8142 when the unsigned normalized drop reaches $2414.\nAssumptions: $4FA3 honors special support-search mode $2418=1; player-height and coordinate scaling invariants hold; $2414 uses the same normalized drop unit.\nClobbers: A, X, Y, flags, $82/$83, mutable bytes $8168-$816B, candidate/current Y, and collision scratch.\nHardware changes: none on the no-damage path; the damage path inherits $8142's SEI/CLI, VIC-visible bitmap write, and deferred-sound state change."
  },
  {
   "address": 33300,
   "type": "line",
   "text": "POSITION_ENABLE_VIC_SPRITE ($8214-$825C)\nPurpose: set one VIC-II sprite's color and X/Y position, update its X-MSB bit, and enable it.\nInputs: A sprite index 0-7, X position low byte, Y position, $1233 nonzero for X high, $1235 color, I/O visible, and interrupt-context flag $1C72.\nOutputs: writes color $D027+A, position $D000+2*A/$D001+2*A, X-MSB bit in $D010, and enable bit in $D015.\nAssumptions: sprite index is valid and the caller's sprite pointer/shape state is installed.\nClobbers: A, X, Y, flags, $82, and $83.\nHardware changes: executes SEI; writes $D000-$D010, $D015, and $D027-$D02E; executes CLI only when $1C72=0."
  },
  {
   "address": 33373,
   "type": "line",
   "text": "DISABLE_VIC_SPRITE ($825D-$8279)\nPurpose: clear one VIC-II sprite-enable bit.\nInputs: A sprite index, masked to 0-7; I/O visible; interrupt-context flag $1C72.\nOutputs: clears the selected bit in $D015.\nAssumptions: the masked sprite index names the intended sprite.\nClobbers: A, X, and flags; Y is preserved.\nHardware changes: executes SEI, reads/writes $D015, and executes CLI only when $1C72=0."
  },
  {
   "address": 33402,
   "type": "line",
   "text": "XOR_CENTER_RETICLE_IN_LINEAR_VIEWPORT ($827A-$82B9)\nPurpose: XOR the fixed central reticle into or out of the 30-byte-row linear work buffer.\nInputs: work-buffer pointer $10A0/$10A1 and the verified 120x30-byte layout.\nOutputs: toggles bytes at base+$06BD on seven rows spaced 30 bytes plus the preceding byte on the center row using masks $01/$14/$50; a second call restores the original pixels.\nAssumptions: the full 3,600-byte buffer is writable; reticle meaning is caller-correlated while offsets and XOR masks are exact.\nClobbers: A, X, Y, flags, $7A, and $7B.\nHardware changes: none until a caller presents the linear buffer."
  },
  {
   "address": 33474,
   "type": "line",
   "text": "Twenty-one one-byte steps consumed by $82E3-$836A: 1,2,4,7,11,16,22,29,37,48,58,69,81,93,107,120,115,120,119,120,$FF. Terminator $FF ends the sequence. These are effect progression steps; byte pairs 115,120 and 119,120 are not pointer words merely because their numeric interpretations look like addresses. Ordinary-play meaning/timing remains open."
  },
  {
   "address": 33495,
   "type": "line",
   "text": "Twelve pattern bytes $82D7-$82E2: 7F FF FF,15 55 54,15 55 54,7F FF FF. Renderer $842F/$843B/$8447 selects successive triplet elements, writing at eight-byte strides across a thirty-cell bitmap row. The progression sequence immediately before these bytes ends $82D6 with $FF; patterns are a separate physical allocation."
  },
  {
   "address": 33507,
   "type": "line",
   "text": "RUN_VIEWPORT_TRANSITION ($82E3-$8366)\nPurpose: drive the verified vertical bitmap transition through $8367 in automatic or acknowledged-text mode.\nInputs: carry selects mode; table $82C2-$82D6, live IRQ countdown $1063, render/text state, and CIA-backed input are initialized.\nOutputs: with carry clear, consumes transition steps until $FF, delaying each and triggering sound at step $78. With carry set, applies step $78, draws/waits for release and press around two text states, then steps $76 down to zero with sound; leaves the transitioned bitmap and consumed acknowledgement.\nAssumptions: the IRQ decrements $1063 and transition patterns/table and text pointers are valid. No stronger artistic direction/name is claimed.\nClobbers: A, X, Y, flags, transition, text, and input scratch.\nHardware changes: writes bitmap RAM through $8367/$8590, reads controls through the CIA-backed $75C3 path, and may initialize SID sound through $CFD8."
  },
  {
   "address": 33639,
   "type": "line",
   "text": "APPLY_VERTICAL_BITMAP_TRANSITION_STEP ($8367-$8571)\nPurpose: move the transition boundary to X rows, synthesize patterned edge rows, and restore rows exposed when the boundary retreats.\nInputs: X new step 0-$78, prior step $82BD, bitmap base $1237/$1238, source beginning at bottom row $95BE, and pattern/state $82BA-$82C1/$82D7-$82E2.\nOutputs: updates VIC bitmap rows, stores $82BD=current step, and restores old-minus-new rows from the linear buffer when the new boundary is lower.\nAssumptions: the viewport is 120x30 with the verified VIC bitmap interleave and X is in range. 'Transition step' states only the observed row/pattern behavior.\nClobbers: A, X, flags, $7E/$7F, $82BA-$82C1, and self-modified destination operands; Y is saved/restored.\nHardware changes: writes VIC-visible bitmap RAM; no VIC-II, CIA, or SID register access and no interrupt masking."
  },
  {
   "address": 33843,
   "type": "line",
   "text": "Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33844,
   "type": "line",
   "text": "High byte of rewritten bitmap destination $8433/$8434 in STA $8432. The effect row-rendering continuation uses patterned or source-row copies with eight-byte column stride, then advances raster row and adjusts by $0138 at character-row boundaries. See $8433 for traced state and unresolved visual role. No control flow enters this operand."
  },
  {
   "address": 33855,
   "type": "line",
   "text": "Destination operand of second STA abs, X at $843E, paired with first $8432 and third $844A. The repeated three-byte pattern advances X by eight per store and visits 240 bitmap bytes; row count $82BC changes mode 1 to 2/count 20 or other to 4/count 15, then adjusts destination by one or $0138 at character boundaries. The mode-four path preserves boundary masks and copies rows backward from ($7E), with source decrement 30, until count reaches zero. See $8433 for inputs and the unresolved ordinary-play effect."
  },
  {
   "address": 33856,
   "type": "line",
   "text": "High byte of effect_second_pattern_store_operand at $843F. This address is the second operand byte of the preceding instruction, not an instruction entry. Destination operand of second STA abs, X at $843E, paired with first $8432 and third $844A. The repeated three-byte pattern advances X by eight per store and visits 240 bitmap bytes; row count $82BC changes mode 1 to 2/count 20 or other to 4/count 15, then adjusts destination by one or $0138 at character boundaries. The mode-four path preserves boundary masks and copies rows backward from ($7E), with source decrement 30, until count reaches zero. See $8433 for inputs and the unresolved ordinary-play effect."
  },
  {
   "address": 33867,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $844A; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33868,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $844A; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33963,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $84AA; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33964,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $84AA; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33974,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $84B5; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33975,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $84B5; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33989,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $84C4; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 33990,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $84C4; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 34102,
   "type": "line",
   "text": "Operand byte 1 of STA abx at $8535; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 34103,
   "type": "line",
   "text": "Operand byte 2 of STA abx at $8535; captured operand $FFFF. It is not an instruction entry. This continuation belongs to the routine described at $8433. Rewritten destination operand of STA abs, X at $8432, not a callable entry. Effect renderer uses $82C0/$82C1 as bitmap row destination, copying three repeated eight-byte-spaced patterns from $82D7 with selector $82BF. Alternate mode $8488 masks top/bottom boundary bytes and copies the middle bytes from ( $7E ). Each displayed row advances destination by one, adding $0138 on an eight-row boundary; source row moves backward thirty bytes. Mode/count state lives at $82BA-$82BF; the final tail can copy further unchanged rows before returning. Meaning of this effect in ordinary play remains open."
  },
  {
   "address": 34187,
   "type": "line",
   "text": "DRAW_TEXT_HIGH_BIT_MERGE ($858B-$858F, then shared $8592-$865F)\nPurpose: enter the shared text renderer with packed-graphic merge mode $80 rather than mode 0.\nInputs: same text count, destination offset, text pointer, row-pointer table, and layout as DRAW_TEXT_TO_BITMAP.\nOutputs: renders through the shared $8592-$865F body using the bit-7 alternate merge path.\nAssumptions: all DRAW_TEXT_TO_BITMAP format assumptions hold; no visual meaning such as inverse or transparency is assigned to the high-bit mode without proof.\nClobbers: same as DRAW_TEXT_TO_BITMAP: A, X, Y, flags, $7A/$7B, $82, $8572-$858A, and packed-blitter scratch.\nHardware changes: writes VIC-visible bitmap through $7CF6; that callee saves/restores interrupt state."
  },
  {
   "address": 34192,
   "type": "line",
   "text": "DRAW_TEXT_TO_BITMAP ($8590-$865F)\nPurpose: expand four-byte font glyphs into a temporary packed graphic and draw a text record into bitmap rows through $7CF6.\nInputs: A character count, X destination offset, text pointer $7E/$7F, bitmap row-pointer table $7C/$7D, destination layout $1C74, and font $231A; entry $8590 selects merge mode 0.\nOutputs: renders the requested characters, advancing destination X by five units per glyph, and updates local descriptor/workspace $8572-$858A; a nonzero leading record control invokes the verified framing/clearing path.\nAssumptions: text bytes are valid font-domain characters at or above $20 and counts/pointers are valid; no finer meaning is assigned to source byte 0.\nClobbers: A, X, Y, flags, $7A/$7B, $82, $8572-$858A, and $7CF6 scratch.\nHardware changes: writes VIC-visible bitmap through $7CF6; that callee preserves the caller's interrupt status."
  },
  {
   "address": 34403,
   "type": "line",
   "text": "Fifty-four little-endian bitmap address words $8663-$86CE, used by the output hook $86CF installed in KERNAL CHROUT vector $0326 by $062F. Its copy loop uses 43 destination words indexed at $8663 and 43 source words beginning eleven entries later at $8679: X=0,2,...,$54, then CPX #$56 stops. For each pair, Y runs $88,$80,...,0 to copy eighteen bytes at eight-byte stride. Processor port $35 exposes physical RAM at these bitmap addresses; this is RAM-to-RAM image copying, not a ROM glyph copy. The surrounding routine maintains the filename entry display and its pixel cursor state $122E/$122F. Last repeated $F32F words are part of the supplied copy window, not separately inferred glyph data."
  },
  {
   "address": 34404,
   "type": "line",
   "text": "High byte of first bitmap address $ECE8 in the 54-word allocation $8663-$86CE. Destination/source windows overlap in that allocation: $8663 plus X and $8679 plus X, for 43 even X values through $54. The input-display output hook at $86CF performs the copy and keyboard display bookkeeping. This alias is neither code nor a second independent array."
  },
  {
   "address": 34425,
   "type": "line",
   "text": "Source-word base for keyboard CHROUT hook $86CF. The 54-word allocation begins $8663 and ends $86CE; source base is 11 words after destination base, and 43 iterations index X=0,2,..84. Thus 43 destination words and 43 source words overlap physically. Each copies 18 bytes at offsets 0,8,..136 from RAM to RAM under port $35. Cursor columns wrap at 70 pixels/fourteen characters. This is not a ROM glyph-pointer table."
  },
  {
   "address": 34426,
   "type": "line",
   "text": "RAM-copy directory word 11, value $EE2B; begins byte 1. Fifty-four words occupy $8663-$86CE. Keyboard hook $86CF uses destination base $8663 and overlapping source base $8679,43 words each, copying 18 bytes in eight-byte strides per word. Source/destination meanings overlap by design, not a second ROM table."
  },
  {
   "address": 34511,
   "type": "line",
   "text": "Custom CHROUT vector handler.\nPurpose: preserve normal KERNAL output for non-screen devices while drawing screen output through the game font/text path.\nInputs: A is the output character; KERNAL output-device byte $9A identifies the destination.\nOutputs: character rendered or forwarded; caller registers and banking restored.\nAssumptions: game glyph/text state is initialized.\nClobbers: internal A, X, Y and flags only; saved registers are restored before return.\nHardware changes: selects $01=$35 while accessing game RAM, then restores $01=$37; non-screen output jumps to KERNAL $F1CA."
  },
  {
   "address": 34737,
   "type": "line",
   "text": "SWAP_GAME_AND_KERNAL_ZERO_PAGE ($87B1-$87CB)\nPurpose: exchange zero-page $0002-$00FF with its saved counterpart in underlying RAM $DF02-$DFFF.\nInputs: paired game/KERNAL zero-page images and a usable stack.\nOutputs: swaps all 254 paired bytes, deliberately excludes CPU-port bytes $00/$01, and leaves $01=$35.\nAssumptions: $01=$34 exposes underlying RAM at $DFxx; the stack is usable; the caller owns any later interrupt-state restoration.\nClobbers: A, X, flags, stack transiently, $0002-$00FF, $DF02-$DFFF, and CPU port $01; Y is preserved.\nHardware changes: executes SEI, writes $01=$34 then $35, hides I/O/ROM during the swap, and leaves interrupts disabled."
  },
  {
   "address": 34764,
   "type": "line",
   "text": "Phase-qualified overlay at $87CC-$95DB. Before play, bytes contain common title/menu strings, complete French source $8965-$9131, and the first $4AA bytes of German source $9132-$997D; localization copy at $9B75-$9BC7 reads them only in menu phase. In play, $3F76 treats the exact 3,600 bytes as a 120x30-byte linear framebuffer and $4B24 swizzles it into the VIC bitmap. Save/load transiently reuses prefix $87CC-$8A57 for its 652-byte payload. These are phase/call-path occupants, never simultaneous timeless asset roles; German tail $95DC-$997D remains outside the framebuffer."
  },
  {
   "address": 35173,
   "type": "line",
   "text": "french_language_source_8965 ($8965-$9131). Complete meaningful French riddle-pointer/message/UI/riddle block. Menu code copies eight pages plus 81 bytes to active localization $13EE-$1C3E; pointers are destination-logical and remain valid after copying. Menu-phase source only; overlapping bytes become framebuffer during play."
  },
  {
   "address": 37170,
   "type": "line",
   "text": "german_language_source_9132 ($9132-$997D). Complete meaningful German riddle-pointer/message/UI/riddle block. Menu code copies eight pages plus 81 bytes to $13EE-$1C3E; destination-logical pointers remain valid. Source prefix $9132-$95DB overlaps the later play framebuffer, while residual tail $95DC-$997D remains outside it."
  },
  {
   "address": 38364,
   "type": "line",
   "text": "Retained German-language source tail $95DC-$997D,930 bytes, outside the later 3600-byte viewport $87CC-$95DB. It is the suffix of localized message/UI/riddle allocation $9132-$997D; menu language copier $9B75-$9BC7 relocates the full source to logical destination $13EE-$1C3E. It remains loaded in play but is not part of the generated viewport. Initial hand-over/menu/play boundary audit checks this physical extent."
  },
  {
   "address": 39294,
   "type": "line",
   "text": "menu_bitmap_ptrs_997e ($997E-$9A43). 99 little-endian VIC-bitmap destination pointers for title/menu text layout, used by menu construction $9A44-$9C82 through text blitter $8590/$7CF6."
  },
  {
   "address": 39492,
   "type": "line",
   "text": "BUILD_MAIN_MENU ($9A44-$9B1B)\nPurpose: construct the main-menu display and initialize title/menu text state before input selection.\nInputs: installed language text, bitmap/screen/color layout and menu assets.\nOutputs: rendered menu and initialized selection fields.\nAssumptions: VIC-II bank $C000-$FFFF, screen $C400 and bitmap $E000 are active.\nClobbers: A, X, Y, flags and display/text state.\nHardware changes: writes screen, bitmap and color data through renderer helpers.\nEvidence: observed menu construction and display writes."
  },
  {
   "address": 39708,
   "type": "line",
   "text": "RUN_TITLE_AND_CHARACTER_MENUS ($9B1C-$9CEB)\nPurpose: select English/French/German, require Return, then select Prince or Princess and launch a new game.\nInputs: decoded controls from READ_CONTROL_INPUT; menu text tables at $13EE, $8965 and $9132.\nOutputs: zero-based language at $8821; selected language copied into active text; prince/princess flag at $246E; call to INITIALIZE_NEW_SESSION.\nAssumptions: selections 1-3 are valid for language and 1-2 for character.\nClobbers: A, X, Y, flags and menu/text state.\nHardware changes: input uses CIA scanning and presentation updates the VIC-II display.\nEvidence: exact selection/copy/launch branches observed; game-bit-32 effect verified in initialization/FCL."
  },
  {
   "address": 40192,
   "type": "line",
   "text": "Loaded database $9D00-$BF8F, 8848 bytes: byte zero declares 34 areas and word +1 gives $2290-byte size. Area offset words begin at +$4F; the five global-condition streams begin at +$93 and end immediately before the first area $9DD2. Independently walking all 34 headers and 546 object records reaches every declared condition-list boundary exactly. CPU area selection uses direct base-relative offsets, without a file-format relocation bias."
  },
  {
   "address": 40195,
   "type": "line",
   "text": "Initial area ID 1 at header+3, copied by $4EB3 to $2429. Header+4 at $9D04 supplies initial entrance 26 copied to $1066. Header+5 strength 16 is copied to $2455. Following $9D06-$9D41 is fifteen four-byte dither patterns read by $3F86/$4CCD; it is a different allocation from those starting-state scalars."
  },
  {
   "address": 40196,
   "type": "line",
   "text": "Initial entrance ID 26, copied by $4EB9 to $1066 after object flag reset. Next $9D05 initial strength 16 copied to $2455. Both are starting-state scalars; the dither-pattern allocation begins $9D06."
  },
  {
   "address": 40197,
   "type": "line",
   "text": "Authored initial strength 16 copied to runtime $2455 by $4E3C/$4E3F. Following $9D06 begins sixty dither-pattern bytes, a separate allocation."
  },
  {
   "address": 40198,
   "type": "line",
   "text": "Fifteen four-byte packed two-bit dither patterns $9D06-$9D41,60 bytes. Pattern 0 is all zero, pattern 1 all $FF; further patterns alternate two-bit fields in successive raster rows. Scanline renderer $3F86 and background fill $4CCD index this base. Direct byte parse verifies fifteen groups and exact boundary at demo pointer $9D42. These choose fill patterns, not fourteen inferred colour records."
  },
  {
   "address": 40258,
   "type": "line",
   "text": "Two little-endian Freescape database-relative pointers. $1EC2 selects demo data at $BBC2; $0093 selects the global condition bytecode at $9D93. Both targets are computed from database base $9D00; runtime code at $765E independently performs the same base addition for the second pointer."
  },
  {
   "address": 40260,
   "type": "line",
   "text": "Little-endian relative offset $0093. Setup $765E adds database base $109C/$109D and stores resulting global-condition pointer $9D93 in $1096/$1097. Independent parse verifies its five counted condition streams and exact boundary at first area $9DD2."
  },
  {
   "address": 40261,
   "type": "line",
   "text": "High byte zero of base-relative global-condition offset $0093 at $9D44/$9D45. Setup $765E adds $9D00 to obtain $9D93. Independent counted-stream parse checks all five global conditions; next $9D46 starts raw movement parameters."
  },
  {
   "address": 40262,
   "type": "line",
   "text": "Runtime Freescape engine parameters. $9D46-$9D48 are raw crawl/walk/run distances 30/60/240; SPIRITS_TARGET $9D49 is 21; FALL_DAMAGE_SCALE_MULTIPLIER $9D4A is 2; FLOOR_STEP_SCALE_MULTIPLIER $9D4B is 1; VIEW_ANGLE_STEP $9D4C is 3. $9D4D/$9D4E have no direct or encoded readers and retain no invented role."
  },
  {
   "address": 40263,
   "type": "line",
   "text": "Raw walk distance 60 at $9D47; neighbouring crawl 30$9D46 and run 240$9D48. $9D49 target spirits 21, $9D4A fall multiplier 2, $9D4B step multiplier 1, $9D4C angle step 3. Last two bytes $9D4D/$9D4E both 3 have unresolved roles; no claim that they have no indirect reader. Area offsets begin $9D4F."
  },
  {
   "address": 40264,
   "type": "line",
   "text": "Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40265,
   "type": "line",
   "text": "Byte $9D49, captured value $15, inside the bounded allocation described at $9D48; offset 1. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40266,
   "type": "line",
   "text": "Byte $9D4A, captured value $02, inside the bounded allocation described at $9D48; offset 2. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40267,
   "type": "line",
   "text": "Byte $9D4B, captured value $01, inside the bounded allocation described at $9D48; offset 3. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40268,
   "type": "line",
   "text": "Byte $9D4C, captured value $03, inside the bounded allocation described at $9D48; offset 4. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40269,
   "type": "line",
   "text": "Byte $9D4D, captured value $03, inside the bounded allocation described at $9D48; offset 5. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40270,
   "type": "line",
   "text": "Byte $9D4E, captured value $03, inside the bounded allocation described at $9D48; offset 6. Run distance 240 at $9D48. Remaining five header parameters: spirits target 21, fall multiplier 2, floor step multiplier 1, view angle step 3, then two retained value 3 bytes with unresolved roles. Offset directory starts $9D4F; no absence claim is attached to the unresolved bytes."
  },
  {
   "address": 40271,
   "type": "line",
   "text": "Thirty-four little-endian offsets relative to $9D00, occupying $9D4F-$9D92. All are unique and strictly increasing in physical order; area IDs are not sorted. $76D0 scans the pointer table via $109E/$109F, adds base $109C/$109D and compares header byte +2 with requested ID $2429. The final area ends at database base plus size $2290."
  },
  {
   "address": 40339,
   "type": "line",
   "text": "Five global FCL streams through $9DD1. Layout is stream count, then one-byte stream length followed by that many token bytes, repeated. $4AB7 dispatches them after the active-object script and before area conditions. Independent token-length parsing exhausts all five payloads and ends at first area header $9DD2."
  },
  {
   "address": 40402,
   "type": "line",
   "text": "Area ID 1, database directory slot 0, bytes $9DD2-$9FE4. Eight-byte header: sky/floor flags +0, object count +1 (35), area ID +2, condition offset word +3 relative to this header, movement scale +5 (1), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $9FE4; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 40932,
   "type": "line",
   "text": "Counted condition list for area 1: first byte is stream count, then byte length and payload for each stream. $9FE4-$9FE4, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 40933,
   "type": "line",
   "text": "Area ID 255, database directory slot 1, bytes $9FE5-$A4F1. Eight-byte header: sky/floor flags +0, object count +1 (100), area ID +2, condition offset word +3 relative to this header, movement scale +5 (1), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A4F1; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 40960,
   "type": "line",
   "text": "Continuation of area 255 ($9FE5), crossing the ledger memory-map edge at $A000. This address is extent byte +5 of object index 1, which begins $9FFB and is twelve bytes long; object ID/total-size and type-dependent payload follow. The next object begins $A007. The complete global allocation contains 100 records and reaches its empty condition list exactly; independent parsing checks all boundaries. This is authored database geometry/conditions, not BASIC ROM or a separate memory buffer."
  },
  {
   "address": 41738,
   "type": "line",
   "text": "Object records 66 through 99 of area 255, beginning $A30A; total-length byte +8 advances to each following record. This bounded group contains 34 records through $A4F0. Common nine-byte header and type-dependent payload follow the area description at $9FE5; condition list is separate at $A4F1. Independent full-database traversal checks every record boundary, ID, type and length. Detailed geometry and event behavior require their consumer routines."
  },
  {
   "address": 42225,
   "type": "line",
   "text": "Counted condition list for area 255: first byte is stream count, then byte length and payload for each stream. $A4F1-$A4F1, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 42226,
   "type": "line",
   "text": "Area ID 4, database directory slot 2, bytes $A4F2-$A5D1. Eight-byte header: sky/floor flags +0, object count +1 (14), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A5D1; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 42449,
   "type": "line",
   "text": "Counted condition list for area 4: first byte is stream count, then byte length and payload for each stream. $A5D1-$A5D1, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 42450,
   "type": "line",
   "text": "Area ID 5, database directory slot 3, bytes $A5D2-$A69D. Eight-byte header: sky/floor flags +0, object count +1 (14), area ID +2, condition offset word +3 relative to this header, movement scale +5 (12), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A69D; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 42653,
   "type": "line",
   "text": "Counted condition list for area 5: first byte is stream count, then byte length and payload for each stream. $A69D-$A69D, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 42654,
   "type": "line",
   "text": "Area ID 9, database directory slot 4, bytes $A69E-$A75F. Eight-byte header: sky/floor flags +0, object count +1 (3), area ID +2, condition offset word +3 relative to this header, movement scale +5 (4), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A75F; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 42847,
   "type": "line",
   "text": "Counted condition list for area 9: first byte is stream count, then byte length and payload for each stream. $A75F-$A75F, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 42848,
   "type": "line",
   "text": "Area ID 17, database directory slot 5, bytes $A760-$A873. Eight-byte header: sky/floor flags +0, object count +1 (19), area ID +2, condition offset word +3 relative to this header, movement scale +5 (14), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A873; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 43123,
   "type": "line",
   "text": "Counted condition list for area 17: first byte is stream count, then byte length and payload for each stream. $A873-$A873, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 43124,
   "type": "line",
   "text": "Area ID 18, database directory slot 6, bytes $A874-$A906. Eight-byte header: sky/floor flags +0, object count +1 (11), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $A906; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 43270,
   "type": "line",
   "text": "Counted condition list for area 18: first byte is stream count, then byte length and payload for each stream. $A906-$A906, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 43271,
   "type": "line",
   "text": "Area ID 21, database directory slot 7, bytes $A907-$AA5D. Eight-byte header: sky/floor flags +0, object count +1 (20), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AA5A; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 43610,
   "type": "line",
   "text": "Counted condition list for area 21: first byte is stream count, then byte length and payload for each stream. $AA5A-$AA5D, 4 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 43614,
   "type": "line",
   "text": "Area ID 14, database directory slot 8, bytes $AA5E-$AACC. Eight-byte header: sky/floor flags +0, object count +1 (7), area ID +2, condition offset word +3 relative to this header, movement scale +5 (10), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AAC6; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 43718,
   "type": "line",
   "text": "Counted condition list for area 14: first byte is stream count, then byte length and payload for each stream. $AAC6-$AACC, 7 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 43725,
   "type": "line",
   "text": "Area ID 19, database directory slot 9, bytes $AACD-$AC08. Eight-byte header: sky/floor flags +0, object count +1 (23), area ID +2, condition offset word +3 relative to this header, movement scale +5 (6), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AC08; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 44040,
   "type": "line",
   "text": "Counted condition list for area 19: first byte is stream count, then byte length and payload for each stream. $AC08-$AC08, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 44041,
   "type": "line",
   "text": "Area ID 16, database directory slot 10, bytes $AC09-$AD0A. Eight-byte header: sky/floor flags +0, object count +1 (13), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AD07; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 44295,
   "type": "line",
   "text": "Counted condition list for area 16: first byte is stream count, then byte length and payload for each stream. $AD07-$AD0A, 4 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 44299,
   "type": "line",
   "text": "Area ID 15, database directory slot 11, bytes $AD0B-$ADA5. Eight-byte header: sky/floor flags +0, object count +1 (8), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $ADA5; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 44453,
   "type": "line",
   "text": "Counted condition list for area 15: first byte is stream count, then byte length and payload for each stream. $ADA5-$ADA5, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 44454,
   "type": "line",
   "text": "Area ID 6, database directory slot 12, bytes $ADA6-$AEED. Eight-byte header: sky/floor flags +0, object count +1 (23), area ID +2, condition offset word +3 relative to this header, movement scale +5 (6), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AEDD; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 44765,
   "type": "line",
   "text": "Counted condition list for area 6: first byte is stream count, then byte length and payload for each stream. $AEDD-$AEED, 17 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 44782,
   "type": "line",
   "text": "Area ID 24, database directory slot 13, bytes $AEEE-$AF6F. Eight-byte header: sky/floor flags +0, object count +1 (8), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AF6F; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 44911,
   "type": "line",
   "text": "Counted condition list for area 24: first byte is stream count, then byte length and payload for each stream. $AF6F-$AF6F, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 44912,
   "type": "line",
   "text": "Area ID 22, database directory slot 14, bytes $AF70-$AFF0. Eight-byte header: sky/floor flags +0, object count +1 (6), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $AFF0; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 45040,
   "type": "line",
   "text": "Counted condition list for area 22: first byte is stream count, then byte length and payload for each stream. $AFF0-$AFF0, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 45041,
   "type": "line",
   "text": "Area ID 2, database directory slot 15, bytes $AFF1-$B281. Eight-byte header: sky/floor flags +0, object count +1 (47), area ID +2, condition offset word +3 relative to this header, movement scale +5 (2), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B281; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 45697,
   "type": "line",
   "text": "Counted condition list for area 2: first byte is stream count, then byte length and payload for each stream. $B281-$B281, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 45698,
   "type": "line",
   "text": "Area ID 7, database directory slot 16, bytes $B282-$B370. Eight-byte header: sky/floor flags +0, object count +1 (16), area ID +2, condition offset word +3 relative to this header, movement scale +5 (12), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B370; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 45936,
   "type": "line",
   "text": "Counted condition list for area 7: first byte is stream count, then byte length and payload for each stream. $B370-$B370, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 45937,
   "type": "line",
   "text": "Area ID 13, database directory slot 17, bytes $B371-$B53F. Eight-byte header: sky/floor flags +0, object count +1 (13), area ID +2, condition offset word +3 relative to this header, movement scale +5 (4), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B4D4; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 46292,
   "type": "line",
   "text": "Counted condition list for area 13: first byte is stream count, then byte length and payload for each stream. $B4D4-$B53F, 108 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 46400,
   "type": "line",
   "text": "Area ID 8, database directory slot 18, bytes $B540-$B668. Eight-byte header: sky/floor flags +0, object count +1 (20), area ID +2, condition offset word +3 relative to this header, movement scale +5 (6), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B660; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 46688,
   "type": "line",
   "text": "Counted condition list for area 8: first byte is stream count, then byte length and payload for each stream. $B660-$B668, 9 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 46697,
   "type": "line",
   "text": "Area ID 3, database directory slot 19, bytes $B669-$B747. Eight-byte header: sky/floor flags +0, object count +1 (16), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B747; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 46919,
   "type": "line",
   "text": "Counted condition list for area 3: first byte is stream count, then byte length and payload for each stream. $B747-$B747, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 46920,
   "type": "line",
   "text": "Area ID 12, database directory slot 20, bytes $B748-$B7F2. Eight-byte header: sky/floor flags +0, object count +1 (14), area ID +2, condition offset word +3 relative to this header, movement scale +5 (5), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B7F2; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 47090,
   "type": "line",
   "text": "Counted condition list for area 12: first byte is stream count, then byte length and payload for each stream. $B7F2-$B7F2, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 47091,
   "type": "line",
   "text": "Area ID 10, database directory slot 21, bytes $B7F3-$B861. Eight-byte header: sky/floor flags +0, object count +1 (7), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $B861; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 47201,
   "type": "line",
   "text": "Counted condition list for area 10: first byte is stream count, then byte length and payload for each stream. $B861-$B861, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 47202,
   "type": "line",
   "text": "Area ID 11, database directory slot 22, bytes $B862-$BA83. Eight-byte header: sky/floor flags +0, object count +1 (40), area ID +2, condition offset word +3 relative to this header, movement scale +5 (4), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BA80; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 47744,
   "type": "line",
   "text": "Counted condition list for area 11: first byte is stream count, then byte length and payload for each stream. $BA80-$BA83, 4 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 47748,
   "type": "line",
   "text": "Area ID 20, database directory slot 23, bytes $BA84-$BB34. Eight-byte header: sky/floor flags +0, object count +1 (10), area ID +2, condition offset word +3 relative to this header, movement scale +5 (14), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BB34; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 47924,
   "type": "line",
   "text": "Counted condition list for area 20: first byte is stream count, then byte length and payload for each stream. $BB34-$BB34, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 47925,
   "type": "line",
   "text": "Area ID 25, database directory slot 24, bytes $BB35-$BBB9. Eight-byte header: sky/floor flags +0, object count +1 (7), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BBB9; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48057,
   "type": "line",
   "text": "Counted condition list for area 25: first byte is stream count, then byte length and payload for each stream. $BBB9-$BBB9, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48058,
   "type": "line",
   "text": "Area ID 26, database directory slot 25, bytes $BBBA-$BC1D. Eight-byte header: sky/floor flags +0, object count +1 (7), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BC1D; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48066,
   "type": "line",
   "text": "First object record of area 26, seventeen bytes at $BBC2-$BBD2: type zero, object ID $FF. Header positions/extent bytes and additional bytes name global objects enabled by $7C5A, which skips byte +7 (the record ID) while reading this allowlist. The following six local records include three nine-byte type-2 records with IDs 125-127. This record payload is not residual FCL; area 26 condition count is zero at $BC1D."
  },
  {
   "address": 48157,
   "type": "line",
   "text": "Counted condition list for area 26: first byte is stream count, then byte length and payload for each stream. $BC1D-$BC1D, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48158,
   "type": "line",
   "text": "Area ID 27, database directory slot 26, bytes $BC1E-$BCB1. Eight-byte header: sky/floor flags +0, object count +1 (6), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BCB1; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48305,
   "type": "line",
   "text": "Counted condition list for area 27: first byte is stream count, then byte length and payload for each stream. $BCB1-$BCB1, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48306,
   "type": "line",
   "text": "Area ID 28, database directory slot 27, bytes $BCB2-$BD1F. Eight-byte header: sky/floor flags +0, object count +1 (5), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BD1F; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48415,
   "type": "line",
   "text": "Counted condition list for area 28: first byte is stream count, then byte length and payload for each stream. $BD1F-$BD1F, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48416,
   "type": "line",
   "text": "Area ID 23, database directory slot 28, bytes $BD20-$BDB8. Eight-byte header: sky/floor flags +0, object count +1 (8), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BDB8; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48568,
   "type": "line",
   "text": "Counted condition list for area 23: first byte is stream count, then byte length and payload for each stream. $BDB8-$BDB8, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48569,
   "type": "line",
   "text": "Area ID 29, database directory slot 29, bytes $BDB9-$BE14. Eight-byte header: sky/floor flags +0, object count +1 (6), area ID +2, condition offset word +3 relative to this header, movement scale +5 (16), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BE14; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48660,
   "type": "line",
   "text": "Counted condition list for area 29: first byte is stream count, then byte length and payload for each stream. $BE14-$BE14, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48661,
   "type": "line",
   "text": "Area ID 30, database directory slot 30, bytes $BE15-$BE6F. Eight-byte header: sky/floor flags +0, object count +1 (5), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BE6F; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48751,
   "type": "line",
   "text": "Counted condition list for area 30: first byte is stream count, then byte length and payload for each stream. $BE6F-$BE6F, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48752,
   "type": "line",
   "text": "Area ID 31, database directory slot 31, bytes $BE70-$BEBA. Eight-byte header: sky/floor flags +0, object count +1 (4), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BEBA; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48826,
   "type": "line",
   "text": "Counted condition list for area 31: first byte is stream count, then byte length and payload for each stream. $BEBA-$BEBA, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48827,
   "type": "line",
   "text": "Area ID 32, database directory slot 32, bytes $BEBB-$BF42. Eight-byte header: sky/floor flags +0, object count +1 (7), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BF36; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 48950,
   "type": "line",
   "text": "Counted condition list for area 32: first byte is stream count, then byte length and payload for each stream. $BF36-$BF42, 13 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 48963,
   "type": "line",
   "text": "Area ID 33, database directory slot 33, bytes $BF43-$BF8F. Eight-byte header: sky/floor flags +0, object count +1 (4), area ID +2, condition offset word +3 relative to this header, movement scale +5 (8), display attribute +6, name index +7. Objects begin at +8; each uses common fields flags/type, three position bytes, three extent bytes, ID and total length at +8. Walking exactly the declared objects lands at $BF8F; the following counted condition list exhausts the area. Local type-0 ID $FF can contain global-object allowlist bytes rather than residual FCL."
  },
  {
   "address": 49039,
   "type": "line",
   "text": "Counted condition list for area 33: first byte is stream count, then byte length and payload for each stream. $BF8F-$BF8F, 1 bytes including count and lengths. All payloads independently parse using $13AE token lengths and the list ends at this area's physical boundary. Runtime root is $242F/$2430, consumed by $4AED-$4B23. A zero count is an empty list, not a terminator for object traversal."
  },
  {
   "address": 49152,
   "type": "line",
   "text": "VIC sprite slot 0, $C000-$C03F: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49216,
   "type": "line",
   "text": "VIC sprite slot 1, $C040-$C07F: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49280,
   "type": "line",
   "text": "VIC sprite slot 2, $C080-$C0BF: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49344,
   "type": "line",
   "text": "VIC sprite slot 3, $C0C0-$C0FF: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49408,
   "type": "line",
   "text": "VIC sprite slot 4, $C100-$C13F: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49472,
   "type": "line",
   "text": "VIC sprite slot 5, $C140-$C17F: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49536,
   "type": "line",
   "text": "VIC sprite slot 6, $C180-$C1BF: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49600,
   "type": "line",
   "text": "VIC sprite slot 7, $C1C0-$C1FF: 63 pixel bytes plus one pad byte. Screen pointer directory $C7F8-$C7FF contains 1,0,2,3,4,5,6,7, selecting slots zero/one in swapped order. Initializer $479A clears CIA 2 bank bits to select $C000, so pointer times 64 gives this physical address. Slots 0-2 use single-colour mode and slots 3-7 multicolour after $4788; the snapshot bytes are identical between menu and play. Detailed role and visible output remain to be checked against sprite setup and gameplay."
  },
  {
   "address": 49664,
   "type": "line",
   "text": "Retained 53-byte startup routine, not sprite artwork. SEI, port $38, X=0; reads each of four physical RAM pages $D800-$DBFF, temporarily decrements port to $37 to write the corresponding colour hardware address, then increments it back. Iterates all 256 X values, leaves port $38 and jumps to $473B initialization. A controlled native run with hardware colours initially zero reaches $473B and reproduces every one of the 1024 shadow low nibbles; physical shadow stays unchanged. Presence is unchanged across entry/menu/play snapshots; this call test establishes its operation, not a fresh loader invocation trace."
  },
  {
   "address": 49717,
   "type": "line",
   "text": "459 consecutive zero bytes $C235-$C3FF following the retained palette-copy routine ending with JMP $473B at $C232. Identical at cold hand-over, menu and gameplay. The initial sprite pointer table selects offsets $000-$1C0 in bank $C000, so this tail is outside its eight selected slots. Described as captured zero padding; no blanket claim about all possible future readers/writers is made."
  },
  {
   "address": 50176,
   "type": "line",
   "text": "Initial VIC bitmap colour matrix, 1000 bytes $C400-$C7E7. At cold hand-over it is already loaded with the surrounding HUD artwork; the settled gameplay capture matches it exactly, whereas language-menu drawing changes 450 cells. For each eight-by-eight cell, high nibble selects pair value 1 and low nibble pair value 2; third colour comes from colour RAM. $61A8 rewrites the 30x15 viewport cells beginning $C4A5 from current area attributes, so those output spans are excluded separately. Sprite pointers begin $C7F8."
  },
  {
   "address": 50941,
   "type": "line",
   "text": "Initial bitmap colour matrix cell at character column 5, row 19, beneath the 30x15 viewport. It contains the two colour nibbles for physical x40-47, y 152-159. The following cells belong to the loaded HUD matrix through $C7E7, followed by padding and sprite pointers. $61A8 can leave its self-modified store operand numerically equal to $C6FD after completing the fifteenth row; it does not write an extra row there."
  },
  {
   "address": 51176,
   "type": "line",
   "text": "Sixteen zero padding bytes between the 1000-byte colour matrix ending $C7E7 and eight VIC sprite pointers at $C7F8. Zero at cold entry, menu and gameplay; they are outside the visible matrix and are not part of a sprite shape."
  },
  {
   "address": 51192,
   "type": "line",
   "text": "Eight loaded VIC-relative sprite pointer bytes 1,0,2,3,4,5,6,7. In bank $C000 they resolve to $C040,$C000,$C080,$C0C0,$C100,$C140,$C180,$C1C0. Each slot is 64 bytes, with 63 pixel bytes and padding. These pointer bytes are identical at cold entry, menu and play. Sprite visibility and position are separate VIC registers; slot 8 at $C200 is not selected by this table."
  },
  {
   "address": 51200,
   "type": "line",
   "text": "SID initialization API entry.\nPurpose: Tail-transfer from the stable engine entry to SID_PLAYER_INITIALIZE.\nInputs: The sound index and player state expected by SID_PLAYER_INITIALIZE.\nOutputs: Initialized SID player state.\nAssumptions: SID player tables and state at $C806-$C884 are resident.\nClobbers: Those of SID_PLAYER_INITIALIZE.\nHardware changes: The callee initializes SID state; later ticks write SID registers."
  },
  {
   "address": 51203,
   "type": "line",
   "text": "SID tick API entry.\nPurpose: Tail-transfer from the stable engine entry to SID_PLAYER_TICK.\nInputs: Initialized SID player state.\nOutputs: Advanced player state and SID voice values.\nAssumptions: SID player tables and state at $C806-$C884 are resident.\nClobbers: Those of SID_PLAYER_TICK.\nHardware changes: The callee writes SID registers $D400-$D418."
  },
  {
   "address": 51206,
   "type": "line",
   "text": "SID player state.\nPurpose: hold enable flags, per-voice counters, pointers, decoded commands, and self-modifying operands used by $C885-$CFD3.\nExtent: $C806-$C884.\nHardware: state drives writes to SID $D400-$D418."
  },
  {
   "address": 51333,
   "type": "line",
   "text": "SID player tick.\nPurpose: advance the three-voice sequence/effect state in $C806-$C884 and emit the next SID register values.\nInputs: initialized player state, tune pointers, and enable fields.\nOutputs: advanced envelopes, counters, pointers, and SID voice registers.\nAssumptions: Caller-established runtime state described in Inputs is valid.\nClobbers: A, X, Y, flags and SID working state.\nHardware changes: writes SID registers in $D400-$D418."
  },
  {
   "address": 51729,
   "type": "line",
   "text": "SID_UPDATE_ONE_VOICE ($CA11-$CF1A; command continuations $CF79-$CFBD)\nPurpose: interpret one voice's order/pattern commands, select instrument/frequency, advance note/gate/duration and modulation state, and prepare the seven SID-register shadow bytes used by the outer tick.\nInputs: current voice $C809=0-2, SID register offset $C808=0/7/14, stream positions/pointers $C80A+ and $F7-$FC, and initialized player tables/state $C806-$C884.\nOutputs: advances one voice's shadow bytes, counters, and pointers. Normal paths return through $CAE4/$CC7F/$CC9E/$CF1A. A global end marker clears $C806 and all three voice controls, deliberately discards its direct caller's return address, and exits the enclosing tick.\nAssumptions: stream/table pointers and command encoding are valid; $CF1B-$CF78 is the separate SID initializer, while $CF79-$CFBD are noncontiguous command-tail continuations. Musical names for individual proprietary commands are not claimed without score tracing.\nClobbers: A, X, Y, flags, extensive $C806-$C884 state, self-modified operands $CA55/$CF7C/$CF8B/$CFA6, dispatch bytes, and stack on global-end escape.\nHardware changes: command $A0 can clear selected voice control $D404 plus offset 0/7/14; global end clears $D404/$D40B/$D412. The outer tick $C885-$CA10 performs the normal $D400-$D418 flush."
  },
  {
   "address": 51798,
   "type": "line",
   "text": "Patched address operand of LDA abs, Y at $CA55, current order-stream base selected for the voice. Reads command and advances per-voice order index $C80A. $FF stops music and clears all three gate controls; $E8 fetches a filter value via($FD). Other high-bit commands select low 5 parameter and rewrite branch offset $CA98 to one of four handlers $CF88/$CFB4/$CF79/$CF97. Nonnegative values select phrase directory entries $0D07/$0D3C and reset phrase index. Independent order parsing bounds the supplied streams; sustained native playback remains separate."
  },
  {
   "address": 51799,
   "type": "line",
   "text": "Operand byte 2 of LDA aby at $CA55; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CA56. Patched address operand of LDA abs, Y at $CA55, current order-stream base selected for the voice. Reads command and advances per-voice order index $C80A. $FF stops music and clears all three gate controls; $E8 fetches a filter value via($FD). Other high-bit commands select low 5 parameter and rewrite branch offset $CA98 to one of four handlers $CF88/$CFB4/$CF79/$CF97. Nonnegative values select phrase directory entries $0D07/$0D3C and reset phrase index. Independent order parsing bounds the supplied streams; sustained native playback remains separate."
  },
  {
   "address": 51864,
   "type": "line",
   "text": "Operand byte 1 of BEQ rel at $CA97; captured operand $0000. It is not an instruction entry. This continuation belongs to the routine described at $CA56. Patched address operand of LDA abs, Y at $CA55, current order-stream base selected for the voice. Reads command and advances per-voice order index $C80A. $FF stops music and clears all three gate controls; $E8 fetches a filter value via($FD). Other high-bit commands select low 5 parameter and rewrite branch offset $CA98 to one of four handlers $CF88/$CFB4/$CF79/$CF97. Nonnegative values select phrase directory entries $0D07/$0D3C and reset phrase index. Independent order parsing bounds the supplied streams; sustained native playback remains separate."
  },
  {
   "address": 51869,
   "type": "line",
   "text": "Four-byte-spaced order command branch slot, JMP $CFB4 at $CA9D. Preceding NOP padding $CA9C and mutable branch operand $CA98 form the dispatch layout. Handler stores low 5 parameter in per-voice wait counter and decrements it, then resumes order scan $CA52. It is a branch target, not sequential fallthrough from another slot."
  },
  {
   "address": 51873,
   "type": "line",
   "text": "Order command dispatch JMP $CF79 at $CAA1, selected by rewritten relative branch $CA97/$CA98. Handler reads next order byte into per-voice frequency offset $C83F and increments order index. Adjacent four-byte slots dispatch transpose, wait and instrument remapping."
  },
  {
   "address": 51877,
   "type": "line",
   "text": "Final branch of the self-modified order-command dispatch beginning $CA86: JMP $CF97 remaps one of eight instrument slots. $CAA8 then handles ordinary order entries as phrase indices through split directory $0D07/$0D3C. Phrase decoder $CAC1 handles wait $A0, filter voice mask $A1/$A2, pitch slide commands $C0-$FE, vibrato $90-$BF, instrument $80-$8F and note bytes below $80. Notes include following duration byte; $FF ends a phrase, returning to the order list. This is a continuation inside the player, not a separate initialization routine."
  },
  {
   "address": 52056,
   "type": "line",
   "text": "Instrument command low nibble plus voice base (0,8,16) indexes remap table $1017. Remapped byte selects a ten-byte record based at $0F15: pulse high/waveform/ADSR and effect parameters are loaded into channel state. Resets pulse, waveform and modulation counters and advances phrase position by one before parsing the next command."
  },
  {
   "address": 52060,
   "type": "line",
   "text": "Immediate operand of ADC at $CB5B, rewritten to 0,8,16 by the three-voice tick dispatcher. Added directly to instrument command low nibble, it selects the corresponding remapping slot at $1017; the static captured value sixteen is the third voice base, not an additional constant. Continuation reads ten bytes of instrument state from $0F15 plus remapped offset. Default offsets increase by nine, so these access windows overlap by one byte. This is a mutable operand, not a separate routine."
  },
  {
   "address": 52161,
   "type": "line",
   "text": "Adds transpose $C80D+voice and twenty to the note byte, indexes split frequency tables $065A/$06BA, adds fine offset $C83F, and sets gate bit. Reads duration from the following phrase byte and advances position by two. Initializes configured waveform, pulse, vibrato and slide counters; note duration is installed at $C830+voice."
  },
  {
   "address": 52352,
   "type": "line",
   "text": "Per-tick continuation for an active note. Clears gate at release point, honors voice suppression delay, decrements duration, applies configured pitch slide unless the global synchronization flag is set, and updates pulse modulation from $0FDA. This continuation keeps state in per-voice triplets and cached seven-register groups. Native SID output and song completion remain separate tests."
  },
  {
   "address": 53019,
   "type": "line",
   "text": "SID_PLAYER_INITIALIZE ($CF1B-$CF78)\nPurpose: reset the three-voice player and install the requested selector offset for subsequent SID ticks.\nInputs: A is the selector value; zero is valid for initialization/reset; resident SID tables and the $102F-$1046 seed state are installed.\nOutputs: stores six times the selector in $C813; gate-pulses then clears all three voice-control registers; clears player state $C806-$C884 as encoded, restores seed bytes into $1017-$102E, initializes self-modified player pointers $F7-$FC, and leaves player state/volume byte $C806 and $C82C at $0F.\nAssumptions: selector multiplication addresses the verified per-selector player layout; writable self-modifying and state storage is available.\nClobbers: A, X, flags, $F7-$FC, $1017-$102E, and $C806-$C884; Y is preserved.\nHardware changes: writes $01 then $00 to SID voice-control registers $D404, $D40B, and $D412; it does not change SID master volume $D418."
  },
  {
   "address": 53117,
   "type": "line",
   "text": "Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53118,
   "type": "line",
   "text": "Operand byte 2 of LDA aby at $CF7C; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53132,
   "type": "line",
   "text": "Operand byte 1 of LDA aby at $CF8B; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53133,
   "type": "line",
   "text": "Operand byte 2 of LDA aby at $CF8B; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53159,
   "type": "line",
   "text": "Operand byte 1 of LDA aby at $CFA6; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53160,
   "type": "line",
   "text": "Operand byte 2 of LDA aby at $CFA6; captured operand $0EDA. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53165,
   "type": "line",
   "text": "Operand byte 1 of LDY imm at $CFAC; captured operand $0000. It is not an instruction entry. This continuation belongs to the routine described at $CF7D. Patched operand of LDA abs, Y at $CF7C in order command handler $CF79. Reads one order parameter, increments voice order index and stores at $C83F+voice (frequency offset). Adjacent handlers $CF88 set transposition at $C80D, $CF97 update one live instrument remap slot indexed by low 3 command parameter plus voice base, and $CFB4 set/decrement wait counter. Each jumps back to $CA52 to process the next command; $CFC0 then supplies voice-specific phrase reads through $F7/$F9/$FB."
  },
  {
   "address": 53184,
   "type": "line",
   "text": "SID_READ_CURRENT_VOICE_STREAM_BYTE ($CFC0-$CFD3)\nPurpose: read the byte at the current per-voice pattern position.\nInputs: X voice index 0-2; current offset $C810, X; stream pointers ($F7/$F8), ($F9/$FA), and ($FB/$FC).\nOutputs: A is the selected stream byte, Y is the current stream offset, and X is preserved.\nAssumptions: the voice index and all stream pointers are valid.\nClobbers: A, Y, and flags only.\nHardware changes: none."
  },
  {
   "address": 53204,
   "type": "line",
   "text": "Four-byte constants 01,02,04, FF at $CFD4-$CFD7 after phrase-read helper and before sound-request entry $CFD8. Dispatcher uses the first three as per-voice selections; final $FF is a separate sentinel. Exact consumer/index domain remains open; do not assign this occupant as executable instructions."
  },
  {
   "address": 53208,
   "type": "line",
   "text": "SID_INITIALIZE_IF_ENABLED ($CFD8-$CFE3)\nPurpose: request a one-shot sound only when the game's sound/music gate permits it.\nInputs: requested zero-based sound index in A; gate byte $123A.\nOutputs: when $123A is zero, increments A to the player's one-based index and tail-calls SID initializer $CF1B; otherwise returns without changing the player.\nAssumptions: callers use Castle's internal sound indexes.\nClobbers: X and, on the enabled path, registers/state clobbered by $CF1B.\nHardware changes: enabled path initializes SID player state; later ticks write $D400-$D418.\nEvidence: branch, increment and tail transfer observed; caller sound identities independently verified."
  },
  {
   "address": 53220,
   "type": "line",
   "text": "SID register clear.\nPurpose: silence/reset the first 20 SID registers.\nInputs: none.\nOutputs: $D400-$D413 cleared to zero.\nAssumptions: Caller-established runtime state described in Inputs is valid.\nClobbers: A, Y, flags.\nHardware changes: writes SID voice/filter registers $D400-$D413; master volume $D418 is not part of this loop."
  },
  {
   "address": 55296,
   "type": "line",
   "text": "Physical RAM image of the 1000 initial bitmap third colours at $D800-$DBE7, followed by 24 zero padding bytes. At cold hand-over, all 1000 bytes exactly match the low nibbles of hardware colour RAM read with I/O visible. The RAM shadow is unchanged in menu/play while the game writes colour hardware separately. This is initial authored palette data retained under I/O; a CPU STA $D800 with port $35 addresses the colour chip, not this RAM allocation. The VIC consumes hardware colour RAM rather than reading this shadow as sprite/bitmap pixels."
  },
  {
   "address": 55552,
   "type": "line",
   "text": "Second 256-byte page of physical RAM colour shadow, colour cells 256-511 (40-column cell index). Startup $C200 reads this page with port $38 and writes all low nibbles to hardware colour RAM with port $37. Controlled native copy from initially zero hardware matches all 1024 entries and leaves the shadow unchanged. These RAM bytes are authored initial colours, distinct from I/O at the same CPU addresses."
  },
  {
   "address": 55808,
   "type": "line",
   "text": "Third 256-byte page of physical RAM colour shadow, cells 512-767. $C21B reads RAM while port=$38; $C220 writes hardware colour RAM while port=$37. The controlled loader test matches every entry. Cell 765 has its own $DAFD HUD annotation; physical RAM and I/O occupy different banks despite matching numeric addresses."
  },
  {
   "address": 56061,
   "type": "line",
   "text": "Initial third-colour RAM shadow cell at character column 5, row 19, corresponding to matrix $C6FD and physical x40-47, y 152-159. The shadow continues through $DBE7 with padding afterward. At cold hand-over its low nibble matches hardware colour RAM. A CPU store at $DAFD with I/O visible writes the colour chip; $61A8 can leave its patched operand equal to this address after completing the fifteenth viewport row."
  },
  {
   "address": 56064,
   "type": "line",
   "text": "Fourth 256-byte shadow page. First 232 bytes supply cells 768-999 of the initial 40x25 third-colour plane; last 24 at $DBE8-$DBFF are zero padding. Native startup-copy test covers the whole page and confirms hardware low-nibble output and unchanged physical RAM. $C225 reads this page with RAM visible, $C22A writes it with I/O visible."
  },
  {
   "address": 56296,
   "type": "line",
   "text": "Twenty-four zero bytes $DBE8-$DBFF after the 1000 initial third-colour shadow bytes beginning $D800. They are outside the 40x25 colour plane, and remain zero across cold entry, menu and settled play."
  },
  {
   "address": 57344,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E000-$E3BF, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 57640,
   "type": "line",
   "text": "Loaded bitmap byte $E128 begins eight physical pixels at x=296, y=0, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. IRQ copies the upper 24-byte animation fragment here from $2038/$2068/$2098/$20C8. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 57960,
   "type": "line",
   "text": "Loaded bitmap byte $E268 begins eight physical pixels at x=296, y=8, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. IRQ copies the lower 24-byte animation fragment here from $2050/$2080/$20B0/$20E0. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 58304,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E3C0-$E527, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 58904,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E618-$E667, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 59224,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E758-$E7A7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 59544,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E898-$E8E7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 59557,
   "type": "line",
   "text": "Loaded bitmap byte $E8A5 begins eight physical pixels at x=288, y=53, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. IRQ blink phase writes $80 or $8C here through $7452/$746A. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 59864,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $E9D8-$EA27, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 60184,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $EB18-$EB67, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 60504,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $EC58-$ECA7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 60824,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $ED98-$EDE7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 61144,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $EED8-$EF27, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 61464,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F018-$F067, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 61784,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F158-$F1A7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 61835,
   "type": "line",
   "text": "Loaded bitmap byte $F18B begins eight physical pixels at x=8, y=115, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. IRQ blink phase writes $60 or $63 here through $749B/$74B6. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 62104,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F298-$F2E7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 62424,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F3D8-$F427, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 62744,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F518-$F567, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 63064,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F658-$F6A7, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 63384,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $F798-$FB57, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 63470,
   "type": "line",
   "text": "Loaded bitmap byte $F7EE begins eight physical pixels at x=40, y=158, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63471,
   "type": "line",
   "text": "Loaded bitmap byte $F7EF begins eight physical pixels at x=40, y=159, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63784,
   "type": "line",
   "text": "Loaded bitmap byte $F928 begins eight physical pixels at x=40, y=160, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63785,
   "type": "line",
   "text": "Loaded bitmap byte $F929 begins eight physical pixels at x=40, y=161, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63786,
   "type": "line",
   "text": "Loaded bitmap byte $F92A begins eight physical pixels at x=40, y=162, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63787,
   "type": "line",
   "text": "Loaded bitmap byte $F92B begins eight physical pixels at x=40, y=163, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63788,
   "type": "line",
   "text": "Loaded bitmap byte $F92C begins eight physical pixels at x=40, y=164, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63789,
   "type": "line",
   "text": "Loaded bitmap byte $F92D begins eight physical pixels at x=40, y=165, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63790,
   "type": "line",
   "text": "Loaded bitmap byte $F92E begins eight physical pixels at x=40, y=166, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63791,
   "type": "line",
   "text": "Loaded bitmap byte $F92F begins eight physical pixels at x=40, y=167, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63897,
   "type": "line",
   "text": "Loaded bitmap byte $F999 begins eight physical pixels at x=152, y=161, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63898,
   "type": "line",
   "text": "Loaded bitmap byte $F99A begins eight physical pixels at x=152, y=162, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63899,
   "type": "line",
   "text": "Loaded bitmap byte $F99B begins eight physical pixels at x=152, y=163, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63900,
   "type": "line",
   "text": "Loaded bitmap byte $F99C begins eight physical pixels at x=152, y=164, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63901,
   "type": "line",
   "text": "Loaded bitmap byte $F99D begins eight physical pixels at x=152, y=165, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63902,
   "type": "line",
   "text": "Loaded bitmap byte $F99E begins eight physical pixels at x=152, y=166, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 63903,
   "type": "line",
   "text": "Loaded bitmap byte $F99F begins eight physical pixels at x=152, y=167, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64004,
   "type": "line",
   "text": "Loaded bitmap byte $FA04 begins eight physical pixels at x=256, y=164, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64005,
   "type": "line",
   "text": "Loaded bitmap byte $FA05 begins eight physical pixels at x=256, y=165, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64006,
   "type": "line",
   "text": "Loaded bitmap byte $FA06 begins eight physical pixels at x=256, y=166, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64007,
   "type": "line",
   "text": "Loaded bitmap byte $FA07 begins eight physical pixels at x=256, y=167, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64104,
   "type": "line",
   "text": "Loaded bitmap byte $FA68 begins eight physical pixels at x=40, y=168, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64105,
   "type": "line",
   "text": "Loaded bitmap byte $FA69 begins eight physical pixels at x=40, y=169, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64106,
   "type": "line",
   "text": "Loaded bitmap byte $FA6A begins eight physical pixels at x=40, y=170, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64107,
   "type": "line",
   "text": "Loaded bitmap byte $FA6B begins eight physical pixels at x=40, y=171, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64108,
   "type": "line",
   "text": "Loaded bitmap byte $FA6C begins eight physical pixels at x=40, y=172, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64216,
   "type": "line",
   "text": "Loaded bitmap byte $FAD8 begins eight physical pixels at x=152, y=168, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64320,
   "type": "line",
   "text": "Loaded bitmap byte $FB40 begins eight physical pixels at x=256, y=168, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64344,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $FB58-$FF17, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 64435,
   "type": "line",
   "text": "Loaded bitmap byte $FBB3 begins eight physical pixels at x=48, y=179, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64436,
   "type": "line",
   "text": "Loaded bitmap byte $FBB4 begins eight physical pixels at x=48, y=180, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64437,
   "type": "line",
   "text": "Loaded bitmap byte $FBB5 begins eight physical pixels at x=48, y=181, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64438,
   "type": "line",
   "text": "Loaded bitmap byte $FBB6 begins eight physical pixels at x=48, y=182, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64439,
   "type": "line",
   "text": "Loaded bitmap byte $FBB7 begins eight physical pixels at x=48, y=183, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64502,
   "type": "line",
   "text": "Loaded bitmap byte $FBF6 begins eight physical pixels at x=112, y=182, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64503,
   "type": "line",
   "text": "Loaded bitmap byte $FBF7 begins eight physical pixels at x=112, y=183, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64752,
   "type": "line",
   "text": "Loaded bitmap byte $FCF0 begins eight physical pixels at x=48, y=184, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64753,
   "type": "line",
   "text": "Loaded bitmap byte $FCF1 begins eight physical pixels at x=48, y=185, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64754,
   "type": "line",
   "text": "Loaded bitmap byte $FCF2 begins eight physical pixels at x=48, y=186, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64755,
   "type": "line",
   "text": "Loaded bitmap byte $FCF3 begins eight physical pixels at x=48, y=187, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64756,
   "type": "line",
   "text": "Loaded bitmap byte $FCF4 begins eight physical pixels at x=48, y=188, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64757,
   "type": "line",
   "text": "Loaded bitmap byte $FCF5 begins eight physical pixels at x=48, y=189, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64758,
   "type": "line",
   "text": "Loaded bitmap byte $FCF6 begins eight physical pixels at x=48, y=190, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64759,
   "type": "line",
   "text": "Loaded bitmap byte $FCF7 begins eight physical pixels at x=48, y=191, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64816,
   "type": "line",
   "text": "Loaded bitmap byte $FD30 begins eight physical pixels at x=112, y=184, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With port $37, the vector restoration loop $0634 reads the ROM at this numeric address; these physical RAM bytes instead belong to the loaded bitmap. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64817,
   "type": "line",
   "text": "Loaded bitmap byte $FD31 begins eight physical pixels at x=112, y=185, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64818,
   "type": "line",
   "text": "Loaded bitmap byte $FD32 begins eight physical pixels at x=112, y=186, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64819,
   "type": "line",
   "text": "Loaded bitmap byte $FD33 begins eight physical pixels at x=112, y=187, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64820,
   "type": "line",
   "text": "Loaded bitmap byte $FD34 begins eight physical pixels at x=112, y=188, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 64821,
   "type": "line",
   "text": "Loaded bitmap byte $FD35 begins eight physical pixels at x=112, y=189, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 65072,
   "type": "line",
   "text": "Loaded bitmap byte $FE30 begins eight physical pixels at x=48, y=192, outside the 3D viewport. Subsequent bitmap bytes follow raster-within-cell order: eight bytes per cell and forty cells per character row. Initial cell colours come from $C400 and hardware colour RAM (the retained initial shadow is $D800). Two-bit pairs select the four colours and occupy two physical pixels each. With KERNAL ROM selected this numeric address can have a firmware meaning; the physical RAM shown here is bitmap data. A controlled initialized frame reconstructed from these planes matched all 104448 emulator pixels; the check validates the picture encoding and does not establish a gameplay role for every ornament."
  },
  {
   "address": 65304,
   "type": "line",
   "text": "Loaded HUD bitmap fragment $FF18-$FF3F, outside the blank 3D viewport. Cold hand-over at $476F already contains these bytes; before that first game instruction the complete viewport footprint is zero and all 3918 nonzero bitmap bytes lie outside it. VIC bitmap mode in bank $C000 uses $E000 and colour matrix $C400, with initial third colours represented at $D800. Each cell has eight raster bytes; pairs select background, matrix high nibble, matrix low nibble and colour RAM. Some HUD fields are overwritten as state changes, so compare against the entry image when identifying static artwork."
  },
  {
   "address": 65347,
   "type": "line",
   "text": "KERNAL_RESIDUE_FF43 ($FF43-$FF47) - inactive copied-KERNAL bytes, not executed by this occupant.\nClassified data, not code. These five bytes are a verbatim copy of the KERNAL's pre-dispatch\nsequence (PHP / PLA / AND #$EF / PHA) left in RAM by an earlier phase. In the captured menu\noccupant nothing reaches them: they carry zero incoming references, and the only live entry into\nthe copied dispatcher is the hardware IRQ/BRK vector at $FFFE/$FFFF, which points directly at\n$FF48. Modelling them as executable would assert a control-flow path the capture does not contain.\nBanking: at the capture $01=$35, so $E000-$FFFF is RAM with KERNAL ROM banked out; these bytes are\nphysical RAM, and the same RAM is the VIC bank 3 multicolor bitmap ($E000-$FF3F) plus its tail.\nSee KERNAL_RESIDUE_FF5B for the rest of the residue and IRQ_DISPATCH for the live dispatcher."
  },
  {
   "address": 65352,
   "type": "line",
   "text": "IRQ_DISPATCH ($FF48-$FF5A)\nPurpose: implement the copied KERNAL common IRQ/BRK dispatcher by saving A/X/Y, testing the stacked Break flag, and transferring through the appropriate RAM vector.\nInputs: a hardware IRQ/BRK frame or compatible synthetic frame on the stack; RAM vectors $0314/$0315 and $0316/$0317 are installed.\nOutputs: jumps indirectly through $0316 for Break set or $0314 for Break clear after pushing A, X, and Y.\nAssumptions: the selected handler follows the copied KERNAL convention and restores the three saved registers before RTI; physical RAM at $FF48 is the active occupant when KERNAL ROM is hidden.\nClobbers: A, X, Y, flags, and stack until the selected handler restores them.\nHardware changes: none directly; the all-RAM IRQ/BRK vector $FFFE/$FFFF points here."
  },
  {
   "address": 65371,
   "type": "line",
   "text": "KERNAL_RESIDUE_FF5B ($FF5B-$FF7F) - inactive copied-KERNAL bytes, not executed by this occupant.\nClassified data, not code. Decoded as instructions these bytes read as the KERNAL's post-dispatch\ntail (JSR $E518, raster wait on $D012, $D019 acknowledge, CIA 1 $DC0D/$DC0E setup, JMP $EE8E), but\nevery one of those targets lies inside $E000-$FF3F, which at this capture is the VIC bank 3\nmulticolor bitmap - image data, not routines. Disassembling them therefore manufactures call and\njump edges into pixels. Nothing in the captured occupant references this range.\nBanking: $01=$35 banks RAM under BASIC and KERNAL while leaving I/O visible, so the CPU sees these\nRAM bytes rather than KERNAL ROM. The program reaches genuine KERNAL routines only by first\nsetting $01=$37, after which the ROM's own jump table executes and these RAM bytes are irrelevant."
  },
  {
   "address": 65374,
   "type": "line",
   "text": "Retained physical RAM bytes $FF5E-$FF80 exactly match the corresponding 35 bytes in the emulator KERNAL ROM. They continue the IRQ service/wait code after dispatch $FF48. Live ROM/RAM comparison confirms byte identity; it does not establish which loader copied them or that every entry is called. Keep RAM/ROM bank meanings distinct; ROM itself is not shipped."
  },
  {
   "address": 65409,
   "type": "line",
   "text": "Copied KERNAL jump table ($FF81-$FFF5) - inactive RAM residue, classified data.\nThese bytes duplicate the KERNAL's documented entry table (CINT, IOINIT, SETMSG $FF90,\nSETLFS $FFBA, SETNAM $FFBD, LOAD $FFD5, SAVE $FFD8, PLOT $FFF0, ...). They are NOT what executes\nwhen the program calls those addresses. At this capture $01=$35, so $E000-$FFFF is RAM; a call to\n$FFD5 in that state would run these RAM bytes, whose JMP operands point into $E000-$FF3F - the VIC\nbank 3 multicolor bitmap. The program instead sets $01=$37 before any KERNAL call, banking ROM in\nso the ROM's own table runs; these RAM copies are then invisible.\nThey are therefore kept as data with their public entry labels and per-entry contracts retained as\nbank-qualified logical API annotations: the labels document where the program calls, and the\nincoming references from the program are real, but no outgoing flow is asserted from these bytes.\nThe three-byte $6C xx 03 entries ($FFC0 OPEN, $FFC3 CLOSE, $FFCF CHRIN, $FFD2 CHROUT, ...) are\nindirect through the $0300-$0332 RAM vector page and are likewise inert here."
  },
  {
   "address": 65424,
   "type": "line",
   "text": "Purpose: KERNAL SETMSG call gate selected while KERNAL ROM is visible.\nInputs: A selects KERNAL message control bits.\nOutputs: KERNAL message-control state is updated.\nAssumptions: $01 banking exposes KERNAL ROM at $E000-$FFFF.\nClobbers: As documented by the C64 KERNAL SETMSG API.\nHardware changes: KERNAL-owned state only; no direct VIC-II, SID, or CIA change is asserted here."
  },
  {
   "address": 65466,
   "type": "line",
   "text": "Purpose: KERNAL SETLFS call gate selected while KERNAL ROM is visible.\nInputs: A is logical file number, X is device number, and Y is secondary address.\nOutputs: KERNAL logical-file parameters are installed.\nAssumptions: $01 banking exposes KERNAL ROM at $E000-$FFFF.\nClobbers: As documented by the C64 KERNAL SETLFS API.\nHardware changes: KERNAL-owned state only."
  },
  {
   "address": 65469,
   "type": "line",
   "text": "Purpose: KERNAL SETNAM call gate selected while KERNAL ROM is visible.\nInputs: A is filename length; X/Y hold the filename pointer low/high.\nOutputs: KERNAL filename parameters are installed.\nAssumptions: $01 banking exposes KERNAL ROM at $E000-$FFFF.\nClobbers: As documented by the C64 KERNAL SETNAM API.\nHardware changes: KERNAL-owned state only."
  },
  {
   "address": 65493,
   "type": "line",
   "text": "Purpose: KERNAL LOAD call gate selected while KERNAL ROM is visible.\nInputs: A selects load/verify; X/Y supply the requested address when applicable; SETLFS and SETNAM state is valid.\nOutputs: File bytes and KERNAL status/return registers are updated.\nAssumptions: $01 banking exposes KERNAL ROM and the selected device is available.\nClobbers: As documented by the C64 KERNAL LOAD API and device driver.\nHardware changes: KERNAL/device I/O state changes; loaded RAM is written."
  },
  {
   "address": 65496,
   "type": "line",
   "text": "Purpose: KERNAL SAVE call gate selected while KERNAL ROM is visible.\nInputs: A identifies the zero-page start-pointer; X/Y supply the end address; SETLFS and SETNAM state is valid.\nOutputs: The selected RAM range is saved and KERNAL status is returned.\nAssumptions: $01 banking exposes KERNAL ROM and the selected device is available.\nClobbers: As documented by the C64 KERNAL SAVE API and device driver.\nHardware changes: KERNAL/device I/O state changes."
  },
  {
   "address": 65520,
   "type": "line",
   "text": "Purpose: KERNAL PLOT call gate selected while KERNAL ROM is visible.\nInputs: Carry selects read or set; X is row and Y is column when setting.\nOutputs: Cursor row/column is returned or installed.\nAssumptions: $01 banking exposes KERNAL ROM at $E000-$FFFF.\nClobbers: As documented by the C64 KERNAL PLOT API.\nHardware changes: KERNAL screen-editor state changes when setting the cursor."
  },
  {
   "address": 65530,
   "type": "line",
   "text": "CPU vectors in RAM with KERNAL hidden: NMI=$7579, reset=$476F, IRQ/BRK=$FF48."
  },
  {
   "address": 65532,
   "type": "line",
   "text": "Two little-endian physical RAM vectors: reset value from $FFFC/$FFFD and IRQ from $FFFE/$FFFF, separate from same-address ROM vectors selected by banking. Menu/play live IRQ is $FF48; NMI RAM $FFFA points $7579. Reads with ROM visible must use firmware meanings rather than these physical RAM symbols."
  },
  {
   "address": 65534,
   "type": "line",
   "text": "Physical RAM little-endian IRQ vector $FF48, confirmed in native menu/play snapshots. Numeric vector addresses can select ROM under a different port; this listing describes physical RAM. Dispatcher $FF48 branches through RAM vectors $0314/$0316 after testing pushed BRK flag."
  }
 ]
}