mirror of
https://github.com/a2stuff/franklin.git
synced 2025-01-14 13:30:01 +00:00
moar disasm
This commit is contained in:
parent
5fa5ce84ae
commit
42ceecc0fc
@ -24,6 +24,6 @@ Only one version of the 500 ROM is known to exist:
|
|||||||
|
|
||||||
There are at least three significant compatibility bugs in the 6.0 Franklin ROMs:
|
There are at least three significant compatibility bugs in the 6.0 Franklin ROMs:
|
||||||
|
|
||||||
* With 80-column/enhanced firmware active, once MouseText is activated (via outputting $1B), attempting to turn it off by outputting $18 fails. This affects both the 2X00 and 500. Root cause identified, fix identified, and (optionally) applied.
|
|
||||||
* With 80-column/enhanced firmware active, horizontal cursor position must use `OURCH` ($57B) not `CH` ($24). This affects only the 2X00. This is documented by Apple, but real Apples, the Laser 128, and Franklin ACE 500 all support using just `CH` via clever firmware routines. Root cause identified, fix found in the 500 ROM and (optionally) applied to the 2X00 ROMs.
|
* With 80-column/enhanced firmware active, horizontal cursor position must use `OURCH` ($57B) not `CH` ($24). This affects only the 2X00. This is documented by Apple, but real Apples, the Laser 128, and Franklin ACE 500 all support using just `CH` via clever firmware routines. Root cause identified, fix found in the 500 ROM and (optionally) applied to the 2X00 ROMs.
|
||||||
* With 80-column/enhanced firmware active, sending bytes $40-$5F through C3COut1 will appear as MouseText, whereas on real Apples they are mapped to inverse uppercase. This affects both the 2X00 and 500. Root cause identified, tentative fix identified and (optionally) applied.
|
* With 80-column/enhanced firmware active, once MouseText is activated (via outputting $1B), attempting to turn it off by outputting $18 fails. This affects both the 2X00 and 500. Root cause identified, fix identified and (optionally) applied.
|
||||||
|
* With 80-column/enhanced firmware active, sending bytes $40-$5F through C3COut1 will appear as MouseText, whereas on real Apples they are mapped to inverse uppercase. This affects both the 2X00 and 500. Root cause identified, fix identified and (optionally) applied.
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
;;; Patches
|
;;; Patches
|
||||||
|
|
||||||
;;; Set to 1 to include fixes for:
|
;;; Set to 1 to include fixes for:
|
||||||
;;; * MouseText mode failing to exist on $18 output.
|
|
||||||
;;; * CH not working to set horizontal cursor position.
|
;;; * CH not working to set horizontal cursor position.
|
||||||
|
;;; * MouseText mode failing to exist on $18 output.
|
||||||
;;; * MouseText displaying if $40-$5F sent to COUT.
|
;;; * MouseText displaying if $40-$5F sent to COUT.
|
||||||
INCLUDE_PATCHES = 0
|
INCLUDE_PATCHES = 0
|
||||||
|
|
||||||
@ -148,225 +148,38 @@ USR := $FECA
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Page $C0 - Unused (garbage data?)
|
;;; Page $C0 - Unused (garbage data?)
|
||||||
|
|
||||||
.byte $80
|
.byte $80, $2c, $80, $03, $ea, $48, $68, $48
|
||||||
.byte $2C
|
.byte $68, $18, $b8, $48, $da, $5a, $8d, $79
|
||||||
.byte $80
|
.byte $06, $8d, $ff, $cf, $8d, $79, $c0, $50
|
||||||
.byte $03
|
.byte $0b, $a2, $07, $86, $36, $a2, $c1, $86
|
||||||
nop
|
.byte $37, $20, $00, $b0, $20, $2c, $b0, $8d
|
||||||
pha
|
.byte $78, $c0, $7a, $fa, $68, $60, $2c, $2d
|
||||||
pla
|
.byte $c1, $80, $d8, $00, $00, $00, $00, $00
|
||||||
pha
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
pla
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
clc
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
clv
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
pha
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
phx
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
phy
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $8D
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $79
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $06
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $8D
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $FF
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $CF
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
sta $C079
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $50
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $0B
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $A2
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
rmb0 $86
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
rol $A2,x
|
.byte $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
.byte $C1
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
stx $37
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
jsr $B000
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
jsr $B02C
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
sta $C078
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
ply
|
.byte $ff, $ff, $00, $00, $ff, $ff, $00, $00
|
||||||
plx
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
|
|
||||||
bit $C12D
|
|
||||||
bra $C00B
|
|
||||||
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
|
|
||||||
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
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0D3
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0D7
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0DB
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0DF
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0E3
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0E7
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0EB
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0EF
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0F3
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0F7
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0FB
|
|
||||||
brk
|
|
||||||
bbs7 $FF,$C0FF
|
|
||||||
brk
|
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Page $C1 - Parallel Port Firmware
|
;;; Page $C1 - Parallel Port Firmware
|
||||||
|
@ -103,12 +103,19 @@ RDLCBNK2:= $C011
|
|||||||
RDLCRAM := $C012
|
RDLCRAM := $C012
|
||||||
RDRAMRD := $C013
|
RDRAMRD := $C013
|
||||||
RDRAMWRT:= $C014
|
RDRAMWRT:= $C014
|
||||||
|
RDCXROM := $C015
|
||||||
|
RDALTZP := $C016
|
||||||
|
RDC3ROM := $C017
|
||||||
RD80COL := $C018
|
RD80COL := $C018
|
||||||
|
RDVBL := $C019
|
||||||
RDTEXT := $C01A
|
RDTEXT := $C01A
|
||||||
|
RDPAGE2 := $C01C
|
||||||
ALTCHARSET := $C01E
|
ALTCHARSET := $C01E
|
||||||
RD80VID := $C01F
|
RD80VID := $C01F
|
||||||
TXTPAGE1:= $C054
|
TXTPAGE1:= $C054
|
||||||
TXTPAGE2:= $C055
|
TXTPAGE2:= $C055
|
||||||
|
RD63 := $C063
|
||||||
|
PTRIG := $C070
|
||||||
ROMIN := $C081
|
ROMIN := $C081
|
||||||
ROMIN2 := $C082
|
ROMIN2 := $C082
|
||||||
LCBANK2 := $C083
|
LCBANK2 := $C083
|
||||||
@ -130,9 +137,13 @@ SETWND := $FB4B
|
|||||||
SETKBD := $FE89
|
SETKBD := $FE89
|
||||||
SETVID := $FE93
|
SETVID := $FE93
|
||||||
MON_VTAB:= $FC22
|
MON_VTAB:= $FC22
|
||||||
|
VTABZ := $FC24
|
||||||
CLREOP := $FC42
|
CLREOP := $FC42
|
||||||
HOME := $FC58
|
HOME := $FC58
|
||||||
CLREOL := $FC9C
|
CLREOL := $FC9C
|
||||||
|
CLREOLZ := $FC9E
|
||||||
|
COUT := $FDED
|
||||||
|
COUT1 := $FDF0
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -141,282 +152,32 @@ CLREOL := $FC9C
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Page $C0 - Unused (garbage data?)
|
;;; Page $C0 - Unused (garbage data?)
|
||||||
|
|
||||||
LC000: brk
|
.res $100, 0
|
||||||
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
|
;;; Page $C1 - Parallel Port Firmware
|
||||||
|
|
||||||
.scope pageC1
|
.scope pageC1
|
||||||
|
|
||||||
LFDF0 := $FDF0
|
LC100: bra LC111
|
||||||
|
LC102: bra LC107
|
||||||
|
|
||||||
bra LC111
|
LC104: nop
|
||||||
bra LC107
|
|
||||||
nop
|
|
||||||
sec
|
sec
|
||||||
nop
|
nop
|
||||||
LC107: clc
|
LC107: clc
|
||||||
clv
|
clv
|
||||||
bra LC114
|
bra LC114
|
||||||
ora ($31,x)
|
|
||||||
.byte $2B
|
;; Signature bytes
|
||||||
.byte $33
|
.byte $01, $31
|
||||||
rol $3E,x
|
|
||||||
|
;; Pascal 1.1 Firmware Protocol Table
|
||||||
|
.byte .lobyte(LC12B)
|
||||||
|
.byte .lobyte(LC133)
|
||||||
|
.byte .lobyte(LC136)
|
||||||
|
.byte .lobyte(LC13E)
|
||||||
|
|
||||||
LC111: bit LC135
|
LC111: bit LC135
|
||||||
LC114: jsr LC1D6
|
LC114: jsr LC1D6
|
||||||
pha
|
pha
|
||||||
@ -431,37 +192,39 @@ LC122: jsr $C83C
|
|||||||
pla
|
pla
|
||||||
LC128: jmp $C5FA
|
LC128: jmp $C5FA
|
||||||
|
|
||||||
jsr LC1D6
|
LC12B: jsr LC1D6
|
||||||
jsr $C897
|
jsr $C897
|
||||||
bra LC128
|
bra LC128
|
||||||
ldx #$03
|
|
||||||
|
LC133: ldx #$03
|
||||||
LC135: rts
|
LC135: rts
|
||||||
|
|
||||||
jsr LC1D6
|
LC136: jsr LC1D6
|
||||||
jsr $C89D
|
jsr $C89D
|
||||||
bra LC128
|
bra LC128
|
||||||
jsr LC1D6
|
|
||||||
|
LC13E: jsr LC1D6
|
||||||
jsr $C8A5
|
jsr $C8A5
|
||||||
bra LC128
|
bra LC128
|
||||||
LC146: lda #$00
|
LC146: lda #$00
|
||||||
bit LC016
|
bit RDALTZP
|
||||||
bpl LC14F
|
bpl LC14F
|
||||||
ora #$80
|
ora #$80
|
||||||
LC14F: bit LC013
|
LC14F: bit RDRAMRD
|
||||||
bpl LC156
|
bpl LC156
|
||||||
ora #$40
|
ora #$40
|
||||||
LC156: bit LC014
|
LC156: bit RDRAMWRT
|
||||||
bpl LC15D
|
bpl LC15D
|
||||||
ora #$20
|
ora #$20
|
||||||
LC15D: bit LC011
|
LC15D: bit RDLCBNK2
|
||||||
bpl LC164
|
bpl LC164
|
||||||
ora #$10
|
ora #$10
|
||||||
LC164: bit LC012
|
LC164: bit RDLCRAM
|
||||||
bpl LC16B
|
bpl LC16B
|
||||||
ora #$08
|
ora #$08
|
||||||
LC16B: bit LC018
|
LC16B: bit RD80COL
|
||||||
bpl LC177
|
bpl LC177
|
||||||
bit LC01C
|
bit RDPAGE2
|
||||||
bpl LC177
|
bpl LC177
|
||||||
ora #$04
|
ora #$04
|
||||||
LC177: rts
|
LC177: rts
|
||||||
@ -470,10 +233,10 @@ LC178: phx
|
|||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
bcc LC180
|
bcc LC180
|
||||||
sta LC003
|
sta RDCARDRAM
|
||||||
LC180: asl a
|
LC180: asl a
|
||||||
bcc LC186
|
bcc LC186
|
||||||
sta LC005
|
sta WRCARDRAM
|
||||||
LC186: asl a
|
LC186: asl a
|
||||||
bcc LC193
|
bcc LC193
|
||||||
asl a
|
asl a
|
||||||
@ -487,20 +250,20 @@ LC193: asl a
|
|||||||
ldx #$0B
|
ldx #$0B
|
||||||
.byte $2C
|
.byte $2C
|
||||||
LC199: ldx #$09
|
LC199: ldx #$09
|
||||||
LC19B: bit LC080,x
|
LC19B: bit $C080,x
|
||||||
bit LC080,x
|
bit $C080,x
|
||||||
asl a
|
asl a
|
||||||
bcc LC1A7
|
bcc LC1A7
|
||||||
sta LC055
|
sta TXTPAGE2
|
||||||
LC1A7: plx
|
LC1A7: plx
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LC1A9: bit #$04
|
LC1A9: bit #$04
|
||||||
beq LC1B0
|
beq LC1B0
|
||||||
sta LC054
|
sta TXTPAGE1
|
||||||
LC1B0: sta LC002
|
LC1B0: sta RDMAINRAM
|
||||||
sta LC004
|
sta WRMAINRAM
|
||||||
bit LC081
|
bit ROMIN
|
||||||
rts
|
rts
|
||||||
|
|
||||||
brk
|
brk
|
||||||
@ -526,14 +289,14 @@ LC1C1: brk
|
|||||||
brk
|
brk
|
||||||
brk
|
brk
|
||||||
jsr LC128
|
jsr LC128
|
||||||
jsr LFDF0
|
jsr COUT1
|
||||||
LC1D6: php
|
LC1D6: php
|
||||||
sei
|
sei
|
||||||
pha
|
pha
|
||||||
lda #$C1
|
lda #$C1
|
||||||
sta $07F8
|
sta $07F8
|
||||||
sta LC0BA
|
sta $C0BA
|
||||||
sta LC0B8
|
sta $C0B8
|
||||||
sta CLRROM
|
sta CLRROM
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
@ -561,33 +324,41 @@ LC1FD: jmp LC1A9
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Page $C2 - ???
|
;;; Page $C2 - ???
|
||||||
|
|
||||||
|
.scope pageC2
|
||||||
bit $C5A7
|
bit $C5A7
|
||||||
bra LC211
|
bra LC211
|
||||||
|
|
||||||
sec
|
sec
|
||||||
bcc LC220
|
bcc LC220
|
||||||
clv
|
clv
|
||||||
bra LC211
|
bra LC211
|
||||||
ora ($31,x)
|
|
||||||
trb $17
|
;; Signature bytes
|
||||||
inc a
|
.byte $01, $31
|
||||||
.byte $1D
|
|
||||||
|
;; Pascal 1.1 Firmware Protocol Table
|
||||||
|
.byte .lobyte(LC214)
|
||||||
|
.byte .lobyte(LC217)
|
||||||
|
.byte .lobyte(LC21A)
|
||||||
|
.byte .lobyte(LC21D)
|
||||||
|
|
||||||
LC211: jmp $C500
|
LC211: jmp $C500
|
||||||
|
|
||||||
jmp $C51F
|
LC214: jmp $C51F
|
||||||
|
|
||||||
jmp $C528
|
LC217: jmp $C528
|
||||||
|
|
||||||
jmp $C530
|
LC21A: jmp $C530
|
||||||
|
|
||||||
jmp $C538
|
LC21D: jmp $C538
|
||||||
|
|
||||||
LC220: lda $077C
|
LC220: lda $077C
|
||||||
and #$F1
|
and #$F1
|
||||||
sta $077C
|
sta $077C
|
||||||
sec
|
sec
|
||||||
lda LC019
|
lda RDVBL
|
||||||
bmi LC258
|
bmi LC258
|
||||||
sta LC070
|
sta PTRIG
|
||||||
lda #$08
|
lda #$08
|
||||||
tsb $077C
|
tsb $077C
|
||||||
clc
|
clc
|
||||||
@ -600,18 +371,18 @@ LC220: lda $077C
|
|||||||
beq LC24E
|
beq LC24E
|
||||||
tsb $077C
|
tsb $077C
|
||||||
stz $067C
|
stz $067C
|
||||||
LC24E: bit LC063
|
LC24E: bit RD63
|
||||||
bmi LC258
|
bmi LC258
|
||||||
lda #$04
|
lda #$04
|
||||||
tsb $077C
|
tsb $077C
|
||||||
LC258: lda LC015
|
LC258: lda RDCXROM
|
||||||
ora LC017
|
ora RDC3ROM
|
||||||
bmi LC263
|
bmi LC263
|
||||||
jmp LC2ED
|
jmp LC2ED
|
||||||
|
|
||||||
LC263: sta $067C
|
LC263: sta $067C
|
||||||
lda LC015
|
lda RDCXROM
|
||||||
sta LC048
|
sta $C048 ; ???
|
||||||
bpl LC2AE
|
bpl LC2AE
|
||||||
txa
|
txa
|
||||||
bpl LC28B
|
bpl LC28B
|
||||||
@ -676,6 +447,7 @@ LC2F8: rts
|
|||||||
lda $0342,x
|
lda $0342,x
|
||||||
.byte $8D
|
.byte $8D
|
||||||
.byte $12
|
.byte $12
|
||||||
|
.endscope
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Page $C3 - Enhanced 80 Column Firmware
|
;;; Page $C3 - Enhanced 80 Column Firmware
|
||||||
@ -710,7 +482,7 @@ LC307: clc
|
|||||||
|
|
||||||
;; XFER
|
;; XFER
|
||||||
.assert * = XFER, error, "Entry point mismatch"
|
.assert * = XFER, error, "Entry point mismatch"
|
||||||
jsr extra_DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $CC03 ; ???
|
jmp $CC03 ; ???
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -719,7 +491,7 @@ LC307: clc
|
|||||||
|
|
||||||
JPINIT: jsr ClearROM
|
JPINIT: jsr ClearROM
|
||||||
jsr PascalInit
|
jsr PascalInit
|
||||||
LC320: jmp extra_DoBankC5
|
LC320: jmp pageC5_DoBankC5
|
||||||
|
|
||||||
JPREAD: jsr ClearROM
|
JPREAD: jsr ClearROM
|
||||||
jsr PascalRead
|
jsr PascalRead
|
||||||
@ -734,7 +506,7 @@ JPSTAT: jsr ClearROM
|
|||||||
bra LC320
|
bra LC320
|
||||||
|
|
||||||
JumpAuxMove:
|
JumpAuxMove:
|
||||||
jsr extra_DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $CC06
|
jmp $CC06
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -796,7 +568,7 @@ l8: ldx SAVEX
|
|||||||
sty OURCH
|
sty OURCH
|
||||||
sty XCOORD
|
sty XCOORD
|
||||||
ldy SAVEY
|
ldy SAVEY
|
||||||
jmp extra_DoBankC5
|
jmp pageC5_DoBankC5
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Escape Mode
|
;;; Escape Mode
|
||||||
@ -835,7 +607,7 @@ SETV: rts
|
|||||||
brk
|
brk
|
||||||
brk
|
brk
|
||||||
brk
|
brk
|
||||||
jsr extra_DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $CC00
|
jmp $CC00
|
||||||
|
|
||||||
LC3E2: plx
|
LC3E2: plx
|
||||||
@ -856,17 +628,9 @@ LC3FA: jsr ClearROM
|
|||||||
jmp LCCF5
|
jmp LCCF5
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Pages $C4-C7 - ???
|
;;; Page $C4 - ???
|
||||||
|
|
||||||
.scope extra
|
|
||||||
|
|
||||||
LFC24 := $FC24
|
|
||||||
LFC58 := $FC58
|
|
||||||
LFC9E := $FC9E
|
|
||||||
LFDED := $FDED
|
|
||||||
LFDF0 := $FDF0
|
|
||||||
LFF4A := $FF4A
|
|
||||||
|
|
||||||
|
.scope pageC4
|
||||||
|
|
||||||
bit LC42E
|
bit LC42E
|
||||||
bra LC41C
|
bra LC41C
|
||||||
@ -874,15 +638,24 @@ LFF4A := $FF4A
|
|||||||
bcc LC420
|
bcc LC420
|
||||||
clv
|
clv
|
||||||
bra LC41C
|
bra LC41C
|
||||||
ora ($20,x)
|
|
||||||
bit $2C2C
|
;; Signature bytes
|
||||||
bit $2F00
|
.byte $01, $20
|
||||||
|
|
||||||
|
;; Pascal 1.1 Firmware Protocol Table
|
||||||
|
.byte .lobyte(LC42C)
|
||||||
|
.byte .lobyte(LC42C)
|
||||||
|
.byte .lobyte(LC42C)
|
||||||
|
.byte .lobyte(LC42C)
|
||||||
|
|
||||||
|
.byte 0
|
||||||
|
.byte $2F
|
||||||
and $3B,x
|
and $3B,x
|
||||||
eor ($47,x)
|
eor ($47,x)
|
||||||
eor $5953
|
eor $5953
|
||||||
.byte $2C
|
.byte $2C
|
||||||
.byte $5F
|
.byte $5F
|
||||||
LC41C: jsr DoBankC5
|
LC41C: jsr pageC5_DoBankC5
|
||||||
.byte $50
|
.byte $50
|
||||||
LC420: .byte $03
|
LC420: .byte $03
|
||||||
jsr LC806
|
jsr LC806
|
||||||
@ -891,38 +664,38 @@ LC420: .byte $03
|
|||||||
|
|
||||||
LC429: jmp LC825
|
LC429: jmp LC825
|
||||||
|
|
||||||
ldx #$03
|
LC42C: ldx #$03
|
||||||
LC42E: rts
|
LC42E: rts
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C8D4
|
jmp $C8D4
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C916
|
jmp $C916
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C922
|
jmp $C922
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C958
|
jmp $C958
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C967
|
jmp $C967
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C969
|
jmp $C969
|
||||||
|
|
||||||
jsr DoBankC5
|
jsr pageC5_DoBankC5
|
||||||
jmp $C93E
|
jmp $C93E
|
||||||
|
|
||||||
LC459: jsr DoBankC5
|
LC459: jsr pageC5_DoBankC5
|
||||||
jmp $C8AC
|
jmp $C8AC
|
||||||
|
|
||||||
ldx $C066
|
ldx $C066
|
||||||
ldy $C067
|
ldy $C067
|
||||||
jmp $C220
|
jmp $C220
|
||||||
|
|
||||||
LC468: jsr DoBankC5
|
LC468: jsr pageC5_DoBankC5
|
||||||
jmp $C9A0
|
jmp $C9A0
|
||||||
|
|
||||||
brk
|
brk
|
||||||
@ -1015,7 +788,7 @@ LC4E4: jmp $C1F2
|
|||||||
|
|
||||||
LC4E7: jmp LC3E2
|
LC4E7: jmp LC3E2
|
||||||
|
|
||||||
LC4EA: jmp LC5F5
|
LC4EA: jmp pageC5_LC5F5
|
||||||
|
|
||||||
brk
|
brk
|
||||||
brk
|
brk
|
||||||
@ -1032,6 +805,12 @@ LC4F8: jmp LC468
|
|||||||
|
|
||||||
dec $00,x
|
dec $00,x
|
||||||
jmp LC459
|
jmp LC459
|
||||||
|
.endscope
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
;;; Page $C5
|
||||||
|
|
||||||
|
.scope pageC5
|
||||||
|
|
||||||
LC500: jsr BankC5
|
LC500: jsr BankC5
|
||||||
sta $067A
|
sta $067A
|
||||||
@ -1068,12 +847,12 @@ LC51A: ply
|
|||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
ora #$80
|
ora #$80
|
||||||
jsr LFDF0
|
jsr COUT1
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
ora #$80
|
ora #$80
|
||||||
jsr LFDED
|
jsr COUT
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
@ -1086,11 +865,11 @@ LC51A: ply
|
|||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
jsr LFC9E
|
jsr CLREOLZ
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
jsr LFC58
|
jsr HOME
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
@ -1098,15 +877,15 @@ LC51A: ply
|
|||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
jsr LC4F8
|
jsr pageC4::LC4F8
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
jsr LC7FD
|
jsr pageC7_LC7FD
|
||||||
bra BankC5
|
bra BankC5
|
||||||
|
|
||||||
jsr BankC8
|
jsr BankC8
|
||||||
jsr LFC24
|
jsr VTABZ
|
||||||
;; Fall through
|
;; Fall through
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -1202,12 +981,19 @@ DoBankC5:
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
jmp LC5C6
|
jmp LC5C6
|
||||||
|
.endscope
|
||||||
|
pageC5_DoBankC5 := pageC5::DoBankC5
|
||||||
|
pageC5_LC5F5 := pageC5::LC5F5
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
;;; Page $C6 - Disk II Driver
|
||||||
|
|
||||||
|
.scope pageC6
|
||||||
bit $20
|
bit $20
|
||||||
cpy $00
|
cpy $00
|
||||||
ldx #$03
|
ldx #$03
|
||||||
asl A1L
|
asl A1L
|
||||||
jsr DoBankC5
|
jsr pageC5::DoBankC5
|
||||||
ldy #$69
|
ldy #$69
|
||||||
LC60D: lda $CF26,y
|
LC60D: lda $CF26,y
|
||||||
sta $036C,y
|
sta $036C,y
|
||||||
@ -1306,7 +1092,7 @@ LC62D: dec $27
|
|||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
LC683: pla
|
LC683: pla
|
||||||
LC684: jsr DoBankC5
|
LC684: jsr pageC5::DoBankC5
|
||||||
jsr LCE00
|
jsr LCE00
|
||||||
bra LC6EA
|
bra LC6EA
|
||||||
brk
|
brk
|
||||||
@ -1413,7 +1199,17 @@ LC6EA: nop
|
|||||||
jmp $0801
|
jmp $0801
|
||||||
|
|
||||||
.byte $DE
|
.byte $DE
|
||||||
brk
|
.byte $00 ; $00 = Disk II, 16-Sector
|
||||||
|
.endscope
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
;;; Page $C7 - ???
|
||||||
|
|
||||||
|
LC700:
|
||||||
|
.scope pageC7
|
||||||
|
|
||||||
|
LFF4A := $FF4A
|
||||||
|
|
||||||
LC700: jsr $C1F7
|
LC700: jsr $C1F7
|
||||||
pha
|
pha
|
||||||
jsr $C1FD
|
jsr $C1FD
|
||||||
@ -1452,7 +1248,7 @@ LC739: pha
|
|||||||
php
|
php
|
||||||
jmp (L03FE)
|
jmp (L03FE)
|
||||||
|
|
||||||
LC744: jmp LC4BE
|
LC744: jmp pageC4::LC4BE
|
||||||
|
|
||||||
LC747: pla
|
LC747: pla
|
||||||
sta $44
|
sta $44
|
||||||
@ -1469,7 +1265,7 @@ LC751: pla
|
|||||||
sta $3A
|
sta $3A
|
||||||
ply
|
ply
|
||||||
sty $3B
|
sty $3B
|
||||||
bit $C016
|
bit RDALTZP
|
||||||
bpl LC781
|
bpl LC781
|
||||||
tsx
|
tsx
|
||||||
stx $0101
|
stx $0101
|
||||||
@ -1554,7 +1350,7 @@ LC7E5: sta WRCARDRAM
|
|||||||
brk
|
brk
|
||||||
LC7FD: jmp LC792
|
LC7FD: jmp LC792
|
||||||
.endscope
|
.endscope
|
||||||
extra_DoBankC5 := extra::DoBankC5
|
pageC7_LC7FD := pageC7::LC7FD
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -2352,7 +2148,7 @@ LCC8D: bit TXTPAGE2
|
|||||||
sta CLR80COL
|
sta CLR80COL
|
||||||
bra LCC64
|
bra LCC64
|
||||||
LCCB2: jsr LCCB8
|
LCCB2: jsr LCCB8
|
||||||
jmp extra::DoBankC5 ; bad disasm or ...?
|
jmp pageC5::DoBankC5 ; bad disasm or ...?
|
||||||
|
|
||||||
LCCB8: bit $0579
|
LCCB8: bit $0579
|
||||||
bmi LCCD7
|
bmi LCCD7
|
||||||
@ -2385,7 +2181,7 @@ LCCE1: phx
|
|||||||
beq LCCDC
|
beq LCCDC
|
||||||
bra LCCD5
|
bra LCCD5
|
||||||
LCCF5: jsr LCCFB
|
LCCF5: jsr LCCFB
|
||||||
jmp extra::DoBankC5
|
jmp pageC5::DoBankC5
|
||||||
|
|
||||||
LCCFB: bit $0579
|
LCCFB: bit $0579
|
||||||
bpl LCD03
|
bpl LCD03
|
||||||
@ -2531,7 +2327,7 @@ LCE00: asl $9D
|
|||||||
stz $0579
|
stz $0579
|
||||||
LCE0D: jsr LCDA8
|
LCE0D: jsr LCDA8
|
||||||
sta $04F9
|
sta $04F9
|
||||||
jmp extra::DoBankC5
|
jmp pageC5::DoBankC5
|
||||||
|
|
||||||
LCE16: pha
|
LCE16: pha
|
||||||
lda RDRAMRD
|
lda RDRAMRD
|
||||||
|
Loading…
x
Reference in New Issue
Block a user