This was a project started in college as part of a course in teaching digital electronics. After the course,
I had the option to purchase the parts and keep the computer. Fortunately, I chose to do so.
It has gone through a lot of changes since the course ended (some of the projects are listed below)
Wire Side (Yes, it's Wire-wrap - a lot easier to modify than a PCB)
Current Spec's
8051 CPU at 12Mhz, (64k address space, 8bit CPU)
Serial Port (57.6k Baud maximum)
16K ROM
40K Total available RAM (32K + 8K)
EPROM Burning hardware and ZIF socket (Was used for burning EPROM's relating to my
Arcade Collection, until I bought a real EPROM copier/burner).
LCD Display (20x2 characters, each character is 5x8 matrix of pixels, supporting character-mapped graphics, and text)
Projects attached at one point or another in its' life
IDE Harddrive Interface implemented using TTL logic and an 8255 (IE. No IDE Controller chips were used). This involved simulating a 16-bit data bus for a CPU which has an 8-bit data bus and instruction set.
Digital->Analog converter (audio playback)
Analog->Digital converter (audio digitizer)
Stepper Motor Controller
DC Motor Controller (variable speed, could match a requested RPM, using feedback from a light reflected off a mirror on the shaft)
Infra-red Reciever (decoded command numbers from a Mitsubishi remote control)
2K RAM "under" ROM (turn-off the ROM to access the RAM, through the toggling of a bit at a specific address)
EPROM Programmer (up to 27C256)
Schematics which are available online
The schematics below represent, more or less, the current configuration of my 8051 computer and should be accurate and complete.
*HOWEVER* assume there are errors in the schematics until you have analysed them carefully yourself, and tested them. I might have found an error while
wiring, and repaired it without updating the schematic. I don't normally do that, but it may have happened. Any damage which occurs because you used
these schematics is NOT MY PROBLEM. I will not be held responsible. You've been warned.
During college, we were provided with a free (simple) monitor program. Once the course completed, I wrote my own O/S in place of the monitor, which includes these features:
Color (ANSI) display
S-RECORD Data/Executable Downloads
Memory Dump with output by pages or continuously.
Program Execution
Automatic Stack Checking after program exits
Capable of patching the ROM On-the-fly (for example, upload a new ROM for testing in RAM, then reset & use it)
Serial Display Output. Serial connection rates from 1200 to 57.6K baud.
LCD Display output. 20x2 characters, including downloadable shapes.
Argument Parser provides easy addition of commands to the O/S.
Online help for any command.
Lots of libraries in ROM available for executables in RAM to use:
Integer Math (8-bit and 16-bit ADD, SUBTRACT, MULTIPLY, DIVIDE)
LCD Controller Interface
IDE file system (not very complete)
Serial I/O (ANSI and RAW).
Support for reading Strings
Support for reading Numbers in Hex, Decimal, and Binary transparently.