• Please review our updated Terms and Rules here

PC8E interface to other tape readers

DrCharles

Experienced Member
Joined
Sep 2, 2014
Messages
101
Location
West Plains, MO
Crickets over at cctalk, so thought I would post here on a DEC-specific forum :)

The 8/A's power supply, RL02's and RX01 is all working fine (knocking on wood)... so far, no return of the dreaded Power OK "flicker". Maybe it really is fixed this time.. Famous last words, I know!

Now I am pondering my PC8E (M840) reader/punch control board, and a Slo-Syn TRP125 reel-to-reel photoelectric 8-bit paper tape reader that's been sitting unused in my other rack, probably for at least ten years when I got it very cheap. I'm thinking of interfacing them since I don't have a PC04 and no pressing need (or money) for one, although I do have the cables. The reader is already a TTL-level-compatible interface so that's one less thing to worry about. Anyway, the TRP125 can do 125 characters per second, not as good as the 300 of the PC04 but still much faster than the ASR-33 if I feel like messing with paper tapes...

The TRP125 just needs a single pulse of 30 us to 5 ms on either its forward pulse or reverse pulse inputs to move the tape one character, and the data is valid for a guaranteed 150 us after the pulse before the tape physically moves. Data can be read/strobed into the PC8E register any time the tape is not actually moving. (A real PC04 has a stepper motor controlled by the PC8E, so one of those four step outputs will probably work as a move pulse). Doubt I'd ever need to back up the tape one character.

Timing will need to be adjusted for the rep rate which is slower, since 1 character takes 8 ms on this one but 3.33 ms on the PC04. Also probably for some pulse widths. The clock is generated by a triggered multivibrator running at 1.67 ms, looks simple to tack on two additional capacitors to slow it down. I want to make as few mods as possible to the PC8E and they have to be easily reversible.

One thing missing from the TRP125 is a tape-out indication and motor stop, though. The TRP125 reel drive motors keep spinning until the tension arms are manually raised to a detent position that actuates microswitches to turn the motors off. The ASR-33 stops automatically when the tape has run out, which would be useful. I suppose I could add a microswitch to sense the presence of tape, or perhaps an LED/photocell to read the sprocket holes and provide pulses as the PC04 does. More of a mechanical challenge than an electrical one. Otherwise I'd have to "fake" the feed hole pulses (although it does look like I can just tie the Feed Hole line high and manually shut the reader off once the tape runs out).

I added a power switch to the reader's front panel, which cuts off the AC and asserts the Reader Offline signal. Also a Tape Feed switch to that input on the PC8E. The cable is just a 40-pin ribbon with 22 grounds and the rest are signals. I made a little board with a 40-pin header and pigtails from there to the reader connector, and left room for any logic circuits if I need to add them.

I got lucky on ebay and found the exact Amphenol 26 mating connector that I needed, including the locking hood. Right now I'm waiting for it to come in the mail, so decided to check out the reader to see if everything worked. Today I found that channels 1-3 work, 4-7 didn't work but 8 did. I thought I had some bad transistors (at least one had been replaced sometime in the past). Changed one to start with, and that channel still would not work although the photodiodes were not dead. I took a closer look at the manual, although the only one available online is the later model TRP125A which has eight individual photodiode bias pots (mine has a board with 8 slightly-different precision resistors that must have been factory-selected). Anyhow it turned out that the lamp needed the focus and alignment adjusted. Its filament isn't perfectly aligned with the bulb axis. It's somewhat more critical than I thought. Then all bits toggled with tape running except bit 7. I spotted some mungus that had gotten on the photodiode lens and a cotton swab with 91% alcohol took care of that problem. Now all 8 bits do their thing. Ready for connection!

My Tek 114 pulse generator is useful for generating the tape move pulses. When cranked up to 8 ms (full 125 cps speed) that tape really moves. I've never seen a PC04 running at 300 but it must look impressive.
 
The 1.67 ms master clock is adjustable down to 4 ms, so my 125 cps reader (8 ms cycle) is OK there.

However, I've found that the Feed Hole input is tied into the tape-out logic in such a way that I can't just tie it high (or low), or even use a free-running clock faster than 10 ms to keep the one-shot from timing out. It requires a falling edge within 10 ms (3 read times at 300 cps), but also has to be high in order for the read IOT to be enabled.

The reader has 14-18V unreg available at the connector (well, the -125A does, so I added that connection to my older -125). Now I'm building a dongle with the reader connector pigtails on one end, and a 40-pin header on the other for the ribbon cable from the PC8E.
The board will have a 7805 regulator and a 555 wired as a one-shot. Each time the move pulse is received, it will trigger the one-shot and send a fake feed hole low pulse back to the controller.

The Reader Offline switch has a 220 ohm pulldown to ground, so the Online/Offline switch I added will have to pull up to +5, which is now available on my dongle ;)

The other problem I see is that the reader is expecting a move pulse, one per character with a duration between 30 us and 5 ms. The motor drive pulses from the PC8E are square waves with 90 deg phase shift. I probably will have to add another one-shot. May be able to get by with a simple C-R-diode to differentiate to a short pulse, if there is one drive pulse per character and not two.
 
