Programmable Peripheral Interface (8255 PPI)
The Intel 8255 PPI is a general-purpose IO chip that provides 24 configurable, bidirectional I/O pins.
The 8255 was used in a number of systems, and even a few mouse controller cards.
The IBM 5150 and 5160 utilize the PPI to receive scancodes from the keyboard interface, read the system’s DIP switches, read motherboard status lines and write control signals.
The PPI is a moderately complex chip with several modes of operation. Perhaps unique to all the support chips you need to emulate, the vast majority of the PPI’s extended capabilities and modes can be completely ignored by a basic PC emulator.