CP/M emulator on Linux: recommendations & experiences?

307 views
Skip to first unread message

Philip Zembrod

unread,
Mar 24, 2022, 8:49:35 AM3/24/22
to retro-comp
Hi all,

I am starting to look for a CP/M emulator under Linux, and thought I'd tap the expertise of this group on what people have made good experience with.

What I want to do with it is this: I am in the process of renovating VolksForth (https://github.com/forth-ev/VolksForth), intending to unify the code base of the 4 main platforms, 6502/C64/C16/X16, 68k/AtariST, 8080/CPM and 8086/MSDOS. So far I have worked with 6502 and 8086, setting up make-driven automated build and test environments using VICE and DOSBOX as emulators. Now I'm thinking about approaching the 8080/CPM variant.

One emulator I have in mind is RunCPM. It's way to map CP/M disks to host folders would certainly work very well with my make+emulator approach. However, VolksForth also allows direct disk block access, and I'm not sure yet how RunCPM would handle that.

So my question: Does anyone have RunCPM experience? And what are other emulators you would recommend?

Cheers
/Philip

Alan Cox

unread,
Mar 24, 2022, 9:40:27 AM3/24/22
to Philip Zembrod, retro-comp

One emulator I have in mind is RunCPM. It's way to map CP/M disks to host folders would certainly work very well with my make+emulator approach. However, VolksForth also allows direct disk block access, and I'm not sure yet how RunCPM would handle that.

Badly. But that is also true of real CP/M, CP/N CP/NET and MP/M in many cases and very true of a CP/M app running on MSXDOS.


So my question: Does anyone have RunCPM experience? And what are other emulators you would recommend?

I use runcpm when I need to be working with stuff cross platform. You can script it into makefiles and all the good stuff for that. For actual system level emulation it depends on the system I want to emulate. If you just need a fake physical platform then z80pack is pretty neat and comes with pre-packaged setups for different CP/M versions, MP/M etc. If you need graphics then the joyce emulator for the Amstrad PCW series is a full CP/M platform with graphics and GSX.

Mostly though I personally used the rc2014 emulator for full system emulation because I wrote it so it does exactly what I want 8)

Alan

Philip Zembrod

unread,
Apr 12, 2022, 5:00:23 PM4/12/22
to Alan Cox, retro-comp
Thanks, Alan!

On Thu, 24 Mar 2022 at 14:40, Alan Cox wrote:
[Earlier, I (Philip Zembrod] wrote:]
However, VolksForth also allows direct disk block access, and I'm not sure yet how RunCPM would handle that.

Badly. But that is also true of real CP/M, CP/N CP/NET and MP/M in many cases and very true of a CP/M app running on MSXDOS.

Turns out that for exactly this reason CP/M VolksForth /doesn't/ allow direkt block access - by now I have run into the corresponding part of the sources. :-)
 
I use runcpm when I need to be working with stuff cross platform. You can script it into makefiles and all the good stuff for that.

I've tried runcpm, and it looks good. It seems that I need to tweak it a bit to work in scripted mode with VolksForth. I assume you were referring to scripting via stdin and stdout? Somehow the console drivers of VolksForth and runcpm don't seem to play together too well with redirected stdin, but I find runcpm is very hackable, so this should work.
 
For actual system level emulation it depends on the system I want to emulate. If you just need a fake physical platform then z80pack is pretty neat and comes with pre-packaged setups for different CP/M versions, MP/M etc.

Looks fascinating. I don't feel I need system level emulation right now, but I'll need to try this out some day.
  
Mostly though I personally used the rc2014 emulator for full system emulation because I wrote it so it does exactly what I want 8)

Especially intriguing, since I just (finally) got myself an rc2014 kit ... :-)

Cheers
/Philip

Wayne Hortensius

unread,
Apr 12, 2022, 6:03:02 PM4/12/22
to retro...@googlegroups.com
On Tue, 12 Apr 2022 23:00:10 +0200 Philip Zembrod wrote:

> I've tried runcpm, and it looks good. It seems that I need to tweak
> it a bit to work in scripted mode with VolksForth. I assume you were
> referring to scripting via stdin and stdout? Somehow the console
> drivers of VolksForth and runcpm don't seem to play together too well
> with redirected stdin, but I find runcpm is very hackable, so this
> should work.

I expect you've run into the same problem I had getting ZEX to redirect
console input in my RunCPM based system. The RunCPM BDOS all happens
outside of the Z80 code space, and so doesn't see when the BIOS console
calls are redirected in the Z80's address space; the simulated BDOS
doesn't use the BIOS jumps.

The solution I came up with was to make a BDOS subset that implemented
the BDOS' console I/O code in the emulated Z80. Warm boots and console
I/O were handled in Z80 code, everything else ended up in RunCPM's
normal BDOS code. The Z80 code called the Z80 BIOS routines, so when
ZEX redirected the BIOS jumps, the BDOS followed the redirection.

Regards,
Wayne

Derry UK

unread,
Apr 13, 2022, 5:44:45 AM4/13/22
to retro-comp
Hi Philip, I use yaze-ag-2.51.2-64Bit available at https://www.mathematik.uni-ulm.de/users/ag/yaze-ag/ available in 64 and 32 bit form.

I like the system and currently used it on Win11 and Linux Mint and used an earlier Yaze version on a Raspberry Pi. The system is open source.

One nice touch is that you can program the keyboard function keys with text strings such as "z80asm n:tryit/af cr" to do your command typing for you.

I have also mailed the Yaze maintainer, Andreas, with a question and had a response.

Derry.

john

unread,
Apr 17, 2022, 7:23:40 PM4/17/22
to retro-comp
simh has my vote.
Very flexible and configurable to emaulate different hardware, CPM or otherwise.
I use an Altair Z80 configuration running CPM 2.2 regularly.

-J
Reply all
Reply to author
Forward
0 new messages