Homebrew PC

So I’ve been reading a lot lately about vintage computers (especially S-100 bus systems) and looking into CP/M as an operating system. This combination gives a “hobbyist” the opportunity to explore the inner workings of hardware, firmware, and software at a level that’s difficult to achieve with modern systems. The older systems could easily be developed and maintained by a single person, while today’s systems require many engineers across multiple disciplines.

Due to the extreme cost and/or lack of availability of the older systems, I’m looking at the option of homebrewing a computer based around a Motorola 68000 CPU. This looks like a good option as it has a 24-bit address bus (up to 16 MB memory directly), 16-bit data bus, and frequencies of 8 MHz or more. There are a lot of hobbyists utilizing this CPU so information is somewhat easy to find. There is also a nice simulator available, complete with assembler and hardware emulator, that would help ease the task of developing the BIOS for the machine.

Initially, I’d be looking at a single board computer (SBC) with CPU, 64k ROM, 64k RAM, serial port (primarily for communication to another PC for display), and AT/PS2 keyboard converter as well as ASCII keyboard support (not that I can afford one, but it never hurts to include it as it requires only a bit of programming and a connection point).

Ultimately, the goal is to have an SBC that can be plugged into a bus configuration (using a 34 pin IDC for 32-bit address signals, another 34 pin IDC for 16-bit data + control signals, and a 6-pin header for power supply). The “bus” could then be expanded with multiple memory cards, VGA and/or composite video cards, I/O modules, CF or SD (or both) storage option, SCSI board, IDE board, etc. One of my design goals is to implement a system similar to ones that other people have used but to do so without requiring a backplane (motherboard) configuration. Another expansion is to upgrade the CPU to a version with 32-bit addressing.

In the short term, the system would probably just use multiple disks or some sort of bootstrap loader to fire up dedicated programs. CP/M-68k isn’t really going to provide a good OS for a system like this due to the inherent limits. However, I would like to ultimately implement a Linux/Minix microkernel arrangement, complete with drivers, that is fully based on a somewhat modern OS concept. There are technical limits, but I think a fully functioning system is attainable using this methodology.

I hope to post complete specs, drawings, etc. as I go. Looks like circuit boards can be custom-cut at a very reasonable price these days if you’re not in a huge hurry, connectors are available by the gobs from surplus houses, and I’ve got enough parts to build 4 or 5 CPU boards and support boards without buying much other than sockets.

Stay tuned. Based on my past history, I should be updating this page within a year (two, definitely).