ONE OF THE VERY FIRST HOME COMPUTER DESIGNS
The most well known of the early home computer designs is the Altair 8800, a kit from MITS that was publicized in an article in Popular Electronics on January 1975. It was a machine designed around a microprocessor, at the start of a groundswell of homebrew computers being built based on microprocessors - the Apple 1 was developed just a few months after the Popular Electronics Altair 8800 article.
A slightly earlier design, the Mark-8, was released in Radio-Electronics on July 1974. It was a do-it-yourself design, unlike the complete kits for the Altair 8800 that could be ordered from MITS. It too was based on a microprocessor. Few people know of this earlier home computer design, but the Mark-8 did precede the Altair 8800 by about half a year.
There were a few early home computers that were not based on microprocessors. These require many more components to implement a complete computer rather than leveraging the integration of many of those into a single microprocessor chip. A commercial product, the Kenbak-1 was released 1971. It was designed as a trainer, to allow a buyer to experiment with computer concepts. Because of the large parts count multiplier of a non-microprocessor design, these tend to have much simpler architectures and capabilities than the microprocessor based systems.
The first do it yourself design of a non-microprocessor based computer was published in a series of articles in Electronics Australia magazine, beginning in the August 1974 issue. This was the EDUC-8 which was designed as a simplified version of the DEC PDP-8, a very popular commercial minicomputer. The PDP-8 was sold starting in 1965, at a price tag of $18,500 which is around $190,000 in today's dollars. Being able to build a similar computer for a sliver of the cost was the promise of the EDUC-8.
The first PDP-8 was a bit serial design, meaning that the adder and other data paths are single bit so that 12 bit word is shifted bit by bit through the system - as a result it wasn't very fast. The EDUC-8 is similarly a serial single bit design, even slower than the PDP-8. Overall, it implements the instruction set of the PDP-8 but lacking a few details and implements 8 bit words rather than 12 bits.
It offers a full 256 locations of memory and executes instructions at the rate of 10K per second or 100 microseconds each. The machine has 16 words per page because the instructions that have memory addresses are only given 4 bits in the instruction word. Like the PDP-8, one can link to other pages of memory thus utilizing the full 256 words.
It has a program counter (PC), an accumulator (AC), plus a memory address (MA) and a memory buffer/contents (MB) registers. There are all 8 bits.
Because instructions can use indirect addressing, the instruction word has only 3 bits for instruction type, one bit for indirect and four bits for the word within a page of memory. A direct instruction selects within the current page based on the four address bits in the instruction. An indirect instruction allows the full 8 bits of the address to be put in the MA (for a memory reference) or the PC (for a jump), thus one only moves to a different page (16 words) using indirect addresses.
Just like the PDP-8, the instructions seem a bit odd because there are so few types supported.
- TAD (Twos Complement Add) - takes the data at the memory address and adds it to the AC
- DCA (Deposit and Clear Accumulator) - stores the value of AC into memory and clears AC to zero
- AND (logical AND) - takes the data at the memory address and does a logical AND with the AC
- ISZ (Increment and Skip if Zero) - adds 1 to the data at the memory address, skips over next instruction if the result in the AC is zero.
- JMS (Jump to Subroutine) - stores the next instruction address in the memory location, then jumps to the address after the memory location
- JMP (Jump) - executes the next instruction at the memory address
- OPR (Operate) - two groups, each uses the 4 address bits of the instruction to perform certain functions.
- IOT (Input Output Transfer) - can control two input and two output devices
The OPR groups are a kind of microprogramming, in that the programmer can specify come combinations of the four functions in each group to be performed at the same time.
Group 1 (OPR with bit 4 = 0):
- CLA - clear accumulator (bit 3)
- CMA - complement accumulator (bit 2)
- RAL - rotate accumulator left 1 position (bit 1)
- IAC - increment accumulator by 1 (bit 0)
- SZA - skip next instruction if AC is zero (bit 3)
- SMA - skip next instruction if AC is negative (bit 2)
- RAR - rotate accumulator right 1 position (bit 1)
- HLT - stop execution (bit 0)
- Front panel switches include eight toggle switches to set bit values for bits 7 to 0
- Load Address to put the toggle switch value into PC
- Examine to put PC into MA to display the value in that address in MB
- Deposit to put the toggle switch value into memory at the location in the PC
- Step/Continuous to choose to single step or run the program until it halts
- Fast/Slow to run at the full 10KHz rate or slow enough to watch each bit shift through the registers and all the phases of the instruction execution
- Halt to turn on the halt flag just as if an OPR with HALT was executed
- Run to either execute a single instruction or start running
- Normal/Page Zero to force all memory references to the first 16 words (page 0)
Gwyllym Suter, an enthusiast of the EDUC-8, created KiCAD designs that matched the one-side PCBs shown in the articles. He and others such as Steven Pietrobon have worked out the means to build one today, giving tips on replacements for any parts that are too obsolete to find readily. I came across Gwyllym's work, conversed with him and decided to build my own EDUC-8.
WRAPPING UP CONSTRUCTION OF MY EDUC-8
I had the chassis and electronics working quite a while ago, but never finished a case to house it until last week. I had a box that was the correct size, with a few tweaks such as cutting away some plastic around the front opening. I was able to fit my EDUC-8 into the box and thought it looked pretty good.
The original design had a traditional power supply to drop the wall socket power down and produce 5V to power the EDUC-8 system. It had a crowbar protective circuit in addition to an overly beefy design with a 5A slowblow fuse that sits between the transformer dropping line voltage to around 20VAC and the power supply board. Unfortunately, I found this supply to be tempermental, blowing the 5A slow blow fuses often with no apparent justification. I removed it and wired up a 5VDC wall wart instead, which gets the job done without the hassle of mystery fuse blowing events.
I need to add a fastener to hold the chassis in the opening and want to add some opaque material between the faceplate and the front panel PCB with its LEDs. Other than those two tasks, it is complete and I can carry it around to retro computing events as an interesting curio.


No comments:
Post a Comment