{
 "schema": 1,
 "platform": "c64",
 "game": "space-rogue",
 "part": "nav",
 "build": "",
 "source": "regenerator2000 live",
 "regions": {
  "exclude": [
   [
    256,
    511,
    "stack"
   ],
   [
    53248,
    57343,
    "I/O and colour RAM"
   ],
   [
    0,
    16383,
    "Engine"
   ],
   [
    22272,
    42239,
    "Engine"
   ],
   [
    42240,
    48383,
    "Flight"
   ],
   [
    48384,
    58367,
    "Engine"
   ],
   [
    58368,
    60159,
    "Flight"
   ],
   [
    60160,
    65535,
    "Engine"
   ]
  ],
  "extra": [],
  "elsewhere": [
   [
    0,
    16383,
    "Engine"
   ],
   [
    22272,
    42239,
    "Engine"
   ],
   [
    42240,
    48383,
    "Flight"
   ],
   [
    48384,
    58367,
    "Engine"
   ],
   [
    58368,
    60159,
    "Flight"
   ],
   [
    60160,
    65535,
    "Engine"
   ]
  ]
 },
 "blocks": [
  {
   "start": 16384,
   "end": 22271,
   "type": "Byte"
  }
 ],
 "symbols": [
  {
   "address": 16384,
   "name": "nav_tile_pixels",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 17408,
   "name": "nav_tile_pixels_4",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 18432,
   "name": "nav_tile_pixels_8",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 19456,
   "name": "nav_tile_pixels_12",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 20224,
   "name": "nav_tile_row15_right",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20352,
   "name": "nav_tile_row15_left",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20480,
   "name": "nav_tile_kinds",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20608,
   "name": "nav_tile_colours",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 20736,
   "name": "system_grid",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21760,
   "name": "system_map_header",
   "type": "UserDefined",
   "kind": "user"
  },
  {
   "address": 21776,
   "name": "system_map_x",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21808,
   "name": "system_map_y",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 21840,
   "name": "system_map_flags",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21872,
   "name": "system_map_picture",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21904,
   "name": "system_map_type",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21936,
   "name": "system_map_extra",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 21968,
   "name": "system_map_messages",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22032,
   "name": "system_orbit_phase",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22033,
   "name": "system_orbit_phase_large",
   "type": "AbsoluteAddress",
   "kind": "user"
  },
  {
   "address": 22034,
   "name": "system_danger",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22048,
   "name": "system_base_files",
   "type": "Field",
   "kind": "user"
  },
  {
   "address": 22064,
   "name": "system_gates",
   "type": "Field",
   "kind": "user"
  }
 ],
 "comments": [
  {
   "address": 16384,
   "type": "line",
   "text": "NAV.TIL's 128 chart tiles, laid out as the bases' tiles: pixel row r of tile t has its left byte at $4080 + $100 * r + t and its right byte at $4000 + $100 * r + t. Tiles 0-3 the ship, 8 the carrier, 9 a starbase, 10 an outpost, 11 a black hole, 12-13 a Malir gate, 14 and 118-119 asteroids, 15-23 nebula, 24-55 and 80-95 the drawn orbits, 56-79 an asteroid belt, 96 a G2 star, 98 an A3 star, 100-107 planets turning, 108-111 a gas giant's quarters, 112 binary stars, 114 a hazard, 116 a shard field, 125 empty space, 126-127 the cursor brackets. Rows 0-3 from here"
  },
  {
   "address": 17408,
   "type": "line",
   "text": "The chart tiles' pixel rows 4-7, in the same layout"
  },
  {
   "address": 18432,
   "type": "line",
   "text": "The chart tiles' pixel rows 8-11"
  },
  {
   "address": 19456,
   "type": "line",
   "text": "The chart tiles' pixel rows 12-14; row 15 from $4F00"
  },
  {
   "address": 20224,
   "type": "line",
   "text": "The chart tiles' last pixel row, right bytes; draw_chart's patched load at $8711 was left pointing here"
  },
  {
   "address": 20352,
   "type": "line",
   "text": "The chart tiles' last pixel row, left bytes, where draw_chart's load at $871A was left"
  },
  {
   "address": 20480,
   "type": "line",
   "text": "Each chart tile's kind. The high nybble is the sector's kind, which picks the objects met there (sector_object_lists), the text QUERY gives (sector_kind_texts) and whether HELM travel through it takes twice as long (sector_kind_flags): 0 open space, $20 nebula, $30 shard field, $50 asteroids, $60 an A3 star, $70 a G2 star, $80 binary stars, $90 a black hole; bits 0-1 the frames a tile animates through ($8638)"
  },
  {
   "address": 20606,
   "type": "line",
   "text": "Chart tile $7E's kind, where draw_brackets' right-half mask pointer was left, a row past the bracket tile's last"
  },
  {
   "address": 20607,
   "type": "line",
   "text": "Chart tile $7F's kind, where draw_brackets' right-half pattern pointer was left"
  },
  {
   "address": 20608,
   "type": "line",
   "text": "Each chart tile's two colours for draw_chart's screen matrix: the high nybble for bit pair 01, the low for 10"
  },
  {
   "address": 20734,
   "type": "line",
   "text": "Chart tile $7E's colours, where draw_brackets' left-half mask pointer was left"
  },
  {
   "address": 20735,
   "type": "line",
   "text": "Chart tile $7F's colours, the last byte of NAV.TIL, where the left-half pattern pointer was left"
  },
  {
   "address": 20736,
   "type": "line",
   "text": "Karonus's chart (file Q0), 32 by 32 tiles of NAV.TIL, the top row (Y = 31) first: the sector X, Y is at $5100 + 32 * (31 - Y) + X (sector_kind). Open space, a G2 star at 16, 16 ringed by drawn orbits and an asteroid belt, two nebulae to the east (the Dark Horn Nebula, by its marker at 23, 9, the southern one) and an asteroid field to the south-west"
  },
  {
   "address": 21760,
   "type": "line",
   "text": "0 in a system map (1 in a base's, 2 in HIVE!'s), a byte no code reads; then four zeros, and at $5505 the system's name, space-padded and zero-ended: \"Karonus\""
  },
  {
   "address": 21776,
   "type": "line",
   "text": "Each of the 32 entries' sector column, $FF for a free entry. Entry 0 is the ship ($FF in the file, placed on arrival); Karonus has two Malir gates, Hobart's World, a gas giant, Hiathra Starbase, the MiCon I Outpost, four hazards and two markers"
  },
  {
   "address": 21808,
   "type": "line",
   "text": "Each entry's sector row, counted from the bottom"
  },
  {
   "address": 21840,
   "type": "line",
   "text": "Each entry's flags: bit 7 a base, whose map file name enter_sector copies from $5620; bits 3-4 the heading; bits 0-2 the motion kind, moved once a day of HELM travel (move_map_objects): 1 a random step (the hazards), 2 none, 3 the 16-step orbit and 4 the 32-step one, both placed for the date when the map is loaded"
  },
  {
   "address": 21872,
   "type": "line",
   "text": "Each entry's chart tile: 0 the ship, 8 the carrier, 9 a starbase, $0A an outpost, $0C a Malir gate, $64 or $68 a planet or station, $6C a gas giant (its quarter set by its orbit), $72 a hazard; $FF an entry not shown"
  },
  {
   "address": 21904,
   "type": "line",
   "text": "Each entry's object type, made when the ship enters its sector (enter_sector): $0D planetoid, $0E terrestrial planet, $0F gas giant, $10 station, $11 carrier, $12 outpost, $13 starbase, $14 Malir gate, $15 black hole; $64 and up a hazard, counted rather than made, whose flashes now and then strike the ship (sector_hazard); $FF a marker that only carries a text"
  },
  {
   "address": 21936,
   "type": "line",
   "text": "Each entry's offset into the tables at $5620 and $5630, four bytes a step: a base's into the map file names, a gate's into the gate data"
  },
  {
   "address": 21968,
   "type": "line",
   "text": "Each entry's QUERY text, a disk text number ($FFFF none): in Karonus \"Seventeen light years to Deneb, heart of the Far Arm.\" and \"Eight light years to Gryphon.\" on the gates, Hobart's World, Hiathra Starbase, the MiCon I Outpost, a pilot's last log and the Dark Horn Nebula"
  },
  {
   "address": 21969,
   "type": "line",
   "text": "The high byte of the ship's text word"
  },
  {
   "address": 22032,
   "type": "line",
   "text": "The small orbits' phase, added to half the day count (motion_small_orbit): 7 in Karonus"
  },
  {
   "address": 22033,
   "type": "line",
   "text": "The large orbits' phase, added to a quarter of the day count (motion_large_orbit): $1C in Karonus"
  },
  {
   "address": 22034,
   "type": "line",
   "text": "The system's danger level, the base of the encounter chance: 40 in Karonus. The five ship class weights follow ($5613-$5617), and all six are copied to $077C ($2E94): here 10 Hunters, 10 Darts and Corsairs, 45 Scows and Tankers, 30 Cruisers and Titans, 5 Wasps and Vultures, out of 100"
  },
  {
   "address": 22048,
   "type": "line",
   "text": "The bases' map file names, four bytes each at a base's $55B0 offset, zero-ended: \"L00\" (Hiathra) and \"L01\" (the MiCon I Outpost) here. enter_sector copies the base's three characters to $0778 ($16B2), and docking loads that file"
  },
  {
   "address": 22049,
   "type": "line",
   "text": "A base file name's second character, the system's digit, which arrival_message tests (6 for Trochal in Sigure, 5 for Bassruti)"
  },
  {
   "address": 22050,
   "type": "line",
   "text": "A base file name's third character, the base's number in its system"
  },
  {
   "address": 22064,
   "type": "line",
   "text": "The gates' data, four bytes each at a gate's $55B0 offset (gate_dest): the system it leads to, the sector across and down there, and the rings to pass in the wormhole, as many as the light years on the gate's text. Karonus's: 1 (Deneb) at 2, 9 through 17 rings, and 2 (Gryphon) at 2, 1 through 8"
  },
  {
   "address": 22065,
   "type": "line",
   "text": "A gate's sector across in the system it leads to"
  },
  {
   "address": 22066,
   "type": "line",
   "text": "A gate's sector down in the system it leads to"
  },
  {
   "address": 22067,
   "type": "line",
   "text": "The rings a gate's wormhole asks to be passed"
  }
 ]
}