Add README.md
[pdp8.git] / hw / kl8ja / kl8ja.html
CommitLineData
81e70d48
PH
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html lang="en"><head>
3
4
5
6
7
8
9
10
11 <title>Doug Jones's KL8JA Board Documentaiton</title>
12 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
13 <meta name="Author" content="Douglas W. Jones">
14 <meta name="Language" content="English">
15 <meta name="editor" content="/usr/bin/vi">
16
17
18
19 <style type="text/css">
20 BODY { margin-left: 3%; margin-right: 3%; }
21 H2.SQUAT { margin-top: 0.5em; margin-bottom: 0.4em; }
22 H3.SQUAT { margin-top: 0.4em; margin-bottom: 0.3em; }
23 H4.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; }
24 P.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; }
25 UL.SQUAT { margin-top: 0.3em; margin-bottom: 0.2em; }
26 EM.O { font-style: normal; text-decoration: overline; }
27 EM.U { font-style: normal; text-decoration: underline; }
28 EM.S { font-style: normal; text-decoration: line-through; }
29 A { text-decoration: none; }
30 A.I { font-style: italic; text-decoration: none; }
31 TD.BOX { border: solid; border-width: thin; }
32 TD.SHADE { background: #CCCCCC; }
33 CAPTION { padding-top: 6px; }
34 DIV.HEADBOX { border: groove; border-width: 2px; background: #F0F0E0; padding-top: 1%; padding-bottom: 1%; padding-left: 5px; }
35 DIV.HEADBOX P { margin-top: 0.8em; margin-bottom: 0.8em; }
36 DIV.HEADBOX H1 { margin-top: 0.2em; margin-bottom: 0.4em; }
37 DIV.HEADBOX H2 { margin-top: 0.2em; margin-bottom: 0.4em; }
38 DIV.P25 { border: none; padding-left: 25%; }
39 DIV.INVISIBLE { font-size: 3px; letter-spacing: -5px; color: white; background: white; }
40 DIV.INVISIBLE A:link { color: white; }
41 DIV.INVISIBLE A:visited { color: white; }
42 DIV.INVISIBLE A:active { color: white; }
43 DIV.invisible A:active { color: white; background: white; }
44 </style>
45 </head><body link="#0000cc" text="#000000" vlink="#880088" bgcolor="#ffffff" alink="#880088">
46 <div class="HEADBOX">
47
48
49 <h1>Notes on the KL8JA Asynchronous Interface</h1>
50
51
52 <p>
53
54 Part of <a href="http://www.cs.uiowa.edu/%7Ejones/pdp8/hard8e/index.html">
55
56 the PDP-8/E Hardware Documentation
57
58 </a>
59 <br>
60
61
62
63 by
64 <a href="http://www.cs.uiowa.edu/%7Ejones/">Douglas W. Jones</a>
65
66 <br>
67
68
69 <a href="http://www.uiowa.edu/">
70 T<small>HE</small> U<small>NIVERSITY</small>
71 <small>OF</small> I<small>OWA</small></a>
72 <a href="http://www.cs.uiowa.edu/">Department of Computer Science</a>
73
74 </p>
75
76
77
78 </div>
79
80
81
82
83<p>
84The M8655 KL8-JA OMNIBUS interface board supports asynchronous
85communications at a variety of baud rates, with either an RS232 or a
86current loop interface. Unlike the earlier KL8E, the board uses a
87UART chip, but most of the options that might be programmable in a
88more modern system are still selected by jumpers on the board.
89</p><p>
90In most respects, the M8655 board and the M8650 board are interchangable,
91but the M8655 can generate and detect parity, and it can support data
92widths from 5 to 8 bits, while the M8650 can support higher nonstandard
93baud rates and is thus more appropriate for high speed PDP-8 to PDP-8
94links. There's also no way to send a break on an M8655, while this can
95be sent on an M8650 by jamming data into the transmit buffer while it is
96transmitting.
97</p><p>
98The following figure gives the General geography of the M8655 board:
99</p><pre> \\____// \\____// \\____// \\____//
100 ______||__||_____________||__||____________||__||_____________||__||_____
101| o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o|
102| |_ | | | | | | | o : : | | | | ..| | | | ||
103| | | | | | | | | FIL : : | | | | | | | | | CAN |
104| | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ ||
105| | | _ _ _ _ _ _ _ _ _ ___ |
106| | B| | | | | | | | | | | | | | | | | | | | | |
107| | E| | | | | | | | | | | | | | | | | | | |OSC| |
108| | R| .o |_| |_| |_| |_| |_| |_| |_| |_| |_| |___| |
109| _| G| TTY _ _ _ _ _ _ _ _ _ _ |
110| |____| .o | | | | | | | | | | | | | | | | | | | | |
111| | | | | | | | | | | | | | | | | . | | | | |
112| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |
113| . |
114| _ _ _ _ _ _ _ _ _ _ |
115| | | | | | | | | | | | | | | | | : : | | |
116| | | | | | | | | | | | | | | ____ | | : : | | |
117| |_| |_| |_| |_| |_| |_| |_| | | |_| :_: |_| |
118| _ _ _ _ _ _ _ | | _ ___ ___ |
119| | | | | | | | | | | | | | | | | | | | | | | |
120| | | | | | | | | | | | | | | | | o o | | | | | | |
121| |_| |_| |_| |_| |_| |_| |_| | | NP SB|_| |___| |___| |
122| _ _ _ _ _ _ _ | | o o _ XMIT RCV |
123| | | o | | | | | | | | | | | | |____| o o o| | | | | | |
124| | |SWD| | | | | | | | | | | | EVN 1 2| | | | | | |
125| |_|.o |_| |_| |_| |_| |_| |_| o o o|_| |_| |_| |
126| W3 |
127|_ . __|| _|| __|| |
128 | | | | | | | |
129 |______________| |______________| |______________| |______________|
130</pre>
131Given an M8655 board, various optional jumpers and switch settings must be
132inspected and possibly changed prior to any use of the board. The
133following sections treat the primary options that limit the range of baud
134rates supported, that select a particular rate, and that select the I/O
135device addresses used for the board.
136<p>
137</p><h2>Basic Communications Options</h2>
138<pre> \\____// \\____// \\____// \\____//
139 ______||__||_____________||__||____________||__||_____________||__||_____
140| o ____ _ o _o _ o _o _ _ o _ o _ _ _ _ _ o|
141| |_ | | | | | | | o : : | | | | ..| | | | ||
142| | | | | | | | | FIL : : | | | |W5W2 | | | | CAN |
143| | | |_| |_| |_| o :_: |_| |_| ..|_| |_| _ _ _ _ ||
144| | | _
145| | B| | | | |
146| | E|W1 | | Null after Max baud
147| | R| .o |_| line feed. rate
148| _| G| TTY
149| |____| .o --- 110 baud
150</pre>
151The TTY jumper position (sometimes bridged by a zero-ohm resistor) is required
152for use at 110 baud with a current loop interface. At higher rates, this
153jumper (or zero-ohm resistor) should be removed.
154<p>
155The FIL jumper position, if jumpered, causes 4 nulls to be inserted after
156every linefeed transmitted. This provides the correct delay for the DEC VT05
157terminal running at 2400 baud when powered from a 60 Hz line, and the wrong
158delay at almost any other baud rate or power environment for almost any
159terminal that requires a delay after linefeed.
160</p><p>
161A zero ohm resistor or wire jumper should be inserted at either W2
162or W5, but not both. This selects the highest baud rate the board will
163support.
164</p><pre> W5 (left) - 19200 baud
165 W2 (right) - 9600 baud
166</pre>
167The originl GI UART could only handle 9600 baud; the SMC COM 2017 UART
168used on later boards can handle either baud rate.
169<p>
170
171</p><h2>Jumpering for Error Reporting</h2>
172
173<pre>| _ _
174| | | o | |
175| | |SWD| |
176| |_|.o |_|
177| W3
178|_ . __|
179 | |
180 |______________|
181</pre>
182The split lugs marked SWD are in parallel with the jumper location W3.
183If no jumper is present in either location, the M8655 KL8-JA board will
184look, to software, exactly like an M8650 KL8E board.
185<p>
186If a jumper is present at this location, the board recognizes a new
187software option allowing reporting of the UART status word with each
188character read. The command to turn this option on and off is:
189</p><pre> KIE (6xx5) -- Bit 11 of AC is the interrupt enable bit, as usual;
190 Bit 10 of AC is the status word report reqest bit.
191</pre>
192If the status report request bit is set, the data returned in AC by the
193KRS (6xx4) and KRB (6xx6) commands is formatted as follows:
194<pre> bit[0] -- error detected.
195 bit[1] -- parity error detected in this character
196 bit[2] -- framing error detected, this might not be a character
197 bit[3] -- overrun error detected, previous character lost
198 bits[4-11] -- the data read (as usual)
199</pre>
200
201<h2>Jumpering For Data Format</h2>
202
203<pre> _ _ _ |
204 | | | | | | |
205 | | . | | | | |
206 |_| W4 |_| |_| |
207 . |
208 _ _ _ |
209 | | : : | | |
210 ____ | | : : | | |
211 | | |_| :_: |_| |
212 | | _ ___ ___ |
213 | | | | | | | | |
214 | | o o | | | | | | |
215 | | NP SB|_| |___| |___| |
216 | | o o _ XMIT RCV |
217 |____| o o o| | | | | | |
218 EVN 1 2| | | | | | |
219 o o o|_| |_| |_| |
220 |
221 __|| |
222 | | |
223 |______________| |______________|
224</pre>
225There are 5 pairs of split lugs and one zero ohm
226resistor or jumper wire in this group. In general,
227if none of these are jumpered, the board will behave
228like an M8650.
229<dl>
230<dt>SB controls the number of stop bits.
231</dt><dt>W4 is a zero-ohm resistor in parallel with SB.
232</dt><dd> If either jumper SB or W4 is present, 1 stop bit will be appended to
233 each character transmitted.
234<pp>
235</pp></dd><dt>NP controls parity generation and checking.
236</dt><dd> If the jumper is present, a parity bit will be appended to transmitted
237 data and inspected on received data.
238<pp>
239</pp></dd><dt>EVN controls the sense of the parity bit.
240</dt><dd> If the jumper is present, even parity will be used; otherwise, odd parity
241 will be used.
242<pp>
243</pp></dd><dt>NB1 and NB2 control the number of data bits per character.
244</dt><dd>
245<pre>NB1,NB2
246 0 0 8
247 1 0 7 0 = jumper absent
248 0 1 6 1 = jumper present
249 1 1 5
250</pre>
251</dd></dl>
252
253<h2>Switch Settings</h2>
254
255<pre> ___ ___ |
256 | | | | |
257 | | | | |
258 |___| |___| |
259 XMIT RCV |
260 | | | | |
261 | | | | |
262 |_| |_| |
263 |
264 | |
265 | |
266 |______________|
267</pre>
268The two DIP switches are divided logically into 2 groups of
269switches to control the baud rate and device addresses.
270The bottom 6 switches on each DIP switch cluster set the
271device addresses. The left switches handle the transmit
272address, the right handles the receive address. Both
273switch groups have the same format:
274<pre> | ==- | MD3 MSB of device address
275 | ==- | MD4
276 | ==- | MD5 For all bits,
277 | ==- | MD6 ON = 1, OFF = 0
278 | ==- | MD7
279 | ==- | MD8 LSB of device address
280 |_______|
281</pre>
282The 3 baud rate bits, B1, B2, B3 give the baud rate:
283<pre> _______ _______
284 | | | |
285 | ==- |B3 | ==- |B1
286 | ==- |R=150 | ==- |B2
287
288 B1 B2 B3
289 0 0 0 = 110 baud
290 0 0 1 = 150 baud
291 0 1 0 = 300 baud On = 1, Off = 0
292 0 1 1 = 600 baud
293 1 0 0 = 1200 baud
294 1 0 1 = 2400 baud
295 1 1 0 = 4800 baud
296 1 1 1 = 9600 or 19200 baud
297</pre>
298Jumpers W2 and W5 select which of the two highest baud rates is selected
299for by the final switch setting shown above.
300As a special case, if the R=150 switch is on, the receive baud rate is set
301to 150 baud; if this switch is off, the transmit and receive baud rates
302are the same.
303<p>
304
305</p><h2>Crystal or Integrated Oscillator</h2>
306
307<pre> \\____//
308 ______||__||_____
309 o _ _ _ _ _ o|
310 | | ||
311 | | | CAN |
312 |_| _ _ _ _ ||
313 _ ___ |
314 | | | | |
315 | | |OSC| |
316 |_| |___| |
317 |
318</pre>
319As originally designed, the M8655 board used a large crystal can mounted over
320the large pad in the upper right corner of the board. This was not a
321satisfactory design, and DEC abandoned this can in later revisions
322of the board. Instead, the integrated circuit at position E4 (shown at
323OSC here) was replaced with a CTS 5.0688 MHZ oscillator
324(DigiKey part CTX110). This requires that the circuit traces connecting to
325pins 1 and 8 of E4 be cut (note that pins 7 and 14 were unused), and it
326requires that discrete components immediately above, below and to each side
327of E4 be removed (be careful not to remove the power supply decoupling
328capacitor below E4). 3 jumpers must then be installed:
329<ul>
330<li>From pin 7 to ground (the left end of a nearby decoupling capacitor).
331</li><li>From pin 14 to +5 (the right end of a nearby decoupling capacitor).
332</li><li>From pin 13 to pin 8.
333</li></ul>
334All these jumpers should be 30 gauge wire-wrap wire so that there is room
335to put the jumper in the same hole as other component leads. If your
336oscillator has a metal can, mount it with a plastic shim (DigiKey K266-ND,
337an OK Socket-Wrap ID tag, should work) so the case doesn't short to any
338traces on the board below it.
339<p>
340
341</p><h2>Unused sockets</h2>
342
343<p>
344The KL8-JA board contains two
345sockets that were apparently
346used in production line testing
347of the board. Nothing should
348be plugged into these sockets
349for normal operation.
350</p><pre> \\____// \\____//
351 _________||__||_____________||__||_____
352 o _o _ _ o _ o _ _ _ _ _ o|
353 : : | | | | ..| | | | ||
354 : : | | | | | | | | | CAN |
355 :_: |_| |_| ..|_| |_| _ _ _ _ ||
356 | _ ___ |
357 unused! | | | | |
358 | | |OSC| |
359 |_| |___| |
360 _ _ |
361 | | | | |
362 | | | | |
363 |_| |_| |
364 |
365 _ _ |
366 : : | | |
367 unused!--: : | | |
368 :_: |_| |
369</pre>
370
371<h2>Cables</h2>
372
373<pre> \\____//
374 ______||__||______
375| o ____ o
376| |_ |
377| | |
378| | |
379| | |
380| | B|
381| | E|
382| | R|
383| _| G|
384| |____|
385</pre>
386For an RS232 interface, you need the equivalent of DEC's BC01V cable. This
387mates with the Berg connector at one end and has a male DB25 connector at
388the other end, in conformance with the RS232 specification. For a current
389loop interface, you need a 7008360 cable with a Mate-N-Lock connector at the
390far end.
391<p>
392The following connector hardware will mate with the Berg connector on the
393board (DigiKey part numbers for AMP parts):
394</p><pre> ASC40G-ND 40 pin gold socket connector
395 ASSR40-ND strain relief for above
396 ASPT40-ND pull tab to make it easy to unplug
397</pre>
398
399</body></html>