• Please review our updated Terms and Rules here

Really cheap CP/M

No, I've got a junkbox full of ATMegas of various stripes that I played with over the years. But I decided a long time ago to go with the ARM MCUs for bang-for-the-buck. Many have 5V-tolerant I/O, so that 5 volts is not as much of a barrier as it once seemed to be.
 
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. (IE, they have completely predictable instruction timing and almost all instructions take one clock cycle, so as long as the CPU is clocked at some multiple of your pixel clock it's a thing that can be written in your sleep.) For this particular task they're perfect for the job, so, yeah, "bang for buck" isn't really a concern.

But, of course, the whole project I'm working on is intentionally retro. The entire shebang, IE, the fake CRTC and all the GALs and RAMs I've stuck around it, and for that matter the CPU that's interfaced with, could undoubtedly be coded into a Raspberry Pi Nano in an afternoon. Have absolutely no illusions about this making any "sense" from a practical standpoint.
 
The words 'sense, sensible, useful, cost-effective' etc have absolutely no meaning with this kind of thing.
Talking of sensible, I managed to free up another IO pin so now i have a drive LED too. The sensible thing would probably be to double the RAM or something, but, come on we're talking about a DRIVE LED here! Bummer, now I have to update the PCB again. Oh, well...
 
For that matter, you could very probably code the whole thing to run on your smartphone.

Considering how powerful modern smartphone SoCs are then, yes, if it's a thing that can be done with a (non-super) computer at all you probably can indeed do it on your phone.

(I mean, seriously, the highest-spec iPhone has a Geekbench score over a third of that of a 24 core Intel i9.)

Of course, instead of fooling around with hobby electronics at all we could just go outside and play frisbee with the dog more often. We'd probably all be better off, really.
 
Last edited:
I used to have huskies as I was a home for dogs waiting adoption via the rescue. The dogs used to love the "indestructible" frisbees the pet store would sell. They would prove that was not the case. Although they would last a decent amount of time. Their other favorite thing was swinging the rope tug toy into your knees.
 
I had CP/M 2.2 running on my Pi Pico.
Was kinda neat something so tiny running CP/M.
Not really very useful and no easy way to get extra software onto it.
How did you run CP/M onto the Pico?
With RunCPM on the Pico you could also use a SPI-SDCard with FAT16/32 format to get Software onto CP/M.
With RunCPM the files are written directly in the FAT-Filsystem - so its very easy to get Software on the system.
The latest .UF2-Binary is here

RunCPM_Pico_800px.jpg
 
I made a stupid mistake (reverse power leads) and blew up a ZRC. Pic shows the blew up ZRC, not a mark of any injury but it is absolutely dead. So I built up a replacement this morning and thought: it took 40 minutes of my time, but the components are almost free. Used Z80 is dirt cheap; 2meg DRAM is cannibalized from 8meg SIMM stick; EPM7128S is from a batch of used board; and DOM disk is from eBay, $35 for 10pcs. So I'll enter it as another cheap CP/M Z80. I won't kick myself too hard for blowing it up.

Spec: 14.7MHz clock, 115200 serial, 2 meg RAM, IDE interface, RC2014 connector, I2C, W2812B, and RomWBW capable.
Bill
DSC_72600406.jpg
 
I used cpicom. It gives a file system only. Not as easy to load software. Have to use the Ymodem utiltity to load software. I never set that up.
 
I used cpicom. It gives a file system only. Not as easy to load software. Have to use the Ymodem utiltity to load software. I never set that up.
Ahh OK - yes I did testes it also in the past and also didnt liked that Ymodem thing (but it did work).
Iam a fan of RunCPM on many platforms and forked it also for the Pico.
With a SDCard Reader/Writer you should have the problem like with cpicom ;)

GL20230303_RP2040_300.jpg
 
I made a stupid mistake (reverse power leads) and blew up a ZRC. Pic shows the blew up ZRC, not a mark of any injury but it is absolutely dead. So I built up a replacement this morning and thought: it took 40 minutes of my time, but the components are almost free. Used Z80 is dirt cheap; 2meg DRAM is cannibalized from 8meg SIMM stick; EPM7128S is from a batch of used board; and DOM disk is from eBay, $35 for 10pcs. So I'll enter it as another cheap CP/M Z80. I won't kick myself too hard for blowing it up.

Spec: 14.7MHz clock, 115200 serial, 2 meg RAM, IDE interface, RC2014 connector, I2C, W2812B, and RomWBW capable.
Bill
View attachment 1255123
I like the PCB Plasmo. Though I do note whoever designed it loved right angles ! Been a long time since I saw a PCB like that.
Just a console output I assume?
 
I use a version of Grant Searle's (http://www.searle.wales/) DOWNLOAD.COM for uploading files using the console interface. I have modified versions that work on most CP/M derivatives as well as a packager program in BASH. It is very useful, it only requires a stable serial connection and robust handshaking. Using the ascii upload function of my terminal program (minicom) makes this quite efficient.
 

Attachments

  • download.asm.zip
    2.2 KB · Views: 3
  • hexxfer.zip
    666 bytes · Views: 3
I like the PCB Plasmo. Though I do note whoever designed it loved right angles ! Been a long time since I saw a PCB like that.
Just a console output I assume?
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
 
Last edited:
I use a version of Grant Searle's (http://www.searle.wales/) DOWNLOAD.COM for uploading files using the console interface. I have modified versions that work on most CP/M derivatives as well as a packager program in BASH. It is very useful, it only requires a stable serial connection and robust handshaking. Using the ascii upload function of my terminal program (minicom) makes this quite efficient.
Curious why download.com is so popular. I use the same procedure to load Xmodem into memory and do “save 17 Xmodem.com” instead of download.com so I can use Xmodem for file transfer. For multiple files, I compress them with Arj.exe, Xmodem over, then decompress with unarj.com back to individual files.
Bill
 
Using download only needs 2 steps: 'hexxfer filename' to create the package, and ALT-S to start serial transfer, (Minicom already knows where to find the package file) select ASCII and ENTER. It ends up under the correct user too. I never bothered to adapt hexxfer for more than one file. If I need that I use a simple for loop.
I used this dozens of times an hour while assembling various versions of CP/M 3 bnkbios.
For really large transfers I resort to cpmtools and direct transfers to the SD-card.
I am currently writing a series of FAT capable tools that can read and write to a FAT section of the SD card, But I'm skeptical about its usefulness. Transferring files will then require removing the SD card mounting it somewhere else, un-mounting re-plugging and rebooting the CP/M computer.
This is way too cumbersome for casual transfers, in particular when it happens quite often, and it wears out the sd-contacts too.
 
Back
Top