Pokemon,
I am very interested in the bank switching capabilities of the ZXblast and have a couple of questions on the chart you posted:
$00=RAM instance register (switch instance RAM)
Bit 7 ($80) = switch off NMI control / ZXblast control
$70=ZXblast
$60=instance 1
$50=instance 2
$40=instance 3
$30=instance 4
$20=instance 5
$10=instance 6
$00=instance 7
$10=control register
bit 4=RAM active in area $2000-$3FFF
bit 5=A15 mirror on (restricted to 16k ROM/16k RAM)
bit 6=activate paging
bit 7=page size 16k (default 8k)
$20=ram layout register - activate RAM in main memory area (0=ROM, 1=RAM)
bit 4=$0000-$3FFF
bit 5=$4000-$7FFF
bit 6=$8000-$BFFF
bit 7=$C000-$FFFF
$30=page select register - for page 0-15
$00-$F0, 16 pages (8 or 16k depending on bit 7 of control register)
$40=page window address
$00=$0000
$10=$2000
$20=$4000
$30=$6000
$40=$8000
$50=$A000
$60=$C000
$70=$E000
bit 7=high bit of page select register to use page 16-31
$50=external memory register (switch off address are completely for compatibility)
bit 4=$2000-$3FFF
bit 5=$8000-$BFFF
bit 6=$C000-$FFFF
First off a little terminology to clarify things. When I mention CPU memory I mean the addresses $0000 to $FFFF accessible from the Z80 chip. ZXBlast memory is the addresses $00000-$7FFFF (ram or flash) in the ZXBlast.
Registers $00, $10 and $20 are easy to understand and I have no questions
Register $30 Page select
1. Does this select a block of ZXBlast memory? For example setting it $20 and having Reg $10 set for 16K you would access ZXblast memory $08000-$0BFFF.
2. So for 512K is the memory map for 16K
$00000 - $03FFF Page 0
$04000 - $07FFF Page 1
$08000 - $0BFFF Page 2
,,,,
$7C000 - $7FFFF Page 31 ?
3. For 8K Pages is the map
$00000 - $01FFF Page 0
$02000 - $03FFF Page 1
...
Or
$00000 - $01FFF Page 0
$02000 - $3FFFF Not accessible
$04000 - $05FFF Page 1
...
Or
$00000 - $01FFF Page 0
$02000 - $3FFFF Copy of Page 0
$04000 - $05FFF Page 1?
...
Register $40 Window
4. Does this register tell where the page selected in $30 be placed in CPU memory?
For example
$30 = $10 and $40 = $20 8K Page means that ZXBlast memory page 1 shows up in in CPU memory $4000 - $5FFF
$30 = $10 and $40 = $20 16K Page means that ZXBlast memory page 1 shows up in in CPU memory $4000 - $7FFF
5. Since $30 can only select 16 pages then $40 bit seven selects pages 16-31? Using the above example
$30 = $10 and $40 = $A0 8K Page means that ZXBlast memory page 17 shows up in in CPU memory $4000 - $5FFF
$30 = $10 and $40 = $A0 16K Page means that ZXBlast memory page 17 shows up in in CPU memory $4000 - $7FFF
Register $50 external memory
6. Is this a switch to activate that 8K Ram of cpu memory?
0 means off and 1 means on?
So if Reg $50 is %00010000 then $2000-$3FFF Ram even if the Reg $20 is selected for Flash memory?
EDIT:
Forgot one more question:
6. Since Flash memory works just like RAM I was wondering what addresses have the modified ROM that you use for ZXBlast in Flash memory? I don't want to accidentally erase the ZXBlast OS