Debugging The M706 Teletype Receiver: Part 1

It's been quite a while since the last post, and now that my final exams are done I have time to get back to work on the PDP-12.

Recently, one problem that we have been experiencing is with the communication between our terminal computer and the PDP-12. When running OS/8 we noticed that sometimes when we press a key, the character that is printed on the screen is not the one that was pressed. The problem was sporadic at first, but quickly became more frequent, until it became frustrating to type anything because it would never send correctly.

Another problem was/is with sending BIN programs. We have never had problems with sending RIM programs, bit BIN programs always seemed to fail half of the time they were sent. Sometimes the BIN loader doesn't send correctly, sometimes the program being sent using the BIN loader stops sending half way through, or it will send completely, but it won't run.

Both of these problems seemed to be linked to the Teletype Receiver Flip Chip, M706.

I pulled out the Flip Chip and started to look at the 7474s, as they have a habit of going bad. It was only after I replaced a few that were potentially bad that I realized I pulled out the M706 used for the second serial port (M/N 09) and that one I needed to check was in M/N 06. I did end up finding and replacing a 470kΩ resistor that was out of tolerance, and I'm sure that the 7474s that I replaced would go bad eventually.

So, to test things a little further I swapped the two cards. I then ran a simple send/receive program

0400 6031 KSF Skip the next instruction when the keyboard buffer is            loaded with an ASCII symbol. Sets keyboard flag.
0401 5200 Jump to 0400
0402 6036 KRB Transfer contents of keyboard buffer to AC and clear            keyboard flag
0403 6046 TSF Clear printer flag. Transfer contents of AC to the              printer buffer register. Select and print the character.
0404 5200 Jump to 0400

All that this program does is wait for a character to be sent, and then echos it back to the terminal.

Here is some data that was collected
Sent Character Octal Value Binary Value Received Character Octal Value Binary Value
A 301 011 000 001 x 370 011 111 000
B 302 011 000 010 c 343 011 100 011
C 303 011 000 011 | 374 011 111 100
x 370 011 111 000
D 304 011 000 100 f 346 011 100 110
E 305 011 000 101 q 361 011 110 001
~ 376 011 111 110
1 261 010 110 001 ~ 376 011 111 110
2 262 010 110 010 { 373 011 111 011
3 263 010 110 011 RUBOUT 377 011 111 111
v 366 011 110 110
4 264 010 110 100 ~ 376 011 111 110
8 270 010 111 000 | 374 011 111 100
x 370 011 111 000

Looking through the numbers there seemed to be a lot of issues regarding bits 3, 4, 5, and 6. I replaced e6 and e8 (see schematic) and tested the card again. The problem diminished, although it was still prominent when sending numbers.


Next I will replace e10 and e5 to see if that will rectify the rest of the problem. Hopefully this will solve the BIN program problems as well.

To be continued...

Comments

Popular posts from this blog

Power Supply: The Mystery Continues

Serial and Other Diagnostics

Setting up our new Raspberry Pi0-based Flip Chip Tester (FCT)