• Please review our updated Terms and Rules here

Really cheap CP/M

Hi,

I recently finished my latest project, which is a i8080 CP/M computer, emulated in an ATMega88 on a circuit board the size of about half a credit card.
Congratulations. I made a similar thing last year, but simpler and using an Atmega8515 (because of XMEM).

Pictures and sources are available at https://www.mikrocontroller.net/topic/523119. CPU speed is decent (approximately 2.6 MHz i80, at 16 MHz), disk speed is acceptable. The Atmega8515 turned out to be a tiny bit too small (not enough flash for CP/M, not enough RAM to store a sector buffer), the next iteration will use an Atmega162.

My hand-wired board uses two 32Kx8 SRAMs, but someone designed a PCB (pictures and gerbers in the thread) using one 128Kx8 SRAM instead. Disk drivers are implemented in i80 assembly, providing four 8 MB-drives. Runs on 5 V, single serial port, runs CP/M 2.2.

I'm using an Atmega8 for my "fake CRTC" project specifically because the address generation code effectively requires "racing the beam" for the active portion of each scanline of video, and a problem like that is shockingly easy to code on those chips.
I've used an AVR to become a true monochrome 80-column TV terminal with PS/2 keyboard. It should be possible to get rid of the 74xx165 to become a true single-chip solution, which so far I haven't seen anywhere on the internet.
 
I used a 25-year old layout tool that did have the corner mitre option, but I didn’t buy it, and the company had long gone out of business. Acid trap of 90 degree corner is no longer an issue with modern pcb technology, so it doesn’t matter anyway. It only has one mc6850-like serial port emulated in CPLD. It uses Xmodem for file load in CPM.

Edit, it does interface with a video/keyboard board over RC2014 connector. In that case the VGA and PS2 drivers reside in CPM BIOS.
Bill

I can appreciate that - I used to use Protel back in the day, but it's long gone and doesn't run on any modern systems, however I found FreePCB works very similarly and so I use that even though there are much better systems around now.
 
I've used an AVR to become a true monochrome 80-column TV terminal with PS/2 keyboard. It should be possible to get rid of the 74xx165 to become a true single-chip solution, which so far I haven't seen anywhere on the internet.

My design is significantly "dumber" than that on purpose, because it's intended *not* to be a self-contained terminal.

(The AVR is literally emulating a CRTC, IE, it's providing HSYNC/VSYNC framing and spitting out memory addresses during the active portions of scan lines to drive external VRAM which is multiplexed via a GAL state machine so a CPU can also access it directly. The nice thing about using the AVR instead of a pile of counters, besides cutting down chip count, is I can define the address increment scheme arbitrarily in software so it's pretty easy to emulate framebuffers with different memory interlace settings, character row counts, etc.

The chip count *is* similar to a design using a real CRTC. I'd use one but A: they're getting to be one of those things where reliable sources aren't necessarily available, and B: it's educational to roll your own.)
 
Back
Top