The Bit-Slice Computer

Well, I wanted to move up from 8-bit systems, so I started building a 32-bit bit-slice system using AMD 2903 ALU chips and the 2910 sequencer. I built one board with the sequencer and 1 K (expandable to 4K) words of 96 bits for control storage, and the ALU board with 56 32-bit registers and the 2903s and fast carry chips. This all had a bunch of diag/control hardware that ran off the CP/M system, so you could force single instructions into the instruction register and single-cycle execute them, read the data bus, load a program into the control store, etc. I wrote a very sophisticated interface program for controlling and debugging the bit-slice system. You could load a program, start and stop execution, examine and alter registers and so on.

I started writing microcode, using a micro-assembler built in the CP/M macro assembler, and found it to be VERY tedious. I could write a only few instructions per evening! I did write multiply and divide routines and test those, as well as a few other things. I obtained a cast-off 1 MB memory off the university's 370/145. (A friend of mine got the two 370/145 CPUs and the other memory box. Trying to power the 370 up on a 60 A 240 V service was a fool's errand. We were lucky to not blow the transformer off the pole!) Anyway, I still had to build a general bus for the system, and then interface the memory to the bus before I could do much of anything. Then, I'd have to complete the microcode, and come up with an OS for the system. And, I'd left for later putting in the hardware to make N-way branches from the op-code, and or in the register select fields to select registers from the register stack. Not that difficult, but it would mean ripping up a lot of wire-wrap that was already tested. My plan was to follow the general scheme of the IBM 360, but add stack instructions. But, it would end up not being much like a 360 architecture, as I was planning to use memory-mapped controllers much like a PDP-11, instead of IBM-style channels. So, I'd be on my own for an OS, at least. (Well, I sure wouldn't want to be running OS/MFT and JCL on it. GAACK!) This was all starting to sound like a really daunting project, but I was still fiddling with it.

the control store board, front
the control store board, wiring side
the data paths board, front
the data paths board, wiring side
Here's a view of the system in the IBM 370/145 3rd party Memorex memory cabinet. The top is the 2 bit slice boards in their card cage, below that are two Memorex 1 MB static RAM memory units, with ECC controllers and the interface to the 370/145. I never got around to hacking into those boards to remove the ECL interface and tie into the address and data registers. But, perusing the schematics made it look fairly straightforward to do.

The Nat Semi 16032 project:

Then, I did a little side consulting for a group at the Med School, and advised them to buy a system based on the NS 16032 that ran Genix. I didn't have the time to do a big project for them, but suggested this would be capable of doing what they wanted in a data acquisition/ data analysis project. The machine was made by Logical Machine Co. of Chicago, which soon folded. But, the machine worked, and came with schematics, so I was able to clone it! So, after some effort, I had a 32-bit Genix system running. But, it was SLOW!!! In fact, it was so slow that even editing a file was a maddening effort, but I did learn some stuff about Unix-derived systems. Oh, I had a cast-off Versatec 1200 electrostatic printer from work, which could print text at 1200 LPM, but when printing in bit-map form it was achingly slow, about 10 minutes per page. I had made some mistakes in the driver like allocating and freeing the data buffer for every data block. But, I was really working in the dark, I knew NOTHING of Unix device driver writing.
16032 CPU, front
16032 CPU, wiring
16032 memory interface, front

This interfaced to a GE/Intersil bulk memory I got from a brain scanner when one of my friends did an upgrade on it. I'm thinking it was probably 256 K bytes, but don't quite recall.

16032 memory interface, wiring
16032 serial board, front
16032 serial, wiring