Post by mirkosoft on May 26, 2017 3:36:29 GMT
Hi!
So, I'm currently confused in case of bank configuration.
Bank 1 is not whole RAM1, it's $0000-$3FFF RAM0 and rest is RAM1.
So, I wanted to switch to whole RAM1, meaning $0000-$FFFF = RAM1 except MMU.
And I'm confused what I found in manual:
In configuration register are bits:
0 = access to IO space: ROM-HIGH (1) / I/O (0) $D000-$DFFF
1 = access to $4000-$7FFF: RAM (1) / Basic LO ROM (0)
2-3 = access to $8000-$BFFF: 1/1 = RAM; 1/0 = internal function ROM; 0/1 = external function ROM; 0/0 = Basic HI ROM
4-5 = access to $C000-$FFFF: 1/1 = RAM; 1/0 = internal function ROM; 0/1 = external function ROM; 0/0 = Kernal/Chargen
6 = used RAM is RAM0 (0) / RAM1 (1)
7 = unused
I found also addition:
bit 7 = expansion bank
6-7 = expansion bank 2 (0/1) / expansion bank 3 (1/1)
Like you see - nothing about area $0000-$3FFF - what is 16K... component which I'm creating requires full 64K (with MMU exception)
Also is documented sharing memory area at $D506:
bits:
0-1 = defines sharing RAM area size: 0/0 = 1K; 1/0 = 4K; 0/1 = 8K; 1/1 = 16K
2-3 = defines sharing RAM place: 0/0 = none; 1/0 bottom; 0/1 = high; 1/1 = both (bottom & high)
4-5 = unused
6 = defines VIC2E place: 0 = in RAM0 / 1 = in RAM1
7 = unused
I meant that access to VIC2E if is set to RAM1 allows me to write to VIC2E bank 0 - bank of VIC2E is 4K... so it could be possible...
Also sharing area as bottom 16K was looking good, but problem is of course Kernal (if is used) and system locations...
Where is setting for area $0000-$3FFF ? Or looks not accessible? Or is accessible only by Kernal routines INDFET and INDSTA?
Thank you for your words.
Miro
So, I'm currently confused in case of bank configuration.
Bank 1 is not whole RAM1, it's $0000-$3FFF RAM0 and rest is RAM1.
So, I wanted to switch to whole RAM1, meaning $0000-$FFFF = RAM1 except MMU.
And I'm confused what I found in manual:
In configuration register are bits:
0 = access to IO space: ROM-HIGH (1) / I/O (0) $D000-$DFFF
1 = access to $4000-$7FFF: RAM (1) / Basic LO ROM (0)
2-3 = access to $8000-$BFFF: 1/1 = RAM; 1/0 = internal function ROM; 0/1 = external function ROM; 0/0 = Basic HI ROM
4-5 = access to $C000-$FFFF: 1/1 = RAM; 1/0 = internal function ROM; 0/1 = external function ROM; 0/0 = Kernal/Chargen
6 = used RAM is RAM0 (0) / RAM1 (1)
7 = unused
I found also addition:
bit 7 = expansion bank
6-7 = expansion bank 2 (0/1) / expansion bank 3 (1/1)
Like you see - nothing about area $0000-$3FFF - what is 16K... component which I'm creating requires full 64K (with MMU exception)
Also is documented sharing memory area at $D506:
bits:
0-1 = defines sharing RAM area size: 0/0 = 1K; 1/0 = 4K; 0/1 = 8K; 1/1 = 16K
2-3 = defines sharing RAM place: 0/0 = none; 1/0 bottom; 0/1 = high; 1/1 = both (bottom & high)
4-5 = unused
6 = defines VIC2E place: 0 = in RAM0 / 1 = in RAM1
7 = unused
I meant that access to VIC2E if is set to RAM1 allows me to write to VIC2E bank 0 - bank of VIC2E is 4K... so it could be possible...
Also sharing area as bottom 16K was looking good, but problem is of course Kernal (if is used) and system locations...
Where is setting for area $0000-$3FFF ? Or looks not accessible? Or is accessible only by Kernal routines INDFET and INDSTA?
Thank you for your words.
Miro