From: Nick Downing Date: Sat, 25 Jun 2022 03:07:10 +0000 (+1000) Subject: Rationalize the addresses file, implement more sections to avoid need for ALIGN X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=584aba5b94d14d8cd46e68f5b491b91935134380;p=star_disasm.git Rationalize the addresses file, implement more sections to avoid need for ALIGN --- diff --git a/disasm/Makefile b/disasm/Makefile index 8bded5b..4453351 100644 --- a/disasm/Makefile +++ b/disasm/Makefile @@ -30,15 +30,19 @@ star_blazer.ihx \ # -diff -q ../loader/star_blazer_pack_rev.a2bin $@ star_blazer.ihx: star_blazer.rel - # add for DHGR: -b data1=0x15c00 + # add for DHGR: -b data5=0x15c00 ${ASLINK} -n -m -u -il \ -b zpage=0 \ --b udata0=0x200 \ --b udata1=0x400 \ --b text=0xa00 \ --b data0=0x4000 \ --b udata2=0xa800 \ --b data1=0x15c00 \ +-b data0=0x200 \ +-b udata0=0x400 \ +-b text0=0xa00 \ +-b text1=0x1800 \ +-b text2=0x1e00 \ +-b data1=0x1f80 \ +-b data2=0x4000 \ +-b data3=0x5c00 \ +-b data4=0x8e00 \ +-b udata1=0xa800 \ $@ $< star_blazer.rel: \ @@ -61,9 +65,9 @@ ucode_data.inc: star_blazer.asm star_blazer.asm: \ trace.txt \ star_blazer.txt \ -../loader/star_blazer_recrack.a2bin \ +../loader/star_blazer.ihx \ star_blazer.asm.patch - ./disasm.py star_blazer.txt ../loader/star_blazer_recrack.a2bin $@ = 0x2000 and pc0 < 0x4000: + if pc0 < 0xa00 or (pc0 >= 0x2000 and pc0 < 0x4000): + continue + if pc1 < 0xa00 or (pc1 >= 0x2000 and pc1 < 0x4000): continue if pc0 not in trace_nexts: @@ -152,9 +153,14 @@ with open(addrs_txt, 'r') as fin: fields = get_line() while len(fields): - if fields == ['areas']: + assert len(fields) == 1 + section = fields[0] + print(section) + + if section == 'areas': fields = get_line() - while len(fields) >= 4: + while len(fields) >= 2: + assert len(fields) == 4 addr = int(fields[0], 0) size = int(fields[1], 0) name = fields[2] @@ -169,9 +175,11 @@ with open(addrs_txt, 'r') as fin: fields = get_line() continue - elif fields == ['items']: + + if section == 'items': fields = get_line() - while len(fields) >= 4: + while len(fields) >= 2: + assert len(fields) >= 4 addr = int(fields[0], 0) size = int(fields[1], 0) name = fields[2] @@ -208,22 +216,22 @@ with open(addrs_txt, 'r') as fin: ) fields = get_line() continue - else: - print('unknown section', fields[0]) - sys.exit(EXIT_FAILURE) - line = fin.readline() - -print('reading image') -with open(in_bin, 'rb') as fin: - data = list(fin.read()) - hdr = data[:4] - bin = data[4:] -load_addr = hdr[0] | (hdr[1] << 8) -load_size = hdr[2] | (hdr[3] << 8) -assert load_size == len(bin) + + # unknown section, skip (for shape or object extractor) + fields = get_line() + while len(fields) >= 2: + fields = get_line() + +print('reading ihx') +intelhex = IntelHex(in_ihx) +entry_point = intelhex.start_addr['EIP'] +segments = [j for i in intelhex.segments() for j in i] mem = [0] * 0x10000 -mem[load_addr:load_addr + load_size] = bin +for i in range(0, len(segments), 2): + [addr0, addr1] = segments[i:i + 2] + print(f'[{addr0:04x}, {addr1:04x})') + mem[addr0:addr1] = list(intelhex.tobinstr(addr0, addr1 - 1)) mpu = py65.devices.mpu65c02.MPU(mem, 0) disassembler = py65.disassembler.Disassembler(mpu) @@ -356,6 +364,7 @@ def add_item( modified = True return i +add_item(entry_point, 1, '', ITEM_CODE, [], MAX_LOCALS) for pc1 in trace_nexts.keys(): add_item(pc1, 1, '', ITEM_CODE, []) @@ -1058,4 +1067,6 @@ while modified: flush_locals() area += 1 + fout.write(f'\t.end\t{get_label(entry_point):s}\n') + _pass += 1 diff --git a/disasm/star_blazer.asm.patch b/disasm/star_blazer.asm.patch index 7f8bb34..6735757 100644 --- a/disasm/star_blazer.asm.patch +++ b/disasm/star_blazer.asm.patch @@ -1,10 +1,10 @@ ---- star_blazer.asm0 2022-06-25 00:04:33.079828875 +1000 -+++ star_blazer.asm 2022-06-25 10:55:50.799994461 +1000 +--- star_blazer.asm0 2022-06-25 13:01:14.395901396 +1000 ++++ star_blazer.asm 2022-06-25 13:03:26.391899763 +1000 @@ -1,3 +1,9 @@ -+ALIGN = 0 -+DHGR = 1 -+PIXEL_SHAPE = 1 -+SHAPE = 1 ++UNREACHABLE = 1 ++DHGR = 0 ++PIXEL_SHAPE = 0 ++SHAPE = 0 +UCODE = 0 + HIRES_SCREEN = 0x2000 ; 2000 @@ -47,18 +47,18 @@ .ds 0x22 ; 0000 vec_init_game: -- .ds 2 ; 0022 rw -+ .dw init_game ; 0022 rw +- .ds 2 ; 0022 r ++ .dw init_game ; 0022 r vec_start_game: -- .ds 2 ; 0024 rw +- .ds 2 ; 0024 r + .dw start_game ; 0024 r .ds 2 ; 0026 vec_calculate_object_shape: -- .ds 2 ; 0028 rw +- .ds 2 ; 0028 r + .dw calculate_object_shape ; 0028 r .ds 0x24 ; 002a vec_draw_misc_from_table: -- .ds 2 ; 004e rw +- .ds 2 ; 004e r + .dw draw_misc_from_table ; 004e r .ds 0x30 ; 0050 half_dimension: @@ -86,26 +86,7 @@ accumulator: .ds 3 ; 0090 rw .ds 1 ; 0093 -@@ -159,7 +204,7 @@ - .area udata0 - - vec_restart: -- .ds 2 ; 0200 rw -+ .dw restart ; 0200 r - - .area udata1 - -@@ -188,8 +233,8 @@ - .ds 0x70 ; 0780 rw - - .area text -+text_start: - -- jmp recrack_loader ; -> 09fd -> 9ded r - sign_extend_a_to_ya: - cmp #0x80 ; 0abc,0adc,133f,1366,1382,145b,1485 -> 0a00 -> 0a02 r a=00..ff - ldy #0x00 ; 0a00 -> 0a02 -> 0a04 r -@@ -1072,7 +1117,7 @@ +@@ -1071,7 +1116,7 @@ tsx ; 1095 -> 1097 -> 1098 r stx *ucode_sp ; 1097 -> 1098 -> 109a r ldx *ucode_x_save_c9 ; 1098 -> 109a -> 109c r @@ -114,7 +95,7 @@ sta *ucode_start_sentinel ; 109c -> 109f -> 10a1 r ucode_execute_1093_entry: ldy #0x00 ; 1090,109f -> 10a1 -> 10a3 r -@@ -1099,7 +1144,7 @@ +@@ -1098,7 +1143,7 @@ jsr do_ucode_pair ; 10c6 -> 10c8 -> 106a r s=f7..f9,02 bne 3$ ; 107b -> 10cb -> 10c0 r z=0 ucode_execute_1093_done: @@ -123,7 +104,7 @@ rts ; 10cd -> 10d0 -> 123e,143a,1615,1629,1633,1649,165b,1759 r s=f7..fd,02 ucode_execute_10d1: beq rts_10ec ; 1216,123b,1260,1285 -> 10d1 -> 10d3,10ec r z=0..1 -@@ -1981,10 +2026,35 @@ +@@ -1980,10 +2025,35 @@ sta *button_state ; 17ce r rts_17d0: rts ; 17ab,17ca -> 17d0 -> 1768,176f r s=fd @@ -160,39 +141,25 @@ ldx #0x01 ; 17db r 0$: jsr ROM_PREAD ; 17dd r cpy #0xff ; 17e0 r -@@ -1995,18 +2065,15 @@ +@@ -1994,7 +2064,12 @@ sta bvar_179e ; 17e9 r sta bvar_17a3 ; 17ec r sta bvar_1e0e ; 17ef r -1$: jmp [vec_init_game] ; 17d9 -> 17f2 -> 1708 r -- .db 0x00 ; 17f5 -- .db 0x00 ; 17f6 -- .db 0x00 ; 17f7 -- .db 0x00 ; 17f8 -- .db 0x00 ; 17f9 -- .db 0x00 ; 17fa -- .db 0x00 ; 17fb -- .db 0x00 ; 17fc -- .db 0x00 ; 17fd -- .db 0x00 ; 17fe -- .db 0x00 ; 17ff +1$: +.if 0 ;DHGR ; language card + sta HW_LC_BANK2_RAM_WE + sta HW_LC_BANK2_RAM_WE +.endif + jmp [vec_init_game] ; 17d9 -> 17f2 -> 1708 r -+.if ALIGN -+ .ds 0x1800 - 0xa00 - (. - text_start) -+.endif - divide_a_by_y: - sta *accumulator + 1 ; 0a90,0aa0,0ab5,0ad5 -> 1800 -> 1802 r - lda #0x00 ; 1800 -> 1802 -> 1804 r -@@ -2071,10 +2138,12 @@ + + .area text1 + +@@ -2062,10 +2137,12 @@ lda *result + 1 ; 186e r ldy *result + 2 ; 1870 r rts ; 1872 r -+.if ALIGN ; unreachable code, treat as padding ++.if UNREACHABLE inc *random_seed ; 1873 r bne 4$ ; 1875 r inc *random_seed + 1 ; 1877 r @@ -201,7 +168,7 @@ random_init: lda *random_seed ; 16ae -> 187a -> 187c r ora #0x01 ; 187a -> 187c -> 187e r -@@ -2233,16 +2302,30 @@ +@@ -2224,16 +2301,30 @@ ldx #>HIRES_SCREEN ; 199b -> 199d -> 199f r stx *video_line_ptr + 1 ; 199d -> 199f -> 19a1 r tay ; 199f -> 19a1 -> 19a2 r @@ -233,7 +200,7 @@ rts ; 19b5 -> 19b8 -> 1713 r s=fd video_clear_rectangle: ldx *clip_y0 ; 1064 -> 19b9 -> 19bb r -@@ -2250,8 +2333,20 @@ +@@ -2241,8 +2332,20 @@ sta *video_line_ptr ; 19bb -> 19be -> 19c0 r lda video_line_table_hi - 0x20,x ; 19be -> 19c0 -> 19c3 r x=28..cf sta *video_line_ptr + 1 ; 19c0 -> 19c3 -> 19c5 r @@ -254,7 +221,7 @@ 1$: sta [*video_line_ptr],y ; 19c7,19ce -> 19c9 -> 19cb r y=6c..93 iny ; 19c9 -> 19cb -> 19cc r cpy *clip_x1 ; 19cb -> 19cc -> 19ce r y=6d..94 -@@ -2300,6 +2395,7 @@ +@@ -2291,6 +2394,7 @@ sta object1080_y0 - 0x10,x ; 1a1b -> 1a1e -> 1a21 r x=10..7f adc #0x01 ; 1a1e -> 1a21 -> 1a23 r c=0..1 d=0 sta object1080_y1 - 0x10,x ; 1a21 -> 1a23 -> 1a26 r x=10..7f @@ -262,7 +229,7 @@ rts ; 1a23 -> 1a26 -> 1076,1179,1602 r s=f1..f9,02 pixel_data_table_left: .db 0x83 ; 1a27 r -@@ -2382,14 +2478,17 @@ +@@ -2373,14 +2477,17 @@ lda object1080_onscreen_shape_ptr_hi - 0x10,x ; 1aa5 -> 1aa7 -> 1aaa r x=20..4f ora [*video_line_ptr],y ; 1aa7 -> 1aaa -> 1aac r y=6d..93,02 sta [*video_line_ptr],y ; 1aaa -> 1aac -> 1aae r y=6d..93,02 @@ -280,7 +247,7 @@ lda object1080_y0 - 0x10,x ; 1ab9 -> 1abb -> 1abe r x=14..77 cmp object1080_y1 - 0x10,x ; 1abb -> 1abe -> 1ac1 r a=11..d4 x=14..77 bcs rts_1aae ; 1abe -> 1ac1 -> 1ac3 r c=0 -@@ -2442,7 +2541,12 @@ +@@ -2433,7 +2540,12 @@ stx *x_save ; 1b32 -> 1b35 -> 1b37 r lda *draw_y ; 1b35 -> 1b37 -> 1b39 r cmp *clip_y0 ; 1b37 -> 1b39 -> 1b3b r a=11..d4 @@ -293,7 +260,7 @@ lda *clip_y1 ; 1b3b -> 1b3d -> 1b3f r cmp *draw_y1 ; 1b3d -> 1b3f -> 1b41 r a=d0 bcc 8$ ; 1b3f -> 1b41 -> 1b43,1b83 r c=0..1 -@@ -2453,16 +2557,59 @@ +@@ -2444,16 +2556,59 @@ cmp *draw_x1 ; 1b49 -> 1b4b -> 1b4d r a=94 bcc 8$ ; 1b4b -> 1b4d -> 1b4f,1b83 r c=0..1 lda object1080_onscreen_shape_ptr_lo - 0x10,x ; 1b4d -> 1b4f -> 1b52 r x=14..77 @@ -350,10 +317,10 @@ + sta [*video_line_ptr],y +93$: iny +.endif - 6$: .db 0xbd ; 1b69,1b76 -> 1b6b -> 1b6e r "lda shape_12_exhaust0 + 0x12,x" x=00..39 - 7$: .dw shape_12_exhaust0 + 0x12 ; 1b6c rw + 6$: .db 0xbd ; 1b69,1b76 -> 1b6b -> 1b6e r "lda 0x6f9f,x" x=00..39 + 7$: .dw 0x6f9f ; 1b6c rw ora [*video_line_ptr],y ; 1b6b -> 1b6e -> 1b70 r y=6c..93 -@@ -2479,16 +2626,50 @@ +@@ -2470,16 +2625,50 @@ rts ; 1b80 -> 1b82 -> 15cd r s=fb 8$: inc object1080_onscreen_clipped - 0x10,x ; 1b3b,1b41,1b47,1b4d -> 1b83 -> 1b86 r x=14..77 lda object1080_onscreen_shape_ptr_lo - 0x10,x ; 1b83 -> 1b86 -> 1b89 r x=14..77 @@ -406,7 +373,7 @@ 10$: lda *draw_y ; 1ba0,1bbf -> 1ba2 -> 1ba4 r cmp *clip_y0 ; 1ba2 -> 1ba4 -> 1ba6 r a=11..d8 bcc 12$ ; 1ba4 -> 1ba6 -> 1ba8,1bbb r c=0..1 -@@ -2498,6 +2679,16 @@ +@@ -2489,6 +2678,16 @@ bcc 12$ ; 1bac -> 1bae -> 1bb0,1bbb r c=0..1 cpy *clip_x1 ; 1bae -> 1bb0 -> 1bb2 r y=6c..a4 bcs 12$ ; 1bb0 -> 1bb2 -> 1bb4,1bbb r c=0..1 @@ -420,10 +387,10 @@ + sta HW_RDMAINRAM + sta HW_WRMAINRAM +.endif - .db 0xbd ; 1bb2 -> 1bb4 -> 1bb7 r "lda shape_12_exhaust0 + 0x1e,x" x=00..39 - 11$: .dw shape_12_exhaust0 + 0x1e ; 1bb5 rw + .db 0xbd ; 1bb2 -> 1bb4 -> 1bb7 r "lda 0x6fab,x" x=00..39 + 11$: .dw 0x6fab ; 1bb5 rw ora [*video_line_ptr],y ; 1bb4 -> 1bb7 -> 1bb9 r y=6c..93 -@@ -2511,6 +2702,7 @@ +@@ -2502,6 +2701,7 @@ cpy *draw_y1 ; 1bc3 -> 1bc5 -> 1bc7 r y=12..d9 bcc 9$ ; 1bc5 -> 1bc7 -> 1b96,1bc9 r c=0..1 ldx *x_save ; 1bc7 -> 1bc9 -> 1bcb r @@ -431,7 +398,7 @@ rts ; 1bc9 -> 1bcb -> 15cd r s=fb erase_pixel_object: lda #0x00 ; 1c12 -> 1bcc -> 1bce r -@@ -2542,12 +2734,15 @@ +@@ -2533,12 +2733,15 @@ eor #0xff ; 1c03 -> 1c06 -> 1c08 r and [*video_line_ptr],y ; 1c06 -> 1c08 -> 1c0a r y=6d..93,02 sta [*video_line_ptr],y ; 1c08 -> 1c0a -> 1c0c r y=6d..93,02 @@ -447,7 +414,7 @@ lda #0x00 ; 1c12 -> 1c14 -> 1c16 r sta object1080_onscreen - 0x10,x ; 1c14 -> 1c16 -> 1c19 r x=14..77 lda object1080_onscreen_x0 - 0x10,x ; 1c16 -> 1c19 -> 1c1c r x=14..77 -@@ -2562,16 +2757,61 @@ +@@ -2553,16 +2756,61 @@ stx *x_save ; 1c2d -> 1c30 -> 1c32 r bne 3$ ; 1c30 -> 1c32 -> 1c34,1c6a r z=0..1 lda object1080_onscreen_shape_ptr_lo - 0x10,x ; 1c32 -> 1c34 -> 1c37 r x=14..77 @@ -506,10 +473,10 @@ + sta [*video_line_ptr],y +93$: iny +.endif - 1$: .db 0xbd ; 1c4e,1c5d -> 1c50 -> 1c53 r "lda shape_12_exhaust0 + 6,x" x=00..39 - 2$: .dw shape_12_exhaust0 + 6 ; 1c51 rw + 1$: .db 0xbd ; 1c4e,1c5d -> 1c50 -> 1c53 r "lda 0x6f93,x" x=00..39 + 2$: .dw 0x6f93 ; 1c51 rw eor #0xff ; 1c50 -> 1c53 -> 1c55 r -@@ -2588,16 +2828,51 @@ +@@ -2579,16 +2827,51 @@ ldx *x_save ; 1c65 -> 1c67 -> 1c69 r rts ; 1c67 -> 1c69 -> 1076,16a8 r s=f3..f9,02 3$: lda object1080_onscreen_shape_ptr_lo - 0x10,x ; 1c32 -> 1c6a -> 1c6d r x=14..77 @@ -563,7 +530,7 @@ 5$: lda *draw_y ; 1c84,1ca5 -> 1c86 -> 1c88 r cmp *clip_y0 ; 1c86 -> 1c88 -> 1c8a r a=11..d8 bcc 7$ ; 1c88 -> 1c8a -> 1c8c,1ca1 r c=0..1 -@@ -2607,6 +2882,17 @@ +@@ -2598,6 +2881,17 @@ bcc 7$ ; 1c90 -> 1c92 -> 1c94,1ca1 r c=0..1 cpy *clip_x1 ; 1c92 -> 1c94 -> 1c96 r y=6c..a4 bcs 7$ ; 1c94 -> 1c96 -> 1c98,1ca1 r c=0..1 @@ -578,10 +545,10 @@ + sta HW_RDMAINRAM + sta HW_WRMAINRAM +.endif - .db 0xbd ; 1c96 -> 1c98 -> 1c9b r "lda shape_12_exhaust0 + 0x1e,x" x=00..39 - 6$: .dw shape_12_exhaust0 + 0x1e ; 1c99 rw + .db 0xbd ; 1c96 -> 1c98 -> 1c9b r "lda 0x6fab,x" x=00..39 + 6$: .dw 0x6fab ; 1c99 rw eor #0xff ; 1c98 -> 1c9b -> 1c9d r -@@ -2626,9 +2912,24 @@ +@@ -2617,9 +2911,24 @@ stx *x_save ; 1db0 -> 1cb2 -> 1cb4 r tay ; 1cb2 -> 1cb4 -> 1cb5 r lda shape_data_ptr_lo,y ; 1cb4 -> 1cb5 -> 1cb8 r y=16..ff @@ -606,7 +573,7 @@ lda shape_width_bytes,y ; 1cbe -> 1cc1 -> 1cc4 r y=16..ff clc ; 1cc1 -> 1cc4 -> 1cc5 r adc *draw_x0 ; 1cc4 -> 1cc5 -> 1cc7 r c=0 d=0 -@@ -2636,6 +2937,11 @@ +@@ -2627,6 +2936,11 @@ lda *draw_x0 ; 1cc7 -> 1cc9 -> 1ccb r lsr a ; 1cc9 -> 1ccb -> 1ccc r bcc 0$ ; 1ccb -> 1ccc -> 1cce,1cd4 r c=0..1 @@ -618,7 +585,7 @@ lda *draw_misc_mask ; 1ccc -> 1cce -> 1cd0 r eor *draw_misc_mask_xor ; 1cce -> 1cd0 -> 1cd2 r sta *draw_misc_mask ; 1cd0 -> 1cd2 -> 1cd4 r -@@ -2651,9 +2957,56 @@ +@@ -2642,9 +2956,56 @@ lda video_line_table_hi,y ; 1ce5 -> 1ce7 -> 1cea r y=00..bc adc #0x00 ; 1ce7 -> 1cea -> 1cec r c=0..1 d=0 sta *video_line_ptr + 1 ; 1cea -> 1cec -> 1cee r @@ -675,7 +642,7 @@ 2$: lda *draw_y ; 1cf2,1d0f -> 1cf4 -> 1cf6 r cmp #0xc0 ; 1cf4 -> 1cf6 -> 1cf8 r a=00..bc bcs 4$ ; 1cf6 -> 1cf8 -> 1cfa r c=0 -@@ -2673,7 +3026,12 @@ +@@ -2664,7 +3025,12 @@ inc *draw_y ; 1d0f -> 1d11 -> 1d13 r ldy *draw_y ; 1d11 -> 1d13 -> 1d15 r cpy *draw_y1 ; 1d13 -> 1d15 -> 1d17 r y=01..bd @@ -688,7 +655,7 @@ ldx *x_save ; 1d17 -> 1d19 -> 1d1b r rts ; 1d19 -> 1d1b -> 1db3 r s=ec..f5 draw_misc_from_table: -@@ -2686,7 +3044,7 @@ +@@ -2677,7 +3043,7 @@ asl a ; 1d23 -> 1d24 -> 1d25 r sta *draw_misc_ptr ; 1d24 -> 1d25 -> 1d27 r lda #0x00 ; 1d25 -> 1d27 -> 1d29 r @@ -697,7 +664,7 @@ sta *draw_misc_ptr + 1 ; 1d29 -> 1d2b -> 1d2d r lda *half_dimension ; 1d2b -> 1d2d -> 1d2f r lsr a ; 1d2d -> 1d2f -> 1d30 r -@@ -2695,10 +3053,20 @@ +@@ -2686,10 +3052,20 @@ lsr a ; 1d31 -> 1d32 -> 1d33 r lsr a ; 1d32 -> 1d33 -> 1d34 r tay ; 1d33 -> 1d34 -> 1d35 r @@ -718,7 +685,7 @@ lda *half_dimension ; 1d3d -> 1d3f -> 1d41 r and #0x1f ; 1d3f -> 1d41 -> 1d43 r cmp #0x08 ; 1d41 -> 1d43 -> 1d45 r a=00..1f -@@ -2716,6 +3084,14 @@ +@@ -2707,6 +3083,14 @@ iny ; 1d57 -> 1d59 -> 1d5a r 1$: lda [*draw_misc_ptr],y ; 1d59,1d69 -> 1d5a -> 1d5c r y=03..0c beq 2$ ; 1d5a -> 1d5c -> 1d5e,1d61 r z=0..1 @@ -733,7 +700,7 @@ jsr do_draw_misc ; 1d5c -> 1d5e -> 1da6 r s=f3..f9,02 2$: iny ; 1d5c,1db5 -> 1d61 -> 1d62 r cpy #0x10 ; 1d61 -> 1d62 -> 1d64 r y=04..0d -@@ -2771,6 +3147,84 @@ +@@ -2762,6 +3146,84 @@ ldy *draw_misc_y_save ; 1d1b -> 1db3 -> 1db5 r rts_1db5: rts ; 1da1,1db3 -> 1db5 -> 1076,1d61,1d7d,1d82,1d87 r s=ee..f7 @@ -818,7 +785,7 @@ draw_misc_mask_table: .db 0xff ; 1db6 r .db 0x00 ; 1db7 r -@@ -2781,72 +3235,17 @@ +@@ -2772,14 +3234,15 @@ .db 0xd5 ; 1dbc r .db 0xff ; 1dbd r draw_misc_mask_xor_table: @@ -830,64 +797,6 @@ - .db 0x7f ; 1dc3 r - .db 0x7f ; 1dc4 r - .db 0x00 ; 1dc5 r -- .db 0x00 ; 1dc6 -- .db 0x00 ; 1dc7 -- .db 0x00 ; 1dc8 -- .db 0x00 ; 1dc9 -- .db 0x00 ; 1dca -- .db 0x00 ; 1dcb -- .db 0x00 ; 1dcc -- .db 0x00 ; 1dcd -- .db 0x00 ; 1dce -- .db 0x00 ; 1dcf -- .db 0x00 ; 1dd0 -- .db 0x00 ; 1dd1 -- .db 0x00 ; 1dd2 -- .db 0x00 ; 1dd3 -- .db 0x00 ; 1dd4 -- .db 0x00 ; 1dd5 -- .db 0x00 ; 1dd6 -- .db 0x00 ; 1dd7 -- .db 0x00 ; 1dd8 -- .db 0x00 ; 1dd9 -- .db 0x00 ; 1dda -- .db 0x00 ; 1ddb -- .db 0x00 ; 1ddc -- .db 0x00 ; 1ddd -- .db 0x00 ; 1dde -- .db 0x00 ; 1ddf -- .db 0x00 ; 1de0 -- .db 0x00 ; 1de1 -- .db 0x00 ; 1de2 -- .db 0x00 ; 1de3 -- .db 0x00 ; 1de4 -- .db 0x00 ; 1de5 -- .db 0x00 ; 1de6 -- .db 0x00 ; 1de7 -- .db 0x00 ; 1de8 -- .db 0x00 ; 1de9 -- .db 0x00 ; 1dea -- .db 0x00 ; 1deb -- .db 0x00 ; 1dec -- .db 0x00 ; 1ded -- .db 0x00 ; 1dee -- .db 0x00 ; 1def -- .db 0x00 ; 1df0 -- .db 0x00 ; 1df1 -- .db 0x00 ; 1df2 -- .db 0x00 ; 1df3 -- .db 0x00 ; 1df4 -- .db 0x00 ; 1df5 -- .db 0x00 ; 1df6 -- .db 0x00 ; 1df7 -- .db 0x00 ; 1df8 -- .db 0x00 ; 1df9 -- .db 0x00 ; 1dfa -- .db 0x00 ; 1dfb -- .db 0x00 ; 1dfc -- .db 0x00 ; 1dfd -- .db 0x00 ; 1dfe -- .db 0x00 ; 1dff + .db 0xff ^ 0xff ;0x00 ; 1dbe r + .db 0x00 ^ 0x00 ;0x00 ; 1dbf r + .db 0x55 ^ 0x2a ;0x7f ; 1dc0 r @@ -897,100 +806,13 @@ + .db 0xaa ^ 0xd5 ;0x7f ; 1dc4 r + .db 0xff ^ 0xff ;0x00 ; 1dc5 r +.endif -+.ifeq DHGR ; move to end -+ .ds 0x1e00 - 0xa00 - (. - text_start) - sub_1e00: - jmp loc_1e2a ; 15dc -> 1e00 -> 1e2a r - test_player_fire: -@@ -3005,77 +3404,7 @@ - adc #0x01 ; 1f32 -> 1f33 -> 1f35 r c=0 d=0 - sta object1080_velocity_x_hi + 0x50 ; 1f33 -> 1f35 -> 1f38 r - rts ; 1f35 -> 1f38 -> 15df r s=f9 -- .db 0x00 ; 1f39 -- .db 0x00 ; 1f3a -- .db 0x00 ; 1f3b -- .db 0x00 ; 1f3c -- .db 0x00 ; 1f3d -- .db 0x00 ; 1f3e -- .db 0x00 ; 1f3f -- .db 0x00 ; 1f40 -- .db 0x00 ; 1f41 -- .db 0x00 ; 1f42 -- .db 0x00 ; 1f43 -- .db 0x00 ; 1f44 -- .db 0x00 ; 1f45 -- .db 0x00 ; 1f46 -- .db 0x00 ; 1f47 -- .db 0x00 ; 1f48 -- .db 0x00 ; 1f49 -- .db 0x00 ; 1f4a -- .db 0x00 ; 1f4b -- .db 0x00 ; 1f4c -- .db 0x00 ; 1f4d -- .db 0x00 ; 1f4e -- .db 0x00 ; 1f4f -- .db 0x00 ; 1f50 -- .db 0x00 ; 1f51 -- .db 0x00 ; 1f52 -- .db 0x00 ; 1f53 -- .db 0x00 ; 1f54 -- .db 0x00 ; 1f55 -- .db 0x00 ; 1f56 -- .db 0x00 ; 1f57 -- .db 0x00 ; 1f58 -- .db 0x00 ; 1f59 -- .db 0x00 ; 1f5a -- .db 0x00 ; 1f5b -- .db 0x00 ; 1f5c -- .db 0x00 ; 1f5d -- .db 0x00 ; 1f5e -- .db 0x00 ; 1f5f -- .db 0x00 ; 1f60 -- .db 0x00 ; 1f61 -- .db 0x00 ; 1f62 -- .db 0x00 ; 1f63 -- .db 0x00 ; 1f64 -- .db 0x00 ; 1f65 -- .db 0x00 ; 1f66 -- .db 0x00 ; 1f67 -- .db 0x00 ; 1f68 -- .db 0x00 ; 1f69 -- .db 0x00 ; 1f6a -- .db 0x00 ; 1f6b -- .db 0x00 ; 1f6c -- .db 0x00 ; 1f6d -- .db 0x00 ; 1f6e -- .db 0x00 ; 1f6f -- .db 0x00 ; 1f70 -- .db 0x00 ; 1f71 -- .db 0x00 ; 1f72 -- .db 0x00 ; 1f73 -- .db 0x00 ; 1f74 -- .db 0x00 ; 1f75 -- .db 0x00 ; 1f76 -- .db 0x00 ; 1f77 -- .db 0x00 ; 1f78 -- .db 0x00 ; 1f79 -- .db 0x00 ; 1f7a -- .db 0x00 ; 1f7b -- .db 0x00 ; 1f7c -- .db 0x00 ; 1f7d -- .db 0x00 ; 1f7e -- .db 0x00 ; 1f7f -+ .ds 0x1f80 - 0xa00 - (. - text_start) - barr_1f80: - .db 0x43 ; 1f80 r - .db 0x02 ; 1f81 r -@@ -3212,9 +3541,20 @@ - .db 0x00 ; 1ffd r - .db 0x00 ; 1ffe r - .db 0x00 ; 1fff r -+.endif - .area data0 -- -+data0_start: -+ + .area text2 + +@@ -3083,6 +3546,15 @@ + + .area data2 + +.if DHGR +.include "../shape/dhgr_pixel_shape_index.inc" +.else @@ -1001,9 +823,9 @@ +.include "../shape/shape_index.inc" +.else shape_data_ptr_lo: - .db 9ded -> r -- ldx #0xff ; 9dee r -- txs ; 9df0 r -- lda #init_game ; 9df5 r -- sta *vec_init_game + 1 ; 9df7 r -- lda #start_game ; 9dfd r -- sta *vec_start_game + 1 ; 9dff r -- lda #calculate_object_shape ; 9e05 r -- sta *vec_calculate_object_shape + 1 ; 9e07 r -- lda #draw_misc_from_table ; 9e0d r -- sta *vec_draw_misc_from_table + 1 ; 9e0f r -- lda #restart ; 9e16 r -- sta vec_restart + 1 ; 9e18 r -- jmp start ; 9e1b r + bvar_8e00: + .db 0x30 ; 8e00 r + .db 0x0f ; 8e01 +@@ -26140,6 +26630,13 @@ + .db 0x7c ; 9dea + .db 0x98 ; 9deb + .db 0x00 ; 9dec +.endif + -+.if DHGR ; move to here -+sub_1e00: -+ jmp loc_1e2a ; 15dc -> 1e00 -> 1e2a r -+test_player_fire: -+ clc ; 1542 -> 1e03 -> 1e04 r -+ bit *demo_mode ; 1e03 -> 1e04 -> 1e06 r -+ bmi loc_1e1e ; 1e04 -> 1e06 -> 1e08,1e1e r n=0..1 -+ lda HW_PB0 ; 1e06 -> 1e08 -> 1e0b r -+ ora HW_PB1 ; 1e08 -> 1e0b -> 1e0e r -+bvar_1e0e: -+ bmi loc_1e21 ; 1e0b -> 1e0e -> 1e10 rw n=0 -+ lda #0x02 ; 1e0e -> 1e10 -> 1e12 r -+ and *button_state ; 1e10 -> 1e12 -> 1e14 r -+ beq 0$ ; 1e12 -> 1e14 -> 1e16,1e1d r z=0..1 -+ lda #0xfd ; 1e14 -> 1e16 -> 1e18 r -+ and *button_state ; 1e16 -> 1e18 -> 1e1a r -+ sta *button_state ; 1e18 -> 1e1a -> 1e1c r -+ sec ; 1e1a -> 1e1c -> 1e1d r -+0$: rts ; 1e14,1e1c -> 1e1d -> 1545 r s=f7 -+loc_1e1e: -+ jsr random_byte ; 1e06 -> 1e1e -> 1881 r s=f7 -+loc_1e21: -+ asl a ; 18a1 -> 1e21 -> 1e22 r -+ rts ; 1e21 -> 1e22 -> 1545 r s=f7 -+loc_1e23: -+ lda #0x02 ; 1e4a -> 1e23 -> 1e25 r -+ ora *button_state ; 1e23 -> 1e25 -> 1e27 r -+ sta *button_state ; 1e25 -> 1e27 -> 1e29 r -+ rts ; 1e27 -> 1e29 -> 15df r s=f9 -+loc_1e2a: -+ bit *demo_mode ; 1e00 -> 1e2a -> 1e2c r -+ bpl 0$ ; 1e2a -> 1e2c -> 1e2e,1e42 r n=0..1 -+ jsr random_byte ; 1e2c -> 1e2e -> 1881 r s=f9 -+ and #0x1f ; 18a1 -> 1e31 -> 1e33 r -+ tay ; 1e31 -> 1e33 -> 1e34 r -+ dey ; 1e33 -> 1e34 -> 1e35 r -+ beq 6$ ; 1e34 -> 1e35 -> 1e37,1e87 r z=0..1 -+ dey ; 1e35 -> 1e37 -> 1e38 r -+ beq 7$ ; 1e37 -> 1e38 -> 1e3a,1e94 r z=0..1 -+ dey ; 1e38 -> 1e3a -> 1e3b r -+ beq 2$ ; 1e3a -> 1e3b -> 1e3d,1e69 r z=0..1 -+ dey ; 1e3b -> 1e3d -> 1e3e r -+ beq 1$ ; 1e3d -> 1e3e -> 1e40,1e5c r z=0..1 -+ bne 4$ ; 1e3e -> 1e40 -> 1e82 r z=0 -+0$: bit *button_state ; 1e2c -> 1e42 -> 1e44 r -+ bmi 5$ ; 1e42 -> 1e44 -> 1e46 r n=0 -+ lda *key_state ; 1e44 -> 1e46 -> 1e48 r -+ cmp #0xa0 ; 1e46 -> 1e48 -> 1e4a r a=00..da -+ beq loc_1e23 ; 1e48 -> 1e4a -> 1e23,1e4c r z=0..1 -+ cmp #0xc1 ; 1e4a -> 1e4c -> 1e4e r a=00..da -+ beq 6$ ; 1e4c -> 1e4e -> 1e50,1e87 r z=0..1 -+ cmp #0xda ; 1e4e -> 1e50 -> 1e52 r a=00..da -+ beq 7$ ; 1e50 -> 1e52 -> 1e54,1e94 r z=0..1 -+ cmp #0x95 ; 1e52 -> 1e54 -> 1e56 r a=00..95 -+ beq 2$ ; 1e54 -> 1e56 -> 1e58,1e69 r z=0..1 -+ cmp #0x88 ; 1e56 -> 1e58 -> 1e5a r a=00..88 -+ bne 4$ ; 1e58 -> 1e5a -> 1e5c,1e82 r z=0..1 -+1$: ldy object1080_velocity_x_hi + 0x51 ; 1e3e,1e5a -> 1e5c -> 1e5f r -+ cpy #0x01 ; 1e5c -> 1e5f -> 1e61 r y=00..04 -+ bmi 4$ ; 1e5f -> 1e61 -> 1e63,1e82 r n=0..1 -+ lda #0x20 ; 1e61 -> 1e63 -> 1e65 r -+ ldy #0xff ; 1e63 -> 1e65 -> 1e67 r -+ bne 3$ ; 1e65 -> 1e67 -> 1e74 r z=0 -+2$: ldy object1080_velocity_x_hi + 0x51 ; 1e3b,1e56 -> 1e69 -> 1e6c r -+ cpy #0x04 ; 1e69 -> 1e6c -> 1e6e r y=00..04 -+ bpl 4$ ; 1e6c -> 1e6e -> 1e70,1e82 r n=0..1 -+ lda #0xe0 ; 1e6e -> 1e70 -> 1e72 r -+ ldy #0x00 ; 1e70 -> 1e72 -> 1e74 r -+3$: clc ; 1e67,1e72 -> 1e74 -> 1e75 r -+ adc object1080_velocity_x_lo + 0x51 ; 1e74 -> 1e75 -> 1e78 r c=0 d=0 -+ sta object1080_velocity_x_lo + 0x51 ; 1e75 -> 1e78 -> 1e7b r -+ tya ; 1e78 -> 1e7b -> 1e7c r -+ adc object1080_velocity_x_hi + 0x51 ; 1e7b -> 1e7c -> 1e7f r c=0..1 d=0 -+ sta object1080_velocity_x_hi + 0x51 ; 1e7c -> 1e7f -> 1e82 r -+4$: jmp 17$ ; 1e40,1e5a,1e61,1e6e,1e7f -> 1e82 -> 1f1f r -+5$: bmi 10$ ; 1e85 r -+6$: ldy object1080_velocity_y_hi + 0x51 ; 1e35,1e4e -> 1e87 -> 1e8a r -+ cpy #0xfe ; 1e87 -> 1e8a -> 1e8c r y=00..ff -+ bmi 9$ ; 1e8a -> 1e8c -> 1e8e,1ead r n=0..1 -+ lda #0x00 ; 1e8c -> 1e8e -> 1e90 r -+ ldy #0xff ; 1e8e -> 1e90 -> 1e92 r -+ bne 8$ ; 1e90 -> 1e92 -> 1e9f r z=0 -+7$: ldy object1080_velocity_y_hi + 0x51 ; 1e38,1e52 -> 1e94 -> 1e97 r -+ cpy #0x03 ; 1e94 -> 1e97 -> 1e99 r y=00..ff -+ bpl 9$ ; 1e97 -> 1e99 -> 1e9b,1ead r n=0..1 -+ lda #0x00 ; 1e99 -> 1e9b -> 1e9d r -+ ldy #0x01 ; 1e9b -> 1e9d -> 1e9f r -+8$: clc ; 1e92,1e9d -> 1e9f -> 1ea0 r -+ adc object1080_velocity_y_lo + 0x51 ; 1e9f -> 1ea0 -> 1ea3 r c=0 d=0 -+ sta object1080_velocity_y_lo + 0x51 ; 1ea0 -> 1ea3 -> 1ea6 r -+ tya ; 1ea3 -> 1ea6 -> 1ea7 r -+ adc object1080_velocity_y_hi + 0x51 ; 1ea6 -> 1ea7 -> 1eaa r c=0 d=0 -+ sta object1080_velocity_y_hi + 0x51 ; 1ea7 -> 1eaa -> 1ead r -+9$: jmp 17$ ; 1e8c,1e99,1eaa -> 1ead -> 1f1f r -+10$: lda #0x01 ; 1eb0 r -+ eor *button_state ; 1eb2 r -+ sta *button_state ; 1eb4 r -+ and #0x01 ; 1eb6 r -+ php ; 1eb8 r -+ ora #0x64 ; 1eb9 r -+ sta 12$ ; 1ebb r -+ bit HW_PTRIG ; 1ebe r -+ ldy #0xfe ; 1ec1 r -+ lda #0x40 ; 1ec3 r -+11$: .db 0x2c ; 1ec5 r "bit HW_PADDL1" -+12$: .dw HW_PADDL1 ; 1ec6 rw -+ bpl 13$ ; 1ec8 r -+ clc ; 1eca r -+ adc #0x05 ; 1ecb r -+ bcc 11$ ; 1ecd r -+ iny ; 1ecf r -+ cpy #0x03 ; 1ed0 r -+ bne 11$ ; 1ed2 r -+ dey ; 1ed4 r -+ sbc #0x05 ; 1ed5 r -+13$: plp ; 1ed7 r -+ bne 15$ ; 1ed8 r -+ sta object1080_velocity_x_lo + 0x51 ; 1eda r -+ clc ; 1edd r -+ adc object1080_x_lo + 0x51 ; 1ede r -+ iny ; 1ee1 r -+ iny ; 1ee2 r -+ tya ; 1ee3 r -+ sta object1080_velocity_x_hi + 0x51 ; 1ee4 r -+ adc object1080_x_hi + 0x51 ; 1ee7 r -+ cmp #0x4f ; 1eea r -+ bcc 14$ ; 1eec r -+ cmp #0xab ; 1eee r -+ bcc 17$ ; 1ef0 r -+14$: lda object1080_velocity_x_lo + 0x50 ; 1ef2 r -+ sta object1080_velocity_x_lo + 0x51 ; 1ef5 r -+ lda object1080_velocity_x_hi + 0x50 ; 1ef8 r -+ sta object1080_velocity_x_hi + 0x51 ; 1efb r -+ jmp 17$ ; 1efe r -+15$: sta object1080_velocity_y_lo + 0x51 ; 1f01 r -+ clc ; 1f04 r -+ adc object1080_y_lo + 0x51 ; 1f05 r -+ tya ; 1f08 r -+ sta object1080_velocity_y_hi + 0x51 ; 1f09 r -+ adc object1080_y_hi + 0x51 ; 1f0c r -+ cmp #0x35 ; 1f0f r -+ bcc 16$ ; 1f11 r -+ cmp #0xb8 ; 1f13 r -+ bcc 17$ ; 1f15 r -+16$: lda #0x00 ; 1f17 r -+ sta object1080_velocity_y_lo + 0x51 ; 1f19 r -+ sta object1080_velocity_y_hi + 0x51 ; 1f1c r -+17$: lda object1080_x_hi + 0x51 ; 1e82,1ead -> 1f1f -> 1f22 r -+ asl a ; 1f1f -> 1f22 -> 1f23 r -+ rol object1080_velocity_x_hi + 0x50 ; 1f22 -> 1f23 -> 1f26 r -+ asl a ; 1f23 -> 1f26 -> 1f27 r -+ rol object1080_velocity_x_hi + 0x50 ; 1f26 -> 1f27 -> 1f2a r -+ sta object1080_velocity_x_lo + 0x50 ; 1f27 -> 1f2a -> 1f2d r -+ lda object1080_velocity_x_hi + 0x50 ; 1f2a -> 1f2d -> 1f30 r -+ and #0x03 ; 1f2d -> 1f30 -> 1f32 r -+ clc ; 1f30 -> 1f32 -> 1f33 r -+ adc #0x01 ; 1f32 -> 1f33 -> 1f35 r c=0 d=0 -+ sta object1080_velocity_x_hi + 0x50 ; 1f33 -> 1f35 -> 1f38 r -+ rts ; 1f35 -> 1f38 -> 15df r s=f9 -+ .ds 0xa180 - 0x4000 - (. - data0_start) -+barr_1f80: -+ .db 0x43 ; 1f80 r -+ .db 0x02 ; 1f81 r -+ .db 0x0a ; 1f82 r -+ .db 0x10 ; 1f83 r -+ .db 0x06 ; 1f84 r -+ .db 0xa0 ; 1f85 r -+ .db 0x01 ; 1f86 r -+ .db 0x04 ; 1f87 r -+ .db 0x03 ; 1f88 r -+ .db 0x08 ; 1f89 r -+ .db 0x08 ; 1f8a r -+ .db 0x18 ; 1f8b r -+ .db 0x08 ; 1f8c r -+ .db 0x18 ; 1f8d r -+ .db 0x18 ; 1f8e r -+ .db 0x18 ; 1f8f r -+barr_1f90: -+ .db 0x00 ; 1f90 r -+ .db 0xff ; 1f91 r -+ .db 0x11 ; 1f92 r -+ .db 0x60 ; 1f93 r -+ .db 0x08 ; 1f94 r -+ .db 0x01 ; 1f95 r -+ .db 0x30 ; 1f96 r -+ .db 0xa1 ; 1f97 r -+ .db 0x40 ; 1f98 r -+ .db 0x10 ; 1f99 r -+ .db 0x10 ; 1f9a r -+ .db 0x21 ; 1f9b r -+ .db 0x30 ; 1f9c r -+ .db 0x31 ; 1f9d r -+ .db 0x49 ; 1f9e r -+ .db 0x61 ; 1f9f r -+barr_1fa0: -+ .db 0xab ; 1fa0 r -+ .db 0x80 ; 1fa1 r -+ .db 0xff ; 1fa2 r -+ .db 0x00 ; 1fa3 r -+ .db 0x08 ; 1fa4 r -+ .db 0x01 ; 1fa5 r -+ .db 0x00 ; 1fa6 r -+ .db 0x00 ; 1fa7 r -+ .db 0xf8 ; 1fa8 r -+ .db 0xb0 ; 1fa9 r -+ .db 0xa9 ; 1faa r -+ .db 0xff ; 1fab r -+ .db 0xfc ; 1fac r -+ .db 0xfe ; 1fad r -+ .db 0xfd ; 1fae r -+ .db 0xfc ; 1faf r -+barr_1fb0: -+ .db 0xff ; 1fb0 r -+ .db 0xff ; 1fb1 r -+ .db 0xff ; 1fb2 r -+ .db 0xff ; 1fb3 r -+ .db 0x18 ; 1fb4 r -+ .db 0xff ; 1fb5 r -+ .db 0xff ; 1fb6 r -+ .db 0xff ; 1fb7 r -+ .db 0x10 ; 1fb8 r -+ .db 0xff ; 1fb9 r -+ .db 0xff ; 1fba r -+ .db 0xff ; 1fbb r -+ .db 0xff ; 1fbc r -+ .db 0xff ; 1fbd r -+ .db 0xff ; 1fbe r -+ .db 0xff ; 1fbf r -+barr_1fc0: -+ .db 0x04 ; 1fc0 r -+ .db 0x04 ; 1fc1 r -+ .db 0x06 ; 1fc2 r -+ .db 0x02 ; 1fc3 r -+ .db 0x08 ; 1fc4 r -+ .db 0x02 ; 1fc5 r -+ .db 0x10 ; 1fc6 r -+ .db 0x02 ; 1fc7 r -+ .db 0x08 ; 1fc8 r -+ .db 0x04 ; 1fc9 r -+ .db 0x04 ; 1fca r -+ .db 0x02 ; 1fcb r -+ .db 0x06 ; 1fcc r -+ .db 0x02 ; 1fcd r -+ .db 0x02 ; 1fce r -+ .db 0x02 ; 1fcf r -+barr_1fd0: -+ .db 0x00 ; 1fd0 r -+ .db 0x00 ; 1fd1 r -+ .db 0x00 ; 1fd2 r -+ .db 0x00 ; 1fd3 r -+ .db 0xfe ; 1fd4 r -+ .db 0x00 ; 1fd5 r -+ .db 0x00 ; 1fd6 r -+ .db 0x00 ; 1fd7 r -+ .db 0x02 ; 1fd8 r -+ .db 0x00 ; 1fd9 r -+ .db 0x00 ; 1fda r -+ .db 0x00 ; 1fdb r -+ .db 0x00 ; 1fdc r -+ .db 0x00 ; 1fdd r -+ .db 0x00 ; 1fde r -+ .db 0x00 ; 1fdf r -+barr_1fe0: -+ .db 0x01 ; 1fe0 r -+ .db 0x02 ; 1fe1 r -+ .db 0x01 ; 1fe2 r -+ .db 0x01 ; 1fe3 r -+ .db 0x01 ; 1fe4 r -+ .db 0x01 ; 1fe5 r -+ .db 0x01 ; 1fe6 r -+ .db 0x01 ; 1fe7 r -+ .db 0x03 ; 1fe8 r -+ .db 0x01 ; 1fe9 r -+ .db 0x01 ; 1fea r -+ .db 0x01 ; 1feb r -+ .db 0x04 ; 1fec r -+ .db 0x01 ; 1fed r -+ .db 0x01 ; 1fee r -+ .db 0x01 ; 1fef r -+barr_1ff0: -+ .db 0x00 ; 1ff0 r -+ .db 0x00 ; 1ff1 r -+ .db 0x00 ; 1ff2 r -+ .db 0x00 ; 1ff3 r -+ .db 0x00 ; 1ff4 r -+ .db 0x00 ; 1ff5 r -+ .db 0x00 ; 1ff6 r -+ .db 0x00 ; 1ff7 r -+ .db 0x00 ; 1ff8 r -+ .db 0x00 ; 1ff9 r -+ .db 0x00 ; 1ffa r -+ .db 0x00 ; 1ffb r -+ .db 0x00 ; 1ffc r -+ .db 0x00 ; 1ffd r -+ .db 0x00 ; 1ffe r -+ .db 0x00 ; 1fff r -+ -+ .area data1 ++.if DHGR ++ .area data5 + +.include "../shape/dhgr_pixel_shape_data_aux.inc" +.endif - .area udata2 - -@@ -25817,3 +25952,4 @@ - object6080_b560: - .ds 0x20 ; b560 rw + .area udata1 -+ .end start diff --git a/disasm/star_blazer.txt b/disasm/star_blazer.txt index 2e0fb31..963cf4c 100644 --- a/disasm/star_blazer.txt +++ b/disasm/star_blazer.txt @@ -1,15 +1,20 @@ areas 0x0000,0x00f3,zpage,uninit -0x0200,0x0002,udata0,uninit -0x0400,0x03f0,udata1,uninit -0x09fd,0x1603,text,init -0x4000,0x5e1e,data0,init -0xa800,0x0d80,udata2,uninit +0x0200,0x0002,data0,init +0x0400,0x03f0,udata0,uninit +0x0a00,0x0df5,text0,init +0x1800,0x05c6,text1,init +0x1e00,0x0139,text2,init +0x1f80,0x0080,data1,init +0x4000,0x1bc0,data2,init +0x5c00,0x3008,data3,init +0x8e00,0x0fed,data4,init +0xa800,0x0d80,udata1,uninit items 0x0022,0x0002,vec_init_game,word 0x0024,0x0002,vec_start_game,word -0x0028,0x0002,vec_calculate_object_shape,word +0x0028,0x0002,vec_calculate_object_shape,word,,10000 # suppress local for patch 0x004e,0x0002,vec_draw_misc_from_table,word 0x0080,0x0001,half_dimension,byte 0x0081,0x0001,x_save,byte @@ -363,9 +368,9 @@ items 0x16f1,0x0001,clear_demo_mode_set_mission_from_a,code 0x16f7,0x0001,set_demo_mode_set_mission_from_a,code 0x16fd,0x0001,inc_mission,code -0x1708,0x0001,init_game,code +0x1708,0x0001,init_game,code,,10000 # suppress local for patch 0x1719,0x0001,start_game_demo,code -0x171b,0x0001,start_game,code +0x171b,0x0001,start_game,code,,10000 # suppress local for patch 0x1750,0x0001,test_key,code 0x1797,0x0001,read_buttons,code 0x17b1,0x0001,vector_to_start_game,code @@ -388,29 +393,41 @@ items 0x1a3d,0x0008,pixel_mask_table_right,byte 0x1a45,0x0001,draw_pixel_object,code 0x1aaf,0x0001,draw_object,code +0x1b6b,0x0001,,code_ign # self-modifying code assembled with garbage word +0x1b6c,0x0002,,word 0x1b96,0x0001,,code_ign # bug? spans a900 and aa00 tables, don't merge them 0x1b9b,0x0001,,code_ign # bug? spans aa00 and ab00 tables, don't merge them +0x1bb4,0x0001,,code_ign # self-modifying code assembled with garbage word +0x1bb5,0x0002,,word 0x1bcc,0x0001,erase_pixel_object,code 0x1c0d,0x0001,erase_object,code +0x1c50,0x0001,,code_ign # self-modifying code assembled with garbage word +0x1c51,0x0002,,word 0x1c7a,0x0001,,code_ign # bug? spans a900 and aa00 tables, don't merge them 0x1c7f,0x0001,,code_ign # bug? spans aa00 and ab00 tables, don't merge them +0x1c98,0x0001,,code_ign # self-modifying code assembled with garbage word +0x1c99,0x0002,,word 0x1cb2,0x0001,draw_misc,code -0x1d1c,0x0001,draw_misc_from_table,code +0x1cfe,0x0001,,code_ign # self-modifying code assembled with garbage word +0x1cff,0x0002,,word +0x1d1c,0x0001,draw_misc_from_table,code,,10000 # suppress local for patch 0x1d6d,0x0001,draw_4_digits,code 0x1d8c,0x0001,draw_digit_hi,code 0x1d90,0x0001,draw_digit_lo,code 0x1da6,0x0001,do_draw_misc,code 0x1db6,0x0008,draw_misc_mask_table,byte 0x1dbe,0x0008,draw_misc_mask_xor_table,byte -0x1e03,0x0001,test_player_fire,code # returns cf=1 if firing (random for demo mode) +# returns cf=1 if firing (random for demo mode) +0x1e03,0x0001,test_player_fire,code 0x2000,0x2000,HIRES_SCREEN,byte -0x4000,0x0100,shape_data_ptr_lo,byte -0x4100,0x0100,shape_data_ptr_hi,byte -0x4200,0x0100,shape_width_bytes,byte +0x4000,0x0100,shape_data_ptr_lo,byte,byte +0x4100,0x0100,shape_data_ptr_hi,byte,byte +0x4200,0x0100,shape_width_bytes,byte,byte 0x4300,0x0100,shape_height,byte 0x4400,0x0100,shape_size_bytes,byte 0x4500,0x0100,shape_width,byte -0x4600,0x0200,draw_misc_table,byte,,10000 # 0x20 entries of 0x10 bytes +# 0x20 entries of 0x10 bytes +0x4600,0x0200,draw_misc_table,byte,,10000 # suppress local for patch 0x4800,0x0001,score_var_4800,byte 0x4801,0x000f,score_table_4801,byte 0x4810,0x0070,object1080_countdown_b120_init,byte @@ -491,630 +508,11 @@ items 0x5b00,0x0040,ucode6080_fire_state_f2,word 0x5b40,0x0040,ucode6080_test_fire_state_f3,word 0x5b80,0x0040,ucode6080_fire_state_f3,word -# from 0x5bc0 is padding -# generated by shape_extract.py, manually sorted, duplicates merged, named -0x5c00,0x003f,shape_20_bomb0,byte -0x5c3f,0x0054,shape_21_bomb1,byte -0x5c93,0x0046,shape_22_bomb2,byte -0x5cd9,0x0054,shape_23_bomb3,byte -0x5d2d,0x0054,shape_50_missile_launcher0_empty,byte -0x5d81,0x0118,shape_51_missile_launcher1_empty,byte -0x5e99,0x0188,shape_52_56_missile_launcher2,byte -0x6021,0x00c4,shape_54_missile_launcher0,byte -0x60e5,0x0118,shape_55_missile_launcher1,byte -0x61fd,0x003f,shape_40_missile0,byte -0x623c,0x0062,shape_44_missile4,byte -0x629e,0x003f,shape_48_missile8,byte -0x62dd,0x0062,shape_4c_missile12,byte -0x633f,0x0054,shape_41_missile1,byte -0x6393,0x0054,shape_47_missile7,byte -0x63e7,0x0054,shape_49_missile9,byte -0x643b,0x0054,shape_4f_missile15,byte -0x648f,0x0054,shape_42_missile2,byte -0x64e3,0x0054,shape_46_missile6,byte -0x6537,0x0054,shape_4a_missile10,byte -0x658b,0x0054,shape_4e_missile14,byte -0x65df,0x0062,shape_43_missile3,byte -0x6641,0x0062,shape_45_missile5,byte -0x66a3,0x0062,shape_4b_missile11,byte -0x6705,0x0062,shape_4d_missile13,byte -0x6767,0x0046,shape_60_fragment0,byte -0x67ad,0x0046,shape_61_fragment1,byte -0x67f3,0x0038,shape_62_fragment2,byte -0x682b,0x002a,shape_63_fragment3,byte -0x6855,0x0015,shape_64_fragment4,byte -0x686a,0x002a,shape_65_fragment5,byte -0x6894,0x0038,shape_66_fragment6,byte -0x68cc,0x0046,shape_67_fragment7,byte -0x6912,0x007e,shape_0c_bird0,byte -0x6990,0x007e,shape_0d_bird1,byte -0x6a0e,0x007e,shape_0e_bird2,byte -0x6a8c,0x000e,shape_0f_bird3,byte -0x6a9a,0x000e,shape_08_bullet3,byte -0x6aa8,0x0015,shape_09_bullet5,byte -0x6abd,0x0015,shape_0a_bullet7,byte -0x6ad2,0x001c,shape_0b_bullet9,byte -0x6aee,0x0054,shape_14_parachute0,byte -0x6b42,0x007e,shape_15_parachute1,byte -0x6bc0,0x00bd,shape_16_parachute_open,byte -0x6c7d,0x0093,shape_88_8a_explosion0_2,byte -0x6d10,0x0093,shape_89_explosion1,byte -0x6da3,0x007e,shape_8b_explosion3,byte -0x6e21,0x00a8,shape_10_ship,byte -0x6ec9,0x00c4,shape_11_ship_open,byte -0x6f8d,0x002a,shape_12_exhaust0,byte -0x6fb7,0x0008,shape_13_exhaust1,byte -0x6fbf,0x002a,shape_17_fuel,byte -0x6fe9,0x00d2,shape_18_supply_plane,byte -0x70bb,0x0038,shape_28_balloon0,byte -0x70f3,0x0062,shape_29_balloon1,byte -0x7155,0x00bd,shape_2a_balloon2,byte -0x7212,0x0070,shape_2e_enemy_plane0,byte -0x7282,0x0070,shape_2f_enemy_plane1,byte -0x72f2,0x00f5,shape_2c_helicopter,byte -0x73e7,0x0118,shape_1c_tank,byte -0x74ff,0x0118,shape_1e_missile_tank,byte -0x7617,0x0118,shape_1f_missile_tank_empty,byte -0x772f,0x0196,shape_36_pylon,byte -0x78c5,0x00d2,shape_30_silo0,byte -0x7997,0x00d2,shape_31_silo1,byte -0x7a69,0x0118,shape_70_haystack,byte -0x7b81,0x0118,shape_71_house,byte -0x7c99,0x0118,shape_72_headquarters,byte -0x7db1,0x00d2,shape_73_radar0,byte -0x7e83,0x00d2,shape_74_radar1,byte -0x7f55,0x00d2,shape_75_radar2,byte -0x8027,0x00bd,shape_76_icbm,byte -0x80e4,0x0188,shape_78_tree,byte -0x826c,0x0126,shape_79_cactus,byte -0x8392,0x0031,shape_aa_text_score,byte -0x83c3,0x0007,shape_ab_text_colon,byte -0x83ca,0x0023,shape_ac_text_high,byte -0x83ed,0x003f,shape_b0_text_mission,byte -0x842c,0x002a,shape_b2_text_fuel,byte -0x8456,0x0031,shape_b3_text_empty,byte -0x8487,0x002a,shape_b4_text_bomb,byte -0x84b1,0x004d,shape_b6_text_ship_left,byte -0x84fe,0x0054,shape_b7_text_complete,byte -0x8552,0x001c,shape_b8_text_the,byte -0x856e,0x0031,shape_b9_text_radar,byte -0x859f,0x0023,shape_ba_text_icbm,byte -0x85c2,0x003f,shape_bc_text_attack,byte -0x8601,0x002a,shape_bd_text_tank,byte -0x862b,0x0077,shape_be_text_headquarters,byte -0x86a2,0x0007,shape_bf_text_a,byte -0x86a9,0x0007,shape_a0_text_0,byte -0x86b0,0x0007,shape_a1_text_1,byte -0x86b7,0x0007,shape_a2_text_2,byte -0x86be,0x0007,shape_a3_text_3,byte -0x86c5,0x0007,shape_a4_text_4,byte -0x86cc,0x0007,shape_a5_text_5,byte -0x86d3,0x0007,shape_a6_text_6,byte -0x86da,0x0007,shape_a7_text_7,byte -0x86e1,0x0007,shape_a8_text_8,byte -0x86e8,0x0007,shape_a9_text_9,byte -0x86ef,0x0007,shape_ff_blank,byte -0x86f6,0x0010,shape_f0_ground0,byte -0x8706,0x0010,shape_f1_ground1,byte -0x8716,0x0010,shape_f2_ground2,byte -0x8726,0x0010,shape_f3_ground3,byte -0x8736,0x001c,shape_c0_ships0,byte -0x8752,0x0018,shape_c1_ships1,byte -0x876a,0x002a,shape_c2_ships2,byte -0x8794,0x003c,shape_c3_ships3,byte -0x87d0,0x0015,shape_d2_text_by,byte -0x87e5,0x002a,shape_d3_text_tony,byte -0x880f,0x0038,shape_d4_text_suzuki,byte -0x8847,0x002a,shape_d8_text_game,byte -0x8871,0x002a,shape_d9_text_over,byte -0x889b,0x0031,shape_da_text_bonus,byte -0x88cc,0x0031,shape_dc_text_great,byte -0x88fd,0x0070,shape_dd_text_performance,byte -0x896d,0x0015,shape_e1_text_copyright,byte -0x8982,0x0062,shape_e2_text_star_craft,byte -0x89e4,0x0023,shape_e3_text_inc,byte -0x8a07,0x003f,shape_e4_text_thanks,byte -0x8a46,0x002a,shape_e5_text_lot_comma,byte -0x8a70,0x002a,shape_e6_text_raly,byte -0x8a9a,0x000f,shape_e7_text_minus_20,byte -0x8aa9,0x003c,shape_e8_text_20_40_60_80,byte -0x8ae5,0x004b,shape_e9_text_100_120_300_1500,byte -0x8b30,0x005a,shape_d0_text_star,byte -0x8b8a,0x007e,shape_d1_text_blazer,byte -0x8e00,0x0003,ucode1080_countdown_30_pixel,word -0x8e03,0x0003,ucode4080_x_outside_61_ship,word -0x8e06,0x0011,ucode1080_animate_shape_68_missile,byte -0x8e17,0x0007,ucode1080_animate_shape_30_pixel,byte -0x8e1e,0x0007,ucode1080_animate_shape_31_pixel,byte -0x8e25,0x0003,ucode1080_countdown_31_pixel,word -0x8e28,0x0007,ucode1080_animate_shape_32_pixel,byte -0x8e2f,0x0003,ucode1080_countdown_32_pixel,word -0x8e32,0x0007,ucode1080_animate_shape_33_pixel,byte -0x8e39,0x0003,ucode1080_countdown_33_pixel,word -0x8e3c,0x0007,ucode1080_animate_shape_34_pixel,byte -0x8e43,0x0003,ucode1080_countdown_34_pixel,word -0x8e46,0x0007,ucode1080_animate_shape_35_pixel,byte -0x8e4d,0x0003,ucode1080_countdown_35_pixel,word -0x8e50,0x0007,ucode1080_animate_shape_36_pixel,byte -0x8e57,0x0003,ucode1080_countdown_36_pixel,word -0x8e5a,0x0007,ucode1080_animate_shape_37_pixel,byte -0x8e61,0x0003,ucode1080_countdown_37_pixel,word -0x8e64,0x0003,ucode4080_x_outside_68_missile,word -0x8e67,0x0007,ucode1080_animate_shape_38_pixel,byte -0x8e6e,0x0003,ucode1080_countdown_38_pixel,word -0x8e71,0x0007,ucode1080_animate_shape_39_pixel,byte -0x8e78,0x0003,ucode1080_countdown_39_pixel,word -0x8e7b,0x0007,ucode1080_animate_shape_3a_pixel,byte -0x8e82,0x0003,ucode1080_countdown_3a_pixel,word -0x8e85,0x0007,ucode1080_animate_shape_3b_pixel,byte -0x8e8c,0x0003,ucode1080_countdown_3b_pixel,word -0x8e8f,0x0011,ucode1080_animate_shape_69_missile,byte -0x8ea0,0x0003,ucode4080_x_outside_69_missile,word -0x8ea3,0x0011,ucode1080_animate_shape_6a_missile,byte -0x8eb4,0x0003,ucode4080_x_outside_6a_missile,word -0x8eb7,0x0009,ucode6080_fire_state_f0_68_missile,word -0x8ec0,0x0009,ucode6080_fire_state_f0_69_missile,word -0x8ec9,0x0009,ucode6080_fire_state_f0_6a_missile,word -0x8ed2,0x0003,ucode4080_x_outside_44_missile_launcher,word -0x8ed5,0x0003,ucode4080_x_outside_45_missile_launcher,word -0x8ed8,0x0003,ucode4080_x_outside_46_missile_launcher,word -0x8edb,0x000b,ucode1080_animate_shape_44_missile_launcher,byte -0x8ee6,0x000b,ucode1080_animate_shape_45_missile_launcher,byte -0x8ef1,0x000b,ucode1080_animate_shape_46_missile_launcher,byte -0x8efc,0x0009,ucode1080_animate_shape_14_fragment,byte -0x8f05,0x0009,ucode1080_animate_shape_18_fragment,byte -0x8f0e,0x0003,ucode1080_countdown_19_fragment,word -0x8f11,0x0009,ucode1080_animate_shape_1a_fragment,byte -0x8f1a,0x0003,ucode1080_countdown_1a_fragment,word -0x8f1d,0x0009,ucode1080_animate_shape_1b_fragment,byte -0x8f26,0x0003,ucode1080_countdown_1b_fragment,word -0x8f29,0x0009,ucode1080_animate_shape_1c_fragment,byte -0x8f32,0x0003,ucode4080_x_outside_43_tree_cactus,word -0x8f35,0x0003,ucode4080_x_outside_42_tree_cactus,word -0x8f38,0x0002,ucode6080_test_fire_state_f1_61_ship,word -0x8f3a,0x0009,ucode1080_collision_59_bomb_explosion,word -0x8f43,0x0009,ucode1080_collision_5a_bomb_explosion,word -0x8f4c,0x0009,ucode1080_collision_5b_bomb_explosion,word -0x8f55,0x0003,ucode4080_x_outside_41_tree_cactus,word -0x8f58,0x0003,ucode4080_x_outside_48_pylon,word -0x8f5b,0x0002,ucode1080_animate_shape_48_pylon,byte -0x8f5d,0x0002,ucode1080_animate_shape_70_supply_plane,byte -0x8f5f,0x0003,ucode4080_x_outside_71_parachute,word -0x8f62,0x0007,ucode1080_animate_shape_4e_pixel,byte -0x8f69,0x0003,ucode1080_countdown_4e_pixel,word -0x8f6c,0x0007,ucode1080_animate_shape_4f_pixel,byte -0x8f73,0x0003,ucode1080_countdown_4f_pixel,word -0x8f76,0x0009,ucode1080_collision_58_bomb_explosion,word -0x8f7f,0x0003,ucode1080_collision_50_bullet,word -0x8f82,0x0003,ucode4080_x_outside_50_bullet,word -0x8f85,0x0002,ucode6080_test_fire_state_f0_61_ship,word -0x8f87,0x0005,ucode1080_animate_shape_20_pixel,byte -0x8f8c,0x0005,ucode1080_animate_shape_21_pixel,byte -0x8f91,0x0005,ucode1080_animate_shape_22_pixel,byte -0x8f96,0x0005,ucode1080_animate_shape_24_pixel,byte -0x8f9b,0x0005,ucode1080_animate_shape_26_pixel,byte -0x8fa0,0x0021,ucode6080_fire_state_f0_63_pixel,word -0x8fc1,0x0003,ucode1080_countdown_14_fragment,word -0x8fc4,0x0003,ucode1080_countdown_18_fragment,word -0x8fc7,0x0003,ucode1080_countdown_1c_fragment,word -0x8fca,0x0005,ucode1080_animate_shape_23_pixel,byte -0x8fcf,0x0005,ucode1080_animate_shape_25_pixel,byte -0x8fd4,0x0005,ucode1080_animate_shape_27_pixel,byte -0x8fd9,0x0009,ucode1080_collision_5c_bomb_explosion,word -0x8fe2,0x0015,ucode1080_animate_shape_58_bomb_explosion,byte -0x8ff7,0x0014,ucode1080_animate_shape_5a_bomb_explosion,byte -0x900b,0x0016,ucode1080_animate_shape_5b_bomb_explosion,byte -0x9021,0x0014,ucode1080_animate_shape_5c_bomb_explosion,byte -0x9035,0x0003,ucode4080_x_outside_58_bomb_explosion,word -0x9038,0x0013,ucode4080_y_outside_58_bomb_explosion,word -0x904b,0x0003,ucode4080_x_outside_59_bomb_explosion,word -0x904e,0x0013,ucode4080_y_outside_59_bomb_explosion,word -0x9061,0x0003,ucode4080_x_outside_5a_bomb_explosion,word -0x9064,0x0013,ucode4080_y_outside_5a_bomb_explosion,word -0x9077,0x0003,ucode4080_x_outside_5b_bomb_explosion,word -0x907a,0x0013,ucode4080_y_outside_5b_bomb_explosion,word -0x908d,0x0003,ucode4080_x_outside_5c_bomb_explosion,word -0x9090,0x0013,ucode4080_y_outside_5c_bomb_explosion,word -0x90a3,0x0002,ucode1080_animate_shape_11_pixel,byte -0x90a5,0x0002,ucode1080_animate_shape_10_pixel,byte -0x90a7,0x0009,ucode1080_collision_5d_bomb_explosion,word -0x90b0,0x0003,ucode4080_x_outside_5d_bomb_explosion,word -0x90b3,0x0013,ucode4080_y_outside_5d_bomb_explosion,word -0x90c6,0x0014,ucode1080_animate_shape_5e_bomb_explosion,byte -0x90da,0x0009,ucode1080_collision_5e_bomb_explosion,word -0x90e3,0x0003,ucode4080_x_outside_5e_bomb_explosion,word -0x90e6,0x0013,ucode4080_y_outside_5e_bomb_explosion,word -0x90f9,0x0016,ucode1080_animate_shape_5f_bomb_explosion,byte -0x910f,0x0009,ucode1080_collision_5f_bomb_explosion,word -0x9118,0x0003,ucode4080_x_outside_5f_bomb_explosion,word -0x911b,0x0013,ucode4080_y_outside_5f_bomb_explosion,word -0x912e,0x0002,ucode6080_test_fire_state_f2_61_ship,word -0x9130,0x0009,ucode4080_y_outside_61_ship,word -0x9139,0x0002,ucode6080_test_fire_state_f3_61_ship,word -0x913b,0x0003,ucode6080_fire_state_f3_61_ship,word -0x913e,0x0003,ucode4080_x_outside_4d_headquarters_radar_icbm,word -0x9141,0x0003,ucode1080_collision_51_bullet,word -0x9144,0x0003,ucode4080_x_outside_51_bullet,word -0x9147,0x0003,ucode1080_collision_52_bullet,word -0x914a,0x0003,ucode4080_x_outside_52_bullet,word -0x914d,0x0002,ucode1080_animate_shape_47_pylon,byte -0x914f,0x0003,ucode4080_x_outside_47_pylon,word -0x9152,0x0003,ucode6080_test_fire_state_f2_78_pixel,word -0x9155,0x0003,ucode6080_test_fire_state_f3_78_pixel,word -0x9158,0x0002,ucode1080_animate_shape_78_pixel,byte -0x915a,0x0009,ucode6080_fire_state_f2_78_pixel,word -0x9163,0x0003,ucode1080_collision_test_10_pixel,byte -0x9166,0x0002,ucode1080_animate_shape_7a_pixel,byte -0x9168,0x000d,ucode1080_countdown_7a_pixel,word -0x9175,0x0003,ucode6080_test_fire_state_f2_7a_pixel,word -0x9178,0x0003,ucode6080_test_fire_state_f3_7a_pixel,word -0x917b,0x0003,ucode4080_x_outside_6b_helicopter_enemy_plane,word -0x917e,0x0014,ucode1080_animate_shape_59_bomb_explosion,byte -0x9192,0x0015,ucode1080_animate_shape_5d_bomb_explosion,byte -0x91a7,0x0003,ucode4080_y_outside_65_pixel_exhaust,word -0x91aa,0x0002,ucode1080_animate_shape_62_ship,byte -0x91ac,0x0004,ucode1080_animate_shape_64_pixel_ship,byte -0x91b0,0x0003,ucode1080_collision_test_78_pixel,byte -0x91b3,0x0003,ucode1080_collision_test_7a_pixel,byte -0x91b6,0x0003,ucode1080_countdown_64_pixel_ship,word -0x91b9,0x0002,ucode1080_animate_shape_60_pixel,byte -0x91bb,0x0002,ucode1080_animate_shape_7f_pixel,byte -0x91bd,0x0003,ucode6080_fire_state_f0_7f_pixel,word -0x91c0,0x0003,ucode6080_fire_state_f2_60_pixel,word -0x91c3,0x0005,ucode0010_init_or_zero_0d,word -0x91c8,0x0021,ucode6080_fire_state_f1_61_ship,word -0x91e9,0x0002,ucode1080_animate_shape_12_pixel,byte -0x91eb,0x0003,ucode1080_countdown_68_missile,word -0x91ee,0x0003,ucode1080_countdown_69_missile,word -0x91f1,0x0003,ucode1080_countdown_6a_missile,word -0x91f4,0x0005,ucode1080_countdown_60_pixel,word -0x91f9,0x0003,ucode6080_fire_state_f1_60_pixel,word -0x91fc,0x0007,ucode1080_collision_44_missile_launcher,word -0x9203,0x0007,ucode1080_collision_45_missile_launcher,word -0x920a,0x0007,ucode1080_collision_46_missile_launcher,word -0x9211,0x0007,ucode1080_collision_47_pylon,word -0x9218,0x0007,ucode1080_collision_48_pylon,word -0x921f,0x0003,ucode1080_collision_test_14_fragment,byte -0x9222,0x000b,ucode1080_collision_14_fragment,word -0x922d,0x0003,ucode1080_collision_test_18_fragment,byte -0x9230,0x0003,ucode1080_collision_test_1c_fragment,byte -0x9233,0x0004,ucode1080_animate_shape_41_tree_cactus,byte -0x9237,0x0004,ucode1080_animate_shape_42_tree_cactus,byte -0x923b,0x0004,ucode1080_animate_shape_43_tree_cactus,byte -0x923f,0x0003,ucode6080_fire_state_f0_65_pixel_exhaust,word -0x9242,0x0003,ucode6080_fire_state_f1_65_pixel_exhaust,word -0x9245,0x0003,ucode6080_test_fire_state_f1_6b_helicopter_enemy_plane,word -0x9248,0x000b,ucode6080_fire_state_f1_6b_helicopter_enemy_plane,word -0x9253,0x0003,ucode6080_fire_state_f0_6b_helicopter_enemy_plane,word -0x9256,0x0003,ucode4080_x_outside_6c_helicopter_enemy_plane,word -0x9259,0x0003,ucode6080_fire_state_f0_6c_helicopter_enemy_plane,word -0x925c,0x0003,ucode6080_test_fire_state_f1_6c_helicopter_enemy_plane,word -0x925f,0x000b,ucode6080_fire_state_f1_6c_helicopter_enemy_plane,word -0x926a,0x0003,ucode4080_x_outside_6d_helicopter_enemy_plane,word -0x926d,0x0003,ucode6080_fire_state_f0_6d_helicopter_enemy_plane,word -0x9270,0x0003,ucode6080_test_fire_state_f1_6d_helicopter_enemy_plane,word -0x9273,0x000b,ucode6080_fire_state_f1_6d_helicopter_enemy_plane,word -0x927e,0x000d,ucode1080_collision_18_fragment,word -0x928b,0x0009,ucode6080_fire_state_f3_78_pixel,word -0x9294,0x0006,ucode1080_animate_shape_50_bullet,byte -0x929a,0x0006,ucode1080_animate_shape_51_bullet,byte -0x92a0,0x0006,ucode1080_animate_shape_52_bullet,byte -0x92a6,0x0003,ucode4080_x_outside_70_supply_plane,word -0x92a9,0x0003,ucode4080_x_outside_53_pixel_balloon_explosion,word -0x92ac,0x0003,ucode4080_y_outside_53_pixel_balloon_explosion,word -0x92af,0x0003,ucode6080_fire_state_f1_71_parachute,word -0x92b2,0x0003,ucode4080_x_outside_72_fuel_explosion,word -0x92b5,0x0008,ucode1080_animate_shape_61_ship,byte -0x92bd,0x0003,ucode4080_y_outside_71_parachute,word -0x92c0,0x000f,ucode4080_y_outside_72_fuel_explosion,word -0x92cf,0x0003,ucode6080_fire_state_f3_71_parachute,word -0x92d2,0x0005,ucode1080_countdown_71_parachute,word -0x92d7,0x0007,ucode1080_countdown_58_bomb_explosion,word -0x92de,0x0007,ucode1080_countdown_59_bomb_explosion,word -0x92e5,0x0007,ucode1080_countdown_5a_bomb_explosion,word -0x92ec,0x0007,ucode1080_countdown_5b_bomb_explosion,word -0x92f3,0x0007,ucode1080_countdown_5c_bomb_explosion,word -0x92fa,0x0007,ucode1080_countdown_5d_bomb_explosion,word -0x9301,0x0007,ucode1080_countdown_5e_bomb_explosion,word -0x9308,0x0007,ucode1080_countdown_5f_bomb_explosion,word -0x930f,0x0003,ucode6080_test_fire_state_f0_6c_helicopter_enemy_plane,word -0x9312,0x0003,ucode6080_test_fire_state_f0_6b_helicopter_enemy_plane,word -0x9315,0x0003,ucode6080_test_fire_state_f0_6d_helicopter_enemy_plane,word -0x9318,0x0004,ucode1080_animate_shape_65_pixel_exhaust,byte -0x931c,0x0002,ucode1080_animate_shape_66_ship,byte -0x931e,0x0009,ucode1080_animate_shape_16_fragment,byte -0x9327,0x0003,ucode1080_countdown_16_fragment,word -0x932a,0x0009,ucode1080_animate_shape_1e_fragment,byte -0x9333,0x0003,ucode1080_countdown_1e_fragment,word -0x9336,0x0009,ucode1080_animate_shape_17_fragment,byte -0x933f,0x0003,ucode1080_countdown_17_fragment,word -0x9342,0x0009,ucode1080_animate_shape_1f_fragment,byte -0x934b,0x0003,ucode1080_countdown_1f_fragment,word -0x934e,0x0009,ucode1080_animate_shape_19_fragment,byte -0x9357,0x0009,ucode1080_animate_shape_15_fragment,byte -0x9360,0x0003,ucode1080_countdown_15_fragment,word -0x9363,0x0009,ucode1080_animate_shape_1d_fragment,byte -0x936c,0x0003,ucode1080_countdown_1d_fragment,word -0x936f,0x0002,ucode1080_animate_shape_7c_pixel,byte -0x9371,0x0003,ucode1080_collision_test_7c_pixel,byte -0x9374,0x0003,ucode6080_test_fire_state_f2_7c_pixel,word -0x9377,0x0003,ucode6080_test_fire_state_f3_7c_pixel,word -0x937a,0x000d,ucode6080_fire_state_f3_65_pixel_exhaust,word -0x9387,0x0002,ucode1080_animate_shape_79_pixel,byte -0x9389,0x0003,ucode1080_collision_test_79_pixel,byte -0x938c,0x0003,ucode6080_test_fire_state_f3_79_pixel,word -0x938f,0x0011,ucode1080_countdown_7f_pixel,word -0x93a0,0x0011,ucode6080_fire_state_f1_7f_pixel,word -0x93b1,0x0010,ucode1080_collision_test_64_pixel_ship,byte -0x93c1,0x000e,ucode1080_animate_shape_53_pixel_balloon_explosion,byte -0x93cf,0x000e,ucode1080_animate_shape_54_pixel_balloon_explosion,byte -0x93dd,0x0003,ucode4080_x_outside_54_pixel_balloon_explosion,word -0x93e0,0x0003,ucode4080_y_outside_54_pixel_balloon_explosion,word -0x93e3,0x000e,ucode1080_animate_shape_55_pixel_balloon_explosion,byte -0x93f1,0x0003,ucode4080_x_outside_55_pixel_balloon_explosion,word -0x93f4,0x0003,ucode4080_y_outside_55_pixel_balloon_explosion,word -0x93f7,0x000e,ucode1080_animate_shape_56_pixel_balloon_explosion,byte -0x9405,0x0003,ucode4080_x_outside_56_pixel_balloon_explosion,word -0x9408,0x0003,ucode4080_y_outside_56_pixel_balloon_explosion,word -0x940b,0x000e,ucode1080_animate_shape_57_pixel_balloon_explosion,byte -0x9419,0x0003,ucode4080_x_outside_57_pixel_balloon_explosion,word -0x941c,0x0003,ucode4080_y_outside_57_pixel_balloon_explosion,word -0x941f,0x000b,ucode1080_collision_test_61_ship,byte -0x942a,0x000d,ucode1080_countdown_7c_pixel,word -0x9437,0x0002,ucode1080_animate_shape_2c_pixel,byte -0x9439,0x0003,ucode6080_test_fire_state_f0_77_tank,word -0x943c,0x0003,ucode4080_x_outside_6e_helicopter_enemy_plane,word -0x943f,0x0003,ucode6080_test_fire_state_f0_6e_helicopter_enemy_plane,word -0x9442,0x0003,ucode6080_fire_state_f0_6e_helicopter_enemy_plane,word -0x9445,0x0003,ucode6080_test_fire_state_f1_6e_helicopter_enemy_plane,word -0x9448,0x000b,ucode6080_fire_state_f1_6e_helicopter_enemy_plane,word -0x9453,0x0003,ucode4080_x_outside_6f_helicopter_enemy_plane,word -0x9456,0x0003,ucode6080_test_fire_state_f0_6f_helicopter_enemy_plane,word -0x9459,0x0003,ucode6080_fire_state_f0_6f_helicopter_enemy_plane,word -0x945c,0x0003,ucode6080_test_fire_state_f1_6f_helicopter_enemy_plane,word -0x945f,0x000b,ucode6080_fire_state_f1_6f_helicopter_enemy_plane,word -0x946a,0x0003,ucode6080_test_fire_state_f2_77_tank,word -0x946d,0x001f,ucode6080_fire_state_f3_79_pixel,word -0x948c,0x000b,ucode1080_collision_1c_fragment,word -0x9497,0x0013,ucode1080_collision_6b_helicopter_enemy_plane,word -0x94aa,0x0013,ucode1080_collision_6c_helicopter_enemy_plane,word -0x94bd,0x0013,ucode1080_collision_6d_helicopter_enemy_plane,word -0x94d0,0x0013,ucode1080_collision_6e_helicopter_enemy_plane,word -0x94e3,0x0013,ucode1080_collision_6f_helicopter_enemy_plane,word -0x94f6,0x001b,ucode1080_collision_10_pixel,word -0x9511,0x0009,ucode1080_collision_72_fuel_explosion,word -0x951a,0x000d,ucode1080_collision_53_pixel_balloon_explosion,word -0x9527,0x000d,ucode1080_collision_54_pixel_balloon_explosion,word -0x9534,0x000d,ucode1080_collision_55_pixel_balloon_explosion,word -0x9541,0x000d,ucode1080_collision_56_pixel_balloon_explosion,word -0x954e,0x000d,ucode1080_collision_57_pixel_balloon_explosion,word -0x955b,0x0003,ucode4080_y_outside_70_supply_plane,word -0x955e,0x0002,ucode1080_animate_shape_28_exhaust,byte -0x9560,0x0003,ucode1080_countdown_28_exhaust,word -0x9563,0x0002,ucode1080_collision_test_28_exhaust,byte -0x9565,0x0013,ucode1080_collision_28_exhaust,word -0x9578,0x0007,ucode1080_countdown_61_ship,word -0x957f,0x0003,ucode6080_test_fire_state_f1_7a_pixel,word -0x9582,0x0003,ucode6080_test_fire_state_f1_7c_pixel,word -0x9585,0x0002,ucode1080_animate_shape_7b_pixel,byte -0x9587,0x0003,ucode1080_collision_test_7b_pixel,byte -0x958a,0x0003,ucode6080_test_fire_state_f3_7b_pixel,word -0x958d,0x0009,ucode6080_fire_state_f2_7a_pixel,word -0x9596,0x0002,ucode1080_animate_shape_7d_pixel,byte -0x9598,0x0013,ucode1080_countdown_7d_pixel,word -0x95ab,0x0005,ucode6080_fire_state_f0_7d_pixel,word -0x95b0,0x0007,ucode6080_fire_state_f1_7d_pixel,word -0x95b7,0x000d,ucode6080_fire_state_f2_7f_pixel,word -0x95c4,0x000d,ucode6080_fire_state_f2_7d_pixel,word -0x95d1,0x000b,ucode0010_init_or_zero_0e,word -0x95dc,0x0006,ucode1080_animate_shape_6b_helicopter_enemy_plane,byte -0x95e2,0x0007,ucode6080_homing_6b_helicopter_enemy_plane,word -0x95e9,0x0006,ucode1080_animate_shape_6c_helicopter_enemy_plane,byte -0x95ef,0x0007,ucode6080_homing_6c_helicopter_enemy_plane,word -0x95f6,0x0006,ucode1080_animate_shape_6d_helicopter_enemy_plane,byte -0x95fc,0x0007,ucode6080_homing_6d_helicopter_enemy_plane,word -0x9603,0x0006,ucode1080_animate_shape_6e_helicopter_enemy_plane,byte -0x9609,0x0007,ucode6080_homing_6e_helicopter_enemy_plane,word -0x9610,0x0006,ucode1080_animate_shape_6f_helicopter_enemy_plane,byte -0x9616,0x0007,ucode6080_homing_6f_helicopter_enemy_plane,word -0x961d,0x0009,ucode1080_countdown_44_missile_launcher,word -0x9626,0x0009,ucode1080_countdown_45_missile_launcher,word -0x962f,0x0009,ucode1080_countdown_46_missile_launcher,word -0x9638,0x0003,ucode4080_y_outside_47_pylon,word -0x963b,0x0003,ucode4080_y_outside_48_pylon,word -0x963e,0x0003,ucode6080_test_fire_state_f3_6b_helicopter_enemy_plane,word -0x9641,0x0007,ucode6080_fire_state_f3_6b_helicopter_enemy_plane,word -0x9648,0x0003,ucode6080_test_fire_state_f3_6c_helicopter_enemy_plane,word -0x964b,0x0007,ucode6080_fire_state_f3_6c_helicopter_enemy_plane,word -0x9652,0x0003,ucode6080_test_fire_state_f3_6d_helicopter_enemy_plane,word -0x9655,0x0007,ucode6080_fire_state_f3_6d_helicopter_enemy_plane,word -0x965c,0x0003,ucode6080_test_fire_state_f3_6e_helicopter_enemy_plane,word -0x965f,0x0007,ucode6080_fire_state_f3_6e_helicopter_enemy_plane,word -0x9666,0x0003,ucode6080_test_fire_state_f3_6f_helicopter_enemy_plane,word -0x9669,0x0007,ucode6080_fire_state_f3_6f_helicopter_enemy_plane,word -0x9670,0x0006,ucode1080_animate_shape_73_bullet,byte -0x9676,0x0003,ucode1080_collision_73_bullet,word -0x9679,0x0002,ucode1080_animate_shape_2f_pixel,byte -0x967b,0x0003,ucode4080_x_outside_73_bullet,word -0x967e,0x0006,ucode1080_animate_shape_74_bullet,byte -0x9684,0x0003,ucode1080_collision_74_bullet,word -0x9687,0x0003,ucode4080_x_outside_74_bullet,word -0x968a,0x0006,ucode1080_animate_shape_75_bullet,byte -0x9690,0x0003,ucode1080_collision_75_bullet,word -0x9693,0x0003,ucode4080_x_outside_75_bullet,word -0x9696,0x0002,ucode1080_animate_shape_76_pixel,byte -0x9698,0x0003,ucode6080_test_fire_state_f1_76_pixel,word -0x969b,0x0003,ucode6080_test_fire_state_f0_76_pixel,word -0x969e,0x0002,ucode1080_animate_shape_2d_pixel,byte -0x96a0,0x0003,ucode6080_test_fire_state_f2_79_pixel,word -0x96a3,0x0003,ucode6080_test_fire_state_f2_7b_pixel,word -0x96a6,0x0003,ucode6080_fire_state_f2_79_pixel,word -0x96a9,0x0003,ucode6080_fire_state_f2_7b_pixel,word -0x96ac,0x0002,ucode1080_animate_shape_2e_pixel,byte -0x96ae,0x0007,ucode4080_x_outside_77_tank,word -0x96b5,0x000f,ucode1080_collision_77_tank,word -0x96c4,0x0007,ucode1080_countdown_2f_pixel,word -0x96cb,0x0003,ucode4080_y_outside_4d_headquarters_radar_icbm,word -0x96ce,0x0002,ucode6080_homing_77_tank,word -0x96d0,0x0006,ucode1080_animate_shape_77_tank,byte -0x96d6,0x0007,ucode6080_fire_state_f2_77_tank,word -0x96dd,0x0003,ucode6080_fire_state_f3_77_tank,word -0x96e0,0x0011,ucode1080_countdown_2d_pixel,word -0x96f1,0x0013,ucode1080_countdown_2e_pixel,word -0x9704,0x0003,ucode6080_test_fire_state_f3_77_tank,word -0x9707,0x000a,ucode1080_animate_shape_4d_headquarters_radar_icbm,byte -0x9711,0x000c,ucode1080_animate_shape_72_fuel_explosion,byte -0x971d,0x0010,ucode1080_collision_test_62_ship,byte -0x972d,0x0019,ucode6080_fire_state_f3_7b_pixel,word -0x9746,0x0009,ucode1080_collision_68_missile,word -0x974f,0x0009,ucode4080_y_outside_68_missile,word -0x9758,0x0009,ucode1080_collision_69_missile,word -0x9761,0x0009,ucode4080_y_outside_69_missile,word -0x976a,0x0009,ucode1080_collision_6a_missile,word -0x9773,0x0009,ucode4080_y_outside_6a_missile,word -0x977c,0x0006,ucode1080_collision_test_6b_helicopter_enemy_plane,byte -0x9782,0x0006,ucode1080_collision_test_6c_helicopter_enemy_plane,byte -0x9788,0x0006,ucode1080_collision_test_6d_helicopter_enemy_plane,byte -0x978e,0x0006,ucode1080_collision_test_6e_helicopter_enemy_plane,byte -0x9794,0x0006,ucode1080_collision_test_6f_helicopter_enemy_plane,byte -0x979a,0x0009,ucode1080_collision_test_70_supply_plane,byte -0x97a3,0x0007,ucode1080_collision_70_supply_plane,word -0x97aa,0x0021,ucode1080_countdown_10_pixel,word -0x97cb,0x0015,ucode1080_collision_test_58_bomb_explosion,byte -0x97e0,0x0015,ucode1080_collision_test_59_bomb_explosion,byte -0x97f5,0x0015,ucode1080_collision_test_5a_bomb_explosion,byte -0x980a,0x0015,ucode1080_collision_test_5b_bomb_explosion,byte -0x981f,0x0015,ucode1080_collision_test_5c_bomb_explosion,byte -0x9834,0x0015,ucode1080_collision_test_5d_bomb_explosion,byte -0x9849,0x0015,ucode1080_collision_test_5e_bomb_explosion,byte -0x985e,0x0015,ucode1080_collision_test_5f_bomb_explosion,byte -0x9873,0x0011,ucode1080_collision_test_72_fuel_explosion,byte -0x9884,0x0007,ucode4080_y_outside_66_ship,word -0x988b,0x0012,ucode1080_collision_test_66_ship,byte -0x989d,0x0003,ucode1080_collision_test_67_bird,byte -0x98a0,0x0007,ucode1080_collision_67_bird,word -0x98a7,0x0003,ucode1080_countdown_2a_explosion,word -0x98aa,0x0007,ucode1080_collision_71_parachute,word -0x98b1,0x0003,ucode1080_collision_test_2a_explosion,byte -0x98b4,0x0007,ucode1080_collision_2a_explosion,word -0x98bb,0x000a,ucode1080_animate_shape_2a_explosion,byte -0x98c5,0x000d,ucode1080_animate_shape_71_parachute,byte -0x98d2,0x0003,ucode6080_test_fire_state_f3_71_parachute,word -0x98d5,0x0005,ucode6080_fire_state_f2_76_pixel,word -0x98da,0x0003,ucode6080_test_fire_state_f3_76_pixel,word -0x98dd,0x0003,ucode6080_fire_state_f3_76_pixel,word -0x98e0,0x0003,ucode6080_homing_67_bird,word -0x98e3,0x0002,ucode1080_animate_shape_13_pixel,byte -0x98e5,0x0005,ucode1080_countdown_13_pixel,word -0x98ea,0x0017,ucode1080_collision_66_ship,word -0x9901,0x0007,ucode4080_x_outside_66_ship,word -0x9908,0x000f,ucode0010_init_or_zero_07,word -0x9917,0x000f,ucode6080_fire_state_f2_65_pixel_exhaust,word -0x9926,0x0013,ucode1080_countdown_12_pixel,word -0x9939,0x0015,ucode0010_init_or_zero_04,word -0x994e,0x0013,ucode0010_init_or_zero_05,word -0x9961,0x0005,ucode0010_init_or_zero_0a,word -0x9966,0x0015,ucode6080_fire_state_f0_76_pixel,word -0x997b,0x0019,ucode6080_fire_state_f0_61_ship,word -0x9994,0x0019,ucode6080_fire_state_f2_61_ship,word -0x99ad,0x001f,ucode6080_fire_state_f1_76_pixel,word -0x99cc,0x0002,ucode1080_animate_shape_67_bird,byte -0x99ce,0x000b,ucode4080_x_outside_67_bird,word -0x99d9,0x000b,ucode4080_y_outside_67_bird,word -0x99e4,0x0006,ucode1080_animate_shape_40_bird,byte -0x99ea,0x0003,ucode6080_fire_state_f0_67_bird,word -0x99ed,0x0007,ucode6080_fire_state_f1_67_bird,word -0x99f4,0x0003,ucode1080_countdown_70_supply_plane,word -0x99f7,0x0002,ucode1080_animate_shape_63_pixel,byte -0x99f9,0x0015,ucode1080_collision_78_pixel,word -0x9a0e,0x000f,ucode1080_collision_79_pixel,word -0x9a1d,0x0015,ucode1080_collision_7a_pixel,word -0x9a32,0x000f,ucode1080_collision_7b_pixel,word -0x9a41,0x0002,ucode1080_animate_shape_29_pixel,byte -0x9a43,0x0003,ucode1080_countdown_29_pixel,word -0x9a46,0x0009,ucode6080_homing_6a_missile,word -0x9a4f,0x000b,ucode1080_collision_test_53_pixel_balloon_explosion,byte -0x9a5a,0x000b,ucode1080_collision_test_54_pixel_balloon_explosion,byte -0x9a65,0x000b,ucode1080_collision_test_55_pixel_balloon_explosion,byte -0x9a70,0x000b,ucode1080_collision_test_56_pixel_balloon_explosion,byte -0x9a7b,0x000b,ucode1080_collision_test_57_pixel_balloon_explosion,byte -0x9a86,0x0009,ucode1080_collision_test_50_bullet,byte -0x9a8f,0x0009,ucode1080_collision_test_51_bullet,byte -0x9a98,0x0009,ucode1080_collision_test_52_bullet,byte -0x9aa1,0x0005,ucode1080_countdown_2c_pixel,word -0x9aa6,0x0009,ucode6080_homing_68_missile,word -0x9aaf,0x0009,ucode6080_homing_69_missile,word -0x9ab8,0x0004,ucode6080_test_fire_state_f2_76_pixel,word -0x9abc,0x0003,ucode6080_test_fire_state_f1_7e_pixel,word -0x9abf,0x0003,ucode6080_test_fire_state_f3_7e_pixel,word -0x9ac2,0x000d,ucode4080_x_outside_7e_pixel,word -0x9acf,0x0007,ucode4080_x_outside_62_ship,word -0x9ad6,0x0015,ucode1080_collision_29_pixel,word -0x9aeb,0x0015,ucode1080_collision_61_ship,word -0x9b00,0x0009,ucode1080_countdown_7e_pixel,word -0x9b09,0x0002,ucode1080_animate_shape_7e_pixel,byte -0x9b0b,0x001b,ucode6080_fire_state_f3_60_pixel,word -0x9b26,0x0002,ucode1080_animate_shape_3d_pixel,byte -0x9b28,0x0013,ucode1080_countdown_3d_pixel,word -0x9b3b,0x000d,ucode0010_init_or_zero_0f,word -0x9b48,0x0009,ucode0010_init_or_zero_06,word -0x9b51,0x0002,ucode1080_animate_shape_3c_pixel,byte -0x9b53,0x0002,ucode1080_collision_test_3c_pixel,byte -0x9b55,0x0003,ucode1080_collision_3c_pixel,word -0x9b58,0x000b,ucode1080_countdown_3c_pixel,word -0x9b63,0x0005,ucode1080_countdown_65_pixel_exhaust,word -0x9b68,0x0005,ucode4080_x_outside_65_pixel_exhaust,word -0x9b6d,0x0005,ucode1080_collision_test_73_bullet,byte -0x9b72,0x0005,ucode1080_collision_test_74_bullet,byte -0x9b77,0x0005,ucode1080_collision_test_75_bullet,byte -0x9b7c,0x0010,ucode1080_collision_test_71_parachute,byte -0x9b8c,0x0005,ucode1080_collision_test_11_pixel,byte -0x9b91,0x000d,ucode1080_collision_11_pixel,word -0x9b9e,0x001d,ucode1080_countdown_11_pixel,word -0x9bbb,0x0003,ucode6080_test_fire_state_f2_68_missile,word -0x9bbe,0x0003,ucode6080_fire_state_f2_68_missile,word -0x9bc1,0x0003,ucode6080_test_fire_state_f3_63_pixel,word -0x9bc4,0x0005,ucode6080_fire_state_f3_63_pixel,word -0x9bc9,0x0009,ucode1080_countdown_78_pixel,word -0x9bd2,0x0009,ucode1080_countdown_79_pixel,word -0x9bdb,0x0009,ucode6080_fire_state_f3_7a_pixel,word -0x9be4,0x0009,ucode1080_countdown_7b_pixel,word -0x9bed,0x0005,ucode4080_y_outside_76_pixel,word -0x9bf2,0x0017,ucode1080_collision_4d_headquarters_radar_icbm,word -0x9c09,0x0003,ucode4080_x_outside_76_pixel,word -0x9c0c,0x0008,ucode1080_animate_shape_49_silo,byte -0x9c14,0x0019,ucode4080_x_outside_49_silo,word -0x9c2d,0x0008,ucode1080_animate_shape_4a_silo_haystack,byte -0x9c35,0x0019,ucode4080_x_outside_4a_silo_haystack,word -0x9c4e,0x0008,ucode1080_animate_shape_4b_haystack_house,byte -0x9c56,0x0019,ucode4080_x_outside_4b_haystack_house,word -0x9c6f,0x0008,ucode1080_animate_shape_4c_silo_house,byte -0x9c77,0x0019,ucode4080_x_outside_4c_silo_house,word -0x9c90,0x001d,ucode1080_collision_49_silo,word -0x9cad,0x001d,ucode1080_collision_4a_silo_haystack,word -0x9cca,0x001d,ucode1080_collision_4b_haystack_house,word -0x9ce7,0x001d,ucode1080_collision_4c_silo_house,word -0x9d04,0x0019,ucode6080_fire_state_f1_7e_pixel,word -0x9d1d,0x0009,ucode6080_fire_state_f3_7e_pixel,word -0x9d26,0x0015,ucode0010_init_or_zero_02,word -0x9d3b,0x0015,ucode0010_init_or_zero_03,word -0x9d50,0x0005,ucode1080_countdown_62_ship,word -0x9d55,0x000f,ucode0010_init_or_zero_0c,word -0x9d64,0x0009,ucode4080_x_outside_64_pixel_ship,word -0x9d6d,0x0003,ucode6080_test_fire_state_f2_63_pixel,word -0x9d70,0x0007,ucode6080_fire_state_f1_7a_pixel,word -0x9d77,0x0007,ucode6080_fire_state_f1_7c_pixel,word -0x9d7e,0x0009,ucode6080_fire_state_f3_7c_pixel,word -0x9d87,0x0019,ucode6080_fire_state_f2_63_pixel,word -0x9da0,0x0009,ucode6080_fire_state_f2_7c_pixel,word -0x9da9,0x0013,ucode1080_collision_7c_pixel,word -0x9dbc,0x0005,ucode4080_y_outside_7c_pixel,word -0x9dc1,0x0003,ucode4080_x_outside_7c_pixel,word -0x9dc4,0x0015,ucode0010_init_or_zero_01,word -0x9dd9,0x0005,ucode1080_countdown_63_pixel,word -0x9dde,0x0002,ucode1080_collision_test_2c_pixel,byte -0x9de0,0x000d,ucode1080_collision_2c_pixel,word -0x9ded,0x0001,recrack_loader,byte +# 0x5bc0 padding +# 0x5c00 shape data +# 0x8c08 padding +# 0x8e00 ucode data +# 0x9ded end of image 0xa800,0x0001,x_table_times2_div7_plus_5b,byte 0xa900,0x0001,x_table_times2_mod7_minus_03,byte 0xaa00,0x0001,video_line_table_lo,byte @@ -1173,3 +571,254 @@ items 0xc065,0x0001,HW_PADDL1,byte 0xc070,0x0001,HW_PTRIG,byte 0xfb1e,0x0001,ROM_PREAD,code + +shapes +0x00,pixel +0x01,pixel +0x02,pixel +0x03,pixel +0x04,pixel +0x05,pixel +0x06,pixel +0x07,pixel +0x08,bullet +0x09,bullet +0x0a,bullet +0x0b,bullet +0x0c,bird +0x0d,bird +0x0e,bird +0x0f,bird +0x10,ship_state0 +0x11,ship_state1 +0x12,exhaust +0x13,exhaust +0x14,parachute +0x15,parachute +0x16,parachute_open +0x17,fuel +0x18,supply_plane +0x1c,tank +0x1e,missile_tank_state0 +0x1f,missile_tank_state1 +0x20,bomb +0x21,bomb +0x22,bomb +0x23,bomb +0x28,balloon +0x29,balloon +0x2a,balloon +0x2c,helicopter +0x2e,enemy_plane +0x2f,enemy_plane +0x30,silo +0x31,silo +0x36,pylon +0x40,missile +0x41,missile +0x42,missile +0x43,missile +0x44,missile +0x45,missile +0x46,missile +0x47,missile +0x48,missile +0x49,missile +0x4a,missile +0x4b,missile +0x4c,missile +0x4d,missile +0x4e,missile +0x4f,missile +0x50,missile_launcher_state0 +0x51,missile_launcher_state0 +0x52,missile_launcher_state0 +0x54,missile_launcher_state1 +0x55,missile_launcher_state1 +0x56,missile_launcher_state1 +0x60,fragment +0x61,fragment +0x62,fragment +0x63,fragment +0x64,fragment +0x65,fragment +0x66,fragment +0x67,fragment +0x70,haystack +0x71,house +0x72,headquarters +0x73,radar +0x74,radar +0x75,radar +0x76,icbm +0x78,tree +0x79,cactus +0x88,explosion +0x89,explosion +0x8a,explosion +0x8b,explosion +0xa0,text_0 +0xa1,text_1 +0xa2,text_2 +0xa3,text_3 +0xa4,text_4 +0xa5,text_5 +0xa6,text_6 +0xa7,text_7 +0xa8,text_8 +0xa9,text_9 +0xaa,text_score +0xab,text_colon +0xac,text_high +0xb0,text_mission +0xb2,text_fuel +0xb3,text_empty +0xb4,text_bomb +0xb6,text_ship_left +0xb7,text_complete +0xb8,text_the +0xb9,text_radar +0xba,text_icbm +0xbc,text_attack +0xbd,text_tank +0xbe,text_headquarters +0xbf,text_a +0xc0,ships +0xc1,ships +0xc2,ships +0xc3,ships +0xd0,text_star +0xd1,text_blazer +0xd2,text_by +0xd3,text_tony +0xd4,text_suzuki +0xd8,text_game +0xd9,text_over +0xda,text_bonus +0xdc,text_great +0xdd,text_performance +0xe1,text_copyright +0xe2,text_star_craft +0xe3,text_inc +0xe4,text_thanks +0xe5,text_lot_comma +0xe6,text_raly +0xe7,text_minus_20 +0xe8,text_20_40_60_80 +0xe9,text_100_120_300_1500 +0xf0,ground +0xf1,ground +0xf2,ground +0xf3,ground +0xff,blank + +objects +0x10,pixel +0x11,pixel +0x12,pixel +0x13,pixel +0x14,fragment +0x15,fragment +0x16,fragment +0x17,fragment +0x18,fragment +0x19,fragment +0x1a,fragment +0x1b,fragment +0x1c,fragment +0x1d,fragment +0x1e,fragment +0x1f,fragment +0x20,pixel +0x21,pixel +0x22,pixel +0x23,pixel +0x24,pixel +0x25,pixel +0x26,pixel +0x27,pixel +0x28,exhaust +0x29,pixel +0x2a,explosion +0x2c,pixel +0x2d,pixel +0x2e,pixel +0x2f,pixel +0x30,pixel +0x31,pixel +0x32,pixel +0x33,pixel +0x34,pixel +0x35,pixel +0x36,pixel +0x37,pixel +0x38,pixel +0x39,pixel +0x3a,pixel +0x3b,pixel +0x3c,pixel +0x3d,pixel +0x40,bird +0x41,tree_cactus +0x42,tree_cactus +0x43,tree_cactus +0x44,missile_launcher +0x45,missile_launcher +0x46,missile_launcher +0x47,pylon +0x48,pylon +0x49,silo +0x4a,silo_haystack +0x4b,haystack_house +0x4c,silo_house +0x4d,headquarters_radar_icbm +0x4e,pixel +0x4f,pixel +0x50,bullet +0x51,bullet +0x52,bullet +0x53,pixel_balloon_explosion +0x54,pixel_balloon_explosion +0x55,pixel_balloon_explosion +0x56,pixel_balloon_explosion +0x57,pixel_balloon_explosion +0x58,bomb_explosion +0x59,bomb_explosion +0x5a,bomb_explosion +0x5b,bomb_explosion +0x5c,bomb_explosion +0x5d,bomb_explosion +0x5e,bomb_explosion +0x5f,bomb_explosion +0x60,pixel +0x61,ship +0x62,ship +0x63,pixel +0x64,pixel_ship +0x65,pixel_exhaust +0x66,ship +0x67,bird +0x68,missile +0x69,missile +0x6a,missile +0x6b,helicopter_enemy_plane +0x6c,helicopter_enemy_plane +0x6d,helicopter_enemy_plane +0x6e,helicopter_enemy_plane +0x6f,helicopter_enemy_plane +0x70,supply_plane +0x71,parachute +0x72,fuel_explosion +0x73,bullet +0x74,bullet +0x75,bullet +0x76,pixel +0x77,tank +0x78,pixel +0x79,pixel +0x7a,pixel +0x7b,pixel +0x7c,pixel +0x7d,pixel +0x7e,pixel +0x7f,pixel