(none)
  

Notes on the KL8JA Asynchronous Interface

Part of the PDP-8/E Hardware Documentation
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

The M8655 KL8-JA OMNIBUS interface board supports asynchronous communications at a variety of baud rates, with either an RS232 or a current loop interface. Unlike the earlier KL8E, the board uses a UART chip, but most of the options that might be programmable in a more modern system are still selected by jumpers on the board.

In most respects, the M8655 board and the M8650 board are interchangable, but the M8655 can generate and detect parity, and it can support data widths from 5 to 8 bits, while the M8650 can support higher nonstandard baud rates and is thus more appropriate for high speed PDP-8 to PDP-8 links. There's also no way to send a break on an M8655, while this can be sent on an M8650 by jamming data into the transmit buffer while it is transmitting.

The following figure gives the General geography of the M8655 board:

      \\____//           \\____//          \\____//           \\____//
 ______||__||_____________||__||____________||__||_____________||__||_____
| o  ____      _ o  _o    _         o _o    _     _   o _ o  _   _ _ _ _ o|
|   |_   |    | |  | |   | |     o   : :   | |   | | ..| |  | |          ||
|     |  |    | |  | |   | |    FIL  : :   | |   | |   | |  | | |  CAN    |
|     |  |    |_|  |_|   |_|     o   :_:   |_|   |_| ..|_|  |_|  _ _ _ _ ||
|     |  |     _    _     _     _     _     _     _     _      _     ___  |
|     | B|    | |  | |   | |   | |   | |   | |   | |   | |    | |   |   | |
|     | E|    | |  | |   | |   | |   | |   | |   | |   | |    | |   |OSC| |
|     | R| .o |_|  |_|   |_|   |_|   |_|   |_|   |_|   |_|    |_|   |___| |
|    _| G| TTY _    _     _     _     _     _     _     _      _      _   |
|   |____| .o | |  | |   | |   | |   | |   | |   | |   | |    | |    | |  |
|             | |  | |   | |   | |   | |   | |   | |   | |  . | |    | |  |
|             |_|  |_|   |_|   |_|   |_|   |_|   |_|   |_|    |_|    |_|  |
|                                                           .             |
|   _     _    _    _     _     _     _                 _      _      _   |
|  | |   | |  | |  | |   | |   | |   | |               | |    : :    | |  |
|  | |   | |  | |  | |   | |   | |   | |    ____       | |    : :    | |  |
|  |_|   |_|  |_|  |_|   |_|   |_|   |_|   |    |      |_|    :_:    |_|  |
|   _     _    _    _     _     _     _    |    |       _     ___    ___  |
|  | |   | |  | |  | |   | |   | |   | |   |    |      | |   |   |  |   | |
|  | |   | |  | |  | |   | |   | |   | |   |    |  o o | |   |   |  |   | |
|  |_|   |_|  |_|  |_|   |_|   |_|   |_|   |    | NP SB|_|   |___|  |___| |
|   _     _    _    _     _     _     _    |    |  o o  _    XMIT    RCV  |
|  | | o | |  | |  | |   | |   | |   | |   |____| o o o| |    | |    | |  |
|  | |SWD| |  | |  | |   | |   | |   | |        EVN 1 2| |    | |    | |  |
|  |_|.o |_|  |_|  |_|   |_|   |_|   |_|          o o o|_|    |_|    |_|  |
|    W3                                                                   |
|_    .           __||               _||               __||              |
  |              |   |              |  |              |   |              |
  |______________|   |______________|  |______________|   |______________|
Given an M8655 board, various optional jumpers and switch settings must be inspected and possibly changed prior to any use of the board. The following sections treat the primary options that limit the range of baud rates supported, that select a particular rate, and that select the I/O device addresses used for the board.

Basic Communications Options

      \\____//           \\____//          \\____//           \\____//
 ______||__||_____________||__||____________||__||_____________||__||_____
