Da der 80x50 Modus wieder geht, wusste ich nicht. Damit werd ich auch mal rum spielen. Der ScreenRAM verschiebt sich, wenn ich nicht irre?
Nur wenn du in Assembler programmierst. Für Basic ist das irrelevant und wird berücksichtigt:
BitShifters Erläuterung:
I give you an example for a technical argument: The 80x50 text screen mode.
This requires 4000 bytes of screen RAM and 4000 bytes of colour RAM.
Colour RAM can easily be expanded as it is already 32K large, though its mirrors at $D800 and $1F800, which are used by some programs, can only address half of the size.
But there is no way to expand the default screen RAM at $800 to 4000 bytes, because it then collides with system work space at $1000 to $17FF. So it has to be moved elsewhere. I had chosen $40000 - $40FFF in bank 4.
All kernal routines where changed, so that they are aware of the current mode and set screen and colour pointer correctly.
But if a user starts a program, while the 80x50 mode is active, several programs may fail, because:
1) They assume, that screen RAM starts at $800, but it is now at $40000.
2) They assume, that the last row number is 24, but it's 49.
3) They assume, that the memory region $40000 - $40FFF is free to use, but it's not.
This is only one example, where compatibilty cannot be preserved for technical reasons.
…as long as programmers use fixed addresses instead of reading or setting VIC registers, the problem persists.