Simplify, should be functionally identical

This commit is contained in:
Renee Harke 2021-01-17 14:23:27 -05:00
parent b77e1891cd
commit 84e7285d5e
2 changed files with 9 additions and 26 deletions

View File

@ -16,15 +16,16 @@ The only part of this I don't quite understand is that 16 bytes from slot 1 don'
## ROM layout ## 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 ### "Old" Laser 128
``` ```
0000 - 00FF = empty (reserved for soft switches) 0000 - 00FF = empty (reserved for soft switches)
0100 - 07FF = C100-C7FF (INTCXROMON) 0100 - 0FFF = C100-CFFF (INTCXROMON)
0800 - 0FFF = C800-CFFF slot 1 option ROM (INTCXROMON) 1000 - 3FFF = D000-FFFF ROM
1000 - 1FFF = D000-DFFF ROM
2000 - 2FFF = E000-EFFF ROM
3000 - 3FFF = F000-FFFF ROM
4000 - 40FF = empty (reserved for soft switches) 4000 - 40FF = empty (reserved for soft switches)
4100 - 42FF = C100-C2FF (INTCXROMOFF, Parallel mode) 4100 - 42FF = C100-C2FF (INTCXROMOFF, Parallel mode)
4300 - 43FF = empty (no ROM for slot 3) 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) 0000 - 00FF = empty (reserved for soft switches)
0100 - 07FF = C100-C7FF (INTCXROMON) 0100 - 0FFF = C100-CFFF (INTCXROMON)
0800 - 0FFF = C800-CFFF slot 1 option ROM (INTCXROMON) 1000 - 3FFF = D000-FFFF ROM
1000 - 1FFF = D000-DFFF ROM
2000 - 2FFF = E000-EFFF ROM
3000 - 3FFF = F000-FFFF ROM
4000 - 40FF = empty (reserved for soft switches) 4000 - 40FF = empty (reserved for soft switches)
4100 - 47FF = C100-C7FF (INTCXROMOFF, SLOTC3ROMON) 4100 - 47FF = C100-C7FF (INTCXROMOFF, SLOTC3ROMON)
4800 - 4FFF = C800-CFFF Slot 1 option ROM (INTCXROMOFF) 4800 - 4FFF = C800-CFFF Slot 1 option ROM (INTCXROMOFF)

View File

@ -89,15 +89,8 @@ loop: sta base,y
; $0000 - $1fff, common to old and new models ; $0000 - $1fff, common to old and new models
com0: fillff $2000,0 ; $C000-C0FF empty (soft switches) com0: fillff $2000,0 ; $C000-C0FF empty (soft switches)
sta INTCXROMON sta INTCXROMON
mv $2100,$c100,$c7ff ; $C100-C7FF from main ROM mv $2100,$c100,$cfff ; $C100-C7FF from main ROM
sta INTCXROMOFF sta INTCXROMOFF
lda $cfff
lda $c100
sta INTCXROMON
mv $2800,$c800,$cfff ; slot 1 option ROM alternate
sta INTCXROMOFF
lda $cfff
fillff $2ff8,8 fillff $2ff8,8
mv $3000,$d000,$dfff ; D000-DFFF ROM mv $3000,$d000,$dfff ; D000-DFFF ROM
@ -120,19 +113,16 @@ new4: fillff $2000,0 ; $C000-C0FF empty (soft switches)
lda $cfff lda $cfff
lda $c100 lda $c100
mv $2800,$c800,$cfff ; slot 1 option ROM mv $2800,$c800,$cfff ; slot 1 option ROM
lda $cfff
fillff $2ff8,8 fillff $2ff8,8
lda $cfff lda $cfff
lda $c500 lda $c500
mv $3000,$c800,$cfff ; slot 5 option ROM mv $3000,$c800,$cfff ; slot 5 option ROM
lda $cfff
fillff $37f8,8 fillff $37f8,8
lda $cfff lda $cfff
lda $c200 lda $c200
mv $3800,$c800,$cfff ; slot 2 option ROM mv $3800,$c800,$cfff ; slot 2 option ROM
lda $cfff
fillff $3ff8,8 fillff $3ff8,8
rts rts
@ -166,7 +156,6 @@ new6: s7bank #$00
lda $cfff lda $cfff
lda $c600 lda $c600
mv $3800,$c800,$cfff ; slot 6 option ROM mv $3800,$c800,$cfff ; slot 6 option ROM
lda $cfff
fillff $3ff8,8 fillff $3ff8,8
rts rts
@ -183,7 +172,6 @@ old4: fillff $2000,0 ; $C000-C0FF empty (soft switches)
lda $cfff lda $cfff
lda $c100 lda $c100
mv $2800,$c800,$cfff ; slot 1 option ROM mv $2800,$c800,$cfff ; slot 1 option ROM
lda $cfff
fillff $2ff8,8 fillff $2ff8,8
fillff $3000,0 ; empty fillff $3000,0 ; empty
@ -197,7 +185,6 @@ old4: fillff $2000,0 ; $C000-C0FF empty (soft switches)
lda $cfff lda $cfff
lda $c200 lda $c200
mv $3800,$c800,$cfff ; slot 2 option ROM mv $3800,$c800,$cfff ; slot 2 option ROM
lda $cfff
fillff $3ff8,8 fillff $3ff8,8
rts rts
@ -221,7 +208,6 @@ old6: fillff $2000,0 ; empty
lda $c600 lda $c600
lda $c100 lda $c100
mv $2800,$c800,$cfff ; slot 6 option ROM bank 1 mv $2800,$c800,$cfff ; slot 6 option ROM bank 1
lda $cfff
fillff $2ff8,8 fillff $2ff8,8
fillff $3000,0 ; empty fillff $3000,0 ; empty
@ -237,7 +223,6 @@ old6: fillff $2000,0 ; empty
lda $c600 lda $c600
lda $c200 lda $c200
mv $3800,$c800,$cfff ; slot 6 option ROM bank 2 mv $3800,$c800,$cfff ; slot 6 option ROM bank 2
lda $cfff
fillff $3ff8,8 fillff $3ff8,8
rts rts