The EX3000 Computer, a typical success(?) saga of the early personal computer days.
The Extensis Corp. EX3000 computer pulled together four emerging technologies; multiprocessor supercomputers, 8 bit microprocessors, the S100 bus standard and multiprocessor, multitasking multiuser operating systems.
Back in the mid 70’s the maximum addressable memory, for 8 bit microprocessors, was 65,536 (64k) Bytes - yes that’s Bytes, not mega Bytes. Extensis had developed a 64k Byte S100 memory board that was, at that time, state of the art. We used 16k bit dynamic ram from Intel that did not qualify for the full bit density. Intel packaged these chips as 8k parts at a more affordable price. We used the opportunity to use 64 devices to fill the entire 64k Byte address space.
Selling the board was a bit difficult because the market was leery of dynamic memory. Up to that point only static memory was available, and because dynamic memory lost its data unless power was continuously applied to the refresh logic and memory chips, naturally, many engineers were worried. In addition, dynamic ram controllers were nonexistent, so refresh logic, etc. had to be designed with standard TTL logic, independently from the ram chips themselves. However, we were able to cram all the logic on a 6 (or was it 4) layer S100 standard board. We noticed that the 6 layer board was another marketing hurdle to overcome - the vast majority of S100 boards were 2 layer and the PC board industry was just becoming proficient at multi-layer board manufacturing, at least at a reasonable price.
We next, innocently, added another useful feature: multiple bank memories. Multi banking meant that we could place more than one fully populated 64k byte memory board on the same S100 buss. We had an on board bank latch that extended the S100 buss address by 6 bits, to a maximum of 64 boards, or 4 mega Bytes. The latch could be set by software writing to a specific I/O port. The address of the I/O port correlated to a physical memory board. This allowed software to carefully switch between memory banks.
The board was mildly successful. As memory serves me, we sold about 200 boards at the lofty price of around $1,000. As soon as the memory board starting selling, we discovered that board to board memory transfers were extremely slow, due to microprocessor instruction set limitations. We solved that problem by designing and producing a direct memory access (DMA) board. That board could be programmed, again by writing to specific I/O ports, to transfer blocks of memory between boards or the same board.
The last obstacle to overcome was the S100 bus itself. The S100 specification was a bit loose and allowed interpretation flexibility. This was taken full advantage of by the different S100 bus manufacturers. Basically we had 2 or 3 versions of the board, depending on which manufactured product it was to be used in.
By the time we had memory and DMA boards, it was a simple extension of innocent logic to produce a microprocessor board. In typical Extensis fashion, we designed the board for multiple instances. In this case we allowed 64 processor boards be used on a single S100 bus system. Naturally we had to write an operating system from the ground up, to support the architecture.
The OS was implemented to handle multitasking within the multiprocessors. Toward the 11th hour we decided to implement a 8 port serial board using an Intel programmable processor. The memory could be reprogrammed in an hour after erasing using a UV light source. The multiple intelligent serial ports allowed us to extend the OS to handle multiple terminals, or users. The terminals were driven by yet another Extensis S100 bus board, a bit mapped video board. This design was new, to the day, because all the existing terminals were driven by character based logic.
The significant result (i.e. our proudest accomplishment) of the OS was not multi everything but the fact that it fit entirely within a single 64k Byte address space with room left over for application code, including an assembler. The assembler was one pass and written by Extensis Corp. Again, a first as the microprocessor instruction set did not use relative addressing and therefore, did not lend itself to one pass design. We also added 8” floppy disk support. That helped support our software development, and vastly sped up debugging because we no longer had to load programs via paper tape.
A not expected feature of the system was that the terminals bit mapped memory could also be used for software execution. This meant that we could watch our code load and execute on a CRT screen. Remembering that instruction execution time was measured in micro seconds, we could actually see the data bits changing as code was executed in real time. This debugging feature became obvious when the stack would run away, marching toward the total destruction of the code. We could often hit the stop key before it would overrun the data, giving us enormous help in debugging the asynchronous OS.
We added to the development tools a beautifully implemented Basic Interpreter / Compiler written by Paul Allen, when Microsoft was still in New Mexico. Thanks Paul, I’m glad you eventually made it!
At the end of the day we sold a 2 processor 128k memory system to a health care processing facility in Colorado. When I last checked, back in 1979, the system was running fine after two years with only a power supply swap out.
Extensis Corp. went belly up in 1978 when we were unable to get financing for a marketing push. This was during the time when Steve Jobs was very effectively marketing the first Apple computer at home brew computer club meetings. It did take a few years for the painful memories to subside. But boy, did we learn a lot and have a good time. We proudly pulled together the Extensis Corp. EX3000 computer which used four emerging technologies; multi processor supercomputers, 8 bit microprocessors, the S100 bus standard and multi-processor, multi-tasking multi-user operating systems. It actually ran in 64k Bytes, proving that anything is possible if you don’t know any better.
xCEO and xChief Architect
of xExtensis Corporation.