The first mini project on my journey to my 68k homebrew computer is going to be a minimal implementation consisting only of the following components:
- Terminal interface
Simple right? ROM to store the programs, RAM for working memory, and a terminal interface to type to and read from the system. I’ll use a breadboard to prototype the entire thing but I’m thinking I will have to limit the clock speed to something like 8 or 4 MHz; wiring point to point on a breadboard isn’t exactly a hospitable environment for high frequency signals. I would prefer to wire-wrap the entire thing, kind of like this gorgeous Macintosh prototype but the practice has fallen out of fashion making the supplies rather scarce/expensive.
On a 68k system, memory and peripherals are mapped to the same space. The 24-bit address bus provides 16 MB of memory space, of which the minimal system will use very little of; I settled on 1 MB of ROM and 4 MB of RAM leaving the remaining 11 MB for peripherals and whatever else (so much room for activities). ROM is going to sit between 0x000000 and 0x0FFFFF, RAM between 0x100000 and 0x3FFFF, and the I/O registers somewhere above that. Is this ideal? I’m not sure but I suppose I’ll find out when I start implementing it.
So now for the fun part, picking the actual components! After some cursory searching I settled on the following bits and pieces to put the system together:
- 68010 processor
- 4 x 1 MB 30-pin SIMM RAM modules
- 2 x 512 kB 29F050 flash memory
- 68901 dual UART coupled to a FT232R USB-interface
So why a 68010? Because I found a cheap one! It’s also pin-equivalent to the 680000 with some updates to support virtual memory so for all intents and purposes it’s synonymous, especially for the scope of the minimal implementation. As for the RAM, I decided to go with some 30-pin SIMMs because they can be found anywhere and have decent density. I’ve also always liked the look of the angled sockets; the only challenge will be to find a way to use them with a breadboard. For the ROM I chose two 512 kB flash ICs which have an 8 bit data bus, one for the upper byte and another for the lower byte. Since the 68k doesn’t have a least-significant address bit things are addressed a word (16 bits) at a time. By tying the upper byte flash to address pins [15:8] and the lower byte flash to address pins [7:0] and switching between them using the upper and lower data strobes (UDS/LDS) one can perform byte read/write operations. Finally, I chose the 68901 dual UART simply because it is designed to work as a 68k peripheral by utilizing the same control bus signals. Two serial interface are provided through the IC but I’ll probably just ended up tying one of them to an FTDI USB UART interface.
That’s it for now. In the following posts I will lay out some preliminary schematics and ponder things a little more.