Subject: It works!

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: Thu, 11 Feb 1993 20:03:16 GMT

As of today, I have a working PDP-8/F with a KL8-E console interface
working at 1200 baud to my old ADM31.  Thanks to all, particularly
Charles Lasner and Paul Pierce, for their help.  I had to manufacture
my own BC01V (7 wire subset) cable and my own null modem (DEC H312A)
in order to make it work.  Fortunately, I have the DEC drawings of
the BC01V and the INMAC catalog has the schematic for the H312A (look
under null modems).

So, if I can get my RX01 drives up, and if I can get my disks back
from Lasner (hint hint!), I'll have a system.

In addition, if I can get another 19.661 Mhz crystal, I'll be able
to bring up another KL8-E at a sensible baud rate (all the others I
have work at 110 baud, unfortunately) and run Kermit to get more
software.

So, my questions:  Where can I get 19.661 Mhz?  I've looked in a few
catalogs, and I can't find anything closer tha 20 Mhz.  Will 20 Mhz
work?  It's off by 2%, but that's less than 1/4 of a bit time for
a 10 bit data frame, so if the receiver keeps anywhere near the center
of the bit, it ought to work.  Does anyone have experience with this?

A second question:  Everyone, even Charles Lasner, tells me to remove
the 0.47 mfd capacitor (C66 in DEC's schematics for the M8650) that
is used as a low pass filter in the current loop interface.  Why?
Looking at the schematics, it clearly doesn't matter for EIA RS232
use, and DEC's engineering specification for the KL8/E interface,
part G (Capabilities of the 20 milliampere receiver) doesn't say to
remove it, it says to halve it for every doubling of the baud rate
over 110 baud, but only if you're going to use the current loop
interface at such speeds.  When they built the board, they expected
the current loop to be used only at low speeds, and that expectation
certainly holds today!
				Doug Jones
				[email-masked]

---

From: [email-masked] (Charles Lasner)
Date: Thu, 11 Feb 1993 23:01:45 GMT

>the BC01V and the INMAC catalog has the schematic for the H312A (look

Does the ADM31 need anything to make it be compatible at 2400 baud or higher?
The KL8E card can do 2400 "officially" and 4800, 9600, 19200, 38400, etc.
"unofficially".

To implement the higher speeds, note that 2400 is usually added as an ECO,
thus its placement is such that it isn't inline with the other split lug
jumpers, rather to the left of all of them.  All splt lug jumpers have one
side in common.  Also, this common leg runs along the upper right hand edge
of the board near a divider chip in the upper right hand corner.  That chip
is the source for all of these baud rates.  If you apply a scope to various
pins right next to that land run, you will find all those faster rates are
available merely by applying a tiny shunt from the land to the appropriate
pin.  (Of course leave off all of the "official" baud rate connections.

>from Lasner (hint hint!), I'll have a system.

Do you have an RX8E?  Does it work?

>have work at 110 baud, unfortunately) and run Kermit to get more

The usual mod these days is to scrap the entire oscillator.  If you look at
the board, removing all of those analog oscillator components and the pulse
transformer leaves room for the following:

Put a 19.6608 MHz can-type oscillator (actually a common frequency!) in the
place of the pulse transformer.  First apply a jumper from the output pin of
the layout to where the oscillator output would go into the first TTL chip.  I
then apply an insulating layer and solder in the can.  Amazingly enough, the
+5 and grounds are all in the right place!  So, you wind up neatly with a
canned oscillator, one buried jumper underneath the can, and a lot of empty
space on the board.  To be neat about it, I then fill in the holes of the
former components with solder.

A word about device code settings on the KL8E:

Note that there is a hack here:  the factory jumpers are *not* the same as
the user-settable jumpers.  Putting in all factory jumpers (which is sometimes
implemented with 0-ohm jumper "resistors") yields device 03/04 while a
strange assortment of loops gets you whatever you want for a pair of codes.
Device 40/41 is recommended as the first serial port pair and is default for
Kermit-12.

>of the bit, it ought to work.  Does anyone have experience with this?

This is inviting trouble, especially with certain modems.  Look harder in
catalogs like Jameco and Digi-key.

>the current loop to be used only at low speeds, and that expectation

The noisy current loop spec is overkill associated with the need to suppress
the rather noisy commutator output of an actually mechanical TTY.  All other
devices aren't particularly noisy.  Moreover the KL8-JA has a jumper setting
to remove it entirely.  No one ever fooled around with smaller values.  Just
cut it off completely, or let it hang on the ground end if you want to consider
using a teletype in the future.  Also note that current loops are inherently
low-impedance so are not apt to pick up noise in the way RS-232 are usually
prone to.

>				[email-masked]

cjl (nursing an intermittent 8/a box :-(.)

---

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: Fri, 12 Feb 1993 01:15:49 GMT

>From article <[email-masked]>,
> Does the ADM31 need anything to make it be compatible at 2400 baud or

Nope.  It runs fine at 9600, but the modem I'm using is 1200, so I jumpered
my KL8E at that speed for the time being.

> The KL8E card can do 2400 "officially" and 4800, 9600, 19200, 38400, etc.

Also 76800, if you jumper pin 6 of E22 to the common bus for speed
selection (admittedly, it's a long jumper).

> To implement the higher speeds, note that 2400 is usually added as an ECO,

It's in the etch on the two M8650 boards I've looked closely at.

I've made up a 1 page cheet sheet summarizing all the jumperings on the
M8650 board.  The DEC schematics and technical specs are far too difficult
to read (particularly if you're working from slightly faint Xerox copies.

> Do you have an RX8E?  Does it work?

Sure I have an RX8E -- The PDP-8/A I bought and mailed to you also had an
RX8E board in it.  That's why I bought it in the first place.  Does it
work?  If I had some disks with known stuff on them (such as a bootable
OS), I'd be able to find out a bit faster.

In any case, I can get a new (well, reconditioned, but under warantee)
RX8E for $75, and if I don't find one soon for my PDP-8/E, I'll probably
spring for it, even though that would make it cost more than both PDP-8
systems combined.

> Put a 19.6608 MHz can-type oscillator (actually a common frequency!) in
> the place of the pulse transformer.

That's a cute idea, but I'd rather just put in a crystal.  After all, it
something already works well enough, why improve it?

> To be neat about it, I then fill in the holes of the former components
> with solder.

Curious, my approach to such neatness is to use a solder sucker to pull
out all the solder from unused plated through holes.  I suppose it's 6 of
one and half-dozen of the other.  Wave soldered boards with plated
through holes tend to have them filled, hand soldered boards tend to have
them empty.

> A word about device code settings on the KL8E:

What kind of strange person invented those jumpering patterns!  They're
crazy!  I figured them out, with the help of the schematics and DEC
technical specs, but each one of those little clusters of pins seems
to have been designed by a different committee.

> Note that there is a hack here:  the factory jumpers are *not* the same
> as the user-settable jumpers.  Putting in all factory jumpers (which is
> sometimes implemented with 0-ohm jumper "resistors") yields device 03/04
> while a strange assortment of loops gets you whatever you want for a
> pair of codes.

Fortunately, the board I worked on first was still set at its default
factory setting, so I could ignore the wierd jumpering.  The second board
I've started cleaning up, though, was wired for addresses 67 (receive)
and 66 (transmit).  That took me a while to figure out.

> Device 40/41 is recommended as the first serial port pair and is default for

DEC's documentation recommends that the second KL8E be put at addresses
30 and 31, but it says 40 and 41 are also ok as long as you don't have
a synchronous modem control.  I can see 40 and 41 being preferred by Kermit
because they were used for the PT08 auxiliary TTY ports on older PDP-8
systems.

> cjl (nursing an intermittent 8/a box :-(.)

I hope it's not the 8/a I sent you!

					Doug Jones
					[email-masked]

---

From: [email-masked] (Charles Lasner)
Date: Fri, 12 Feb 1993 14:24:08 GMT

>my KL8E at that speed for the time being.

So you can run your machine remotely?  I thought you are using the ADM-31 for
the console on a "local" basis.  In any case, as soon as there are two such
interfaces of the KL kind, one will be 03/04, and the other geared to external
comm stuff.  BTW, if you expect to use a serial printer, then you need yet
another interface, unless you switch back and forth between the printer and
the comm connection.  The only implication of this is that you won't be able
to use the legitimate Kermit-12 command:

Kermit-8/e>GET LPT: {filespec}

since Kermit-12 allows non-file structured devices for output.

>selection (admittedly, it's a long jumper).

Yes, my point was only that it's real easy to implement up to 38400 on the
edge of the module.  (Also not too many terminals can do 76800.)

>It's in the etch on the two M8650 boards I've looked closely at.

And physically located away from the "grouping" of the lower-speed lugs.  
Apparently DEC actually believed that 1200 baud was "fast enough" when this
card was designed.

BTW, how do you eliminate the extra stop bit which is set for the benefit of
the 110 baud Teletypes?

>to read (particularly if you're working from slightly faint Xerox copies.

I hope the cheat sheet includes removing the capacitor lead for 20 ma. usage
above 110 baud, and the 1/2 stop bit consideration on input and output.  Also
you should give cable connections as they appear in the Berg connector so that
others can use the info.  This includes the jumper in the cable that must stay
at the Berg end that determines whether the interface is talking to a passive
current loop or to an RS-232 connection.  Incidentally, the M8650 uses the
same chips as the typical IBM-PC serial port for RS-232 <-> TTL conversion,
the 75188 and 75189 aka 1488 and 1489.

>spring for it, even though that would make it cost more than both PDP-8

OK, since you have finally gotten your machine apparently up, it's time to
get some media back to you.  I will perform illegal stack manipulation
operations on my personal stack to elevate the priority.  (Those paying
customers are just gonna have to wait :-).  Besides, most of them are spoiled
by quick turnaround!)

>something already works well enough, why improve it?

By the time the KL8-JA was released, also with the same oscillator circuit,
the KL8E was being phased out, since apparently DEC has never known of any
reason to make a card capable of more than 19,200 baud.  (Perhaps even today.)
Also, KL8-JA has the VT05-oriented LF kludge where 4 nulls are sent after a LF 
character, *then* the flag comes up.  This is a (quite gross) way to make a
VT05 be compatible with TTY: software assuming a 60 Hz line supply and the
use of the VT05 at its max baud rate of 2400.

Since it was perceived as a 2400 baud max card, and the KL8-JA can much more
easily be setup mostly with DIP switches (and a few lugs; mostly stuff not
switched around too often), the card was eliminated wherever possible.  Thus,
unlike the M8655 and the M8330 CPU Timing Generator, the M8650 was never given
the oscillator phaseout upgrade.  All of the popular cards were redesigned to
use canned oscillators.  The LAB-8/e clock and KL8E missed that boat, but
the failure rate of the popular cards was too high, so they officially upgraded
them.  My changes merely mimic DEC's actions on these other cards.  The
relevant ECO's cite many occurences of production yield problems as well as
field failures.  (Part of the problem is that the crystals DEC used were
somewhat fragile compared to typical, and couldn't hold up to typical Field
Circus antics.)

>through holes tend to have them filled, hand soldered boards tend to have

I have available a vacuum desoldering station.  I prefer the solder be put
back by hand *after* sucking it all out, so that a uniform amount goes in
to mimic the look of wave-soldering, which is what would have happened if
DEC had ordered the modification in production.  Also, you will never cut
your hand on a board area I worked on :-).

>to have been designed by a different committee.

I always assumed that they are merely the bizarre after-affects of implementing
the hack of the factory split lugs being where they are to neatly have all be
installed, and automagically you get device 03/04.  Similar effects occur
on the M8329 and M8342 parallel versions.

>and 66 (transmit).  That took me a while to figure out.

Note that those values violate the convention of receive being one less than
transmit, not one more!  I assume the assigner of the codes misunderstood the
requirement.  Also, there have been several kludges, usually 65/66, not 66/67
whereby someone uses a serial device as a printer.  The notion is that the
standard system software assumes that device 66 is a parallel line-printer,
and thus can, with impunity, merely output as necessary on device 66, since
this is true for an actual parallel printer.  (This is a weak spot of OS/8,
which while proclaiming device independance, contradicts itself with regard to
certain flakey areas, such as Batch auto-detection of a device 66 LPT: to 
output a batch log onto, or Fortran IV having a built-in interrupt-driven
device handler for the LPT:, but only if it's the device 66 one; you have to
go out of your way to disable this if this isn't really the case!  The P?S/8
implementation is cleaner: device 66 is the only printer supported everywhere
when the system is run in the "4K" mode (what do you want in a 4K total
memory machine!) but when more memory is available (8K or more) the system
can run with a logical overlay that reassigns the LPT: function to a
configurable device.)

My guess is that the former user (as did others) used the board as a pseudo
parallel printer, assuming that the device 66 output was minimal enough to
not invoke the reverse direction ^S/^Q protocol merely because the printer
had a large enough buffer for most trivial purposes (such as running OS/8
BATCH.SV), and that user-written applications handled the protocol correctly
for lengthy printout.

I have available a serial handler for OS/8 LPT: usage where the printer is
device 65/66.  All output through this handler is properly handled regarding
the protocol in the reverse direction.  However, some small tradeoffs were
made to allow the handler to fit in the same space as the original "LPSV"
handler:

1)	Certain "worthless" constants are pragmatically placed in the handler
as cues to certain programs that use them.  They were relevant in the original
parallel version, but are otherwise merely wasted space here.  This allows
the options that would ordinarily be implemented with the commands SET LPT
UC|LC and SET LPT WIDTH 80|132.  However, the SET program is "too smart" for
its own good, and does not recognize my version as the LPSV handler for
purposes of maintaining these values, even though they are in the proper
places.  This isn't fixable, so the user must zap the values in manually, but
at least the functionality is available.

2)	The "feature" of converting ESC chars to a "$" on output has been
eliminated.  However, this then implements the true feature of being able
to pass ESC chars on to the printer.  Many serial printers need some form
of initialization, often with ESC sequences.  I use the DS-120 modification
to the LA-36 to up the speed from 30 CPS to 165 CPS, and download ESC
sequences to modify the character set and tabs definitions, etc.  You can
merely COPY the relevant file to LPT: this way.

3)	The feature of simulating horizontal tabs every 8 spaces is eliminated.
The printer has to accomplish this itself.  However, in many printers, this
makes the device print faster.  I believe there are few terminals suitable for
use as a serial lineprinter that can't support this internally.  Printers such
as LA-36 do not count here, since they don't require reverse protocol, and
thus an alternate handler can be used where all functions are simulated,
including tabs and form-feeds, since the space recovered by not needing the
protocol handled allows for counting columns, etc.  (This handler is available
elsewhere.)

>because they were used for the PT08 auxiliary TTY ports on older PDP-8

The use of 30/31 is curious:  The AX08 is hardwired for device 3X where X is
0-7.  This prevents using with a 30/31 serial port.  Also, the KT8A memory
management unit has an option to eliminate half of the extension if you want
to preserve codes 30-37, thus limiting memory to 64K max.  This seems an
awful trade-off for using 30/31.  The VT78 uses 32/33 as the designated
serial LPT: and there are awful OS/8 handlers for it (mine really is a
better tradeoff of features).  30/31 is available there also as a comm port
and is what to use on this IM6100-based machine which can't have any of the
problematic devices re 30/31 on it anyway.  All DECmates retain the 32/33
LPT: (with incompatibilities, etc.), but the comm ports are totally different,
etc.

>I hope it's not the 8/a I sent you!

No, my 20-slot box, purchased new in 1977, is experiencing its first failure.
The problem is intermittently it won't power on at all.  The local/remote
switch is set to remote on the limited function panel, since it is turned
on by the 8/e box.  When that switch is thrown to local, the 8/e powers on
when the 8/a DC power switch is thrown, so the problem isn't in that
connection per se.  Yet, when it fails, there seems to be no AC power draw
at all.  I assume that the 8/a box, similar to the 8/e box, has a small
auxiliary power supply inside of it that in turn controls the larger one, since
the way either box is controlled is a matter of when the 8/e key switch is
thrown, the ground return for the relay in the 8/e box is completed, thus 
powering up the larger transformer AC feed, etc.  This ground return connection
is in turn also brought out to the 8/A box and connected in the rear with
a small jumper cable back to the 8/e interlock plugs.  I will also attempt
to determine if the 8/a can turn on an 861-type power controller.  As I
remember it, the 861 requires power coming out of the 8/a box to enable it,
or at least when a 3-wire straight-through cable is used between them.  In
any case, I'm sure it's the same scheme as the -11 when used this way.  (I
don't do this, since my power controller is the older delay type for the
benefit of DECtapes, etc.  But I do have an 861 available for testing out
whether the 8/a box actually outputs the 28V control voltage, to determine
if that's what craps out when it fails.  Just have to catch it when it *is*
working to check this out.  Anyone familiar with PDP-11 hookups to 861
controllers who can advise me on this?  I need to know how a CPU box would
connect to an 861, presumably with a 3-wire cable straight-through pin-for-pin,
but who knows?  The 8/e-8/a cable has pins 1 and 3 going to 1 and 3 on the
other end, but a jumper from 2-3 on the 8/e end of the cable as well!  All of
this will help to isolate what's actually wrong with my main machine's 20-slot
8/a box, which contains SCSI controller, 8/a memory, option boards, front
panel, etc.  The box Doug sent me is a 12-slot box, can't support core memory,
in need of some repair of broken wires, etc.  It's earmarked for a different
project.)

>					[email-masked]

cjl

---

From: [email-masked] (john r strohm)
Date: Fri, 12 Feb 1993 15:58:25 GMT

In article <[email-masked]> [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879) writes:

>So, my questions:  Where can I get 19.661 Mhz?

JAN Crystal in Florida and International Crystal Mfg in Oklahoma carry a
very large stock, and they grind to order at very reasonable prices.
They may know exactly what you need if you say "PDP-8 19.661 MHz", but
you would be better off to call them and ask what they need.  Probably,
if they don't know what it is, they will ask you for a schematic of the
circuit that uses the crystal.

Reasonable prices == should be less than ten bucks or so, certainly less
than twenty.  (Guessing; I haven't dealt directly with them, but friends
have.)

---

From: [email-masked] (Charles Lasner)
Date: Fri, 12 Feb 1993 21:18:56 GMT

>than twenty.  (Guessing; I haven't dealt directly with them, but friends

True, but then you have to figure out if it's a series-resonant or parallel-
resonant crystal.  Worse, the wrong type will probably work - at the wrong
frequency.  The schematic will help them though, but DEC's is unnecessarily
complicated because it's someone's pet circuit perpetuated into many designs,
and inherently unreliable.

CTS Knights and Motorola make the crystal cans, as well as various foreign
brands (Toyo, etc.) and this isn't an obscure value, although admittedly
not in the "top ten" list of popular crystal speeds for all known world-wide
applications as currently practised in the entire industry.  In any case,
a canned oscillator just works; it's none of your business how the innards
does what it does, it just does it!

I think about 9 years ago, Jameco and/or Digi-Key were selling the correct
beast for about $5 all you wanted.  Note also the extra digit of precision
on the can type, since 19.6608 is indeed the right number to those many
digits.

BTW, the KL8-JA uses an alternate pet circuit from of all places the original
R-series cards complete with a large crystal, plug-in holder, and a fairly
complex analog circuit, although less complicated than the KL8E/CPU/DK8EP
one.  That one uses a fairly popular frequency of 5.0688 MHz which is
readily available.

I was able to obtain a supply of crystals locally in NYC from a recommended
vendor of crystals for use with the 5016/8016 family of baud-rate generator
chips such as are used in the DECmate, etc.  This frequency will allow
the generation of 16x nominal baud rates for all of the standard DEC
speeds as are found in the VT78 and up.  Using that chip and crystal will
allow a custom oscillator card to be made to replace the oscillator found in
the PDP-12/8/i/8/l as well as the multi-channel interfaces such as the
four-channel interface inside of the 8/l (expander or CPU box?  I forget which)
which all use a card with an adjustable oscillator to provide 16x baud rate and
also 2x baud rate using on board dividers.  Three flip-flops and the baud-rate
chip and crystal and a dip switch can fit comfortably on a small module, etc.
Nowadays you can find a 5.0688 canned type, and indeed the KL8-JA has been 
ECO'd to use it.  As long as the can is plastic top, there shouldn't be a 
problem.

cjl

---

From: [email-masked] (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: Fri, 12 Feb 1993 22:35:13 GMT

>From article <[email-masked]>,
> BTW, how do you eliminate the extra stop bit which is set for the benefit of

There's a jumper to select between one and two stop bits.

> I hope the cheat sheet includes removing the capacitor lead for 20 ma.
> usage above 110 baud, and the 1/2 stop bit consideration on input and
> output.

Yup, my cheat sheet has all that!

> Also you should give cable connections as they appear in the Berg
> connector so that others can use the info.

I made up a second cheat sheet for how to wire a BC01V cable with a 40 pin
berg connector on one end and a DB25 on the other, complete with the needed
jumpers in both ends.  I started with DEC's BC01V schematic, then
simplified it by eliminating pins that don't matter for most RS232 devices
so I could use 8 wire flat modular telephone cable (which is very
inexpensive but unshielded).  My cable supports pins 1-8 and 20 of the
RS232 spec, which is more than most equipment ever uses.

I also threw in the schematic for a DEC null modem (the one recommended
in the KL8E engineering specifications, coincidentally).

					Doug Jones
					[email-masked]