EPROM Burner

The Wintek Control Module executed code stored in EPROMs, electrically-programmable read-only memories. Jim Wilson designed the circuit to program them and arranged that I write the software to run it.

The EPROMs of the time performed some sort of electrical heroics that had a huge impact on the programming specs, especially sequencing and timing.

Design

I read the specs and designed a program that would work within them. This turned out to be harder than expected. The complications were compounded by signaling conventions Jim adopted in his circuit.

Jim assumed one bit of memory was pretty much just a good as another so he wasn't particularly careful aligning the address and data lines as specified for RAM parts he used. This turned out ok.

Jim assumed one bit of EPROM was pretty much just as good as another but this didn't work out so well. It meant that the bits programmed into a part had to have their rows and column addresses permuted if the processor was to see the right instructions.

Jim assumed again that similar permutations would be not much trouble if he ran address and data lines on the EPROM programming board in such a way that was convenient, even if it were a different permutation that was required when retrieving instructions out of the programmed parts.

I had to take all this into account when writing the EPROM burning software. My approach was to tabulate all of the permutations required and then apply them as I wrote bits into the part. This meant the bits didn't go into the part in the fastest way and the permutation routines I wrote slowed programming even more.

Performance

My program worked but it was judged unacceptably slow.

This was a failure on my part. I had decided how I wanted the program to work and then patched it with helper routines as I discovered limitations in the hardware. I should have revised my whole approach when the implications became clear. Jim did this and made a performant EPROM burner in spite of my resistance.

The permuted wire routing had some justification. The boards looked great. Otherwise the boards would have runs crossing over each other using z-holes that add cost and maybe even extra layers that cost more.

Some customers complained. The company argued that the address and data permutations provided useful obfuscation in commercial applications.