I figured out the port and bit assignments for the Quay MPS-90F console
serial port. Input from port 0 reads a receive character (and clears the
data received flag), output to port 2 transmits a character, and reading
port 1 gives the UART status, with bits 0 (LSB) to 4 being parity error,
framing error, overrun error, data received, and transmit buffer register
empty, respectively, all positive logic (1 is true).
Switched 3 through 6 of the DIP switch are the baud rate, which is provided
by a 4702 BRG chip and not the CTC as I'd previously imagined. Switches 3
through 5 off and 6 on gives 9600 baud.
Don't yet know what the CTC is used for. Possibly for the SIO daughtercard,
though there's no continuity directly from the CTC output pins to the SIO
clock input pins. Contrary to my previous guess, the SIO daughtercard is
soldered into what appears to be a Z80-PIO footprint on the main board;
apparently when designing the MPS-90F they expected to need a lot of
parallel I/O and not so much serial.
I programmed an EPROM with code that prints "Hello world" then echos the
each input character plus one, so that sending in "HAL" results in output
of "IBM". That seems to work fine.
I started writing my own monitor, inspired by the Apple II monitor, because
I couldn't find a Z80 monitor I liked that would fit in a 2708 (1KB). The
monitor works fine running in a slightly modified version of z80sim from
z80pack, but fails on the real thing, sometimes hanging after the command
prompt, and other times echoing the first received character endlessly. To
misquote Sark, "Bring in the logic analyzer!"