System information

the C128 in C64 mode makes it appear as if the computer has crashed since the screen will go blank or will be
filled with garbage. The other VIC address that is unused on the C64 but used on the C128 is $D02F, which is
used for extra columns in the keyboard matrix. However, there is no harm in writing to this register on a C128 in
C64 mode. Actually, it is a good memory location to use for detecting if the program is running on a real C64 or
on a C128 in C64 mode. On a real C64, this memory location always contains the value $FF no matter what is
written to it but on a C128 running in C64 mode, the value of the register can be changed.
Another cause of C64 programs not working on the C128 in C64 mode is that the SID register mirror images are
missing on the C128 in C64 mode. At $D500, MMU registers exist on the C128 (invisible in C64 mode) and at
$D600 the VDC port registers are placed.
On the C128, both in C128 and in C64 mode, bit 6 in register $01 is used to tell whether the CAPS LOCK/ASCII
DIN/ASCII CC key is pressed or not. This may cause certain C64 programs that do not mask the bits in register
$01 properly to fail.
I have received information about that there are compatibility problems with some C64 game cartridges on the
C128. This especially concerns cartridges that hack in /EXROM on reset for some cycles. As I have understood it,
the problem is that on the C128 it takes more cycles until the system reaches C64 mode and the Kernal routine
that checks for the signature CBM80 at $8000 after a reset (this signature indicates that a C64 cartridge is
present).