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

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

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.


Last edited by Lord Nightmare; 06/08/16 04:59 AM.

"When life gives you zombies... *CHA-CHIK!* make zombie-ade!"