From 1ebbfcc4dbde2707764102650de29f89c769c9b3 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Fri, 24 Jun 2022 20:27:53 +1000 Subject: [PATCH] Standardize on uppercase for = defines in asxxxx source, HW_XXX not IO_XXX for soft switches in /emu_65c02, and ucode_XXX instead of microcode_XXX in /disasm --- disasm/star_blazer.asm.patch | 204 +++--- disasm/star_blazer.txt | 1188 +++++++++++++++++----------------- disasm/ucode0.py | 6 +- disasm/ucode1.py | 4 +- emu_65c02/emu_65c02.c | 268 ++++---- loader/lzss_unpack_fwd.asm | 18 +- loader/lzss_unpack_rev.asm | 18 +- test/dhgr.asm | 102 +-- test/dhgr_viewer.asm | 50 +- 9 files changed, 929 insertions(+), 929 deletions(-) diff --git a/disasm/star_blazer.asm.patch b/disasm/star_blazer.asm.patch index d636fca..3cf441f 100644 --- a/disasm/star_blazer.asm.patch +++ b/disasm/star_blazer.asm.patch @@ -1,44 +1,44 @@ ---- star_blazer.asm0 2022-06-24 17:39:52.231813771 +1000 -+++ star_blazer.asm 2022-06-24 17:40:28.671813320 +1000 +--- star_blazer.asm0 2022-06-24 20:25:26.755991492 +1000 ++++ star_blazer.asm 2022-06-24 20:26:21.951990809 +1000 @@ -1,3 +1,8 @@ +ALIGN = 0 +DHGR = 1 +PIXEL_SHAPE = 1 +SHAPE = 1 + - hires_screen = 0x2000 ; 2000 - hw_kbd = 0xc000 ; c000 - hw_kbdstrb = 0xc010 ; c010 + HIRES_SCREEN = 0x2000 ; 2000 + HW_KBD = 0xc000 ; c000 + HW_KBDSTRB = 0xc010 ; c010 @@ -12,19 +17,49 @@ - hw_ptrig = 0xc070 ; c070 - rom_pread = 0xfb1e ; fb1e + HW_PTRIG = 0xc070 ; c070 + ROM_PREAD = 0xfb1e ; fb1e +.if DHGR +; read/write -+hw_page2 = 0xc055 ++HW_PAGE2 = 0xc055 + +; read -+hw_setdhires = 0xc05e -+hw_setioudis = 0xc07e -+hw_clrioudis = 0xc07f -+hw_lc_bank2_ram_wp = 0xc080 -+hw_lc_bank2_rom_we = 0xc081 -+hw_lc_bank2_rom_wp = 0xc082 -+hw_lc_bank2_ram_we = 0xc083 -+hw_lc_bank1_ram_wp = 0xc084 -+hw_lc_bank1_rom_we = 0xc085 -+hw_lc_bank1_rom_wp = 0xc086 -+hw_lc_bank1_ram_we = 0xc087 ++HW_SETDHIRES = 0xc05e ++HW_SETIOUDIS = 0xc07e ++HW_CLRIOUDIS = 0xc07f ++HW_LC_BANK2_RAM_WP = 0xc080 ++HW_LC_BANK2_ROM_WE = 0xc081 ++HW_LC_BANK2_ROM_WP = 0xc082 ++HW_LC_BANK2_RAM_WE = 0xc083 ++HW_LC_BANK1_RAM_WP = 0xc084 ++HW_LC_BANK1_ROM_WE = 0xc085 ++HW_LC_BANK1_ROM_WP = 0xc086 ++HW_LC_BANK1_RAM_WE = 0xc087 + +; write -+hw_clr80col = 0xc000 -+hw_set80col = 0xc001 -+hw_rdmainram = 0xc002 -+hw_rdcardram = 0xc003 -+hw_wrmainram = 0xc004 -+hw_wrcardram = 0xc005 -+hw_clr80vid = 0xc00c -+hw_set80vid = 0xc00d ++HW_CLR80COL = 0xc000 ++HW_SET80COL = 0xc001 ++HW_RDMAINRAM = 0xc002 ++HW_RDCARDRAM = 0xc003 ++HW_WRMAINRAM = 0xc004 ++HW_WRCARDRAM = 0xc005 ++HW_CLR80VID = 0xc00c ++HW_SET80VID = 0xc00d +.endif + + .globl start @@ -107,40 +107,40 @@ ldy #0x00 ; 0a00 -> 0a02 -> 0a04 r @@ -1072,7 +1117,7 @@ tsx ; 1095 -> 1097 -> 1098 r - stx *microcode_sp ; 1097 -> 1098 -> 109a r - ldx *microcode_x_save_c9 ; 1098 -> 109a -> 109c r + stx *ucode_sp ; 1097 -> 1098 -> 109a r + ldx *ucode_x_save_c9 ; 1098 -> 109a -> 109c r - lda 0xaee0,x ; 109a -> 109c -> 109f r x=01..7f + lda object1080_start_sentinel - 0x10,x ;0xaee0,x ; 109a -> 109c -> 109f r x=01..7f - sta *microcode_start_sentinel ; 109c -> 109f -> 10a1 r - microcode_execute_1093_entry: + sta *ucode_start_sentinel ; 109c -> 109f -> 10a1 r + ucode_execute_1093_entry: ldy #0x00 ; 1090,109f -> 10a1 -> 10a3 r @@ -1099,7 +1144,7 @@ - jsr do_microcode_pair ; 10c6 -> 10c8 -> 106a r s=f7..f9,02 + jsr do_ucode_pair ; 10c6 -> 10c8 -> 106a r s=f7..f9,02 bne 3$ ; 107b -> 10cb -> 10c0 r z=0 - microcode_execute_1093_done: + ucode_execute_1093_done: - lda 0xaee0,x ; 1093,10a5,10ba,10c2,10c6 -> 10cd -> 10d0 r x=01..7f + lda object1080_start_sentinel - 0x10,x ;0xaee0,x ; 1093,10a5,10ba,10c2,10c6 -> 10cd -> 10d0 r x=01..7f rts ; 10cd -> 10d0 -> 123e,143a,1615,1629,1633,1649,165b,1759 r s=f7..fd,02 - microcode_execute_10d1: + ucode_execute_10d1: beq rts_10ec ; 1216,123b,1260,1285 -> 10d1 -> 10d3,10ec r z=0..1 @@ -1981,10 +2026,35 @@ sta *button_state ; 17ce r rts_17d0: rts ; 17ab,17ca -> 17d0 -> 1768,176f r s=fd --start: lda hw_pb0 ; -> 17d1 -> 17d4 r +-start: lda HW_PB0 ; -> 17d1 -> 17d4 r +start: +.if DHGR -+ ; shadow code that needs to run with "sta hw_rdcardram" ++ ; shadow code that needs to run with "sta HW_RDCARDRAM" + ; from draw_object to draw_misc_from_table (this is generous) -+shadow_pages = (draw_misc_from_table - draw_object + 0xff) / 0x100 -+shadow_start = draw_misc_from_table - shadow_pages * 0x100 -+ lda #shadow_start ++ lda #>SHADOW_START + sta video_line_ptr + 1 -+ ldx #shadow_pages -+ ldy # 17d1 -> 17d4 r ++ lda HW_PB0 ; -> 17d1 -> 17d4 r bit *vec_draw_misc_from_table ; 17d1 -> 17d4 -> 17d6 r - ora hw_pb1 ; 17d4 -> 17d6 -> 17d9 r + ora HW_PB1 ; 17d4 -> 17d6 -> 17d9 r bpl 1$ ; 17d6 -> 17d9 -> 17f2 r n=0 +.if 0 ;DHGR ; language card -+ sta hw_lc_bank2_rom_we ++ sta HW_LC_BANK2_ROM_WE +.endif ldx #0x01 ; 17db r - 0$: jsr rom_pread ; 17dd r + 0$: jsr ROM_PREAD ; 17dd r cpy #0xff ; 17e0 r @@ -1995,18 +2065,15 @@ sta bvar_179e ; 17e9 r @@ -178,8 +178,8 @@ - .db 0x00 ; 17ff +1$: +.if 0 ;DHGR ; language card -+ sta hw_lc_bank2_ram_we -+ sta hw_lc_bank2_ram_we ++ sta HW_LC_BANK2_RAM_WE ++ sta HW_LC_BANK2_RAM_WE +.endif + jmp [vec_init_game] ; 17d9 -> 17f2 -> 1708 r +.if ALIGN @@ -202,15 +202,15 @@ lda *random_seed ; 16ae -> 187a -> 187c r ora #0x01 ; 187a -> 187c -> 187e r @@ -2233,16 +2302,30 @@ - ldx #>hires_screen ; 199b -> 199d -> 199f r + ldx #>HIRES_SCREEN ; 199b -> 199d -> 199f r stx *video_line_ptr + 1 ; 199d -> 199f -> 19a1 r tay ; 199f -> 19a1 -> 19a2 r -0$: sta [*video_line_ptr],y ; 19a1,19a5,19aa -> 19a2 -> 19a4 r y=00..ff +0$: +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + sta [*video_line_ptr],y -+ sta hw_wrmainram ++ sta HW_WRMAINRAM +.endif + sta [*video_line_ptr],y ; 19a1,19a5,19aa -> 19a2 -> 19a4 r y=00..ff iny ; 19a2 -> 19a4 -> 19a5 r @@ -219,16 +219,16 @@ dex ; 19a7 -> 19a9 -> 19aa r bne 0$ ; 19a9 -> 19aa -> 19a2,19ac r z=0..1 +.if DHGR -+ lda hw_clrioudis -+ sta hw_clr80col ++ lda HW_CLRIOUDIS ++ sta HW_CLR80COL +.endif - sta hw_txtclr ; 19aa -> 19ac -> 19af r - sta hw_mixclr ; 19ac -> 19af -> 19b2 r - sta hw_page1 ; 19af -> 19b2 -> 19b5 r - sta hw_hires ; 19b2 -> 19b5 -> 19b8 r + sta HW_TXTCLR ; 19aa -> 19ac -> 19af r + sta HW_MIXCLR ; 19ac -> 19af -> 19b2 r + sta HW_PAGE1 ; 19af -> 19b2 -> 19b5 r + sta HW_HIRES ; 19b2 -> 19b5 -> 19b8 r +.if DHGR -+ lda hw_setdhires -+ sta hw_set80vid ++ lda HW_SETDHIRES ++ sta HW_SET80VID +.endif rts ; 19b5 -> 19b8 -> 1713 r s=fd video_clear_rectangle: @@ -239,13 +239,13 @@ sta *video_line_ptr + 1 ; 19c0 -> 19c3 -> 19c5 r +.if DHGR + lda #0 -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + ldy *clip_x0 +90$: 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 + bcc 90$ ; 19cc -> 19ce -> 19c9,19d0 r c=0..1 -+ sta hw_wrmainram ++ sta HW_WRMAINRAM + ldy *clip_x0 +.else ldy *clip_x0 ; 19c3 -> 19c5 -> 19c7 r @@ -310,10 +310,10 @@ +.endif sta 7$ + 1 ; 1b55 -> 1b58 -> 1b5b r +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + sty 91$ + sta 91$ + 1 -+ ;sta hw_wrmainram ++ ;sta HW_WRMAINRAM +.endif ldx #0x00 ; 1b58 -> 1b5b -> 1b5d r ldy *draw_y ; 1b5b -> 1b5d -> 1b5f r @@ -322,8 +322,8 @@ lda video_line_table_hi - 0x20,y ; 1b62 -> 1b64 -> 1b67 r y=28..cf sta *video_line_ptr + 1 ; 1b64 -> 1b67 -> 1b69 r +.if DHGR -+ sta hw_rdcardram -+ sta hw_wrcardram ++ sta HW_RDCARDRAM ++ sta HW_WRCARDRAM + ldy *draw_x0 + stx *dimension +90$: .db 0xbd ; lda NNNN,x @@ -335,8 +335,8 @@ + cpy *draw_x1 + bcc 90$ + ldx *dimension -+ sta hw_rdmainram -+ sta hw_wrmainram ++ sta HW_RDMAINRAM ++ sta HW_WRMAINRAM +.endif ldy *draw_x0 ; 1b67 -> 1b69 -> 1b6b r +.if DHGR ; draw overflow pixel @@ -370,10 +370,10 @@ +.endif sta 11$ + 1 ; 1b8c -> 1b8f -> 1b92 r +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + sty 96$ + sta 96$ + 1 -+ sta hw_wrmainram ++ sta HW_WRMAINRAM +.endif ldx #0x00 ; 1b8f -> 1b92 -> 1b94 r ldy *draw_y ; 1b92 -> 1b94 -> 1b96 r @@ -411,14 +411,14 @@ cpy *clip_x1 ; 1bae -> 1bb0 -> 1bb2 r y=6c..a4 bcs 12$ ; 1bb0 -> 1bb2 -> 1bb4,1bbb r c=0..1 +.if DHGR -+ sta hw_rdcardram -+ sta hw_wrcardram ++ sta HW_RDCARDRAM ++ sta HW_WRCARDRAM + .db 0xbd ; lda NNNN,x +96$: .dw 0 + ora [*video_line_ptr],y + sta [*video_line_ptr],y -+ sta hw_rdmainram -+ sta hw_wrmainram ++ 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 @@ -464,10 +464,10 @@ +.endif sta 2$ + 1 ; 1c3a -> 1c3d -> 1c40 r +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + sty 91$ + sta 91$ + 1 -+ ;sta hw_wrmainram ++ ;sta HW_WRMAINRAM +.endif ldx #0x00 ; 1c3d -> 1c40 -> 1c42 r ldy *draw_y ; 1c40 -> 1c42 -> 1c44 r @@ -476,8 +476,8 @@ lda video_line_table_hi - 0x20,y ; 1c47 -> 1c49 -> 1c4c r y=28..cf sta *video_line_ptr + 1 ; 1c49 -> 1c4c -> 1c4e r +.if DHGR -+ sta hw_rdcardram -+ sta hw_wrcardram ++ sta HW_RDCARDRAM ++ sta HW_WRCARDRAM + ldy *draw_x0 + stx *dimension +90$: .db 0xbd ; lda NNNN,x @@ -490,8 +490,8 @@ + cpy *draw_x1 + bcc 90$ + ldx *dimension -+ sta hw_rdmainram -+ sta hw_wrmainram ++ sta HW_RDMAINRAM ++ sta HW_WRMAINRAM +.endif ldy *draw_x0 ; 1c4c -> 1c4e -> 1c50 r +.if DHGR ; erase overflow pixel @@ -526,10 +526,10 @@ +.endif sta 6$ + 1 ; 1c70 -> 1c73 -> 1c76 r +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + sty 96$ + sta 96$ + 1 -+ sta hw_wrmainram ++ sta HW_WRMAINRAM +.endif ldx #0x00 ; 1c73 -> 1c76 -> 1c78 r ldy *draw_y ; 1c76 -> 1c78 -> 1c7a r @@ -568,15 +568,15 @@ cpy *clip_x1 ; 1c92 -> 1c94 -> 1c96 r y=6c..a4 bcs 7$ ; 1c94 -> 1c96 -> 1c98,1ca1 r c=0..1 +.if DHGR -+ sta hw_rdcardram -+ sta hw_wrcardram ++ sta HW_RDCARDRAM ++ sta HW_WRCARDRAM + .db 0xbd ; lda NNNN,x +96$: .dw 0 + eor #0xff + and [*video_line_ptr],y + sta [*video_line_ptr],y -+ sta hw_rdmainram -+ sta hw_wrmainram ++ 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 @@ -598,10 +598,10 @@ +.endif sta 3$ + 1 ; 1cbb -> 1cbe -> 1cc1 r +.if DHGR -+ sta hw_wrcardram ++ sta HW_WRCARDRAM + stx 91$ + sta 91$ + 1 -+ sta hw_wrmainram ++ sta HW_WRMAINRAM +.endif lda shape_width_bytes,y ; 1cbe -> 1cc1 -> 1cc4 r y=16..ff clc ; 1cc1 -> 1cc4 -> 1cc5 r @@ -623,8 +623,8 @@ adc #0x00 ; 1ce7 -> 1cea -> 1cec r c=0..1 d=0 sta *video_line_ptr + 1 ; 1cea -> 1cec -> 1cee r +.if DHGR -+ sta hw_rdcardram -+ sta hw_wrcardram ++ sta HW_RDCARDRAM ++ sta HW_WRCARDRAM + lda *draw_misc_aux_mask + sta *draw_misc_mask_temp + ldy *draw_x0 @@ -646,8 +646,8 @@ + cpy *draw_x1 + bcc 90$ + ldx *dimension -+ sta hw_rdmainram -+ sta hw_wrmainram ++ sta HW_RDMAINRAM ++ sta HW_WRMAINRAM +.endif lda *draw_misc_mask ; 1cec -> 1cee -> 1cf0 r sta *draw_misc_mask_temp ; 1cee -> 1cf0 -> 1cf2 r @@ -1543,13 +1543,13 @@ +.if ALIGN + .ds 0x8e00 - 0x4000 - (. - data0_start) +.endif - microcode1080_countdown_30: + ucode1080_countdown_30: .db 0x30 ; 8e00 r .db 0x0f ; 8e01 @@ -24687,7 +24541,15 @@ .db 0x0a ; 95da .db 0x00 ; 95db - microcode1080_animate_shape_6b: + ucode1080_animate_shape_6b: +.if 0 ; testing + .db 0x73 ; radar0 shape + .db 0x74 ; radar1 shape @@ -1565,7 +1565,7 @@ @@ -24702,7 +24564,15 @@ .db 0x60 ; 95e7 .db 0x00 ; 95e8 - microcode1080_animate_shape_6c: + ucode1080_animate_shape_6c: +.if 0 ; testing + .db 0x73 ; radar0 shape + .db 0x74 ; radar1 shape @@ -1581,7 +1581,7 @@ @@ -24717,7 +24587,15 @@ .db 0x60 ; 95f4 .db 0x00 ; 95f5 - microcode1080_animate_shape_6d: + ucode1080_animate_shape_6d: +.if 0 ; testing + .db 0x73 ; radar0 shape + .db 0x74 ; radar1 shape @@ -1631,8 +1631,8 @@ + 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 ++ 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 @@ -1725,11 +1725,11 @@ + php ; 1eb8 r + ora #0x64 ; 1eb9 r + sta 12$ ; 1ebb r -+ bit hw_ptrig ; 1ebe 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 ++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 diff --git a/disasm/star_blazer.txt b/disasm/star_blazer.txt index 7825629..65a980d 100644 --- a/disasm/star_blazer.txt +++ b/disasm/star_blazer.txt @@ -51,30 +51,30 @@ items # decimal + 0xa: bomb # decimal + 0xe: ? 0x00b0,0x0010,decimal,byte -0x00c0,0x0002,microcode_ptr_c0,word -0x00c2,0x0001,microcode_pair_object,byte -0x00c7,0x0001,microcode_object_c7,byte +0x00c0,0x0002,ucode_ptr_c0,word +0x00c2,0x0001,ucode_pair_object,byte +0x00c7,0x0001,ucode_object_c7,byte 0x00c8,0x0001,sp_save,byte -0x00c9,0x0001,microcode_x_save_c9,byte -0x00ca,0x0001,microcode_y_save_ca,byte +0x00c9,0x0001,ucode_x_save_c9,byte +0x00ca,0x0001,ucode_y_save_ca,byte # seems to preserve a value from one of: -# object6080_b500 (execute_microcode6080_fire_state_f0) -# object6080_b520 (execute_microcode6080_fire_state_f1) -# object6080_b540 (execute_microcode6080_fire_state_f2) -# object6080_b560 (execute_microcode6080_fire_state_f3) -# and also used as an index into microcode in microcode_execute_10d1 -0x00cb,0x0001,microcode_state_save,byte -# may contain a value from object1080_microcode_start_sentinel (basically +# object6080_b500 (execute_ucode6080_fire_state_f0) +# object6080_b520 (execute_ucode6080_fire_state_f1) +# object6080_b540 (execute_ucode6080_fire_state_f2) +# object6080_b560 (execute_ucode6080_fire_state_f3) +# and also used as an index into ucode in ucode_execute_10d1 +0x00cb,0x0001,ucode_state_save,byte +# may contain a value from object1080_ucode_start_sentinel (basically # the current state of the object) and also seems to be used as a counter -0x00cc,0x0001,microcode_start_sentinel,byte -0x00cd,0x0001,microcode_sp,byte -0x00d0,0x0002,microcode_ptr_d0,word # or shape_ptr? +0x00cc,0x0001,ucode_start_sentinel,byte +0x00cd,0x0001,ucode_sp,byte +0x00d0,0x0002,ucode_ptr_d0,word # or shape_ptr? 0x00d2,0x0002,temp,word 0x00d4,0x0001,y_save,byte -0x00e2,0x0001,microcode_x_save_e2,byte -0x00e3,0x0001,microcode_y_save_e3,byte +0x00e2,0x0001,ucode_x_save_e2,byte +0x00e3,0x0001,ucode_y_save_e3,byte 0x00e4,0x0002,homing_ptr,word # is it really? -0x00e6,0x0002,microcode_ptr_e6,word +0x00e6,0x0002,ucode_ptr_e6,word 0x00f0,0x0001,demo_mode,byte # 0xff = demo mode, 0x00 = play mode # 0xc0 = ctrl-c state (forces joystick control) # 0x80 = button pressed @@ -141,21 +141,21 @@ items 0x0ef7,0x0010,update_a_decimal_vectors,word,code_m1 0x0f07,0x0010,bits_4_to_6_vectors,word,code_m1 0x0f17,0x0010,bits_0_to_2_vectors,word,code_m1 -0x0f27,0x000c,microcode_vectors,word,code_m1 +0x0f27,0x000c,ucode_vectors,word,code_m1 0x0f33,0x0001,vector_on_bits_4_to_6,code 0x0f46,0x0001,vector_on_bits_0_to_2,code 0x0f57,0x0001,decimal_inc,code 0x0f66,0x0001,decimal_dec,code 0x0f83,0x0001,vector_to_update_a_decimal,code -0x0f8d,0x0001,microcode_score,code +0x0f8d,0x0001,ucode_score,code 0x0fb1,0x0001,adjust_score_for_reset_object,code -0x0fb9,0x0001,microcode_byte,code -0x0fdb,0x0001,go_microcode_score,code -# enter with microcode_pair_object = 1st byte of microcode pair, a = 2nd byte -# these values come from do_microcode_pair (I think the only external caller) -# does ldx *microcode_pair_object first, so in below, "object" refers to this +0x0fb9,0x0001,ucode_byte,code +0x0fdb,0x0001,go_ucode_score,code +# enter with ucode_pair_object = 1st byte of ucode pair, a = 2nd byte +# these values come from do_ucode_pair (I think the only external caller) +# does ldx *ucode_pair_object first, so in below, "object" refers to this # 1st byte: -# < 0x10: go to microcode_escape +# < 0x10: go to ucode_escape # if 1st byte bit 0 = 1, only do the rest if demo mode (otherwise continue) # if 1st byte bit 1 = 1, only do the rest if NOT demo mode (otherwise done) # < 0x04: go to 2$ @@ -164,7 +164,7 @@ items # < 0x30: set demo mode, set mission from 2nd byte bits 0..3 # < 0xa0: vector to start game # >= 0xa0: start game demo -# < 0x08: go to microcode_score, with unusual bcc -> bcc instruction +# < 0x08: go to ucode_score, with unusual bcc -> bcc instruction # 2nd byte bits 4..7 # == 0x30: vector to update a decimal based on 2nd byte bits 0..2 # .dw loc_0ebc - 1 @@ -197,7 +197,7 @@ items # < 0x08: go to 0$ # if object is active, change its shape using 2nd byte bits 0..1 # < 0x0e: go to 3$ -# vector to microcode_vectors routine based on 2nd byte bits 0..2 +# vector to ucode_vectors routine based on 2nd byte bits 0..2 # .dw horizontal_collision_and_zero - 1 # .dw vertical_collision_and_zero - 1 # .dw horizontal_collision - 1 @@ -206,7 +206,7 @@ items # .dw vertical_collision_and_copy - 1 # = 0x0e: go to 1$ # decrement object1080_countdown_b190, returns zf=1 terminal count? -# != 0x0f: go to microcode_byte +# != 0x0f: go to ucode_byte # if bit 7 = 0, then only do the rest if the object is inactive # vector to routine based on 2nd byte bits 4..6 # .dw rts_0a11 - 1 @@ -231,40 +231,40 @@ items # else # reset object state # = 0x0f: if object is active, make it inactive and erase it -0x0fdd,0x0001,microcode_pair,code -0x1009,0x0001,vector_to_microcode,code -0x1016,0x0001,microcode_escape,code -# enter with a = value for microcode_pair_object, microcode_ptr_c0 setup, -# y = index into table at microcode_ptr_c0 (it will be incremented twice) -# routine loads first byte from the microcode table and calls microcode_pair -0x106a,0x0001,do_microcode_pair,code +0x0fdd,0x0001,ucode_pair,code +0x1009,0x0001,vector_to_ucode,code +0x1016,0x0001,ucode_escape,code +# enter with a = value for ucode_pair_object, ucode_ptr_c0 setup, +# y = index into table at ucode_ptr_c0 (it will be incremented twice) +# routine loads first byte from the ucode table and calls ucode_pair +0x106a,0x0001,do_ucode_pair,code 0x107c,0x0001,decimal_zero,code # zf=1 -> go to loc_10cd -# otherwise load microcode_start_sentinel from object1080_start_sentinel, -# and enter a loop scanning microcode table at microcode_ptr_c0 from index 0, -# when value read from microcode table is: +# otherwise load ucode_start_sentinel from object1080_start_sentinel, +# and enter a loop scanning ucode table at ucode_ptr_c0 from index 0, +# when value read from ucode table is: # == 0x00: go to loc_10cd -# >= 0xf0: see if it's the start sentinel in microcode_start_sentinel +# >= 0xf0: see if it's the start sentinel in ucode_start_sentinel # if it's not then keep skipping 2 locations until end of table or found # when found, skip 2 locations and check for more commands (0 is end of # table, >= 0xf0 is a different section, otherwise execute + zf=0 repeat -# otherwise execute it via do_microcode_pair, and check zf return because +# otherwise execute it via do_ucode_pair, and check zf return because # zf=1 means terminate the loop at loc_10cd otherwise keep executing loop # in summary there seems to be a global section at the start of the table that # is always executed, and a specific section to execute based on current state -0x1093,0x0001,microcode_execute_1093,code +0x1093,0x0001,ucode_execute_1093,code 0x109c,0x0001,,code_ign # bug? spans ae80 and aef0 tables, don't merge them -# alternative entry point for microcode_execute_1093 that comes from scoring? -0x10a1,0x0001,microcode_execute_1093_entry,code +# alternative entry point for ucode_execute_1093 that comes from scoring? +0x10a1,0x0001,ucode_execute_1093_entry,code # returns the current value of object1080_start_sentinel for the object in x # I think this might be to provide the correct flags return? -0x10cd,0x0001,microcode_execute_1093_done,code_ign # bug? spans ae80 and aef0 tables, don't merge them -# it seems to read values from table at microcode_ptr_c0 with some complicated +0x10cd,0x0001,ucode_execute_1093_done,code_ign # bug? spans ae80 and aef0 tables, don't merge them +# it seems to read values from table at ucode_ptr_c0 with some complicated # indirection (value from table = index to use for next read from table?) and -# it executes them by calling do_microcode_pair, this may read adjacent value? -# microcode_start_sentinel = counter that gets decremented to 0 +# it executes them by calling do_ucode_pair, this may read adjacent value? +# ucode_start_sentinel = counter that gets decremented to 0 # bvar_00cb = start index in table, and is advanced by the routine -0x10d1,0x0001,microcode_execute_10d1,code +0x10d1,0x0001,ucode_execute_10d1,code 0x10ed,0x0001,adjust_score,code 0x1153,0x0001,reset_decimals,code 0x1160,0x0001,reset_object_state,code @@ -272,35 +272,35 @@ items 0x11b2,0x0001,make_object_inactive_and_erase,code # called from update_object, when: # object1080_countdown_b120 or object1080_countdown_b190 expires -0x11bd,0x0001,execute_microcode1080_countdown,code +0x11bd,0x0001,execute_ucode1080_countdown,code # called from update_object, when: # test_object_collision returns cf=1 -0x11cd,0x0001,execute_microcode1080_collision,code +0x11cd,0x0001,execute_ucode1080_collision,code # called from update_object for objects >= 40, when: # object1080_x_hi outside [object4080_x_hi_min, object4080_x_hi_max) -0x11dd,0x0001,execute_microcode4080_x_outside,code +0x11dd,0x0001,execute_ucode4080_x_outside,code # called from update_object for objects >= 40, when: # object1080_y_hi outside [object4080_y_hi_min, object4080_y_hi_max) -0x11ed,0x0001,execute_microcode4080_y_outside,code +0x11ed,0x0001,execute_ucode4080_y_outside,code # called from update_object for objects >= 60, when: # object1080_start_sentinel == 0xf0 # and then test_object_fire_state_f0 returns cf=1 -0x11fd,0x0001,execute_microcode6080_fire_state_f0,code +0x11fd,0x0001,execute_ucode6080_fire_state_f0,code # called from update_object for objects >= 60, when: # object1080_start_sentinel == 0xf1 # and then test_object_fire_state_f1 returns cf=1 -0x1222,0x0001,execute_microcode6080_fire_state_f1,code +0x1222,0x0001,execute_ucode6080_fire_state_f1,code # called from update_object for objects >= 60, when: # object1080_start_sentinel == 0xf2 # and then test_object_fire_state_f2 returns cf=1 -0x1247,0x0001,execute_microcode6080_fire_state_f2,code +0x1247,0x0001,execute_ucode6080_fire_state_f2,code # called from update_object for objects >= 60, when: # object1080_start_sentinel == 0xf3 # and then test_object_fire_state_f3 returns cf=1 -0x126c,0x0001,execute_microcode6080_fire_state_f3,code +0x126c,0x0001,execute_ucode6080_fire_state_f3,code # called from accelerate_object_towards_another # seems to have a chance to intervene in the homing logic -0x1291,0x0001,execute_microcode6080_homing,code +0x1291,0x0001,execute_ucode6080_homing,code 0x12e1,0x0001,accelerate_object_towards_another,code 0x133f,0x0001,sign_extend_a_to_ya_asl_by_4,code 0x1350,0x0001,accelerate_object_somehow,code @@ -363,7 +363,7 @@ items 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) -0x2000,0x2000,hires_screen,byte +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 @@ -418,39 +418,39 @@ items 0x52a0,0x0030,object5080_difference_52a0,byte 0x52d0,0x0030,object5080_difference_52d0,byte 0x5300,0x0020,object6080_fire_count_init_state_f0,byte -# used from execute_microcode6080_fire_state_f0 +# used from execute_ucode6080_fire_state_f0 0x5320,0x0020,object6080_5320,byte 0x5340,0x0020,object6080_fire_count_init_state_f1,byte -# used from execute_microcode6080_fire_state_f1 +# used from execute_ucode6080_fire_state_f1 0x5360,0x0020,object6080_5360,byte 0x5380,0x0020,object6080_fire_count_init_state_f2,byte -# used from execute_microcode6080_fire_state_f2 +# used from execute_ucode6080_fire_state_f2 0x53a0,0x0020,object6080_53a0,byte 0x53c0,0x0020,object6080_fire_count_init_state_f3,byte -# used from execute_microcode6080_fire_state_f2 +# used from execute_ucode6080_fire_state_f2 0x53e0,0x0020,object6080_53e0,byte # the partitioning below is approximate and just tries to cover everything 0x5400,0x0020,,word -0x5420,0x00e0,microcode1080_animate_shape,word -0x5500,0x0020,microcode0010_init_or_zero,word -0x5520,0x00e0,microcode1080_countdown,word +0x5420,0x00e0,ucode1080_animate_shape,word +0x5500,0x0020,ucode0010_init_or_zero,word +0x5520,0x00e0,ucode1080_countdown,word 0x5600,0x0020,,word -0x5620,0x00e0,microcode1080_collision_test,word +0x5620,0x00e0,ucode1080_collision_test,word 0x5700,0x0020,,word -0x5720,0x00e0,microcode1080_collision,word -0x5800,0x0080,microcode4080_x_outside,word -0x5880,0x0080,microcode4080_y_outside,word +0x5720,0x00e0,ucode1080_collision,word +0x5800,0x0080,ucode4080_x_outside,word +0x5880,0x0080,ucode4080_y_outside,word 0x5900,0x0020,,word -0x5920,0x0030,microcode6080_homing,word +0x5920,0x0030,ucode6080_homing,word 0x5950,0x0070,,word -0x59c0,0x0040,microcode6080_test_fire_state_f0,word -0x5a00,0x0040,microcode6080_fire_state_f0,word -0x5a40,0x0040,microcode6080_test_fire_state_f1,word -0x5a80,0x0040,microcode6080_fire_state_f1,word -0x5ac0,0x0040,microcode6080_test_fire_state_f2,word -0x5b00,0x0040,microcode6080_fire_state_f2,word -0x5b40,0x0040,microcode6080_test_fire_state_f3,word -0x5b80,0x0040,microcode6080_fire_state_f3,word +0x59c0,0x0040,ucode6080_test_fire_state_f0,word +0x5a00,0x0040,ucode6080_fire_state_f0,word +0x5a40,0x0040,ucode6080_test_fire_state_f1,word +0x5a80,0x0040,ucode6080_fire_state_f1,word +0x5ac0,0x0040,ucode6080_test_fire_state_f2,word +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 @@ -581,294 +581,294 @@ items 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,0x0001,microcode1080_countdown_30,byte -0x8e03,0x0001,microcode4080_x_outside_61,byte -0x8e06,0x0001,microcode1080_animate_shape_68,byte -0x8e17,0x0001,microcode1080_animate_shape_30,byte -0x8e1e,0x0001,microcode1080_animate_shape_31,byte -0x8e25,0x0001,microcode1080_countdown_31,byte -0x8e28,0x0001,microcode1080_animate_shape_32,byte -0x8e2f,0x0001,microcode1080_countdown_32,byte -0x8e32,0x0001,microcode1080_animate_shape_33,byte -0x8e39,0x0001,microcode1080_countdown_33,byte -0x8e3c,0x0001,microcode1080_animate_shape_34,byte -0x8e43,0x0001,microcode1080_countdown_34,byte -0x8e46,0x0001,microcode1080_animate_shape_35,byte -0x8e4d,0x0001,microcode1080_countdown_35,byte -0x8e50,0x0001,microcode1080_animate_shape_36,byte -0x8e57,0x0001,microcode1080_countdown_36,byte -0x8e5a,0x0001,microcode1080_animate_shape_37,byte -0x8e61,0x0001,microcode1080_countdown_37,byte -0x8e64,0x0001,microcode4080_x_outside_68,byte -0x8e67,0x0001,microcode1080_animate_shape_38,byte -0x8e6e,0x0001,microcode1080_countdown_38,byte -0x8e71,0x0001,microcode1080_animate_shape_39,byte -0x8e78,0x0001,microcode1080_countdown_39,byte -0x8e7b,0x0001,microcode1080_animate_shape_3a,byte -0x8e82,0x0001,microcode1080_countdown_3a,byte -0x8e85,0x0001,microcode1080_animate_shape_3b,byte -0x8e8c,0x0001,microcode1080_countdown_3b,byte -0x8e8f,0x0001,microcode1080_animate_shape_69,byte -0x8ea0,0x0001,microcode4080_x_outside_69,byte -0x8ea3,0x0001,microcode1080_animate_shape_6a,byte -0x8eb4,0x0001,microcode4080_x_outside_6a,byte -0x8eb7,0x0001,microcode6080_fire_state_f0_68,byte -0x8ec0,0x0001,microcode6080_fire_state_f0_69,byte -0x8ec9,0x0001,microcode6080_fire_state_f0_6a,byte -0x8ed2,0x0001,microcode4080_x_outside_44,byte -0x8ed5,0x0001,microcode4080_x_outside_45,byte -0x8ed8,0x0001,microcode4080_x_outside_46,byte -0x8edb,0x0001,microcode1080_animate_shape_44,byte -0x8ee6,0x0001,microcode1080_animate_shape_45,byte -0x8ef1,0x0001,microcode1080_animate_shape_46,byte -0x8efc,0x0001,microcode1080_animate_shape_14,byte -0x8f05,0x0001,microcode1080_animate_shape_18,byte -0x8f0e,0x0001,microcode1080_countdown_19,byte -0x8f11,0x0001,microcode1080_animate_shape_1a,byte -0x8f1a,0x0001,microcode1080_countdown_1a,byte -0x8f1d,0x0001,microcode1080_animate_shape_1b,byte -0x8f26,0x0001,microcode1080_countdown_1b,byte -0x8f29,0x0001,microcode1080_animate_shape_1c,byte -0x8f32,0x0001,microcode4080_x_outside_43,byte -0x8f35,0x0001,microcode4080_x_outside_42,byte -0x8f38,0x0001,microcode6080_test_fire_state_f1_61,byte -0x8f3a,0x0001,microcode1080_collision_59,byte -0x8f43,0x0001,microcode1080_collision_5a,byte -0x8f4c,0x0001,microcode1080_collision_5b,byte -0x8f55,0x0001,microcode4080_x_outside_41,byte -0x8f58,0x0001,microcode4080_x_outside_48,byte -0x8f5b,0x0001,microcode1080_animate_shape_48,byte -0x8f5d,0x0001,microcode1080_animate_shape_70,byte -0x8f5f,0x0001,microcode4080_x_outside_71,byte -0x8f62,0x0001,microcode1080_animate_shape_4e,byte -0x8f69,0x0001,microcode1080_countdown_4e,byte -0x8f6c,0x0001,microcode1080_animate_shape_4f,byte -0x8f73,0x0001,microcode1080_countdown_4f,byte -0x8f76,0x0001,microcode1080_collision_58,byte -0x8f7f,0x0001,microcode1080_collision_50,byte -0x8f82,0x0001,microcode4080_x_outside_50,byte -0x8f85,0x0001,microcode6080_test_fire_state_f0_61,byte -0x8f87,0x0001,microcode1080_animate_shape_20,byte -0x8f8c,0x0001,microcode1080_animate_shape_21,byte -0x8f91,0x0001,microcode1080_animate_shape_22,byte -0x8f96,0x0001,microcode1080_animate_shape_24,byte -0x8f9b,0x0001,microcode1080_animate_shape_26,byte -0x8fa0,0x0001,microcode6080_fire_state_f0_63,byte -0x8fc1,0x0001,microcode1080_countdown_14,byte -0x8fc4,0x0001,microcode1080_countdown_18,byte -0x8fc7,0x0001,microcode1080_countdown_1c,byte -0x8fca,0x0001,microcode1080_animate_shape_23,byte -0x8fcf,0x0001,microcode1080_animate_shape_25,byte -0x8fd4,0x0001,microcode1080_animate_shape_27,byte -0x8fd9,0x0001,microcode1080_collision_5c,byte -0x8fe2,0x0001,microcode1080_animate_shape_58,byte -0x8ff7,0x0001,microcode1080_animate_shape_5a,byte -0x900b,0x0001,microcode1080_animate_shape_5b,byte -0x9021,0x0001,microcode1080_animate_shape_5c,byte -0x9035,0x0001,microcode4080_x_outside_58,byte -0x9038,0x0001,microcode4080_y_outside_58,byte -0x904b,0x0001,microcode4080_x_outside_59,byte -0x904e,0x0001,microcode4080_y_outside_59,byte -0x9061,0x0001,microcode4080_x_outside_5a,byte -0x9064,0x0001,microcode4080_y_outside_5a,byte -0x9077,0x0001,microcode4080_x_outside_5b,byte -0x907a,0x0001,microcode4080_y_outside_5b,byte -0x908d,0x0001,microcode4080_x_outside_5c,byte -0x9090,0x0001,microcode4080_y_outside_5c,byte -0x90a3,0x0001,microcode1080_animate_shape_11,byte -0x90a5,0x0001,microcode1080_animate_shape_10,byte -0x90a7,0x0001,microcode1080_collision_5d,byte -0x90b0,0x0001,microcode4080_x_outside_5d,byte -0x90b3,0x0001,microcode4080_y_outside_5d,byte -0x90c6,0x0001,microcode1080_animate_shape_5e,byte -0x90da,0x0001,microcode1080_collision_5e,byte -0x90e3,0x0001,microcode4080_x_outside_5e,byte -0x90e6,0x0001,microcode4080_y_outside_5e,byte -0x90f9,0x0001,microcode1080_animate_shape_5f,byte -0x910f,0x0001,microcode1080_collision_5f,byte -0x9118,0x0001,microcode4080_x_outside_5f,byte -0x911b,0x0001,microcode4080_y_outside_5f,byte -0x912e,0x0001,microcode6080_test_fire_state_f2_61,byte -0x9130,0x0001,microcode4080_y_outside_61,byte -0x9139,0x0001,microcode6080_test_fire_state_f3_61,byte -0x913b,0x0001,microcode6080_fire_state_f3_61,byte -0x913e,0x0001,microcode4080_x_outside_4d,byte -0x9141,0x0001,microcode1080_collision_51,byte -0x9144,0x0001,microcode4080_x_outside_51,byte -0x9147,0x0001,microcode1080_collision_52,byte -0x914a,0x0001,microcode4080_x_outside_52,byte -0x914d,0x0001,microcode1080_animate_shape_47,byte -0x914f,0x0001,microcode4080_x_outside_47,byte -0x9152,0x0001,microcode6080_test_fire_state_f2_78,byte -0x9155,0x0001,microcode6080_test_fire_state_f3_78,byte -0x9158,0x0001,microcode1080_animate_shape_78,byte -0x915a,0x0001,microcode6080_fire_state_f2_78,byte -0x9163,0x0001,microcode1080_collision_test_10,byte -0x9166,0x0001,microcode1080_animate_shape_7a,byte -0x9168,0x0001,microcode1080_countdown_7a,byte -0x9175,0x0001,microcode6080_test_fire_state_f2_7a,byte -0x9178,0x0001,microcode6080_test_fire_state_f3_7a,byte -0x917b,0x0001,microcode4080_x_outside_6b,byte -0x917e,0x0001,microcode1080_animate_shape_59,byte -0x9192,0x0001,microcode1080_animate_shape_5d,byte -0x91a7,0x0001,microcode4080_y_outside_65,byte -0x91aa,0x0001,microcode1080_animate_shape_62,byte -0x91ac,0x0001,microcode1080_animate_shape_64,byte -0x91b0,0x0001,microcode1080_collision_test_78,byte -0x91b3,0x0001,microcode1080_collision_test_7a,byte -0x91b6,0x0001,microcode1080_countdown_64,byte -0x91b9,0x0001,microcode1080_animate_shape_60,byte -0x91bb,0x0001,microcode1080_animate_shape_7f,byte -0x91bd,0x0001,microcode6080_fire_state_f0_7f,byte -0x91c0,0x0001,microcode6080_fire_state_f2_60,byte -0x91c3,0x0001,microcode0010_init_or_zero_0d,byte -0x91c8,0x0001,microcode6080_fire_state_f1_61,byte -0x91e9,0x0001,microcode1080_animate_shape_12,byte -0x91eb,0x0001,microcode1080_countdown_68,byte -0x91ee,0x0001,microcode1080_countdown_69,byte -0x91f1,0x0001,microcode1080_countdown_6a,byte -0x91f4,0x0001,microcode1080_countdown_60,byte -0x91f9,0x0001,microcode6080_fire_state_f1_60,byte -0x91fc,0x0001,microcode1080_collision_44,byte -0x9203,0x0001,microcode1080_collision_45,byte -0x920a,0x0001,microcode1080_collision_46,byte -0x9211,0x0001,microcode1080_collision_47,byte -0x9218,0x0001,microcode1080_collision_48,byte -0x921f,0x0001,microcode1080_collision_test_14,byte -0x9222,0x0001,microcode1080_collision_14,byte -0x922d,0x0001,microcode1080_collision_test_18,byte -0x9230,0x0001,microcode1080_collision_test_1c,byte -0x9233,0x0001,microcode1080_animate_shape_41,byte -0x9237,0x0001,microcode1080_animate_shape_42,byte -0x923b,0x0001,microcode1080_animate_shape_43,byte -0x923f,0x0001,microcode6080_fire_state_f0_65,byte -0x9242,0x0001,microcode6080_fire_state_f1_65,byte -0x9245,0x0001,microcode6080_test_fire_state_f1_6b,byte -0x9248,0x0001,microcode6080_fire_state_f1_6b,byte -0x9253,0x0001,microcode6080_fire_state_f0_6b,byte -0x9256,0x0001,microcode4080_x_outside_6c,byte -0x9259,0x0001,microcode6080_fire_state_f0_6c,byte -0x925c,0x0001,microcode6080_test_fire_state_f1_6c,byte -0x925f,0x0001,microcode6080_fire_state_f1_6c,byte -0x926a,0x0001,microcode4080_x_outside_6d,byte -0x926d,0x0001,microcode6080_fire_state_f0_6d,byte -0x9270,0x0001,microcode6080_test_fire_state_f1_6d,byte -0x9273,0x0001,microcode6080_fire_state_f1_6d,byte -0x927e,0x0001,microcode1080_collision_18,byte -0x928b,0x0001,microcode6080_fire_state_f3_78,byte -0x9294,0x0001,microcode1080_animate_shape_50,byte -0x929a,0x0001,microcode1080_animate_shape_51,byte -0x92a0,0x0001,microcode1080_animate_shape_52,byte -0x92a6,0x0001,microcode4080_x_outside_70,byte -0x92a9,0x0001,microcode4080_x_outside_53,byte -0x92ac,0x0001,microcode4080_y_outside_53,byte -0x92af,0x0001,microcode6080_fire_state_f1_71,byte -0x92b2,0x0001,microcode4080_x_outside_72,byte -0x92b5,0x0001,microcode1080_animate_shape_61,byte -0x92bd,0x0001,microcode4080_y_outside_71,byte -0x92c0,0x0001,microcode4080_y_outside_72,byte -0x92cf,0x0001,microcode6080_fire_state_f3_71,byte -0x92d2,0x0001,microcode1080_countdown_71,byte -0x92d7,0x0001,microcode1080_countdown_58,byte -0x92de,0x0001,microcode1080_countdown_59,byte -0x92e5,0x0001,microcode1080_countdown_5a,byte -0x92ec,0x0001,microcode1080_countdown_5b,byte -0x92f3,0x0001,microcode1080_countdown_5c,byte -0x92fa,0x0001,microcode1080_countdown_5d,byte -0x9301,0x0001,microcode1080_countdown_5e,byte -0x9308,0x0001,microcode1080_countdown_5f,byte -0x930f,0x0001,microcode6080_test_fire_state_f0_6c,byte -0x9312,0x0001,microcode6080_test_fire_state_f0_6b,byte -0x9315,0x0001,microcode6080_test_fire_state_f0_6d,byte -0x9318,0x0001,microcode1080_animate_shape_65,byte -0x931c,0x0001,microcode1080_animate_shape_66,byte -0x931e,0x0001,microcode1080_animate_shape_16,byte -0x9327,0x0001,microcode1080_countdown_16,byte -0x932a,0x0001,microcode1080_animate_shape_1e,byte -0x9333,0x0001,microcode1080_countdown_1e,byte -0x9336,0x0001,microcode1080_animate_shape_17,byte -0x933f,0x0001,microcode1080_countdown_17,byte -0x9342,0x0001,microcode1080_animate_shape_1f,byte -0x934b,0x0001,microcode1080_countdown_1f,byte -0x934e,0x0001,microcode1080_animate_shape_19,byte -0x9357,0x0001,microcode1080_animate_shape_15,byte -0x9360,0x0001,microcode1080_countdown_15,byte -0x9363,0x0001,microcode1080_animate_shape_1d,byte -0x936c,0x0001,microcode1080_countdown_1d,byte -0x936f,0x0001,microcode1080_animate_shape_7c,byte -0x9371,0x0001,microcode1080_collision_test_7c,byte -0x9374,0x0001,microcode6080_test_fire_state_f2_7c,byte -0x9377,0x0001,microcode6080_test_fire_state_f3_7c,byte -0x937a,0x0001,microcode6080_fire_state_f3_65,byte -0x9387,0x0001,microcode1080_animate_shape_79,byte -0x9389,0x0001,microcode1080_collision_test_79,byte -0x938c,0x0001,microcode6080_test_fire_state_f3_79,byte -0x938f,0x0001,microcode1080_countdown_7f,byte -0x93a0,0x0001,microcode6080_fire_state_f1_7f,byte -0x93b1,0x0001,microcode1080_collision_test_64,byte -0x93c1,0x0001,microcode1080_animate_shape_53,byte -0x93cf,0x0001,microcode1080_animate_shape_54,byte -0x93dd,0x0001,microcode4080_x_outside_54,byte -0x93e0,0x0001,microcode4080_y_outside_54,byte -0x93e3,0x0001,microcode1080_animate_shape_55,byte -0x93f1,0x0001,microcode4080_x_outside_55,byte -0x93f4,0x0001,microcode4080_y_outside_55,byte -0x93f7,0x0001,microcode1080_animate_shape_56,byte -0x9405,0x0001,microcode4080_x_outside_56,byte -0x9408,0x0001,microcode4080_y_outside_56,byte -0x940b,0x0001,microcode1080_animate_shape_57,byte -0x9419,0x0001,microcode4080_x_outside_57,byte -0x941c,0x0001,microcode4080_y_outside_57,byte -0x941f,0x0001,microcode1080_collision_test_61,byte -0x942a,0x0001,microcode1080_countdown_7c,byte -0x9437,0x0001,microcode1080_animate_shape_2c,byte -0x9439,0x0001,microcode6080_test_fire_state_f0_77,byte -0x943c,0x0001,microcode4080_x_outside_6e,byte -0x943f,0x0001,microcode6080_test_fire_state_f0_6e,byte -0x9442,0x0001,microcode6080_fire_state_f0_6e,byte -0x9445,0x0001,microcode6080_test_fire_state_f1_6e,byte -0x9448,0x0001,microcode6080_fire_state_f1_6e,byte -0x9453,0x0001,microcode4080_x_outside_6f,byte -0x9456,0x0001,microcode6080_test_fire_state_f0_6f,byte -0x9459,0x0001,microcode6080_fire_state_f0_6f,byte -0x945c,0x0001,microcode6080_test_fire_state_f1_6f,byte -0x945f,0x0001,microcode6080_fire_state_f1_6f,byte -0x946a,0x0001,microcode6080_test_fire_state_f2_77,byte -0x946d,0x0001,microcode6080_fire_state_f3_79,byte -0x948c,0x0001,microcode1080_collision_1c,byte -0x9497,0x0001,microcode1080_collision_6b,byte -0x94aa,0x0001,microcode1080_collision_6c,byte -0x94bd,0x0001,microcode1080_collision_6d,byte -0x94d0,0x0001,microcode1080_collision_6e,byte -0x94e3,0x0001,microcode1080_collision_6f,byte -0x94f6,0x0001,microcode1080_collision_10,byte -0x9511,0x0001,microcode1080_collision_72,byte -0x951a,0x0001,microcode1080_collision_53,byte -0x9527,0x0001,microcode1080_collision_54,byte -0x9534,0x0001,microcode1080_collision_55,byte -0x9541,0x0001,microcode1080_collision_56,byte -0x954e,0x0001,microcode1080_collision_57,byte -0x955b,0x0001,microcode4080_y_outside_70,byte -0x955e,0x0001,microcode1080_animate_shape_28,byte -0x9560,0x0001,microcode1080_countdown_28,byte -0x9563,0x0001,microcode1080_collision_test_28,byte -0x9565,0x0001,microcode1080_collision_28,byte -0x9578,0x0001,microcode1080_countdown_61,byte -0x957f,0x0001,microcode6080_test_fire_state_f1_7a,byte -0x9582,0x0001,microcode6080_test_fire_state_f1_7c,byte -0x9585,0x0001,microcode1080_animate_shape_7b,byte -0x9587,0x0001,microcode1080_collision_test_7b,byte -0x958a,0x0001,microcode6080_test_fire_state_f3_7b,byte -0x958d,0x0001,microcode6080_fire_state_f2_7a,byte -0x9596,0x0001,microcode1080_animate_shape_7d,byte -0x9598,0x0001,microcode1080_countdown_7d,byte -0x95ab,0x0001,microcode6080_fire_state_f0_7d,byte -0x95b0,0x0001,microcode6080_fire_state_f1_7d,byte -0x95b7,0x0001,microcode6080_fire_state_f2_7f,byte -0x95c4,0x0001,microcode6080_fire_state_f2_7d,byte -0x95d1,0x0001,microcode0010_init_or_zero_0e,byte +0x8e00,0x0001,ucode1080_countdown_30,byte +0x8e03,0x0001,ucode4080_x_outside_61,byte +0x8e06,0x0001,ucode1080_animate_shape_68,byte +0x8e17,0x0001,ucode1080_animate_shape_30,byte +0x8e1e,0x0001,ucode1080_animate_shape_31,byte +0x8e25,0x0001,ucode1080_countdown_31,byte +0x8e28,0x0001,ucode1080_animate_shape_32,byte +0x8e2f,0x0001,ucode1080_countdown_32,byte +0x8e32,0x0001,ucode1080_animate_shape_33,byte +0x8e39,0x0001,ucode1080_countdown_33,byte +0x8e3c,0x0001,ucode1080_animate_shape_34,byte +0x8e43,0x0001,ucode1080_countdown_34,byte +0x8e46,0x0001,ucode1080_animate_shape_35,byte +0x8e4d,0x0001,ucode1080_countdown_35,byte +0x8e50,0x0001,ucode1080_animate_shape_36,byte +0x8e57,0x0001,ucode1080_countdown_36,byte +0x8e5a,0x0001,ucode1080_animate_shape_37,byte +0x8e61,0x0001,ucode1080_countdown_37,byte +0x8e64,0x0001,ucode4080_x_outside_68,byte +0x8e67,0x0001,ucode1080_animate_shape_38,byte +0x8e6e,0x0001,ucode1080_countdown_38,byte +0x8e71,0x0001,ucode1080_animate_shape_39,byte +0x8e78,0x0001,ucode1080_countdown_39,byte +0x8e7b,0x0001,ucode1080_animate_shape_3a,byte +0x8e82,0x0001,ucode1080_countdown_3a,byte +0x8e85,0x0001,ucode1080_animate_shape_3b,byte +0x8e8c,0x0001,ucode1080_countdown_3b,byte +0x8e8f,0x0001,ucode1080_animate_shape_69,byte +0x8ea0,0x0001,ucode4080_x_outside_69,byte +0x8ea3,0x0001,ucode1080_animate_shape_6a,byte +0x8eb4,0x0001,ucode4080_x_outside_6a,byte +0x8eb7,0x0001,ucode6080_fire_state_f0_68,byte +0x8ec0,0x0001,ucode6080_fire_state_f0_69,byte +0x8ec9,0x0001,ucode6080_fire_state_f0_6a,byte +0x8ed2,0x0001,ucode4080_x_outside_44,byte +0x8ed5,0x0001,ucode4080_x_outside_45,byte +0x8ed8,0x0001,ucode4080_x_outside_46,byte +0x8edb,0x0001,ucode1080_animate_shape_44,byte +0x8ee6,0x0001,ucode1080_animate_shape_45,byte +0x8ef1,0x0001,ucode1080_animate_shape_46,byte +0x8efc,0x0001,ucode1080_animate_shape_14,byte +0x8f05,0x0001,ucode1080_animate_shape_18,byte +0x8f0e,0x0001,ucode1080_countdown_19,byte +0x8f11,0x0001,ucode1080_animate_shape_1a,byte +0x8f1a,0x0001,ucode1080_countdown_1a,byte +0x8f1d,0x0001,ucode1080_animate_shape_1b,byte +0x8f26,0x0001,ucode1080_countdown_1b,byte +0x8f29,0x0001,ucode1080_animate_shape_1c,byte +0x8f32,0x0001,ucode4080_x_outside_43,byte +0x8f35,0x0001,ucode4080_x_outside_42,byte +0x8f38,0x0001,ucode6080_test_fire_state_f1_61,byte +0x8f3a,0x0001,ucode1080_collision_59,byte +0x8f43,0x0001,ucode1080_collision_5a,byte +0x8f4c,0x0001,ucode1080_collision_5b,byte +0x8f55,0x0001,ucode4080_x_outside_41,byte +0x8f58,0x0001,ucode4080_x_outside_48,byte +0x8f5b,0x0001,ucode1080_animate_shape_48,byte +0x8f5d,0x0001,ucode1080_animate_shape_70,byte +0x8f5f,0x0001,ucode4080_x_outside_71,byte +0x8f62,0x0001,ucode1080_animate_shape_4e,byte +0x8f69,0x0001,ucode1080_countdown_4e,byte +0x8f6c,0x0001,ucode1080_animate_shape_4f,byte +0x8f73,0x0001,ucode1080_countdown_4f,byte +0x8f76,0x0001,ucode1080_collision_58,byte +0x8f7f,0x0001,ucode1080_collision_50,byte +0x8f82,0x0001,ucode4080_x_outside_50,byte +0x8f85,0x0001,ucode6080_test_fire_state_f0_61,byte +0x8f87,0x0001,ucode1080_animate_shape_20,byte +0x8f8c,0x0001,ucode1080_animate_shape_21,byte +0x8f91,0x0001,ucode1080_animate_shape_22,byte +0x8f96,0x0001,ucode1080_animate_shape_24,byte +0x8f9b,0x0001,ucode1080_animate_shape_26,byte +0x8fa0,0x0001,ucode6080_fire_state_f0_63,byte +0x8fc1,0x0001,ucode1080_countdown_14,byte +0x8fc4,0x0001,ucode1080_countdown_18,byte +0x8fc7,0x0001,ucode1080_countdown_1c,byte +0x8fca,0x0001,ucode1080_animate_shape_23,byte +0x8fcf,0x0001,ucode1080_animate_shape_25,byte +0x8fd4,0x0001,ucode1080_animate_shape_27,byte +0x8fd9,0x0001,ucode1080_collision_5c,byte +0x8fe2,0x0001,ucode1080_animate_shape_58,byte +0x8ff7,0x0001,ucode1080_animate_shape_5a,byte +0x900b,0x0001,ucode1080_animate_shape_5b,byte +0x9021,0x0001,ucode1080_animate_shape_5c,byte +0x9035,0x0001,ucode4080_x_outside_58,byte +0x9038,0x0001,ucode4080_y_outside_58,byte +0x904b,0x0001,ucode4080_x_outside_59,byte +0x904e,0x0001,ucode4080_y_outside_59,byte +0x9061,0x0001,ucode4080_x_outside_5a,byte +0x9064,0x0001,ucode4080_y_outside_5a,byte +0x9077,0x0001,ucode4080_x_outside_5b,byte +0x907a,0x0001,ucode4080_y_outside_5b,byte +0x908d,0x0001,ucode4080_x_outside_5c,byte +0x9090,0x0001,ucode4080_y_outside_5c,byte +0x90a3,0x0001,ucode1080_animate_shape_11,byte +0x90a5,0x0001,ucode1080_animate_shape_10,byte +0x90a7,0x0001,ucode1080_collision_5d,byte +0x90b0,0x0001,ucode4080_x_outside_5d,byte +0x90b3,0x0001,ucode4080_y_outside_5d,byte +0x90c6,0x0001,ucode1080_animate_shape_5e,byte +0x90da,0x0001,ucode1080_collision_5e,byte +0x90e3,0x0001,ucode4080_x_outside_5e,byte +0x90e6,0x0001,ucode4080_y_outside_5e,byte +0x90f9,0x0001,ucode1080_animate_shape_5f,byte +0x910f,0x0001,ucode1080_collision_5f,byte +0x9118,0x0001,ucode4080_x_outside_5f,byte +0x911b,0x0001,ucode4080_y_outside_5f,byte +0x912e,0x0001,ucode6080_test_fire_state_f2_61,byte +0x9130,0x0001,ucode4080_y_outside_61,byte +0x9139,0x0001,ucode6080_test_fire_state_f3_61,byte +0x913b,0x0001,ucode6080_fire_state_f3_61,byte +0x913e,0x0001,ucode4080_x_outside_4d,byte +0x9141,0x0001,ucode1080_collision_51,byte +0x9144,0x0001,ucode4080_x_outside_51,byte +0x9147,0x0001,ucode1080_collision_52,byte +0x914a,0x0001,ucode4080_x_outside_52,byte +0x914d,0x0001,ucode1080_animate_shape_47,byte +0x914f,0x0001,ucode4080_x_outside_47,byte +0x9152,0x0001,ucode6080_test_fire_state_f2_78,byte +0x9155,0x0001,ucode6080_test_fire_state_f3_78,byte +0x9158,0x0001,ucode1080_animate_shape_78,byte +0x915a,0x0001,ucode6080_fire_state_f2_78,byte +0x9163,0x0001,ucode1080_collision_test_10,byte +0x9166,0x0001,ucode1080_animate_shape_7a,byte +0x9168,0x0001,ucode1080_countdown_7a,byte +0x9175,0x0001,ucode6080_test_fire_state_f2_7a,byte +0x9178,0x0001,ucode6080_test_fire_state_f3_7a,byte +0x917b,0x0001,ucode4080_x_outside_6b,byte +0x917e,0x0001,ucode1080_animate_shape_59,byte +0x9192,0x0001,ucode1080_animate_shape_5d,byte +0x91a7,0x0001,ucode4080_y_outside_65,byte +0x91aa,0x0001,ucode1080_animate_shape_62,byte +0x91ac,0x0001,ucode1080_animate_shape_64,byte +0x91b0,0x0001,ucode1080_collision_test_78,byte +0x91b3,0x0001,ucode1080_collision_test_7a,byte +0x91b6,0x0001,ucode1080_countdown_64,byte +0x91b9,0x0001,ucode1080_animate_shape_60,byte +0x91bb,0x0001,ucode1080_animate_shape_7f,byte +0x91bd,0x0001,ucode6080_fire_state_f0_7f,byte +0x91c0,0x0001,ucode6080_fire_state_f2_60,byte +0x91c3,0x0001,ucode0010_init_or_zero_0d,byte +0x91c8,0x0001,ucode6080_fire_state_f1_61,byte +0x91e9,0x0001,ucode1080_animate_shape_12,byte +0x91eb,0x0001,ucode1080_countdown_68,byte +0x91ee,0x0001,ucode1080_countdown_69,byte +0x91f1,0x0001,ucode1080_countdown_6a,byte +0x91f4,0x0001,ucode1080_countdown_60,byte +0x91f9,0x0001,ucode6080_fire_state_f1_60,byte +0x91fc,0x0001,ucode1080_collision_44,byte +0x9203,0x0001,ucode1080_collision_45,byte +0x920a,0x0001,ucode1080_collision_46,byte +0x9211,0x0001,ucode1080_collision_47,byte +0x9218,0x0001,ucode1080_collision_48,byte +0x921f,0x0001,ucode1080_collision_test_14,byte +0x9222,0x0001,ucode1080_collision_14,byte +0x922d,0x0001,ucode1080_collision_test_18,byte +0x9230,0x0001,ucode1080_collision_test_1c,byte +0x9233,0x0001,ucode1080_animate_shape_41,byte +0x9237,0x0001,ucode1080_animate_shape_42,byte +0x923b,0x0001,ucode1080_animate_shape_43,byte +0x923f,0x0001,ucode6080_fire_state_f0_65,byte +0x9242,0x0001,ucode6080_fire_state_f1_65,byte +0x9245,0x0001,ucode6080_test_fire_state_f1_6b,byte +0x9248,0x0001,ucode6080_fire_state_f1_6b,byte +0x9253,0x0001,ucode6080_fire_state_f0_6b,byte +0x9256,0x0001,ucode4080_x_outside_6c,byte +0x9259,0x0001,ucode6080_fire_state_f0_6c,byte +0x925c,0x0001,ucode6080_test_fire_state_f1_6c,byte +0x925f,0x0001,ucode6080_fire_state_f1_6c,byte +0x926a,0x0001,ucode4080_x_outside_6d,byte +0x926d,0x0001,ucode6080_fire_state_f0_6d,byte +0x9270,0x0001,ucode6080_test_fire_state_f1_6d,byte +0x9273,0x0001,ucode6080_fire_state_f1_6d,byte +0x927e,0x0001,ucode1080_collision_18,byte +0x928b,0x0001,ucode6080_fire_state_f3_78,byte +0x9294,0x0001,ucode1080_animate_shape_50,byte +0x929a,0x0001,ucode1080_animate_shape_51,byte +0x92a0,0x0001,ucode1080_animate_shape_52,byte +0x92a6,0x0001,ucode4080_x_outside_70,byte +0x92a9,0x0001,ucode4080_x_outside_53,byte +0x92ac,0x0001,ucode4080_y_outside_53,byte +0x92af,0x0001,ucode6080_fire_state_f1_71,byte +0x92b2,0x0001,ucode4080_x_outside_72,byte +0x92b5,0x0001,ucode1080_animate_shape_61,byte +0x92bd,0x0001,ucode4080_y_outside_71,byte +0x92c0,0x0001,ucode4080_y_outside_72,byte +0x92cf,0x0001,ucode6080_fire_state_f3_71,byte +0x92d2,0x0001,ucode1080_countdown_71,byte +0x92d7,0x0001,ucode1080_countdown_58,byte +0x92de,0x0001,ucode1080_countdown_59,byte +0x92e5,0x0001,ucode1080_countdown_5a,byte +0x92ec,0x0001,ucode1080_countdown_5b,byte +0x92f3,0x0001,ucode1080_countdown_5c,byte +0x92fa,0x0001,ucode1080_countdown_5d,byte +0x9301,0x0001,ucode1080_countdown_5e,byte +0x9308,0x0001,ucode1080_countdown_5f,byte +0x930f,0x0001,ucode6080_test_fire_state_f0_6c,byte +0x9312,0x0001,ucode6080_test_fire_state_f0_6b,byte +0x9315,0x0001,ucode6080_test_fire_state_f0_6d,byte +0x9318,0x0001,ucode1080_animate_shape_65,byte +0x931c,0x0001,ucode1080_animate_shape_66,byte +0x931e,0x0001,ucode1080_animate_shape_16,byte +0x9327,0x0001,ucode1080_countdown_16,byte +0x932a,0x0001,ucode1080_animate_shape_1e,byte +0x9333,0x0001,ucode1080_countdown_1e,byte +0x9336,0x0001,ucode1080_animate_shape_17,byte +0x933f,0x0001,ucode1080_countdown_17,byte +0x9342,0x0001,ucode1080_animate_shape_1f,byte +0x934b,0x0001,ucode1080_countdown_1f,byte +0x934e,0x0001,ucode1080_animate_shape_19,byte +0x9357,0x0001,ucode1080_animate_shape_15,byte +0x9360,0x0001,ucode1080_countdown_15,byte +0x9363,0x0001,ucode1080_animate_shape_1d,byte +0x936c,0x0001,ucode1080_countdown_1d,byte +0x936f,0x0001,ucode1080_animate_shape_7c,byte +0x9371,0x0001,ucode1080_collision_test_7c,byte +0x9374,0x0001,ucode6080_test_fire_state_f2_7c,byte +0x9377,0x0001,ucode6080_test_fire_state_f3_7c,byte +0x937a,0x0001,ucode6080_fire_state_f3_65,byte +0x9387,0x0001,ucode1080_animate_shape_79,byte +0x9389,0x0001,ucode1080_collision_test_79,byte +0x938c,0x0001,ucode6080_test_fire_state_f3_79,byte +0x938f,0x0001,ucode1080_countdown_7f,byte +0x93a0,0x0001,ucode6080_fire_state_f1_7f,byte +0x93b1,0x0001,ucode1080_collision_test_64,byte +0x93c1,0x0001,ucode1080_animate_shape_53,byte +0x93cf,0x0001,ucode1080_animate_shape_54,byte +0x93dd,0x0001,ucode4080_x_outside_54,byte +0x93e0,0x0001,ucode4080_y_outside_54,byte +0x93e3,0x0001,ucode1080_animate_shape_55,byte +0x93f1,0x0001,ucode4080_x_outside_55,byte +0x93f4,0x0001,ucode4080_y_outside_55,byte +0x93f7,0x0001,ucode1080_animate_shape_56,byte +0x9405,0x0001,ucode4080_x_outside_56,byte +0x9408,0x0001,ucode4080_y_outside_56,byte +0x940b,0x0001,ucode1080_animate_shape_57,byte +0x9419,0x0001,ucode4080_x_outside_57,byte +0x941c,0x0001,ucode4080_y_outside_57,byte +0x941f,0x0001,ucode1080_collision_test_61,byte +0x942a,0x0001,ucode1080_countdown_7c,byte +0x9437,0x0001,ucode1080_animate_shape_2c,byte +0x9439,0x0001,ucode6080_test_fire_state_f0_77,byte +0x943c,0x0001,ucode4080_x_outside_6e,byte +0x943f,0x0001,ucode6080_test_fire_state_f0_6e,byte +0x9442,0x0001,ucode6080_fire_state_f0_6e,byte +0x9445,0x0001,ucode6080_test_fire_state_f1_6e,byte +0x9448,0x0001,ucode6080_fire_state_f1_6e,byte +0x9453,0x0001,ucode4080_x_outside_6f,byte +0x9456,0x0001,ucode6080_test_fire_state_f0_6f,byte +0x9459,0x0001,ucode6080_fire_state_f0_6f,byte +0x945c,0x0001,ucode6080_test_fire_state_f1_6f,byte +0x945f,0x0001,ucode6080_fire_state_f1_6f,byte +0x946a,0x0001,ucode6080_test_fire_state_f2_77,byte +0x946d,0x0001,ucode6080_fire_state_f3_79,byte +0x948c,0x0001,ucode1080_collision_1c,byte +0x9497,0x0001,ucode1080_collision_6b,byte +0x94aa,0x0001,ucode1080_collision_6c,byte +0x94bd,0x0001,ucode1080_collision_6d,byte +0x94d0,0x0001,ucode1080_collision_6e,byte +0x94e3,0x0001,ucode1080_collision_6f,byte +0x94f6,0x0001,ucode1080_collision_10,byte +0x9511,0x0001,ucode1080_collision_72,byte +0x951a,0x0001,ucode1080_collision_53,byte +0x9527,0x0001,ucode1080_collision_54,byte +0x9534,0x0001,ucode1080_collision_55,byte +0x9541,0x0001,ucode1080_collision_56,byte +0x954e,0x0001,ucode1080_collision_57,byte +0x955b,0x0001,ucode4080_y_outside_70,byte +0x955e,0x0001,ucode1080_animate_shape_28,byte +0x9560,0x0001,ucode1080_countdown_28,byte +0x9563,0x0001,ucode1080_collision_test_28,byte +0x9565,0x0001,ucode1080_collision_28,byte +0x9578,0x0001,ucode1080_countdown_61,byte +0x957f,0x0001,ucode6080_test_fire_state_f1_7a,byte +0x9582,0x0001,ucode6080_test_fire_state_f1_7c,byte +0x9585,0x0001,ucode1080_animate_shape_7b,byte +0x9587,0x0001,ucode1080_collision_test_7b,byte +0x958a,0x0001,ucode6080_test_fire_state_f3_7b,byte +0x958d,0x0001,ucode6080_fire_state_f2_7a,byte +0x9596,0x0001,ucode1080_animate_shape_7d,byte +0x9598,0x0001,ucode1080_countdown_7d,byte +0x95ab,0x0001,ucode6080_fire_state_f0_7d,byte +0x95b0,0x0001,ucode6080_fire_state_f1_7d,byte +0x95b7,0x0001,ucode6080_fire_state_f2_7f,byte +0x95c4,0x0001,ucode6080_fire_state_f2_7d,byte +0x95d1,0x0001,ucode0010_init_or_zero_0e,byte # object 0x6b is helicopter_or_enemy_plane0 -# 54d6 = microcode1080_animate_shape + 0x6b * 2 +# 54d6 = ucode1080_animate_shape + 0x6b * 2 # -> implied start of section 0xf0 # .db 0x2c helicopter shape # .db 0xf2 -> start of section 0xf2 @@ -876,10 +876,10 @@ items # .db 0xf3 -> start of section 0xf3 # .db 0x2f enemy_plane1 shape # .db 0x00 sentinel -0x95dc,0x0001,microcode1080_animate_shape_6b,byte -0x95e2,0x0001,microcode6080_homing_6b,byte +0x95dc,0x0001,ucode1080_animate_shape_6b,byte +0x95e2,0x0001,ucode6080_homing_6b,byte # object 0x6c is helicopter_or_enemy_plane1 -# 54d8 = microcode1080_animate_shape + 0x6c * 2 +# 54d8 = ucode1080_animate_shape + 0x6c * 2 # -> implied start of section 0xf0 # .db 0x2c helicopter shape # .db 0xf2 -> start of section 0xf2 @@ -887,10 +887,10 @@ items # .db 0xf3 -> start of section 0xf3 # .db 0x2f enemy_plane1 shape # .db 0x00 sentinel -0x95e9,0x0001,microcode1080_animate_shape_6c,byte -0x95ef,0x0001,microcode6080_homing_6c,byte +0x95e9,0x0001,ucode1080_animate_shape_6c,byte +0x95ef,0x0001,ucode6080_homing_6c,byte # object 0x6d is helicopter_or_enemy_plane2 -# 54da = microcode1080_animate_shape + 0x6d * 2 +# 54da = ucode1080_animate_shape + 0x6d * 2 # -> implied start of section 0xf0 # .db 0x2c helicopter shape # .db 0xf2 -> start of section 0xf2 @@ -898,59 +898,59 @@ items # .db 0xf3 -> start of section 0xf3 # .db 0x2f enemy_plane1 shape # .db 0x00 sentinel -0x95f6,0x0001,microcode1080_animate_shape_6d,byte -0x95fc,0x0001,microcode6080_homing_6d,byte -0x9603,0x0001,microcode1080_animate_shape_6e,byte -0x9609,0x0001,microcode6080_homing_6e,byte -0x9610,0x0001,microcode1080_animate_shape_6f,byte -0x9616,0x0001,microcode6080_homing_6f,byte -0x961d,0x0001,microcode1080_countdown_44,byte -0x9626,0x0001,microcode1080_countdown_45,byte -0x962f,0x0001,microcode1080_countdown_46,byte -0x9638,0x0001,microcode4080_y_outside_47,byte -0x963b,0x0001,microcode4080_y_outside_48,byte -0x963e,0x0001,microcode6080_test_fire_state_f3_6b,byte -0x9641,0x0001,microcode6080_fire_state_f3_6b,byte -0x9648,0x0001,microcode6080_test_fire_state_f3_6c,byte -0x964b,0x0001,microcode6080_fire_state_f3_6c,byte -0x9652,0x0001,microcode6080_test_fire_state_f3_6d,byte -0x9655,0x0001,microcode6080_fire_state_f3_6d,byte -0x965c,0x0001,microcode6080_test_fire_state_f3_6e,byte -0x965f,0x0001,microcode6080_fire_state_f3_6e,byte -0x9666,0x0001,microcode6080_test_fire_state_f3_6f,byte -0x9669,0x0001,microcode6080_fire_state_f3_6f,byte -0x9670,0x0001,microcode1080_animate_shape_73,byte -0x9676,0x0001,microcode1080_collision_73,byte -0x9679,0x0001,microcode1080_animate_shape_2f,byte -0x967b,0x0001,microcode4080_x_outside_73,byte -0x967e,0x0001,microcode1080_animate_shape_74,byte -0x9684,0x0001,microcode1080_collision_74,byte -0x9687,0x0001,microcode4080_x_outside_74,byte -0x968a,0x0001,microcode1080_animate_shape_75,byte -0x9690,0x0001,microcode1080_collision_75,byte -0x9693,0x0001,microcode4080_x_outside_75,byte -0x9696,0x0001,microcode1080_animate_shape_76,byte -0x9698,0x0001,microcode6080_test_fire_state_f1_76,byte -0x969b,0x0001,microcode6080_test_fire_state_f0_76,byte -0x969e,0x0001,microcode1080_animate_shape_2d,byte -0x96a0,0x0001,microcode6080_test_fire_state_f2_79,byte -0x96a3,0x0001,microcode6080_test_fire_state_f2_7b,byte -0x96a6,0x0001,microcode6080_fire_state_f2_79,byte -0x96a9,0x0001,microcode6080_fire_state_f2_7b,byte -0x96ac,0x0001,microcode1080_animate_shape_2e,byte -0x96ae,0x0001,microcode4080_x_outside_77,byte -0x96b5,0x0001,microcode1080_collision_77,byte -0x96c4,0x0001,microcode1080_countdown_2f,byte -0x96cb,0x0001,microcode4080_y_outside_4d,byte -0x96ce,0x0001,microcode6080_homing_77,byte -0x96d0,0x0001,microcode1080_animate_shape_77,byte -0x96d6,0x0001,microcode6080_fire_state_f2_77,byte -0x96dd,0x0001,microcode6080_fire_state_f3_77,byte -0x96e0,0x0001,microcode1080_countdown_2d,byte -0x96f1,0x0001,microcode1080_countdown_2e,byte -0x9704,0x0001,microcode6080_test_fire_state_f3_77,byte +0x95f6,0x0001,ucode1080_animate_shape_6d,byte +0x95fc,0x0001,ucode6080_homing_6d,byte +0x9603,0x0001,ucode1080_animate_shape_6e,byte +0x9609,0x0001,ucode6080_homing_6e,byte +0x9610,0x0001,ucode1080_animate_shape_6f,byte +0x9616,0x0001,ucode6080_homing_6f,byte +0x961d,0x0001,ucode1080_countdown_44,byte +0x9626,0x0001,ucode1080_countdown_45,byte +0x962f,0x0001,ucode1080_countdown_46,byte +0x9638,0x0001,ucode4080_y_outside_47,byte +0x963b,0x0001,ucode4080_y_outside_48,byte +0x963e,0x0001,ucode6080_test_fire_state_f3_6b,byte +0x9641,0x0001,ucode6080_fire_state_f3_6b,byte +0x9648,0x0001,ucode6080_test_fire_state_f3_6c,byte +0x964b,0x0001,ucode6080_fire_state_f3_6c,byte +0x9652,0x0001,ucode6080_test_fire_state_f3_6d,byte +0x9655,0x0001,ucode6080_fire_state_f3_6d,byte +0x965c,0x0001,ucode6080_test_fire_state_f3_6e,byte +0x965f,0x0001,ucode6080_fire_state_f3_6e,byte +0x9666,0x0001,ucode6080_test_fire_state_f3_6f,byte +0x9669,0x0001,ucode6080_fire_state_f3_6f,byte +0x9670,0x0001,ucode1080_animate_shape_73,byte +0x9676,0x0001,ucode1080_collision_73,byte +0x9679,0x0001,ucode1080_animate_shape_2f,byte +0x967b,0x0001,ucode4080_x_outside_73,byte +0x967e,0x0001,ucode1080_animate_shape_74,byte +0x9684,0x0001,ucode1080_collision_74,byte +0x9687,0x0001,ucode4080_x_outside_74,byte +0x968a,0x0001,ucode1080_animate_shape_75,byte +0x9690,0x0001,ucode1080_collision_75,byte +0x9693,0x0001,ucode4080_x_outside_75,byte +0x9696,0x0001,ucode1080_animate_shape_76,byte +0x9698,0x0001,ucode6080_test_fire_state_f1_76,byte +0x969b,0x0001,ucode6080_test_fire_state_f0_76,byte +0x969e,0x0001,ucode1080_animate_shape_2d,byte +0x96a0,0x0001,ucode6080_test_fire_state_f2_79,byte +0x96a3,0x0001,ucode6080_test_fire_state_f2_7b,byte +0x96a6,0x0001,ucode6080_fire_state_f2_79,byte +0x96a9,0x0001,ucode6080_fire_state_f2_7b,byte +0x96ac,0x0001,ucode1080_animate_shape_2e,byte +0x96ae,0x0001,ucode4080_x_outside_77,byte +0x96b5,0x0001,ucode1080_collision_77,byte +0x96c4,0x0001,ucode1080_countdown_2f,byte +0x96cb,0x0001,ucode4080_y_outside_4d,byte +0x96ce,0x0001,ucode6080_homing_77,byte +0x96d0,0x0001,ucode1080_animate_shape_77,byte +0x96d6,0x0001,ucode6080_fire_state_f2_77,byte +0x96dd,0x0001,ucode6080_fire_state_f3_77,byte +0x96e0,0x0001,ucode1080_countdown_2d,byte +0x96f1,0x0001,ucode1080_countdown_2e,byte +0x9704,0x0001,ucode6080_test_fire_state_f3_77,byte # object 0x4d is radar_or_icbm -# 549a = microcode1080_animate_shape + 0x4d * 2 +# 549a = ucode1080_animate_shape + 0x4d * 2 # controls the headquarters, icbm or radar shape as follows # -> implied start of section 0xf0 # .db 0x72 headquarters shape @@ -977,164 +977,164 @@ items # loc_0ddc a = table index where start sentinel was found (or end sentinel) # update object1080_animate_shape_index with this index (causes the # wrapping to restart the animation sequence) ... resume at loc_0da6 -# note: the microcode_pair routine seems implicated in launching this: +# note: the ucode_pair routine seems implicated in launching this: # 0$: ldy object1080_start_sentinel - 0x10,x # bpl 2$ # and #0x03 # ora #0xf0 # jmp [vec_calculate_object_shape] -0x9707,0x0001,microcode1080_animate_shape_4d,byte -0x9711,0x0001,microcode1080_animate_shape_72,byte -0x971d,0x0001,microcode1080_collision_test_62,byte -0x972d,0x0001,microcode6080_fire_state_f3_7b,byte -0x9746,0x0001,microcode1080_collision_68,byte -0x974f,0x0001,microcode4080_y_outside_68,byte -0x9758,0x0001,microcode1080_collision_69,byte -0x9761,0x0001,microcode4080_y_outside_69,byte -0x976a,0x0001,microcode1080_collision_6a,byte -0x9773,0x0001,microcode4080_y_outside_6a,byte -0x977c,0x0001,microcode1080_collision_test_6b,byte -0x9782,0x0001,microcode1080_collision_test_6c,byte -0x9788,0x0001,microcode1080_collision_test_6d,byte -0x978e,0x0001,microcode1080_collision_test_6e,byte -0x9794,0x0001,microcode1080_collision_test_6f,byte -0x979a,0x0001,microcode1080_collision_test_70,byte -0x97a3,0x0001,microcode1080_collision_70,byte -0x97aa,0x0001,microcode1080_countdown_10,byte -0x97cb,0x0001,microcode1080_collision_test_58,byte -0x97e0,0x0001,microcode1080_collision_test_59,byte -0x97f5,0x0001,microcode1080_collision_test_5a,byte -0x980a,0x0001,microcode1080_collision_test_5b,byte -0x981f,0x0001,microcode1080_collision_test_5c,byte -0x9834,0x0001,microcode1080_collision_test_5d,byte -0x9849,0x0001,microcode1080_collision_test_5e,byte -0x985e,0x0001,microcode1080_collision_test_5f,byte -0x9873,0x0001,microcode1080_collision_test_72,byte -0x9884,0x0001,microcode4080_y_outside_66,byte -0x988b,0x0001,microcode1080_collision_test_66,byte -0x989d,0x0001,microcode1080_collision_test_67,byte -0x98a0,0x0001,microcode1080_collision_67,byte -0x98a7,0x0001,microcode1080_countdown_2a,byte -0x98aa,0x0001,microcode1080_collision_71,byte -0x98b1,0x0001,microcode1080_collision_test_2a,byte -0x98b4,0x0001,microcode1080_collision_2a,byte -0x98bb,0x0001,microcode1080_animate_shape_2a,byte -0x98c5,0x0001,microcode1080_animate_shape_71,byte -0x98d2,0x0001,microcode6080_test_fire_state_f3_71,byte -0x98d5,0x0001,microcode6080_fire_state_f2_76,byte -0x98da,0x0001,microcode6080_test_fire_state_f3_76,byte -0x98dd,0x0001,microcode6080_fire_state_f3_76,byte -0x98e0,0x0001,microcode6080_homing_67,byte -0x98e3,0x0001,microcode1080_animate_shape_13,byte -0x98e5,0x0001,microcode1080_countdown_13,byte -0x98ea,0x0001,microcode1080_collision_66,byte -0x9901,0x0001,microcode4080_x_outside_66,byte -0x9908,0x0001,microcode0010_init_or_zero_07,byte -0x9917,0x0001,microcode6080_fire_state_f2_65,byte -0x9926,0x0001,microcode1080_countdown_12,byte -0x9939,0x0001,microcode0010_init_or_zero_04,byte -0x994e,0x0001,microcode0010_init_or_zero_05,byte -0x9961,0x0001,microcode0010_init_or_zero_0a,byte -0x9966,0x0001,microcode6080_fire_state_f0_76,byte -0x997b,0x0001,microcode6080_fire_state_f0_61,byte -0x9994,0x0001,microcode6080_fire_state_f2_61,byte -0x99ad,0x0001,microcode6080_fire_state_f1_76,byte -0x99cc,0x0001,microcode1080_animate_shape_67,byte -0x99ce,0x0001,microcode4080_x_outside_67,byte -0x99d9,0x0001,microcode4080_y_outside_67,byte -0x99e4,0x0001,microcode1080_animate_shape_40,byte -0x99ea,0x0001,microcode6080_fire_state_f0_67,byte -0x99ed,0x0001,microcode6080_fire_state_f1_67,byte -0x99f4,0x0001,microcode1080_countdown_70,byte -0x99f7,0x0001,microcode1080_animate_shape_63,byte -0x99f9,0x0001,microcode1080_collision_78,byte -0x9a0e,0x0001,microcode1080_collision_79,byte -0x9a1d,0x0001,microcode1080_collision_7a,byte -0x9a32,0x0001,microcode1080_collision_7b,byte -0x9a41,0x0001,microcode1080_animate_shape_29,byte -0x9a43,0x0001,microcode1080_countdown_29,byte -0x9a46,0x0001,microcode6080_homing_6a,byte -0x9a4f,0x0001,microcode1080_collision_test_53,byte -0x9a5a,0x0001,microcode1080_collision_test_54,byte -0x9a65,0x0001,microcode1080_collision_test_55,byte -0x9a70,0x0001,microcode1080_collision_test_56,byte -0x9a7b,0x0001,microcode1080_collision_test_57,byte -0x9a86,0x0001,microcode1080_collision_test_50,byte -0x9a8f,0x0001,microcode1080_collision_test_51,byte -0x9a98,0x0001,microcode1080_collision_test_52,byte -0x9aa1,0x0001,microcode1080_countdown_2c,byte -0x9aa6,0x0001,microcode6080_homing_68,byte -0x9aaf,0x0001,microcode6080_homing_69,byte -0x9ab8,0x0001,microcode6080_test_fire_state_f2_76,byte -0x9abc,0x0001,microcode6080_test_fire_state_f1_7e,byte -0x9abf,0x0001,microcode6080_test_fire_state_f3_7e,byte -0x9ac2,0x0001,microcode4080_x_outside_7e,byte -0x9acf,0x0001,microcode4080_x_outside_62,byte -0x9ad6,0x0001,microcode1080_collision_29,byte -0x9aeb,0x0001,microcode1080_collision_61,byte -0x9b00,0x0001,microcode1080_countdown_7e,byte -0x9b09,0x0001,microcode1080_animate_shape_7e,byte -0x9b0b,0x0001,microcode6080_fire_state_f3_60,byte -0x9b26,0x0001,microcode1080_animate_shape_3d,byte -0x9b28,0x0001,microcode1080_countdown_3d,byte -0x9b3b,0x0001,microcode0010_init_or_zero_0f,byte -0x9b48,0x0001,microcode0010_init_or_zero_06,byte -0x9b51,0x0001,microcode1080_animate_shape_3c,byte -0x9b53,0x0001,microcode1080_collision_test_3c,byte -0x9b55,0x0001,microcode1080_collision_3c,byte -0x9b58,0x0001,microcode1080_countdown_3c,byte -0x9b63,0x0001,microcode1080_countdown_65,byte -0x9b68,0x0001,microcode4080_x_outside_65,byte -0x9b6d,0x0001,microcode1080_collision_test_73,byte -0x9b72,0x0001,microcode1080_collision_test_74,byte -0x9b77,0x0001,microcode1080_collision_test_75,byte -0x9b7c,0x0001,microcode1080_collision_test_71,byte -0x9b8c,0x0001,microcode1080_collision_test_11,byte -0x9b91,0x0001,microcode1080_collision_11,byte -0x9b9e,0x0001,microcode1080_countdown_11,byte -0x9bbb,0x0001,microcode6080_test_fire_state_f2_68,byte -0x9bbe,0x0001,microcode6080_fire_state_f2_68,byte -0x9bc1,0x0001,microcode6080_test_fire_state_f3_63,byte -0x9bc4,0x0001,microcode6080_fire_state_f3_63,byte -0x9bc9,0x0001,microcode1080_countdown_78,byte -0x9bd2,0x0001,microcode1080_countdown_79,byte -0x9bdb,0x0001,microcode6080_fire_state_f3_7a,byte -0x9be4,0x0001,microcode1080_countdown_7b,byte -0x9bed,0x0001,microcode4080_y_outside_76,byte -0x9bf2,0x0001,microcode1080_collision_4d,byte -0x9c09,0x0001,microcode4080_x_outside_76,byte -0x9c0c,0x0001,microcode1080_animate_shape_49,byte -0x9c14,0x0001,microcode4080_x_outside_49,byte -0x9c2d,0x0001,microcode1080_animate_shape_4a,byte -0x9c35,0x0001,microcode4080_x_outside_4a,byte -0x9c4e,0x0001,microcode1080_animate_shape_4b,byte -0x9c56,0x0001,microcode4080_x_outside_4b,byte -0x9c6f,0x0001,microcode1080_animate_shape_4c,byte -0x9c77,0x0001,microcode4080_x_outside_4c,byte -0x9c90,0x0001,microcode1080_collision_49,byte -0x9cad,0x0001,microcode1080_collision_4a,byte -0x9cca,0x0001,microcode1080_collision_4b,byte -0x9ce7,0x0001,microcode1080_collision_4c,byte -0x9d04,0x0001,microcode6080_fire_state_f1_7e,byte -0x9d1d,0x0001,microcode6080_fire_state_f3_7e,byte -0x9d26,0x0001,microcode0010_init_or_zero_02,byte -0x9d3b,0x0001,microcode0010_init_or_zero_03,byte -0x9d50,0x0001,microcode1080_countdown_62,byte -0x9d55,0x0001,microcode0010_init_or_zero_0c,byte -0x9d64,0x0001,microcode4080_x_outside_64,byte -0x9d6d,0x0001,microcode6080_test_fire_state_f2_63,byte -0x9d70,0x0001,microcode6080_fire_state_f1_7a,byte -0x9d77,0x0001,microcode6080_fire_state_f1_7c,byte -0x9d7e,0x0001,microcode6080_fire_state_f3_7c,byte -0x9d87,0x0001,microcode6080_fire_state_f2_63,byte -0x9da0,0x0001,microcode6080_fire_state_f2_7c,byte -0x9da9,0x0001,microcode1080_collision_7c,byte -0x9dbc,0x0001,microcode4080_y_outside_7c,byte -0x9dc1,0x0001,microcode4080_x_outside_7c,byte -0x9dc4,0x0001,microcode0010_init_or_zero_01,byte -0x9dd9,0x0001,microcode1080_countdown_63,byte -0x9dde,0x0001,microcode1080_collision_test_2c,byte -0x9de0,0x0001,microcode1080_collision_2c,byte +0x9707,0x0001,ucode1080_animate_shape_4d,byte +0x9711,0x0001,ucode1080_animate_shape_72,byte +0x971d,0x0001,ucode1080_collision_test_62,byte +0x972d,0x0001,ucode6080_fire_state_f3_7b,byte +0x9746,0x0001,ucode1080_collision_68,byte +0x974f,0x0001,ucode4080_y_outside_68,byte +0x9758,0x0001,ucode1080_collision_69,byte +0x9761,0x0001,ucode4080_y_outside_69,byte +0x976a,0x0001,ucode1080_collision_6a,byte +0x9773,0x0001,ucode4080_y_outside_6a,byte +0x977c,0x0001,ucode1080_collision_test_6b,byte +0x9782,0x0001,ucode1080_collision_test_6c,byte +0x9788,0x0001,ucode1080_collision_test_6d,byte +0x978e,0x0001,ucode1080_collision_test_6e,byte +0x9794,0x0001,ucode1080_collision_test_6f,byte +0x979a,0x0001,ucode1080_collision_test_70,byte +0x97a3,0x0001,ucode1080_collision_70,byte +0x97aa,0x0001,ucode1080_countdown_10,byte +0x97cb,0x0001,ucode1080_collision_test_58,byte +0x97e0,0x0001,ucode1080_collision_test_59,byte +0x97f5,0x0001,ucode1080_collision_test_5a,byte +0x980a,0x0001,ucode1080_collision_test_5b,byte +0x981f,0x0001,ucode1080_collision_test_5c,byte +0x9834,0x0001,ucode1080_collision_test_5d,byte +0x9849,0x0001,ucode1080_collision_test_5e,byte +0x985e,0x0001,ucode1080_collision_test_5f,byte +0x9873,0x0001,ucode1080_collision_test_72,byte +0x9884,0x0001,ucode4080_y_outside_66,byte +0x988b,0x0001,ucode1080_collision_test_66,byte +0x989d,0x0001,ucode1080_collision_test_67,byte +0x98a0,0x0001,ucode1080_collision_67,byte +0x98a7,0x0001,ucode1080_countdown_2a,byte +0x98aa,0x0001,ucode1080_collision_71,byte +0x98b1,0x0001,ucode1080_collision_test_2a,byte +0x98b4,0x0001,ucode1080_collision_2a,byte +0x98bb,0x0001,ucode1080_animate_shape_2a,byte +0x98c5,0x0001,ucode1080_animate_shape_71,byte +0x98d2,0x0001,ucode6080_test_fire_state_f3_71,byte +0x98d5,0x0001,ucode6080_fire_state_f2_76,byte +0x98da,0x0001,ucode6080_test_fire_state_f3_76,byte +0x98dd,0x0001,ucode6080_fire_state_f3_76,byte +0x98e0,0x0001,ucode6080_homing_67,byte +0x98e3,0x0001,ucode1080_animate_shape_13,byte +0x98e5,0x0001,ucode1080_countdown_13,byte +0x98ea,0x0001,ucode1080_collision_66,byte +0x9901,0x0001,ucode4080_x_outside_66,byte +0x9908,0x0001,ucode0010_init_or_zero_07,byte +0x9917,0x0001,ucode6080_fire_state_f2_65,byte +0x9926,0x0001,ucode1080_countdown_12,byte +0x9939,0x0001,ucode0010_init_or_zero_04,byte +0x994e,0x0001,ucode0010_init_or_zero_05,byte +0x9961,0x0001,ucode0010_init_or_zero_0a,byte +0x9966,0x0001,ucode6080_fire_state_f0_76,byte +0x997b,0x0001,ucode6080_fire_state_f0_61,byte +0x9994,0x0001,ucode6080_fire_state_f2_61,byte +0x99ad,0x0001,ucode6080_fire_state_f1_76,byte +0x99cc,0x0001,ucode1080_animate_shape_67,byte +0x99ce,0x0001,ucode4080_x_outside_67,byte +0x99d9,0x0001,ucode4080_y_outside_67,byte +0x99e4,0x0001,ucode1080_animate_shape_40,byte +0x99ea,0x0001,ucode6080_fire_state_f0_67,byte +0x99ed,0x0001,ucode6080_fire_state_f1_67,byte +0x99f4,0x0001,ucode1080_countdown_70,byte +0x99f7,0x0001,ucode1080_animate_shape_63,byte +0x99f9,0x0001,ucode1080_collision_78,byte +0x9a0e,0x0001,ucode1080_collision_79,byte +0x9a1d,0x0001,ucode1080_collision_7a,byte +0x9a32,0x0001,ucode1080_collision_7b,byte +0x9a41,0x0001,ucode1080_animate_shape_29,byte +0x9a43,0x0001,ucode1080_countdown_29,byte +0x9a46,0x0001,ucode6080_homing_6a,byte +0x9a4f,0x0001,ucode1080_collision_test_53,byte +0x9a5a,0x0001,ucode1080_collision_test_54,byte +0x9a65,0x0001,ucode1080_collision_test_55,byte +0x9a70,0x0001,ucode1080_collision_test_56,byte +0x9a7b,0x0001,ucode1080_collision_test_57,byte +0x9a86,0x0001,ucode1080_collision_test_50,byte +0x9a8f,0x0001,ucode1080_collision_test_51,byte +0x9a98,0x0001,ucode1080_collision_test_52,byte +0x9aa1,0x0001,ucode1080_countdown_2c,byte +0x9aa6,0x0001,ucode6080_homing_68,byte +0x9aaf,0x0001,ucode6080_homing_69,byte +0x9ab8,0x0001,ucode6080_test_fire_state_f2_76,byte +0x9abc,0x0001,ucode6080_test_fire_state_f1_7e,byte +0x9abf,0x0001,ucode6080_test_fire_state_f3_7e,byte +0x9ac2,0x0001,ucode4080_x_outside_7e,byte +0x9acf,0x0001,ucode4080_x_outside_62,byte +0x9ad6,0x0001,ucode1080_collision_29,byte +0x9aeb,0x0001,ucode1080_collision_61,byte +0x9b00,0x0001,ucode1080_countdown_7e,byte +0x9b09,0x0001,ucode1080_animate_shape_7e,byte +0x9b0b,0x0001,ucode6080_fire_state_f3_60,byte +0x9b26,0x0001,ucode1080_animate_shape_3d,byte +0x9b28,0x0001,ucode1080_countdown_3d,byte +0x9b3b,0x0001,ucode0010_init_or_zero_0f,byte +0x9b48,0x0001,ucode0010_init_or_zero_06,byte +0x9b51,0x0001,ucode1080_animate_shape_3c,byte +0x9b53,0x0001,ucode1080_collision_test_3c,byte +0x9b55,0x0001,ucode1080_collision_3c,byte +0x9b58,0x0001,ucode1080_countdown_3c,byte +0x9b63,0x0001,ucode1080_countdown_65,byte +0x9b68,0x0001,ucode4080_x_outside_65,byte +0x9b6d,0x0001,ucode1080_collision_test_73,byte +0x9b72,0x0001,ucode1080_collision_test_74,byte +0x9b77,0x0001,ucode1080_collision_test_75,byte +0x9b7c,0x0001,ucode1080_collision_test_71,byte +0x9b8c,0x0001,ucode1080_collision_test_11,byte +0x9b91,0x0001,ucode1080_collision_11,byte +0x9b9e,0x0001,ucode1080_countdown_11,byte +0x9bbb,0x0001,ucode6080_test_fire_state_f2_68,byte +0x9bbe,0x0001,ucode6080_fire_state_f2_68,byte +0x9bc1,0x0001,ucode6080_test_fire_state_f3_63,byte +0x9bc4,0x0001,ucode6080_fire_state_f3_63,byte +0x9bc9,0x0001,ucode1080_countdown_78,byte +0x9bd2,0x0001,ucode1080_countdown_79,byte +0x9bdb,0x0001,ucode6080_fire_state_f3_7a,byte +0x9be4,0x0001,ucode1080_countdown_7b,byte +0x9bed,0x0001,ucode4080_y_outside_76,byte +0x9bf2,0x0001,ucode1080_collision_4d,byte +0x9c09,0x0001,ucode4080_x_outside_76,byte +0x9c0c,0x0001,ucode1080_animate_shape_49,byte +0x9c14,0x0001,ucode4080_x_outside_49,byte +0x9c2d,0x0001,ucode1080_animate_shape_4a,byte +0x9c35,0x0001,ucode4080_x_outside_4a,byte +0x9c4e,0x0001,ucode1080_animate_shape_4b,byte +0x9c56,0x0001,ucode4080_x_outside_4b,byte +0x9c6f,0x0001,ucode1080_animate_shape_4c,byte +0x9c77,0x0001,ucode4080_x_outside_4c,byte +0x9c90,0x0001,ucode1080_collision_49,byte +0x9cad,0x0001,ucode1080_collision_4a,byte +0x9cca,0x0001,ucode1080_collision_4b,byte +0x9ce7,0x0001,ucode1080_collision_4c,byte +0x9d04,0x0001,ucode6080_fire_state_f1_7e,byte +0x9d1d,0x0001,ucode6080_fire_state_f3_7e,byte +0x9d26,0x0001,ucode0010_init_or_zero_02,byte +0x9d3b,0x0001,ucode0010_init_or_zero_03,byte +0x9d50,0x0001,ucode1080_countdown_62,byte +0x9d55,0x0001,ucode0010_init_or_zero_0c,byte +0x9d64,0x0001,ucode4080_x_outside_64,byte +0x9d6d,0x0001,ucode6080_test_fire_state_f2_63,byte +0x9d70,0x0001,ucode6080_fire_state_f1_7a,byte +0x9d77,0x0001,ucode6080_fire_state_f1_7c,byte +0x9d7e,0x0001,ucode6080_fire_state_f3_7c,byte +0x9d87,0x0001,ucode6080_fire_state_f2_63,byte +0x9da0,0x0001,ucode6080_fire_state_f2_7c,byte +0x9da9,0x0001,ucode1080_collision_7c,byte +0x9dbc,0x0001,ucode4080_y_outside_7c,byte +0x9dc1,0x0001,ucode4080_x_outside_7c,byte +0x9dc4,0x0001,ucode0010_init_or_zero_01,byte +0x9dd9,0x0001,ucode1080_countdown_63,byte +0x9dde,0x0001,ucode1080_collision_test_2c,byte +0x9de0,0x0001,ucode1080_collision_2c,byte 0x9ded,0x0001,recrack_loader,byte 0xa800,0x0001,x_table_times2_div7_plus_5b,byte 0xa900,0x0001,x_table_times2_mod7_minus_03,byte @@ -1154,7 +1154,7 @@ items 0xae10,0x0070,object1080_y0,byte 0xae80,0x0070,object1080_y1,byte # current state of object -# often a value 0xf0..0xf3 to identify relevant section in microcode table, +# often a value 0xf0..0xf3 to identify relevant section in ucode table, # but I think it has other purposes too (bit 7 may mean object is active?) 0xaef0,0x0070,object1080_start_sentinel,byte 0xaf60,0x0070,object1080_velocity_x_hi,byte @@ -1174,23 +1174,23 @@ items 0xb480,0x0030,object5080_abs_difference_b480,byte 0xb4b0,0x0030,object5080_abs_difference_b4b0,byte 0xb4e0,0x0020,object6080_fire_count,byte -# used from execute_microcode6080_fire_state_f0 +# used from execute_ucode6080_fire_state_f0 0xb500,0x0020,object6080_b500,byte -# used from execute_microcode6080_fire_state_f1 +# used from execute_ucode6080_fire_state_f1 0xb520,0x0020,object6080_b520,byte -# used from execute_microcode6080_fire_state_f2 +# used from execute_ucode6080_fire_state_f2 0xb540,0x0020,object6080_b540,byte -# used from execute_microcode6080_fire_state_f3 +# used from execute_ucode6080_fire_state_f3 0xb560,0x0020,object6080_b560,byte -0xc000,0x0001,hw_kbd,byte -0xc010,0x0001,hw_kbdstrb,byte -0xc030,0x0001,hw_spkr,byte -0xc050,0x0001,hw_txtclr,byte -0xc052,0x0001,hw_mixclr,byte -0xc054,0x0001,hw_page1,byte -0xc057,0x0001,hw_hires,byte -0xc061,0x0001,hw_pb0,byte -0xc062,0x0001,hw_pb1,byte -0xc065,0x0001,hw_paddl1,byte -0xc070,0x0001,hw_ptrig,byte -0xfb1e,0x0001,rom_pread,code +0xc000,0x0001,HW_KBD,byte +0xc010,0x0001,HW_KBDSTRB,byte +0xc030,0x0001,HW_SPKR,byte +0xc050,0x0001,HW_TXTCLR,byte +0xc052,0x0001,HW_MIXCLR,byte +0xc054,0x0001,HW_PAGE1,byte +0xc057,0x0001,HW_HIRES,byte +0xc061,0x0001,HW_PB0,byte +0xc062,0x0001,HW_PB1,byte +0xc065,0x0001,HW_PADDL1,byte +0xc070,0x0001,HW_PTRIG,byte +0xfb1e,0x0001,ROM_PREAD,code diff --git a/disasm/ucode0.py b/disasm/ucode0.py index af0efe4..cb52164 100755 --- a/disasm/ucode0.py +++ b/disasm/ucode0.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# process the microcode tables, numbering the entries +# process the ucode tables, numbering the entries import sys @@ -10,8 +10,8 @@ for line in sys.stdin: label = fields[0] assert label[-1:] == ':' label = label[:-1] - assert label[:9] == 'microcode' - count = int(label[9:11], 16) + assert label[:5] == 'ucode' + count = int(label[5:7], 16) else: assert fields[0] == '.dw' target = fields[1] diff --git a/disasm/ucode1.py b/disasm/ucode1.py index 5b86e65..c4d6d4a 100755 --- a/disasm/ucode1.py +++ b/disasm/ucode1.py @@ -2,7 +2,7 @@ import sys -# process the microcode data, extracting possible shapes for each object +# process the ucode data, extracting possible shapes for each object shapes = { 0x00: 'pixel0', @@ -156,7 +156,7 @@ for line in sys.stdin: assert fields[0] == '.db' assert fields[1][:2] == '0x' value = int(fields[1][2:], 16) - if label[:-2] == 'microcode1080_animate_shape_': + if label[:-2] == 'ucode1080_animate_shape_': object = int(label[-2:], 16) if object not in objects: objects[object] = set() diff --git a/emu_65c02/emu_65c02.c b/emu_65c02/emu_65c02.c index 63764be..8c5839c 100644 --- a/emu_65c02/emu_65c02.c +++ b/emu_65c02/emu_65c02.c @@ -36,63 +36,63 @@ #define INSTRS_PER_UPDATE 1500 #define IO_PAGE 0xc000 -#define IO_KBD 0xc000 // R last key pressed + 128 -#define IO_CLR80COL 0xc000 // W use $C002-C005 for aux mem (80STOREOFF) -#define IO_SET80COL 0xc001 // W use PAGE2 for aux mem (80STOREON) -#define IO_RDMAINRAM 0xc002 // W if 80STORE off: read main mem $0200-BFFF -#define IO_RDCARDRAM 0xc003 // W if 80STORE off: read aux mem $0200-BFFF -#define IO_WRMAINRAM 0xc004 // W if 80STORE off: write main mem $0200-BFFF -#define IO_WRCARDRAM 0xc005 // W if 80STORE off: write aux mem $0200-BFFF -#define IO_SETSLOTCXROM 0xc006 // W use peripheral ROM ($C100-CFFF) -#define IO_SETINTCXROM 0xc007 // W use internal ROM ($C100-CFFF) -#define IO_SETSTDZP 0xc008 // W use main stack and zero page -#define IO_SETALTZP 0xc009 // W use aux stack and zero page -#define IO_SETINTC3ROM 0xc00a // W use internal slot 3 ROM -#define IO_SETSLOTC3ROM 0xc00b // W use external slot 3 ROM -#define IO_CLR80VID 0xc00c // W disable 80-column display mode -#define IO_SET80VID 0xc00d // W enable 80-column display mode -#define IO_CLRALTCHAR 0xc00e // W use primary char set -#define IO_SETALTCHAR 0xc00f // W use alternate char set -#define IO_KBDSTRB 0xc010 // RW keyboard strobe -#define IO_RDLCBNK2 0xc011 // R bit 7: reading from LC bank 2 ($Dx)? -#define IO_RDLCRAM 0xc012 // R bit 7: reading from LC RAM? -#define IO_RDRAMRD 0xc013 // R bit 7: reading from aux/alt 48K? -#define IO_RDRAMWRT 0xc014 // R bit 7: writing to aux/alt 48K? -#define IO_RD80COL 0xc018 // R bit 7: 80STORE is on? -#define IO_RDTEXT 0xc01a // R bit 7: using text mode? -#define IO_RDPAGE2 0xc01c // R bit 7: using page 2? -#define IO_RD80VID 0xc01f // R bit 7: using 80 columns? -#define IO_SPKR 0xc030 // RW toggle speaker -#define IO_TXTCLR 0xc050 // RW -#define IO_TXTSET 0xc051 // RW -#define IO_MIXCLR 0xc052 // RW -#define IO_MIXSET 0xc053 // RW -#define IO_PAGE1 0xc054 // RW display page 1 -#define IO_PAGE2 0xc055 // RW display page 2 (or read/write aux mem) -#define IO_LORES 0xc056 // RW -#define IO_HIRES 0xc057 // RW -#define IO_SETAN0 0xc058 // RW annunciator 0 off -#define IO_CLRAN0 0xc059 // RW annunciator 0 on -#define IO_SETAN1 0xc05a // RW annunciator 1 off -#define IO_CLRAN1 0xc05b // RW annunciator 1 on -#define IO_SETAN2 0xc05c // RW annunciator 2 off -#define IO_CLRAN2 0xc05d // RW annunciator 2 on -#define IO_SETAN3 0xc05e // RW annunciator 2 off -#define IO_CLRAN3 0xc05f // RW annunciator 3 on -#define IO_PB0 0xc061 // R switch input 0 / open-apple (orig: BUTN0) -#define IO_PB1 0xc062 // R switch input 1 / closed-apple (orig: BUTN1) -#define IO_PADDL0 0xc064 -#define IO_PADDL1 0xc065 -#define IO_PTRIG 0xc070 -#define IO_LC_BANK2_RAM_WP 0xc080 // RW -#define IO_LC_BANK2_ROM_WE 0xc081 // RWx2 -#define IO_LC_BANK2_ROM_WP 0xc082 // RW -#define IO_LC_BANK2_RAM_WE 0xc083 // RWx2 -#define IO_LC_BANK1_RAM_WP 0xc084 // RW -#define IO_LC_BANK1_ROM_WE 0xc085 // RWx2 -#define IO_LC_BANK1_ROM_WP 0xc086 // RW -#define IO_LC_BANK1_RAM_WE 0xc087 // RWx2 -#define IO_CLRROM 0xcfff // disable slot C8 ROM +#define HW_KBD 0xc000 // R last key pressed + 128 +#define HW_CLR80COL 0xc000 // W use $C002-C005 for aux mem (80STOREOFF) +#define HW_SET80COL 0xc001 // W use PAGE2 for aux mem (80STOREON) +#define HW_RDMAINRAM 0xc002 // W if 80STORE off: read main mem $0200-BFFF +#define HW_RDCARDRAM 0xc003 // W if 80STORE off: read aux mem $0200-BFFF +#define HW_WRMAINRAM 0xc004 // W if 80STORE off: write main mem $0200-BFFF +#define HW_WRCARDRAM 0xc005 // W if 80STORE off: write aux mem $0200-BFFF +#define HW_SETSLOTCXROM 0xc006 // W use peripheral ROM ($C100-CFFF) +#define HW_SETINTCXROM 0xc007 // W use internal ROM ($C100-CFFF) +#define HW_SETSTDZP 0xc008 // W use main stack and zero page +#define HW_SETALTZP 0xc009 // W use aux stack and zero page +#define HW_SETINTC3ROM 0xc00a // W use internal slot 3 ROM +#define HW_SETSLOTC3ROM 0xc00b // W use external slot 3 ROM +#define HW_CLR80VID 0xc00c // W disable 80-column display mode +#define HW_SET80VID 0xc00d // W enable 80-column display mode +#define HW_CLRALTCHAR 0xc00e // W use primary char set +#define HW_SETALTCHAR 0xc00f // W use alternate char set +#define HW_KBDSTRB 0xc010 // RW keyboard strobe +#define HW_RDLCBNK2 0xc011 // R bit 7: reading from LC bank 2 ($Dx)? +#define HW_RDLCRAM 0xc012 // R bit 7: reading from LC RAM? +#define HW_RDRAMRD 0xc013 // R bit 7: reading from aux/alt 48K? +#define HW_RDRAMWRT 0xc014 // R bit 7: writing to aux/alt 48K? +#define HW_RD80COL 0xc018 // R bit 7: 80STORE is on? +#define HW_RDTEXT 0xc01a // R bit 7: using text mode? +#define HW_RDPAGE2 0xc01c // R bit 7: using page 2? +#define HW_RD80VID 0xc01f // R bit 7: using 80 columns? +#define HW_SPKR 0xc030 // RW toggle speaker +#define HW_TXTCLR 0xc050 // RW +#define HW_TXTSET 0xc051 // RW +#define HW_MIXCLR 0xc052 // RW +#define HW_MIXSET 0xc053 // RW +#define HW_PAGE1 0xc054 // RW display page 1 +#define HW_PAGE2 0xc055 // RW display page 2 (or read/write aux mem) +#define HW_LORES 0xc056 // RW +#define HW_HIRES 0xc057 // RW +#define HW_SETAN0 0xc058 // RW annunciator 0 off +#define HW_CLRAN0 0xc059 // RW annunciator 0 on +#define HW_SETAN1 0xc05a // RW annunciator 1 off +#define HW_CLRAN1 0xc05b // RW annunciator 1 on +#define HW_SETAN2 0xc05c // RW annunciator 2 off +#define HW_CLRAN2 0xc05d // RW annunciator 2 on +#define HW_SETAN3 0xc05e // RW annunciator 2 off +#define HW_CLRAN3 0xc05f // RW annunciator 3 on +#define HW_PB0 0xc061 // R switch input 0 / open-apple (orig: BUTN0) +#define HW_PB1 0xc062 // R switch input 1 / closed-apple (orig: BUTN1) +#define HW_PADDL0 0xc064 +#define HW_PADDL1 0xc065 +#define HW_PTRIG 0xc070 +#define HW_LC_BANK2_RAM_WP 0xc080 // RW +#define HW_LC_BANK2_ROM_WE 0xc081 // RWx2 +#define HW_LC_BANK2_ROM_WP 0xc082 // RW +#define HW_LC_BANK2_RAM_WE 0xc083 // RWx2 +#define HW_LC_BANK1_RAM_WP 0xc084 // RW +#define HW_LC_BANK1_ROM_WE 0xc085 // RWx2 +#define HW_LC_BANK1_ROM_WP 0xc086 // RW +#define HW_LC_BANK1_RAM_WE 0xc087 // RWx2 +#define HW_CLRROM 0xcfff // disable slot C8 ROM #define STDIN_DATA 0xc0f0 #define STDOUT_DATA 0xc0f1 @@ -764,66 +764,66 @@ uint8_t mem_read(uint16_t addr0, bool isDbg) { } switch (addr) { - case IO_KBD: + case HW_KBD: return key_waiting; - case IO_KBDSTRB: + case HW_KBDSTRB: key_waiting &= 0x7f; break; #if APPLE_IIE - case IO_RDLCBNK2: + case HW_RDLCBNK2: return ((lc_state & LC_BANK) != LC_BANK1) << 7; - case IO_RDLCRAM: + case HW_RDLCRAM: return ( (lc_state & LC_SELECT) != LC_SELECT_ROM_WE && (lc_state & LC_SELECT) != LC_SELECT_ROM_WP ) << 7; - case IO_RDRAMRD: + case HW_RDRAMRD: return ((c00x_soft_switches & C00X_SOFT_SWITCH_RDCARDRAM) != 0) << 7; - case IO_RDRAMWRT: + case HW_RDRAMWRT: return ((c00x_soft_switches & C00X_SOFT_SWITCH_WRCARDRAM) != 0) << 7; - case IO_RD80COL: + case HW_RD80COL: return ((c00x_soft_switches & C00X_SOFT_SWITCH_80COL) != 0) << 7; - case IO_RDTEXT: + case HW_RDTEXT: return ((c05x_soft_switches & C05X_SOFT_SWITCH_TEXT) != 0) << 7; - case IO_RDPAGE2: + case HW_RDPAGE2: return ( (c05x_soft_switches & C05X_SOFT_SWITCH_PAGE2) && (c00x_soft_switches & C00X_SOFT_SWITCH_80COL) == 0 ) << 7; - case IO_RD80VID: + case HW_RD80VID: return ((c00x_soft_switches & C00X_SOFT_SWITCH_80VID) != 0) << 7; #endif - case IO_TXTCLR: // 0xc050 - case IO_MIXCLR: // 0xc052 - case IO_PAGE1: // 0xc054 - case IO_LORES: // 0xc056 - case IO_SETAN0: // 0xc058 - case IO_SETAN1: // 0xc05a - case IO_SETAN2: // 0xc05c - case IO_SETAN3: // 0xc05e + case HW_TXTCLR: // 0xc050 + case HW_MIXCLR: // 0xc052 + case HW_PAGE1: // 0xc054 + case HW_LORES: // 0xc056 + case HW_SETAN0: // 0xc058 + case HW_SETAN1: // 0xc05a + case HW_SETAN2: // 0xc05c + case HW_SETAN3: // 0xc05e c05x_soft_switches &= ~(1 << ((addr >> 1) & 7)); break; - case IO_TXTSET : // 0xc051 - case IO_MIXSET : // 0xc053 - case IO_PAGE2 : // 0xc055 - case IO_HIRES : // 0xc057 - case IO_CLRAN0 : // 0xc059 - case IO_CLRAN1 : // 0xc05b - case IO_CLRAN2 : // 0xc05d - case IO_CLRAN3 : // 0xc05f + case HW_TXTSET : // 0xc051 + case HW_MIXSET : // 0xc053 + case HW_PAGE2 : // 0xc055 + case HW_HIRES : // 0xc057 + case HW_CLRAN0 : // 0xc059 + case HW_CLRAN1 : // 0xc05b + case HW_CLRAN2 : // 0xc05d + case HW_CLRAN3 : // 0xc05f c05x_soft_switches |= 1 << ((addr >> 1) & 7); break; - case IO_PB0: - case IO_PB1: + case HW_PB0: + case HW_PB1: return 0; // needed for proper boot with IIe ROM - case IO_LC_BANK2_RAM_WP: // 0xc080 - case IO_LC_BANK2_ROM_WE: // 0xc081 - case IO_LC_BANK2_ROM_WP: // 0xc082 - case IO_LC_BANK2_RAM_WE: // 0xc083 - case IO_LC_BANK1_RAM_WP: // 0xc084 - case IO_LC_BANK1_ROM_WE: // 0xc085 - case IO_LC_BANK1_ROM_WP: // 0xc086 - case IO_LC_BANK1_RAM_WE: // 0xc087 + case HW_LC_BANK2_RAM_WP: // 0xc080 + case HW_LC_BANK2_ROM_WE: // 0xc081 + case HW_LC_BANK2_ROM_WP: // 0xc082 + case HW_LC_BANK2_RAM_WE: // 0xc083 + case HW_LC_BANK1_RAM_WP: // 0xc084 + case HW_LC_BANK1_ROM_WE: // 0xc085 + case HW_LC_BANK1_ROM_WP: // 0xc086 + case HW_LC_BANK1_RAM_WE: // 0xc087 lc_state = addr & 7; // should check RWx2 for write enable break; case STDIN_DATA: @@ -986,63 +986,63 @@ void mem_write(uint16_t addr0, uint8_t val) { } switch (addr) { - case IO_KBDSTRB: + case HW_KBDSTRB: key_waiting &= 0x7f; break; #if APPLE_IIE - case IO_CLR80COL: // 0xc000 + case HW_CLR80COL: // 0xc000 c05x_soft_switches &= ~C05X_SOFT_SWITCH_PAGE2; // fallthru - case IO_RDMAINRAM: // 0xc002 - case IO_WRMAINRAM: // 0xc004 - case IO_SETSLOTCXROM: // 0xc006 - case IO_SETSTDZP: // 0xc008 - case IO_SETINTC3ROM: // 0xc00a - case IO_CLR80VID: // 0xc00c - case IO_CLRALTCHAR: // 0xc00e + case HW_RDMAINRAM: // 0xc002 + case HW_WRMAINRAM: // 0xc004 + case HW_SETSLOTCXROM: // 0xc006 + case HW_SETSTDZP: // 0xc008 + case HW_SETINTC3ROM: // 0xc00a + case HW_CLR80VID: // 0xc00c + case HW_CLRALTCHAR: // 0xc00e c00x_soft_switches &= ~(1 << ((addr >> 1) & 7)); break; - case IO_SET80COL: // 0xc001 + case HW_SET80COL: // 0xc001 c05x_soft_switches &= ~C05X_SOFT_SWITCH_PAGE2; // fallthru - case IO_RDCARDRAM: // 0xc003 - case IO_WRCARDRAM: // 0xc005 - case IO_SETINTCXROM: // 0xc007 - case IO_SETALTZP: // 0xc009 - case IO_SETSLOTC3ROM: // 0xc00b - case IO_SET80VID: // 0xc00d - case IO_SETALTCHAR: // 0xc00f + case HW_RDCARDRAM: // 0xc003 + case HW_WRCARDRAM: // 0xc005 + case HW_SETINTCXROM: // 0xc007 + case HW_SETALTZP: // 0xc009 + case HW_SETSLOTC3ROM: // 0xc00b + case HW_SET80VID: // 0xc00d + case HW_SETALTCHAR: // 0xc00f c00x_soft_switches |= 1 << ((addr >> 1) & 7); break; #endif - case IO_TXTCLR: // 0xc050 - case IO_MIXCLR: // 0xc052 - case IO_PAGE1: // 0xc054 - case IO_LORES: // 0xc056 - case IO_SETAN0: // 0xc058 - case IO_SETAN1: // 0xc05a - case IO_SETAN2: // 0xc05c - case IO_SETAN3: // 0xc05e + case HW_TXTCLR: // 0xc050 + case HW_MIXCLR: // 0xc052 + case HW_PAGE1: // 0xc054 + case HW_LORES: // 0xc056 + case HW_SETAN0: // 0xc058 + case HW_SETAN1: // 0xc05a + case HW_SETAN2: // 0xc05c + case HW_SETAN3: // 0xc05e c05x_soft_switches &= ~(1 << ((addr >> 1) & 7)); break; - case IO_TXTSET : // 0xc051 - case IO_MIXSET : // 0xc053 - case IO_PAGE2 : // 0xc055 - case IO_HIRES : // 0xc057 - case IO_CLRAN0 : // 0xc059 - case IO_CLRAN1 : // 0xc05b - case IO_CLRAN2 : // 0xc05d - case IO_CLRAN3 : // 0xc05f + case HW_TXTSET : // 0xc051 + case HW_MIXSET : // 0xc053 + case HW_PAGE2 : // 0xc055 + case HW_HIRES : // 0xc057 + case HW_CLRAN0 : // 0xc059 + case HW_CLRAN1 : // 0xc05b + case HW_CLRAN2 : // 0xc05d + case HW_CLRAN3 : // 0xc05f c05x_soft_switches |= 1 << ((addr >> 1) & 7); break; - case IO_LC_BANK2_RAM_WP: // 0xc080 - case IO_LC_BANK2_ROM_WE: // 0xc081 - case IO_LC_BANK2_ROM_WP: // 0xc082 - case IO_LC_BANK2_RAM_WE: // 0xc083 - case IO_LC_BANK1_RAM_WP: // 0xc084 - case IO_LC_BANK1_ROM_WE: // 0xc085 - case IO_LC_BANK1_ROM_WP: // 0xc086 - case IO_LC_BANK1_RAM_WE: // 0xc087 + case HW_LC_BANK2_RAM_WP: // 0xc080 + case HW_LC_BANK2_ROM_WE: // 0xc081 + case HW_LC_BANK2_ROM_WP: // 0xc082 + case HW_LC_BANK2_RAM_WE: // 0xc083 + case HW_LC_BANK1_RAM_WP: // 0xc084 + case HW_LC_BANK1_ROM_WE: // 0xc085 + case HW_LC_BANK1_ROM_WP: // 0xc086 + case HW_LC_BANK1_RAM_WE: // 0xc087 lc_state = addr & 7; // should check RWx2 for write enable break; case STDOUT_DATA: diff --git a/loader/lzss_unpack_fwd.asm b/loader/lzss_unpack_fwd.asm index 20b3c76..6db2373 100644 --- a/loader/lzss_unpack_fwd.asm +++ b/loader/lzss_unpack_fwd.asm @@ -1,14 +1,14 @@ ; with AUX_MEM set we can decompress into aux memory, but we need -; some help from caller: caller must "sta hw_wrcardram" before the -; call, and also patch the first "sta hw_rdmainram" in the below -; code to "sta hw_rdcardram" (needed for copying previous output) +; some help from caller: caller must "sta HW_WRCARDRAM" before the +; call, and also patch the first "sta HW_RDMAINRAM" in the below +; code to "sta HW_RDCARDRAM" (needed for copying previous output) AUX_MEM = 0 ; write -hw_rdmainram = 0xc002 -hw_rdcardram = 0xc003 -hw_wrmainram = 0xc004 -hw_wrcardram = 0xc005 +HW_RDMAINRAM = 0xc002 +HW_RDCARDRAM = 0xc003 +HW_WRMAINRAM = 0xc004 +HW_WRCARDRAM = 0xc005 .r65c02 @@ -177,7 +177,7 @@ pointer: ; dist 0 based, a + cf = len 0 based, source needs increment tay .if AUX_MEM - sta hw_rdmainram ; patch this to wrcardram as required + sta HW_RDMAINRAM ; patch this to wrcardram as required .endif ; copy previous data @@ -188,7 +188,7 @@ pointer: ; dist 0 based, a + cf = len 0 based, source needs increment ; dest += 0x100, src += 1, process LZSS item .if AUX_MEM - sta hw_rdmainram + sta HW_RDMAINRAM jmp loop0 ; beq will not reach in this case .else beq loop0 diff --git a/loader/lzss_unpack_rev.asm b/loader/lzss_unpack_rev.asm index 770621e..72b53c7 100644 --- a/loader/lzss_unpack_rev.asm +++ b/loader/lzss_unpack_rev.asm @@ -1,14 +1,14 @@ ; with AUX_MEM set we can decompress into aux memory, but we need -; some help from caller: caller must "sta hw_wrcardram" before the -; call, and also patch the first "sta hw_rdmainram" in the below -; code to "sta hw_rdcardram" (needed for copying previous output) +; some help from caller: caller must "sta HW_WRCARDRAM" before the +; call, and also patch the first "sta HW_RDMAINRAM" in the below +; code to "sta HW_RDCARDRAM" (needed for copying previous output) AUX_MEM = 0 ; write -hw_rdmainram = 0xc002 -hw_rdcardram = 0xc003 -hw_wrmainram = 0xc004 -hw_wrcardram = 0xc005 +HW_RDMAINRAM = 0xc002 +HW_RDCARDRAM = 0xc003 +HW_WRMAINRAM = 0xc004 +HW_WRCARDRAM = 0xc005 .r65c02 @@ -172,7 +172,7 @@ pointer: ; dist 0 based, a + cf = len 0 based, source needs decrement sta dist + 1 .if AUX_MEM - sta hw_rdcardram ; patch this to wrmainram as required + sta HW_RDCARDRAM ; patch this to wrmainram as required .endif ; copy previous data @@ -183,7 +183,7 @@ pointer: ; dist 0 based, a + cf = len 0 based, source needs decrement ; src += 1, process LZSS item .if AUX_MEM - sta hw_rdmainram + sta HW_RDMAINRAM jmp loop0 ; beq will not reach in this case .else beq loop0 diff --git a/test/dhgr.asm b/test/dhgr.asm index 5cdf536..3d82a41 100644 --- a/test/dhgr.asm +++ b/test/dhgr.asm @@ -1,69 +1,69 @@ ; display DHGR image by copying hires screen 0 to aux of hires screen 1 -hires_screen0 = 0x2000 -hires_screen1 = 0x4000 -hires_screen_size = 0x2000 +HIRES_SCREEN0 = 0x2000 +HIRES_SCREEN1 = 0x4000 +HIRES_SCREEN_SIZE = 0x2000 -rom_a1 = 0x3c ; source addr -rom_a2 = 0x3e ; source end (inclusive) -rom_a4 = 0x42 ; dest addr -rom_auxmove = 0xc311 ; cf=0 aux->main, cf=1 main->aux +ROM_A1 = 0x3c ; source addr +ROM_A2 = 0x3e ; source end (inclusive) +ROM_A4 = 0x42 ; dest addr +ROM_AUXMOVE = 0xc311 ; cf=0 aux->main, cf=1 main->aux ; read these -hw_kbd = 0xc000 -hw_clrtext = 0xc050 -hw_settext = 0xc051 -hw_clrmixed = 0xc052 -hw_setmixed = 0xc053 -hw_page1 = 0xc054 -hw_page2 = 0xc055 -hw_clrhires = 0xc056 -hw_sethires = 0xc057 -hw_setdhires = 0xc05e -hw_setioudis = 0xc07e -hw_clrioudis = 0xc07f +HW_KBD = 0xc000 +HW_CLRTEXT = 0xc050 +HW_SETTEXT = 0xc051 +HW_CLRMIXED = 0xc052 +HW_SETMIXED = 0xc053 +HW_PAGE1 = 0xc054 +HW_PAGE2 = 0xc055 +HW_CLRHIRES = 0xc056 +HW_SETHIRES = 0xc057 +HW_SETDHIRES = 0xc05e +HW_SETIOUDIS = 0xc07e +HW_CLRIOUDIS = 0xc07f ; write these -hw_clr80store = 0xc000 -hw_set80store = 0xc001 -hw_clr80vid = 0xc00c -hw_set80vid = 0xc00d -hw_kbdstrb = 0xc010 +HW_CLR80STORE = 0xc000 +HW_SET80STORE = 0xc001 +HW_CLR80VID = 0xc00c +HW_SET80VID = 0xc00d +HW_KBDSTRB = 0xc010 .area text - lda #hires_screen0 - sta rom_a1 + 1 - lda #>hires_screen1 - sta rom_a4 + 1 - lda #<(hires_screen0 + hires_screen_size - 1) - sta rom_a2 - lda #>(hires_screen0 + hires_screen_size - 1) - sta rom_a2 + 1 + lda #HIRES_SCREEN0 + sta ROM_A1 + 1 + lda #>HIRES_SCREEN1 + sta ROM_A4 + 1 + lda #<(HIRES_SCREEN0 + HIRES_SCREEN_SIZE - 1) + sta ROM_A2 + lda #>(HIRES_SCREEN0 + HIRES_SCREEN_SIZE - 1) + sta ROM_A2 + 1 sec - jsr rom_auxmove + jsr ROM_AUXMOVE - sta hw_clr80store - lda hw_clrioudis + sta HW_CLR80STORE + lda HW_CLRIOUDIS - lda hw_sethires - lda hw_clrtext - lda hw_setdhires - lda hw_clrmixed - lda hw_page2 - sta hw_set80vid + lda HW_SETHIRES + lda HW_CLRTEXT + lda HW_SETDHIRES + lda HW_CLRMIXED + lda HW_PAGE2 + sta HW_SET80VID -1$: lda hw_kbd +1$: lda HW_KBD bpl 1$ - sta hw_kbdstrb + sta HW_KBDSTRB - sta hw_clr80vid - lda hw_page1 - lda hw_settext - lda hw_clrhires + sta HW_CLR80VID + lda HW_PAGE1 + lda HW_SETTEXT + lda HW_CLRHIRES - lda hw_setioudis + lda HW_SETIOUDIS rts diff --git a/test/dhgr_viewer.asm b/test/dhgr_viewer.asm index e352d5a..9da4a62 100644 --- a/test/dhgr_viewer.asm +++ b/test/dhgr_viewer.asm @@ -1,36 +1,36 @@ ; read -hw_kbd = 0xc000 +HW_KBD = 0xc000 ; write -hw_clr80col = 0xc000 -hw_set80col = 0xc001 -hw_clr80vid = 0xc00c -hw_set80vid = 0xc00d -hw_kbdstrb = 0xc010 +HW_CLR80COL = 0xc000 +HW_SET80COL = 0xc001 +HW_CLR80VID = 0xc00c +HW_SET80VID = 0xc00d +HW_KBDSTRB = 0xc010 ; read/write -hw_clrtext = 0xc050 -hw_settext = 0xc051 -hw_clrmixed = 0xc052 -hw_setmixed = 0xc053 -hw_page1 = 0xc054 -hw_page2 = 0xc055 -hw_clrhires = 0xc056 -hw_sethires = 0xc057 -hw_setdhires = 0xc05e -hw_setioudis = 0xc07e -hw_clrioudis = 0xc07f +HW_CLRTEXT = 0xc050 +HW_SETTEXT = 0xc051 +HW_CLRMIXED = 0xc052 +HW_SETMIXED = 0xc053 +HW_PAGE1 = 0xc054 +HW_PAGE2 = 0xc055 +HW_CLRHIRES = 0xc056 +HW_SETHIRES = 0xc057 +HW_SETDHIRES = 0xc05e +HW_SETIOUDIS = 0xc07e +HW_CLRIOUDIS = 0xc07f .area text - sta hw_clr80col - lda hw_clrioudis + sta HW_CLR80COL + lda HW_CLRIOUDIS - lda hw_sethires - lda hw_clrtext - lda hw_setdhires - lda hw_clrmixed - lda hw_page1 - sta hw_set80vid + lda HW_SETHIRES + lda HW_CLRTEXT + lda HW_SETDHIRES + lda HW_CLRMIXED + lda HW_PAGE1 + sta HW_SET80VID jmp . -- 2.34.1