Friday, November 7, 2014

Method to share SAC cable between CHI box and my interface, plus keypunch interface


I have a choice to make. I have a single IBM cable that attaches to the SAC interface of the 1131. Currently it is plugged into the CHI box on one end. Since the CHI box appears functional and may provide a second disk drive, I am not willing to destroy it by removing the receptacle, but the alternative if I don't use the connector from the CHI is to find the 160 pin socket myself and install that in my box.

After some investigation, I did find the sources for the connector, allowing me to build my own cable from my interface box to the 1131. The socket base is approximately $45, the pins will be about $95 and the miscellaneous hardware is around $30, for a total of approximately $170 bought from Digikey.

I looked at another alternative, if I pull the circuit boards in the CHI box which terminate the various signals from the SAC cable and build my own dummy boards to connect onward to my box, I could manually swap which interface is hooked to the 1131 without disturbing the existing cable. Examining the inside of the CHI box, the card sockets look to be 44 pin (two sided 22 each) at .156 spacing. There are three spare sockets placed in the box which ensures I could get my signals in and out just with what is available there.


I did another test, looking at the pins early as well as after the expected wait time. They came in as spaces at both timings. I will prepare a safety-net test that samples these throughout the entire time when I am punching a space on the prior card - if I don't see a signal, then my problem is over on the electrical/mechanical wiring side.

The results are confusing and may represent the problem, once again, where the Arduino environment doesn't have enough space, skipping execution of code rather than signalling any specific condition. It is difficult to debug relatively complex code in a development and test environment that is hobbyist-grade at best. If necessary, I will chop out big chunks of code temporarily and see if the results are different.

I re-coded the logic to read the sense pins, directly retrieving the value from the ATMEL microprocessor ports instead of using digitalRead - much faster. A bit cumbersome inside the routine which does this, since the pins which are in a neat sequence on the Arduino are scattered across four ports on the processor.

I can do the same for punching a card - setting the output ports by updating the output ports of the processor instead of individually issuing digitalWrite for each row. This minimizes skew between when various relays are energized.

What is not making sense yet is the complete lack of sensed values on the read attempts I am doing - although sporadically I will see some junk columns further down the card. I will turn my eye to the continuity of the lines from and to the keypunch over the read cable. I did discover yesterday that I had misplugged a few of the rows, but can easily pull and replace those on the relay board of the keypunch. All that would do is give me miscodings - swapping which rows I see. .


I soldered together the last receiver and last six drivers, then moved on to adding the power and TTL signal wires to the boards. By midday break I had the power wires installed on all four boards and was starting on the internal power links (ground and +3V to the receiver circuits).

By the end of daylight, I had board two wired with all its signal lines, and was almost done with the internal power wiring for board three. Won't be much longer before all four boards are complete and ready to hook to the high density 78 pin socket I chose for the TTL input and output signals.

Finishing up the wiring of the boards

No comments:

Post a Comment