There are two input ports:
There is one output port:
The read yields 8 bits, only 4 of which contain actual data. The "f" bit (masked by 0x40) indicates that data is waiting to be read from port 0x50. The other 3 bits are the low 3 bits in the byte read as shown by "xxx" above. It is not clear what these bits are for.
The first read of 0x48 is at address 00CA. The "f" bit is tested and if it is set, a call is made to 0020 (just as if an RST-4 interrupt had taken place. RST-4 is set up as a keyboard interrupt handler, but as near as we can tell, the processor board has no hardware to generate such an interrupt, so this test and call must suffice to process keyboard events.
The RST-4 handler at address 0020 saves registers, then jumps to 0652. The first thing here is to read port 0x50.
Tom's Computer Info / tom@mmto.org