| o  ____      _ o  _o    _         o _o    _     _   o _ o  _   _ _ _ _ o|
|   |_   |    | |  | |   | |     o   : :   | |   | | ..| |  | |          ||
|     |  |    | |  | |   | |    FIL  : :   | |   | |W5W2 |  | | |  CAN    |
|     |  |    |_|  |_|   |_|     o   :_:   |_|   |_| ..|_|  |_|  _ _ _ _ ||
|     |  |     _ 
|     | B|    | |                |                   |
|     | E|W1  | |             Null after          Max baud
|     | R| .o |_|             line feed.            rate
|    _| G| TTY
|   |____| .o --- 110 baud
The TTY jumper position (sometimes bridged by a zero-ohm resistor) is required for use at 110 baud with a current loop interface. At higher rates, this jumper (or zero-ohm resistor) should be removed.

The FIL jumper position, if jumpered, causes 4 nulls to be inserted after every linefeed transmitted. This provides the correct delay for the DEC VT05 terminal running at 2400 baud when powered from a 60 Hz line, and the wrong delay at almost any other baud rate or power environment for almost any terminal that requires a delay after linefeed.

A zero ohm resistor or wire jumper should be inserted at either W2 or W5, but not both. This selects the highest baud rate the board will support.

	W5 (left) - 19200 baud
	W2 (right) - 9600 baud
The originl GI UART could only handle 9600 baud; the SMC COM 2017 UART used on later boards can handle either baud rate.

Jumpering for Error Reporting

|   _     _
|  | | o | |
|  | |SWD| |
|  |_|.o |_|
|    W3
|_    .           __|
  |              |
  |______________|
The split lugs marked SWD are in parallel with the jumper location W3. If no jumper is present in either location, the M8655 KL8-JA board will look, to software, exactly like an M8650 KL8E board.

If a jumper is present at this location, the board recognizes a new software option allowing reporting of the UART status word with each character read. The command to turn this option on and off is:

   KIE (6xx5) -- Bit 11 of AC is the interrupt enable bit, as usual;
                 Bit 10 of AC is the status word report reqest bit.
If the status report request bit is set, the data returned in AC by the KRS (6xx4) and KRB (6xx6) commands is formatted as follows:
      bit[0]     -- error detected.
      bit[1]     -- parity error detected in this character
      bit[2]     -- framing error detected, this might not be a character
      bit[3]     -- overrun error detected, previous character lost
      bits[4-11] -- the data read (as usual)

Jumpering For Data Format

				_      _      _   |
			       | |    | |    | |  |
			       | |  . | |    | |  |
			       |_| W4 |_|    |_|  |
				    .             |
				_      _      _   |
			       | |    : :    | |  |
		    ____       | |    : :    | |  |
		   |    |      |_|    :_:    |_|  |
		   |    |       _     ___    ___  |
		   |    |      | |   |   |  |   | |
		   |    |  o o | |   |   |  |   | |
		   |    | NP SB|_|   |___|  |___| |
		   |    |  o o  _    XMIT    RCV  |
		   |____| o o o| |    | |    | |  |
			EVN 1 2| |    | |    | |  |
			  o o o|_|    |_|    |_|  |
						  |
			       __||              |
			      |   |              |
	       |______________|   |______________|
There are 5 pairs of split lugs and one zero ohm resistor or jumper wire in this group. In general, if none of these are jumpered, the board will behave like an M8650.
SB controls the number of stop bits.
W4 is a zero-ohm resistor in parallel with SB.
If either jumper SB or W4 is present, 1 stop bit will be appended to each character transmitted.
NP controls parity generation and checking.
If the jumper is present, a parity bit will be appended to transmitted data and inspected on received data.
EVN controls the sense of the parity bit.
If the jumper is present, even parity will be used; otherwise, odd parity will be used.
NB1 and NB2 control the number of data bits per character.
NB1,NB2
 0   0      8
 1   0      7   0 = jumper absent
 0   1      6   1 = jumper present
 1   1      5

Switch Settings

		      ___    ___  |
		     |   |  |   | |
		     |   |  |   | |
		     |___|  |___| |
		     XMIT    RCV  |
		      | |    | |  |
		      | |    | |  |
		      |_|    |_|  |
				  |
		  |              |
		  |              |
		  |______________|
