-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
This is something that I probably won't be able to fix any time soon, so I wanted to document it here.
According to the Sup'R'Terminal manual, you should be able to map the character or screen RAM to the C800 region by doing the following:
- Read or write CFFF (to unmap whatever is currently mapped there).
- Read or write C0B2 (for character RAM) or C0B4 (for screen RAM).
However, in MAME this doesn't work unless you read/write from the C3XX region between these steps. This can be seen by running Apple Writer II with the Sup'R'Terminal connected:
mame apple2p -sl3 suprterm applwrt2
As of 7b5492e, this shows a blank screen. You can still interact with the program (as evidenced by the floppy drive noises), but nothing is displayed. This happens because Writer tries to map the screen RAM using the steps above, and since it fails, all subsequent writes to the screen are ignored.
The reason this is hard to fix is that the generic device code only lets devices take over the C800 region when C3XX is accessed. This needs to be made more flexible somehow. There are multiple (subtly different) copies of the C800 logic in agat.cpp, apple2.cpp, apple2e.cpp, apple2gs.cpp, apple2_m.cpp that would need to be updated.