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
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
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...
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
Post a Comment