The two DIP switches are divided logically into 2 groups of switches to control the baud rate and device addresses. The bottom 6 switches on each DIP switch cluster set the device addresses. The left switches handle the transmit address, the right handles the receive address. Both switch groups have the same format:
	 |  ==-  | MD3 MSB of device address
	 |  ==-  | MD4
	 |  ==-  | MD5   For all bits,
	 |  ==-  | MD6   ON = 1, OFF = 0
	 |  ==-  | MD7
	 |  ==-  | MD8 LSB of device address
	 |_______|
The 3 baud rate bits, B1, B2, B3 give the baud rate:
	    _______           _______
	   |       |         |       |
	   |  ==-  |B3       |  ==-  |B1
	   |  ==-  |R=150    |  ==-  |B2

  B1 B2 B3                                      
   0  0  0  =  110 baud
   0  0  1  =  150 baud
   0  1  0  =  300 baud    On = 1, Off = 0
   0  1  1  =  600 baud
   1  0  0  = 1200 baud
   1  0  1  = 2400 baud
   1  1  0  = 4800 baud
   1  1  1  = 9600 or 19200 baud
Jumpers W2 and W5 select which of the two highest baud rates is selected for by the final switch setting shown above. As a special case, if the R=150 switch is on, the receive baud rate is set to 150 baud; if this switch is off, the transmit and receive baud rates are the same.

Crystal or Integrated Oscillator

		      \\____//
		 ______||__||_____
		  o  _   _ _ _ _ o|
		    | |          ||
		    | | |  CAN    |
		    |_|  _ _ _ _ ||
		       _     ___  |
		      | |   |   | |
		      | |   |OSC| |
		      |_|   |___| |
				  |
As originally designed, the M8655 board used a large crystal can mounted over the large pad in the upper right corner of the board. This was not a satisfactory design, and DEC abandoned this can in later revisions of the board. Instead, the integrated circuit at position E4 (shown at OSC here) was replaced with a CTS 5.0688 MHZ oscillator (DigiKey part CTX110). This requires that the circuit traces connecting to pins 1 and 8 of E4 be cut (note that pins 7 and 14 were unused), and it requires that discrete components immediately above, below and to each side of E4 be removed (be careful not to remove the power supply decoupling capacitor below E4). 3 jumpers must then be installed: All these jumpers should be 30 gauge wire-wrap wire so that there is room to put the jumper in the same hole as other component leads. If your oscillator has a metal can, mount it with a plastic shim (DigiKey K266-ND, an OK Socket-Wrap ID tag, should work) so the case doesn't short to any traces on the board below it.

Unused sockets

The KL8-JA board contains two sockets that were apparently used in production line testing of the board. Nothing should be plugged into these sockets for normal operation.

		   \\____//           \\____//
	   _________||__||_____________||__||_____
	    o _o    _     _   o _ o  _   _ _ _ _ o|
	     : :   | |   | | ..| |  | |          ||
	     : :   | |   | |   | |  | | |  CAN    |
	     :_:   |_|   |_| ..|_|  |_|  _ _ _ _ ||
	      |                        _     ___  |
	   unused!                    | |   |   | |
				      | |   |OSC| |
				      |_|   |___| |
				       _      _   |
				      | |    | |  |
				      | |    | |  |
				      |_|    |_|  |
						  |
				       _      _   |
				      : :    | |  |
			     unused!--: :    | |  |
				      :_:    |_|  |

Cables

      \\____//
 ______||__||______
| o  ____        o
|   |_   |
|     |  |
|     |  |
|     |  |
|     | B|
|     | E|
|     | R|
|    _| G|
|   |____|
For an RS232 interface, you need the equivalent of DEC's BC01V cable. This mates with the Berg connector at one end and has a male DB25 connector at the other end, in conformance with the RS232 specification. For a current loop interface, you need a 7008360 cable with a Mate-N-Lock connector at the far end.

The following connector hardware will mate with the Berg connector on the board (DigiKey part numbers for AMP parts):

                  ASC40G-ND  40 pin gold socket connector
                  ASSR40-ND  strain relief for above
                  ASPT40-ND  pull tab to make it easy to unplug