Yes, indeed, I can write code with one hand and wire-wrap with the other. “Prove it,” you say. Well, I did in the late 80s.

After several years working on test equipment purchased by IBM, I decided it was time to take the plunge. A different department in IBM was developing a new tester in-house, and they needed help. So, an interview or two, and I transferred over there.

I arrived in time to get the assignment to design a “fail buffer” subsystem for the tester. This peripheral would collect fail information as the equipment ran patterns on the prototype memory cards. Software would be needed to count errors in that collected data, analyze patterns in the failures (row or column problems), and output reports. “I can do both – the hardware and the software!” I said. “It’s yours,” replied my new manager.

I got to work, using the mainframe’s character-based (non-graphical) schematic editor, and opening up vendor catalogs looking for RAM chip, registers, delay lines, etc. In parallel, I had to learn how to program IBM’s infamous Series/1 mini-computer. (It’s programming language was the definition of ‘obtuse’!)

I had joined a department of half a dozen hardware engineers, and half a dozen programmers. There was not much communication between the two. I inserted myself, writing down everything I could learn about their hardware and software designs – creating documentation for the tester. I think it endeared me to both teams.

Back to my own design, within a few months I had a working prototype. A huge wire-wrapped board, inserted into the tester’s backplane, initialized and controlled by Series/1 software… We put a memory card into the tester, ran the test program, collected the fail data, and watched the report on the terminal’s screen. 20MHz? No problem.

(It was at this time that I was enhancing the Script/VS text processor to make my documents easier to write and manage.)

The tester project was not finished yet, though. Looking around, I found that the machine’s “timing subsystem”, designed to work at 20MHz, had serious accuracy issues. It tried to place all the timing generator edges, but could do so only with +/-5 microsecond accuracy. Not good enough to be used for shmoo plots of prototype memory card designs.

I saw an opportunity, and took it: re-design the timing subsystem to meet the project’s deadline! I discussed with my manager, and made only one request: “Give me the technician of my choice to help with the hardware build and debug.” He agreed.

That technician and I worked together for 4 or 5 months, designing new wire-wrap boards and characterizing them in the tester. I designed software to control the board, an oscilloscope, and the Series/1, to calibrate each timing channel in-situ. It was terrific fun to watch the screen on the scope, with each channel’s edge ‘walking’ through the settings, and the software determining the most accurate modes. It all worked great, and improved the accuracy to +/- 2 microseconds. I wrote a paper on it, presented it at an internal IBM tech conference, and was proud of my baby.


Next: Back to School.