From 13ab2b0ee4e8b56bc7d4adf4f42b1d9ea59059d9 Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Thu, 11 Nov 2021 20:17:21 -0800 Subject: [PATCH] ACE 500: Include all of pages --- Makefile | 2 +- ace500_c000_cfff.orig | Bin 0 -> 4096 bytes ace500_c300_cfff.s => ace500_c000_cfff.s | 565 ++++++++++++++++++++++- ace500_c300_cfff.orig | Bin 3328 -> 0 bytes 4 files changed, 560 insertions(+), 7 deletions(-) create mode 100644 ace500_c000_cfff.orig rename ace500_c300_cfff.s => ace500_c000_cfff.s (82%) delete mode 100644 ace500_c300_cfff.orig diff --git a/Makefile b/Makefile index 40df6c8..d68210e 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ LDFLAGS := --config apple2-asm.cfg OUTDIR := out TARGETS := \ - $(OUTDIR)/ace500_c300_cfff.bin \ + $(OUTDIR)/ace500_c000_cfff.bin \ $(OUTDIR)/ace2000_c000_cfff.bin .PHONY: clean all package diff --git a/ace500_c000_cfff.orig b/ace500_c000_cfff.orig new file mode 100644 index 0000000000000000000000000000000000000000..0a56b55a04793be60d2144b15d8f45e294cceabf GIT binary patch literal 4096 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 E0t%XWfdBvi literal 0 HcmV?d00001 diff --git a/ace500_c300_cfff.s b/ace500_c000_cfff.s similarity index 82% rename from ace500_c300_cfff.s rename to ace500_c000_cfff.s index f665a76..96cf54e 100644 --- a/ace500_c300_cfff.s +++ b/ace500_c000_cfff.s @@ -1,17 +1,26 @@ -; da65 V2.19 - Git 59c58acbe -; Created: 2021-11-04 15:14:09 -; Input file: c300_cfff -; Page: 1 +;;; ============================================================ +;;; Franklin ACE 2X00 ROM V6.0 Disassembly +;;; +;;; First $1000 bytes of U2 ROM (usually banked in $C000-$CFFF) +;;; +;;; Build with CC65's ca65 assembler +;;; ============================================================ .setcpu "65C02" .include "opcodes.inc" .feature string_escapes +;;; ============================================================ +;;; Patches + ;;; Set to 1 to include preliminary fixes for: ;;; * MouseText mode failing to exist on $18 output. ;;; * MouseText displaying if $40-$5F sent to COUT. INCLUDE_PATCHES = 0 +;;; ============================================================ +;;; Equates + ;;; Zero Page WNDLFT := $20 @@ -127,7 +136,549 @@ CLREOL := $FC9C ;;; ============================================================ - .org $C300 + .org $C000 + +;;; ============================================================ +;;; Page $C0 - Unused (garbage data?) + +LC000: brk +LC001: brk +LC002: brk +LC003: brk +LC004: brk +LC005: brk + brk + brk +LC008: brk +LC009: brk + brk + brk +LC00C: brk +LC00D: brk +LC00E: brk +LC00F: brk +LC010: brk +LC011: brk +LC012: brk +LC013: brk +LC014: brk +LC015: brk +LC016: brk +LC017: brk +LC018: brk +LC019: brk +LC01A: brk + brk +LC01C: brk + brk +LC01E: brk +LC01F: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC048: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC054: brk +LC055: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC063: brk + brk + brk +LC066: brk +LC067: brk + brk + brk + brk + brk + brk + brk + brk + brk +LC070: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC080: brk +LC081: brk +LC082: brk +LC083: brk + brk + brk + brk + brk + brk +LC089: brk + brk +LC08B: brk + brk + brk + brk + brk +LC090: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC0A8: brk +LC0A9: brk +LC0AA: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk +LC0B4: brk + brk + brk + brk +LC0B8: brk +LC0B9: brk +LC0BA: brk +LC0BB: brk +LC0BC: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + +;;; ============================================================ +;;; Page $C1 - Parallel Port Firmware + +.scope pageC1 + +LFDF0 := $FDF0 + + bra LC111 + bra LC107 + nop + sec + nop +LC107: clc + clv + bra LC114 + ora ($31,x) + .byte $2B + .byte $33 + rol $3E,x +LC111: bit LC135 +LC114: jsr LC1D6 + pha + phx + phy + sta $0679 + bvc LC122 + jsr $C806 +LC122: jsr $C83C + ply + plx + pla +LC128: jmp $C5FA + + jsr LC1D6 + jsr $C897 + bra LC128 + ldx #$03 +LC135: rts + + jsr LC1D6 + jsr $C89D + bra LC128 + jsr LC1D6 + jsr $C8A5 + bra LC128 +LC146: lda #$00 + bit LC016 + bpl LC14F + ora #$80 +LC14F: bit LC013 + bpl LC156 + ora #$40 +LC156: bit LC014 + bpl LC15D + ora #$20 +LC15D: bit LC011 + bpl LC164 + ora #$10 +LC164: bit LC012 + bpl LC16B + ora #$08 +LC16B: bit LC018 + bpl LC177 + bit LC01C + bpl LC177 + ora #$04 +LC177: rts + +LC178: phx + asl a + asl a + bcc LC180 + sta LC003 +LC180: asl a + bcc LC186 + sta LC005 +LC186: asl a + bcc LC193 + asl a + bcc LC18F + ldx #$03 + .byte $2C +LC18F: ldx #$01 + bra LC19B +LC193: asl a + bcc LC199 + ldx #$0B + .byte $2C +LC199: ldx #$09 +LC19B: bit LC080,x + bit LC080,x + asl a + bcc LC1A7 + sta LC055 +LC1A7: plx + rts + +LC1A9: bit #$04 + beq LC1B0 + sta LC054 +LC1B0: sta LC002 + sta LC004 + bit LC081 + rts + + brk + brk + brk + brk + brk + brk + brk +LC1C1: brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + brk + jsr LC128 + jsr LFDF0 +LC1D6: php + sei + pha + lda #$C1 + sta $07F8 + sta LC0BA + sta LC0B8 + sta CLRROM + pla + plp + rts + + brk + brk + brk + brk + brk + brk + brk + brk +LC1F2: plx + bit CLRROM + rti + +LC1F7: jmp LC146 + +LC1FA: jmp LC178 + +LC1FD: jmp LC1A9 +.endscope + +;;; ============================================================ +;;; Page $C2 - ??? + + bit $C5A7 + bra LC211 + sec + bcc LC220 + clv + bra LC211 + ora ($31,x) + trb $17 + inc a + .byte $1D +LC211: jmp $C500 + + jmp $C51F + + jmp $C528 + + jmp $C530 + + jmp $C538 + +LC220: lda $077C + and #$F1 + sta $077C + sec + lda LC019 + bmi LC258 + sta LC070 + lda #$08 + tsb $077C + clc + bit $067C + bpl LC24E + lda #$20 + tsb $077C + lda $07FC + and #$02 + beq LC24E + tsb $077C + stz $067C +LC24E: bit LC063 + bmi LC258 + lda #$04 + tsb $077C +LC258: lda LC015 + ora LC017 + bmi LC263 + jmp LC2ED + +LC263: sta $067C + lda LC015 + sta LC048 + bpl LC2AE + txa + bpl LC28B + lda $067D + cmp $047C + bne LC281 + lda $077D + cmp $057C + beq LC2EC +LC281: inc $047C + bne LC2EC + inc $057C + bra LC2EC +LC28B: lda $047D + cmp $047C + bne LC29B + lda $057D + cmp $057C + beq LC2EC +LC29B: sec + lda $047C + sbc #$01 + sta $047C + lda $057C + sbc #$00 + sta $057C + bra LC2EC +LC2AE: tya + bmi LC2CB + lda $06FD + cmp $04FC + bne LC2C1 + lda $07FD + cmp $05FC + beq LC2EC +LC2C1: inc $04FC + bne LC2EC + inc $05FC + bra LC2EC +LC2CB: lda $04FD + cmp $04FC + bne LC2DB + lda $05FD + cmp $05FC + beq LC2EC +LC2DB: sec + lda $04FC + sbc #$01 + sta $04FC + lda $05FC + sbc #$00 + sta $05FC +LC2EC: clc +LC2ED: bcs LC2F8 + lda $077C + and $07FC + beq LC2F8 + sec +LC2F8: rts + + ldx $EB + lda $0342,x + .byte $8D + .byte $12 + +;;; ============================================================ +;;; Page $C3 - Enhanced 80 Column Firmware ;; Init LC300: bit SETV ; V = init @@ -305,6 +856,7 @@ LC3FA: jsr ClearROM jmp LCCF5 ;;; ============================================================ +;;; Pages $C4-C7 - ??? .scope extra @@ -481,7 +1033,7 @@ LC4F8: jmp LC468 dec $00,x jmp LC459 - jsr BankC5 +LC500: jsr BankC5 sta $067A phx phy @@ -1009,6 +1561,7 @@ extra_DoBankC5 := extra::DoBankC5 .res $C800 - *, 0 ;;; ============================================================ +;;; Pages $C8-$CF - Enhanced 80 Column Firmware LC800: .byte $C3 eor $AA,x diff --git a/ace500_c300_cfff.orig b/ace500_c300_cfff.orig deleted file mode 100644 index 772fac78b19e4193b9825ed564cb522aa540fe07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3328 zcmb7GeQ+Da6+ijzBwet`g@7?>nyef-k?c!i0;Ix*VkK5`3g?gd1F(m-*O^REW|)@z zXIt%fTP((;IisXyCVX{N)uK5Ud7KRGB!pzn*pBbc_C-UP!g!#B7EGW(E(r`qN}|4% z2_MsGroFj)@9o>&-@cFCw4*Ad_L+N&6C#uk&E%Jz-SzrKQ$hR-X?#nx0 z=w`qa6_@527=xyD2W0>DUgF^{g3hGj&o}y&}`I=5> znL%hpkv>qQ4;AU|BK>}mzMzln(q4E-lh7+XU-G1nz7f@EISMCF(!QBzUg zrEuDa!}0V;!4*Zhv1kpg9MvEOgW!JenK9dQX5214GihI!Q;uu((uFbUAK>idH`bM+ z6Mv(m&I$C}Nu}2bi!6HTL~bL88C0i7dvnsEN$5sX`j^72j=PECRUJP<_?(WT=+GpG zk$oBOSd>1#jO#%{pN``o;kofZAKpNu-(A9M34h=cUPU-Hj>`yNn84Q)et8Pg58QVN z@~KWjCP`Akt-@(YDbeXfcU*%YfC7dJV`DXWC81%9Sd%vJ+&3J&mRQ^p;FNS~(uXFf z6z#kV@{`&y7#3)hhv0tJUy(qH5H5Mgs8qK zx*xtmOD89y@rEeRs1Bw9_KhFyC`9A6z5R7UnZ~cWIuEABYy0a`ENtFCH$dyj29v+| zuuTUu!`g75G{V>&8C6qq3`g@ArB6L}?jXXcPL(#N9rrudQ+HQ2}E zwL*?*@d`Qik?-;=GL$B~sMVAN`UGAZDUfm5k`x{+u;sGCYR^$_h0)H+--@wxU~0T$ zSV~T)Y&@76f9y`x72o{W_tY8%s?6)t=r&7|E%eUxd{ee$z8M{zNqmO#Glnz41^Sej zlf#$>CZdJus0;$CGN2*_Xq%Qcnwgk0&}X2;`XS$hH$kHwqVa92DFXxZ%p*&MRT{s< zs82Wzd9)<38ZDoZ_Ly?;16LxqWccS#>07K$b5M_&U6yS1nDfRzjY0iE<6l4r^(zKD zeaKvGK5jl?t~K|VyR0&Ew<)T4WuA$`sy_kL7@)qLqF%nJ+v;0D=(G6ZUO;vl^`R|W z8^YTnJML|~Zi)M*+k?v}+1g`vnlS*`Wp!Dz#+%0L#;e9Gd_*G4UNIoR#&5DqA-W*( zdE-%=23by0DQdzyx&$gXRQIzwzA(`5gX=(5WMQ@DM%ihUGa-_G{+tw@f!b|Qw$~`J zrwlgx){sx1@Y-bV0MacTpC3?@AmBHKyaN+H`@#V9=tOZIov=7;Bu7iQdV_&S`OruUy#WH!Ye2SzR=z=A2YMgB~KJ}z{+W#O`r0~=}J4F_SVLIAY3?AiEp3xrG1m$#QaXs7zLX# zZXR7TUx`FAzToY8t$-vf7Jm01%CbDjzdDbMw&uLkqz+YK!Hyd(R1la{Ks^qvfxbn zlx`Q?YG!&(Z7rA$PJkQ~; zH9R(pBppxf^x<*XDxBfSy5Z#EV?q3v6kRThnV2i?&*WY4z|M-DNNtIG)$;fnq#1Aq zuh$exQ%W@%c8227l%<*sS%NUH3}Cw)9k-Mi6Tp!_;qQ>-VVljw7`znp5&ZR09P&xJ zb{6{>J6!>+7gmk|jr1`2N5Cwg{O1m*JuO_dmL8bW<=RYY%(l)h4aNv6Qg z7M!*Vy95dxf&lxoE zQvANb0KWylZ8(7om^W4fUyt2T45tlYbV?+~(NTO7PFoKfMJH#8!Ufi4( zlZTQbZS5Ya0M~#@4U;N$rZll|;9 z%`Gg`+^Qw2kBW0$!mj|uSs=eP}BBs18NsRedoqo@7NgJ zjJ7qmA~Ccjgc`%G+ruc-)PNeBJKDnN{?p}I*#KI`f8b?)$PsA0S_P(ugOZD4dJE+uC=|*<5}&g3;!D(<+tMi