Today the master clock wasn't working at all. Q6 had an open base-emitter junction which was not immediately obvious due to some diodes in the circuit.
I figured out that a 555 timer wasn't going to work because it stays triggered until the input is no longer asserted. So I found an 'LS123 and used that instead. Still no reader flag despite the presence of pseudo-feed hole pulses.
After considerable scope time, I found E23 (a 7400, as usual made by Signetics) had a bad gate that couldn't pull all the way to logic 0 any more. Replaced that and things started to work, but still not according to the manual.
The rotate pulse shifts the 2-bit end-around register for the motor windings twice for every tape movement on the DEC reader, but I only need one pulse to move one character on the TRP125. If I just used one of the outputs it would only move every 16 ms, or half-speed (and that would also cause the tape-out timer to expire at 10 ms). After drawing a few timing graphs, the simple solution was an XOR of the two motor drive outputs, yielding a square wave output with a period of 8 ms = 125 cps. So the drive pulse width is 4 ms which is within the 30 us - 5 ms spec so I don't need the other half of the 'LS123 to make a shorter pulse width. This drive pulse also triggers the 'LS123 to output a 1 ms fake feed hole pulse every 8 ms.
After all that, the 8/A still wouldn't skip on reader flag, although flipping the tape feed switch would start things working... turns out I needed the other polarity output from the one-shot for the feed hole signal (since it apparently has to be low for the logic to initialize properly).
Now it does everything correctly according to the scope and toggle-in programs. Once the connector arrives I can hook up the dongle board to the physical reader and I expect it to work. There's still a possibility that DEC, Teletype and Slo-Syn didn't all use the same labels for tape hole 1..8 = LSB...MSB = data bit 11..4. Remember that Murphy's law is always valid!
 
It works!

It works!

Connector finally came. First class mail is not quick from Fairbanks, Alaska! Hooked everything up. The bits were in the right order - but the tape was reading every other character, moving two positions with each pulse. The pulse was 4 ms high every 8 ms, just as designed, and the manual says 30 us to 5 ms is OK. But maybe that's only for the slightly different later model reader.

Anyhow, it was an easy fix by just moving one wire from the XOR output that triggers the one-shot, to the output of the one-shot itself (which is used to send a fake feed hole pulse back to the controller). That pulse is a little over 1 ms and reliably moves the tape one character. No need to use the other half of the dual one-shot.

With the shortened drive pulse connected, and one minor wiring error to the feed switch corrected, the test tape I punched (which has one hole zigzagging back and forth across the tape) read into the AC correctly. Time to try the real thing.

I have a tape of 4K FOCAL which I'd never tried before. I keyed in the high-speed RIM loader, read in the BIN loader tape (a matter of seconds), then started loading the FOCAL tape which took only about a minute and a half including the two checksum halts/restarts.
Start the 8/A at 0200 and sure enough, "Congratulations, you have loaded FOCAL-69 on a PDP-8 computer! " :thumbsup:

So I guess I have an "if all else fails" method of getting my system up. I wonder how many feet of paper tape OS/8 would need... :D

The little interface board and the Amphenol 26 connector
P10-06-15_13.56.jpg

The reader seen from the top
P10-06-15_13.56[1].jpg

Reader
P10-06-15_14.01.jpg

Reader mounted in the rack
P10-06-15_14.40.jpg
 
Sure... Vince Slyngstad and I "cloned" the original DKC-8AA some time around 2005, with boards that are physically identical to the original 2-board set. 0.6" instead of 0.3" LED 7-segment displays though, and better-spaced pushbuttons. We also found and fixed a couple of design errors in the DEC schematic.

Recently, though, while using the switch register extensively, I discovered there's a ground bounce problem with the SR latches/buffers causing corruption of the SR, which likely existed in the original and was definitely exacerbated by modern fast versions of the 7400-series logic. Vince is currently re-laying out board 2 with four layers, so there will be full power and ground planes in the middle two layers. The front panel board 1 just has buttons, displays and TTL decoder/drivers and doesn't need any special revision.

Once we get a batch of boards made (possibly in the next couple of weeks), I'll build another board 2, connect it to the Option 1 board and the existing board 1, and see if we've got it fixed for good.

Here is some info on his extensive PDP-8 website: http://www.so-much-stuff.com/pdp8/kc8a/kc8a.php

And a couple of slightly better pics of the one I built (cheap cell phone camera):
P10-08-15_19.36[1].jpg

P10-08-15_19.36.jpg
 
Once we get a batch of boards made (possibly in the next couple of weeks), I'll build another board 2, connect it to the Option 1 board and the existing board 1, and see if we've got it fixed for good.

Here is some info on his extensive PDP-8 website: http://www.so-much-stuff.com/pdp8/kc8a/kc8a.php

Thanks for the pointer. I thought that I'd been all over Vince's site in years-past, but somehow I managed to miss that project! Very nicely done.

If there are any remaining PCBs in the new-batch and you decide to offer them to others, then please sign-me-up for two pair :->. Merci beaucoup!
 
Back
Top