I can't get my ASR33's tape reader to stop
missing occasional
characters! I have lubed it and tried setting it according to the
procedures in the manual but that is very frustrating since many
of the adjustments interact.
May I ask a very simple question. What machine are you using this with
(from the description below, I assume a PDP8). If it _is_ a PDP8, do you
have the reader control relay mod fitted correctly? If not, then you
_will_ drop characters I think.
Using a test tape punched on the same TTY with 72 printable
characters per line (incrementing from space through Z and
punctuation, then LF + CR at end of each line), if I carefully
adjust the detent position I can achieve one (and occasionally 3
or 4 in a row) "skipped" characters about every 10-20 lines which
is roughly once every 1000 characters on average.
That's very odd. The most obvious mechanical problem would be wear on the
ratchet wheel teeth in the reader. But that would cause problems once (or
n times) for every revolution of that wheel (and the drive sproket) --
say every 20 characters. Not random problems a few times in every 1000
characters
You say it drops characters. Do you mean the tape feeds 2 chracters for
one solenoid pulse? Or that for some reason the ASR33 sometimes fails to
transmit a character (i.e. the distributor clutch doesn't engage for some
reason)? Or does it send the correct number of characters but mangle a
few of them?
I can load short tapes like the BIN loader and then the second
short section of 4K FOCAL successfully, but the long first section
of FOCAL (which takes over 10 mins. to read in) invariably gives a
checksum error. In other words, not good enough.
The missing characters are not being read into the data stream at
all, nor are the previous or next characters duplicated. I wrote a
program to just read the characters into the AC and halt if a NUL
(000) is read. All 0's are indeed being read on the missed
character and I think this is because the contact pins are all
held down if there is a "misfeed" where the tape moves just enough
to put the pins between rows of holes, but not far enough to skip
to the next.
So what you're saying is that it sends the correct number of chracters,
but some of them are corrupted to 0's? Either your read pins are
misaligned (they should come through the middle of the tape holes --
check this), or the contacts are sometimes not making properly. Clean
them, and check the wiring --- particularly to the 'common' plate contact
-- for problems.
Try running the reader without tape, with the EOT sensor held down. It
should then send all 1's. Check that it does (use the PDP8 for this with
a similar program to yhe one you've written already, just get it to halt
if the character is not all 1's). Let it run for many minutes. If it
halts, then it's a good bet you've got contact or wiring trouble (it
can't be alignment with the tape problems, as there's no tape in the reader).
A really Heath Robbinson (Rube Goldberg?) trick that I once used for
something like this goes as follows.
1) Set up the system as you have it with the ASR33 in a darkroom.
2) Arrange for the PDP8 to set an output bit if it reads a NUL. Get that
output bit to trigger an electronic flashgu (an SCR is useful here, an
opto-isolated one even better).
3) focus a camera on the reader mechanism. Set the aperture appropriately
for the flashgun. Make the room dark, hold the shutter open on B, let it run
4) When the flash fires, close the shutter, turn everything off
5) Develop the film and hope that it shows you what the problem is.
-tony