Thanks to Takashi TOYOSHIMA for his work on the CP/Mega88 project which can be found here: https://github.com/toyoshim/cp-mega88. Please visit his project page and read through his other work.
The CP/Mega88 project is a i8080 emulator written in AVR assembler with modules in C and assembler to support external static RAM, SD-card and UART, as well as a virtual “monitor” linking it all together.
My rendition focuses only on the AVR side of things, The original project also runs on several other platforms.
- i8080 virtual machine running at 2.5 - 3 MHz apparent clock speed.
- 128 kByte Static RAM (paged memory with 4 32 kByte pages)
- SDSC SDHC compatible SD card interface. no hot-swap
- TTL serial console 38400 baud, no handshake
- 3v3 or 5v FTDI or compatible interface
- 5v power at serial interface or 3v3 at ISP connector
- dual boot
- CP/M 2.2, 59 kByte TPA
- CP/M 3.0, 61 kByte TPA, banked BIOS
- 4x 8MB disks (A:-D:) shared by both OS-es
Here are the project files: cp-mega88.zip
The zipfile contains:
- all the AVR source code, make files and binaries.
- source code for CP/M 2.2 and 3.0 as well as boot sectors
- PCB schematics and gerbers for an SMT board.
- A 4 disk image file to be copied to the SD card with system files, source files, tools and various applications in several user area's (which are not guaranteed to run: some use Z80 code, some are os-specific)
The SMT board can be built for less than $4.50, although buying single items or TH parts might turn out more expensive. The included PCB uses SMT components. Alternatively you can wire up a piece of perfboard, using TH parts. (use an AS6C1008 for SRAM and a TF card module)
|74HC374D (x2)||SOP-20 7.2 mm|
|TXC20.0 Crystal||5032 5mm×3.2mm SMD-4PIN|
|TransFlash Micro SD Memory Card Slot Connector||Please examine picture|
|ISP & serial connectors|
For SRAM any 3.3v 128k x 8 chip can be used (regular pin layout)
I chose the BSI chip, because it was cheapest and was 5v tolerant (2.4V ~ 5.5V).
NOTE: running an ATmega88 at 3v3 / 20 MHz is out of specifications (> 13.3 MHz). I have had no issues, but your mileage may vary.
If you have any suggestions, feel free to let me know.