PC-98 System Bus Mouse PPI emulation (Intel 8255A device) More...
Public Member Functions | |
virtual uint8_t | inPortA (void) const |
Called by 8255 emulation to latch from port A pins. | |
virtual uint8_t | inPortB (void) const |
Called by 8255 emulation to latch from port B pins. | |
virtual uint8_t | inPortC (void) const |
Called by 8255 emulation to latch from port C pins. | |
virtual void | outPortC (const uint8_t mask) |
Called by 8255 emulation when latching to port C pins. |
PC-98 System Bus Mouse PPI emulation (Intel 8255A device)
NEC PC-98 systems use a 8255 to interface a bus mouse to the system.
This PPI is connected to I/O ports 0x7FD9-0x7FDF odd.
Button state is read directly as 3 bits (left, right, middle).
Mouse movement is latched on command and read 4 bits (one nibble at a time) to obtain two signed 8-bit x and y mickey counts (to detect movement).
Mouse data is read from port A.
Interrupt inhibit, selection of the nibble, and the command to latch mouse movement is done by writing to port C.
According to some documentation found online, port B is attached to various unrelated signals and/or status.
The interrupt line is connected to IRQ 13 of the interrupt controller on PC-98 systems.
There is at least one PC-98 game "Metal Force" known to abuse this interface as a periodic interrupt source instead of using it as an interface for mouse input.
Definition at line 2254 of file keyboard.cpp.