Skip to content

suprterm needs to take over C800 on access to C0B2/C0B4 #14552

@SpecLad

Description

@SpecLad

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:

  1. Read or write CFFF (to unmap whatever is currently mapped there).
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions