Give the draw_misc entries names, to see them in the ucode disassembly
authorNick Downing <nick@ndcode.org>
Sat, 25 Jun 2022 14:28:04 +0000 (00:28 +1000)
committerNick Downing <nick@ndcode.org>
Tue, 28 Jun 2022 03:21:38 +0000 (13:21 +1000)
disasm/draw_misc_extract.py
disasm/object_defs.inc
disasm/star_blazer.txt

index bcd1b07..995197c 100755 (executable)
@@ -21,6 +21,7 @@ out_json = sys.argv[3]
 print('reading addrs')
 draw_misc_table = -1
 shapes = {}
+draw_misc_entries = {}
 with open(addrs_txt) as fin:
   def get_line():
     while True:
@@ -66,6 +67,16 @@ with open(addrs_txt) as fin:
         fields = get_line()
       continue
 
+    if section == 'draw_misc_entries':
+      fields = get_line()
+      while len(fields) >= 2:
+        assert len(fields) == 2
+        index = int(fields[0], 0)
+        name = fields[1]
+        draw_misc_entries[index] = name
+        fields = get_line()
+      continue
+
     # unknown section, skip
     fields = get_line()
     while len(fields) >= 2:
@@ -83,7 +94,7 @@ data = []
 for i in range(0x20):
   addr0 = draw_misc_table + i * 0x10
   addr1 = draw_misc_table + (i + 1) * 0x10
-  name = f'decimal_{i:d}' if i < 8 else f'entry_{i:02x}'
+  name = draw_misc_entries.get(i)
 
   addr = addr0
   value = []
index 1e6c4fb..68a5ebe 100644 (file)
@@ -300,38 +300,38 @@ UCODE_DRAW_MISC_RESTART = 0xe000
 UCODE_DRAW_MISC_CLEAR_RECTANGLE = 0xe100
 
 ; draw misc bits 0 to 4
-UCODE_DRAW_MISC_DECIMAL_0 = 0x0000
-UCODE_DRAW_MISC_DECIMAL_1 = 0x0100
+UCODE_DRAW_MISC_DECIMAL_0_SCORE = 0x0000
+UCODE_DRAW_MISC_DECIMAL_1_HIGH_SCORE = 0x0100
 UCODE_DRAW_MISC_DECIMAL_2 = 0x0200
