Thanks for the explanation of how it works, but I still don't see the purpose of having this bit. If you only have 4K RAM connected, do you have to set the bit to 0 in order for the VDP to work?
Yes, basically, the addressing of DRAM is a 2D matrix of row and column selects, each is 7 bits wide (for 14 bits of address). The VDP address maps directly onto these hardware lines, but one set (not sure if rows or columns, I'll say rows here but it may be the other way around) maps to rows, and one set maps to columns.
In 4k mode there are only 12 bits of address, but there are still 7 /physical/ column lines, so when you set it to 4k mode, it shifts part of the address up one bit so that the bits align with the physical row select lines. It looks something like this:
16k mode: R R R R R R R C C C C C C C
4k mode: x R R R R R R x C C C C C C
The internal address register needs to be shifted when it's mapped to the physical lines to get over that "x-unused" pin in 4k mode, and that's what leaving that bit at 0 does. Not saying that's necessarily the best approach, but that's what it does.
(edit: except, it doesn't actually shift, it rotates for some reason... but if it's wired the way it's supposed to be the effect is the same )
Edited by Tursi, Thu Oct 15, 2015 9:22 AM.