When it comes to homebrew computer designs, nothing beats the classic microprocessors from 1970s and 1980s. SDC is an idea of a computer bringing together old and new technologies. The SDC consists of some real, classic CPU and a modern microcontrollers acting as memory, peripheral controller, glue logic and a diskette. No other ICs are needed, not even a single logic gate.
The SDC communicates with a PC via USB, which is also used for powering the computer.
It presents itself to a PC as a composite device with two virtual serial ports (VCOMs) and mass storage (for future enhancements). The first VCOM is used for interaction with the hardware monitor (more on this below), the second serves as a terminal interface for the target computer.
The microcontroller also serves as hardware monitor for the target CPU. It allows for:
- memory and I/O display and editing
- .HEX file loading
- target Flash programming
- target control (reset, clock frequency setting)
- hardware single-stepping on bus-cycle or instruction basis (with instruction disassembly), breakpointing, etc.
- examining the details of CPU operation at hardware level - that's how I discovered the interrupt handling error in some clones of 8080A CPU.
Currently there are three kinds of SDC designs:
- SDC_One is a PCB to be placed on top of STM32 Nucleo development board containing either STM32L476 or STM32L496 MCU. There are 5 versions of the board, supporting 8085, Z80, 65C02, W65C816, MC68008 and 8080. Target RAM size is 64 KiB for 8-bit CPUs, 80 or 256 KiB for W65C816 and MC68008. 8080, 8085 and Z80 versions run CP/M-80, while the MC68008 version runs CP/M 68k.
- SDC_Zero is a simplified design, which may be assembled on a breadboard in 30 minutes. It is based on the popular, low cost BluePill board (STM32F103C). Two versions were developed, based on 8085 and 65C02 CPUs. SDC_Zero has 16 KiB RAM and 64 KiB ROM available to the target and may run some flavor of BASIC interpreter (or any other software).
- SDC_85 and SDC_68k are the smallest possible computers based on DIL40 ad DIL64 versions of the processors. The whole computer has a size of a DIL socket, with the microcontroller placed under the CPU. They may run the respective versions of CP/M system (not ready and not tested yet).
SDC_85 is based on 8085 and STM32L412. It has 32KiB RAM and 64 KiB ROM.
SDC_68 uses MC68000 (used in the first MacIntosh computer, Amigas and Atari ST) or MC68010. It has 256 or 512 KiB of RAM and 64 KiB of Flash.