-UCODE_DRAW_MISC_DECIMAL_3 = 0x0300
-UCODE_DRAW_MISC_DECIMAL_4 = 0x0400
-UCODE_DRAW_MISC_DECIMAL_5 = 0x0500
-UCODE_DRAW_MISC_DECIMAL_6 = 0x0600
-UCODE_DRAW_MISC_DECIMAL_7 = 0x0700
-UCODE_DRAW_MISC_ENTRY_08 = 0x0800
-UCODE_DRAW_MISC_ENTRY_09 = 0x0900
-UCODE_DRAW_MISC_ENTRY_0A = 0x0a00
-UCODE_DRAW_MISC_ENTRY_0B = 0x0b00
-UCODE_DRAW_MISC_ENTRY_0C = 0x0c00
-UCODE_DRAW_MISC_ENTRY_0D = 0x0d00
-UCODE_DRAW_MISC_ENTRY_0E = 0x0e00
-UCODE_DRAW_MISC_ENTRY_0F = 0x0f00
-UCODE_DRAW_MISC_ENTRY_10 = 0x1000
-UCODE_DRAW_MISC_ENTRY_11 = 0x1100
-UCODE_DRAW_MISC_ENTRY_12 = 0x1200
-UCODE_DRAW_MISC_ENTRY_13 = 0x1300
-UCODE_DRAW_MISC_ENTRY_14 = 0x1400
-UCODE_DRAW_MISC_ENTRY_15 = 0x1500
-UCODE_DRAW_MISC_ENTRY_16 = 0x1600
-UCODE_DRAW_MISC_ENTRY_17 = 0x1700
-UCODE_DRAW_MISC_ENTRY_18 = 0x1800
-UCODE_DRAW_MISC_ENTRY_19 = 0x1900
-UCODE_DRAW_MISC_ENTRY_1A = 0x1a00
-UCODE_DRAW_MISC_ENTRY_1B = 0x1b00
-UCODE_DRAW_MISC_ENTRY_1C = 0x1c00
-UCODE_DRAW_MISC_ENTRY_1D = 0x1d00
-UCODE_DRAW_MISC_ENTRY_1E = 0x1e00
-UCODE_DRAW_MISC_ENTRY_1F = 0x1f00
+UCODE_DRAW_MISC_DECIMAL_3_MISSION = 0x0300
+UCODE_DRAW_MISC_DECIMAL_4_FUEL = 0x0400
+UCODE_DRAW_MISC_DECIMAL_5_BOMB = 0x0500
+UCODE_DRAW_MISC_DECIMAL_6_SHIP_LEFT = 0x0600
+UCODE_DRAW_MISC_DECIMAL_7_BONUS = 0x0700
+UCODE_DRAW_MISC_ENTRY_08_SCORE = 0x0800
+UCODE_DRAW_MISC_ENTRY_09_HIGH_SCORE = 0x0900
+UCODE_DRAW_MISC_ENTRY_0A_SCORING = 0x0a00
+UCODE_DRAW_MISC_ENTRY_0B_GROUND = 0x0b00
+UCODE_DRAW_MISC_ENTRY_0C_GROUND = 0x0c00
+UCODE_DRAW_MISC_ENTRY_0D_GROUND = 0x0d00
+UCODE_DRAW_MISC_ENTRY_0E_GROUND = 0x0e00
+UCODE_DRAW_MISC_ENTRY_0F_FUEL = 0x0f00
+UCODE_DRAW_MISC_ENTRY_10_BOMB = 0x1000
+UCODE_DRAW_MISC_ENTRY_11_SHIP_LEFT = 0x1100
+UCODE_DRAW_MISC_ENTRY_12_GREAT_PERFORMANCE = 0x1200
+UCODE_DRAW_MISC_ENTRY_13_COMPLETE = 0x1300
+UCODE_DRAW_MISC_ENTRY_14_EMPTY_FUEL = 0x1400
+UCODE_DRAW_MISC_ENTRY_15_COPYRIGHT_1981_STAR_CRAFT_INC = 0x1500
+UCODE_DRAW_MISC_ENTRY_16_BONUS = 0x1600
+UCODE_DRAW_MISC_ENTRY_17_GAME_OVER = 0x1700
+UCODE_DRAW_MISC_ENTRY_18_BOMB_THE_RADAR = 0x1800
+UCODE_DRAW_MISC_ENTRY_19_ATTACK_THE_TANK = 0x1900
+UCODE_DRAW_MISC_ENTRY_1A_BOMB_THE_ICBM = 0x1a00
+UCODE_DRAW_MISC_ENTRY_1B_SCORING = 0x1b00
+UCODE_DRAW_MISC_ENTRY_1C_BOMB_THE_HEADQUARTERS = 0x1c00
+UCODE_DRAW_MISC_ENTRY_1D_STAR_BLAZER = 0x1d00
+UCODE_DRAW_MISC_ENTRY_1E_BY_TONY_SUZUKI = 0x1e00
+UCODE_DRAW_MISC_ENTRY_1F_THANKS_A_LOT_COMMA_RALY = 0x1f00
 
 ; draw misc bits 5 to 7
 UCODE_DRAW_MISC_MASK_1 = 0x2000
index d2d0064..36e4d98 100644 (file)
@@ -51,11 +51,12 @@ items
 # array of 8 * 4-digit numbers in BCD
 #   decimal: score/10
 #   decimal + 2: high score/10
-#   decimal + 4: ?
+#   decimal + 4: spare
 #   decimal + 6: mission
 #   decimal + 8: fuel
 #   decimal + 0xa: bomb
-#   decimal + 0xe: ?
+#   decimal + 0xc: ship left
+#   decimal + 0xe: bonus/1000
 0x00b0,0x0010,decimal,byte
 0x00c0,0x0002,ucode_ptr_c0,word
 0x00c2,0x0001,ucode_pair_object,byte
@@ -823,3 +824,37 @@ objects
 0x7d,pixel
 0x7e,pixel
 0x7f,pixel
+
+draw_misc_entries
+0x00,decimal_0_score
+0x01,decimal_1_high_score
+0x02,decimal_2
+0x03,decimal_3_mission
+0x04,decimal_4_fuel
+0x05,decimal_5_bomb
+0x06,decimal_6_ship_left
+0x07,decimal_7_bonus
+0x08,entry_08_score
+0x09,entry_09_high_score
+0x0a,entry_0a_scoring
+0x0b,entry_0b_ground
+0x0c,entry_0c_ground
+0x0d,entry_0d_ground
+0x0e,entry_0e_ground
+0x0f,entry_0f_fuel
+0x10,entry_10_bomb
+0x11,entry_11_ship_left
+0x12,entry_12_great_performance
+0x13,entry_13_complete
+0x14,entry_14_empty_fuel
+0x15,entry_15_copyright_1981_star_craft_inc
+0x16,entry_16_bonus
+0x17,entry_17_game_over
+0x18,entry_18_bomb_the_radar
+0x19,entry_19_attack_the_tank
+0x1a,entry_1a_bomb_the_icbm
+0x1b,entry_1b_scoring
+0x1c,entry_1c_bomb_the_headquarters
+0x1d,entry_1d_star_blazer
+0x1e,entry_1e_by_tony_suzuki
+0x1f,entry_1f_thanks_a_lot_comma_raly