diff --git a/README.md b/README.md index 121d98f..a6b97c1 100644 --- a/README.md +++ b/README.md @@ -16,15 +16,16 @@ The only part of this I don't quite understand is that 16 bytes from slot 1 don' ## ROM layout +The first 16KB of the ROM (regardless of old vs. new) is just directly mapped to C000-FFFF ROM. INTCXROMON must be enabled to access Cxxx, of course. This is the same as the CF ROM of a Platinum IIe, or CD+EF ROMs concatenated from an earlier IIe. + +The second 16KB of the ROM contains slot and option ROM for the built-in peripherals. The exact mapping varies between the two models. + ### "Old" Laser 128 ``` 0000 - 00FF = empty (reserved for soft switches) -0100 - 07FF = C100-C7FF (INTCXROMON) -0800 - 0FFF = C800-CFFF slot 1 option ROM (INTCXROMON) -1000 - 1FFF = D000-DFFF ROM -2000 - 2FFF = E000-EFFF ROM -3000 - 3FFF = F000-FFFF ROM +0100 - 0FFF = C100-CFFF (INTCXROMON) +1000 - 3FFF = D000-FFFF ROM 4000 - 40FF = empty (reserved for soft switches) 4100 - 42FF = C100-C2FF (INTCXROMOFF, Parallel mode) 4300 - 43FF = empty (no ROM for slot 3) @@ -49,11 +50,8 @@ Slot 6 option ROM bank 2 is empty in ROM 2.9, but it might be populated on other ``` 0000 - 00FF = empty (reserved for soft switches) -0100 - 07FF = C100-C7FF (INTCXROMON) -0800 - 0FFF = C800-CFFF slot 1 option ROM (INTCXROMON) -1000 - 1FFF = D000-DFFF ROM -2000 - 2FFF = E000-EFFF ROM -3000 - 3FFF = F000-FFFF ROM +0100 - 0FFF = C100-CFFF (INTCXROMON) +1000 - 3FFF = D000-FFFF ROM 4000 - 40FF = empty (reserved for soft switches) 4100 - 47FF = C100-C7FF (INTCXROMOFF, SLOTC3ROMON) 4800 - 4FFF = C800-CFFF Slot 1 option ROM (INTCXROMOFF) diff --git a/src/DUMPROM.s b/src/DUMPROM.s index 5d72821..6bac16a 100644 --- a/src/DUMPROM.s +++ b/src/DUMPROM.s @@ -89,15 +89,8 @@ loop: sta base,y ; $0000 - $1fff, common to old and new models com0: fillff $2000,0 ; $C000-C0FF empty (soft switches) sta INTCXROMON - mv $2100,$c100,$c7ff ; $C100-C7FF from main ROM + mv $2100,$c100,$cfff ; $C100-C7FF from main ROM sta INTCXROMOFF - - lda $cfff - lda $c100 - sta INTCXROMON - mv $2800,$c800,$cfff ; slot 1 option ROM alternate - sta INTCXROMOFF - lda $cfff fillff $2ff8,8 mv $3000,$d000,$dfff ; D000-DFFF ROM @@ -120,19 +113,16 @@ new4: fillff $2000,0 ; $C000-C0FF empty (soft switches) lda $cfff lda $c100 mv $2800,$c800,$cfff ; slot 1 option ROM - lda $cfff fillff $2ff8,8 lda $cfff lda $c500 mv $3000,$c800,$cfff ; slot 5 option ROM - lda $cfff fillff $37f8,8 lda $cfff lda $c200 mv $3800,$c800,$cfff ; slot 2 option ROM - lda $cfff fillff $3ff8,8 rts @@ -166,7 +156,6 @@ new6: s7bank #$00 lda $cfff lda $c600 mv $3800,$c800,$cfff ; slot 6 option ROM - lda $cfff fillff $3ff8,8 rts @@ -183,7 +172,6 @@ old4: fillff $2000,0 ; $C000-C0FF empty (soft switches) lda $cfff lda $c100 mv $2800,$c800,$cfff ; slot 1 option ROM - lda $cfff fillff $2ff8,8 fillff $3000,0 ; empty @@ -197,7 +185,6 @@ old4: fillff $2000,0 ; $C000-C0FF empty (soft switches) lda $cfff lda $c200 mv $3800,$c800,$cfff ; slot 2 option ROM - lda $cfff fillff $3ff8,8 rts @@ -221,7 +208,6 @@ old6: fillff $2000,0 ; empty lda $c600 lda $c100 mv $2800,$c800,$cfff ; slot 6 option ROM bank 1 - lda $cfff fillff $2ff8,8 fillff $3000,0 ; empty @@ -237,7 +223,6 @@ old6: fillff $2000,0 ; empty lda $c600 lda $c200 mv $3800,$c800,$cfff ; slot 6 option ROM bank 2 - lda $cfff fillff $3ff8,8 rts