Inspired by the Kiwi68k, Ydraig68k, Stuart's Lambda 68k, and *far* too many others to name..
This is my attempt to make a 'real' computer.
My first attempt at both real electronics design (beyond blinking LEDs and arduino) and programming was a small 68008 machine to get my feet wet. The goal was to attempt to write some assembly, attempt to get a C cross-compiler working, and maybe talk to some peripherals. With how well it worked out I decided to make the next jump quite a bit more ambitious. This is the result.
The board is based around a 68000/68HC000/68010. It has:
4mb of onboard SRAM
2x serial ports
PS/2 keyboard and mouse
2x expansion slots
Multi-channel DMA (for the SCSI, FDD, IDE, and expansion slots)
Considering that almost all of the requisite information I needed to design and build this was found through hackaday to begin with, I decided to give back in *some* small way by documenting this project.
The design had been kicking around in my head for a couple months but I've been getting crushed by school. Spring break was my chance and I took it: over the last week I ordered the PCBs, all the components, and started bringing the board up.
Having only started in earnest a week ago, I'm incredibly happy with the results so far: after some very minor teething problems, the board came right up. I can *tentatively* say that the hardware works.
Exhaustive testing is going to take some time, and writing the drivers even more so, but as of week one I'm at least writing to and reading from the DUART, PIT, PS/2 controller, and DMA controller. I have yet to attempt initializing the FDC, SCSI controller, or RTC.
Short term goals for the coming weeks:
Talk to the the remaining peripheral chips
Build a new clean C environment and start writing a small c library (or start stripping down newlib)
Write some basic interrupt handlers and switch to interrupt-based keyboard and serial input
Attempt to read an IDE drive
Attempt a DMA transfer
Make a Github and start doing some sensible source management!
package up the schematics and gerbers and maybe even share them if I'm not too embarrassed by them
Build a BOM
Medium term goals are to write a basic shell, implement a filesystem, and look into creating some sort of executable format. I also have preliminary designs for a graphics card and a sound card to flesh out!
The LONG term roadmap is to progress from a through-hole 2-layer 8Mhz 68008 all the way up to a 4+ layer surface-mount 50-100Mhz 68060 dream machine.
I'm using a sort of tick-tock approach. Minimal 08 -> highly integrated 010 -> minimal 020/030 -> highly integrated 040/060. The hope is that it'll ease the transition from "ignore all electrical considerations" TTL to 50+ Mhz "transmission lines, termination, and parasitics are a thing." It should track fairly well with what I'm learning in school too!