So, here's what the two loopback bits do, explained in a table:
Loopback bits | These inputs below will connect to
| the signals in the chart below
DiagLoop PortLoop | CommRxD PRTRxD KBDRxD VidCLK PRTCLK
------------------+--------------------------------------
0 0 | CommRCV PRTRCV KBDRCV MASCLK PRTRxTxC
0 1 | CommTxD KBDTxD PRTTxD MASCLK PRTRxTxC
1 0 | CommRCV PRTRCV KBDRCV 250Khz 500Khz
1 1 | CommTxD VIDOUT PRTTxD 250Khz 500Khz
inputs:
CommRxD = EIA/RS232 uart receive pin
PRTRxD = printer uart receive pin
KBDRxD = keyboard data uart? receive pin
VidCLK = DC011 video asic clock
PRTCLK = printer uart serial clock for rx/tx
signals:
CommRCV = EIA/RS232 port rx pin (after going through mc1489?)
CommTxD = EIA/RS232 uart transmit pin
PRTRCV = printer port db25 rx pin (after going through mc1489?)
KBDTxD = keyboard data uart? transmit pin
KBDRCV = keyboard data rj11 jack receive pin
PRTTxD = printer uart transmit pin
MASCLK = master (and video) clock
500Khz = 500Khz clock
PRTRxTxC = printer baud clock (configurable)
250Khz = 250Khz clock
EDIT: The state of the two loopback pins (as well as the nvram 'program' and 'recall' bits, and the 'reset' bit) can be read back from the i/o register 0x6 as well as written. oddly, the schematic seems to show that the bit order is reversed between read and write, but this could be a drafting error on the schematic. Three bits are write only, when read back they read as a constant set by 3 jumpers on the board.
LN