Running CP/M 3.0 in WinApe Emulator - not enough floppy disk capacity available

Started by fider, 19:35, 23 April 18

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


I would like to say hello to you all, and mention some small details since this is my first post. First of all, I appreciate the huge effort undertaken by the Amstrad CPC community, considering everything that has been shared about the software and the hardware of this wonderful 8 bit machine.

My first experience with CP/M dates back almost 17 years, seeing it at first on a ZX-Spectrum clone. Since then, on and off, I searched for a better way to run CP/M, mostly involving emulators. The goal was to achieve a good enough experience in graphics and usability. I found the Amstrad CPC line to be an even better match than ZX-Spectrum, while most of the CP/M emulators did not feel as being enough in terms of experience. The Amstrad CPC had just about everything better: basic (Locomotive), graphics generation, operation, software library availability for serious applications. The only letdown was the 3 inch floppy disk. More on this later.

My current attempt at running CP/M in WinApe has been going quite well, finding new things, remembering some old ones. I managed to run CP/M 3.0 on the Amstrad 464/6128 CPC emulation with good results. I have two floppy disk images that carry most of the things that I need in terms of software and functionality.

My problem is with the floppy disk capacity available in CP/M. When I used the ZX-Spectrum clone, I had access to a massive (in CP/M terms) 720kB disk. The CPC had, by default, a 190kB and that was single sided with no automatic switching. I know that some old 8 inch floppies had even lower capacity but I am aiming for a modern experience. I tried many ways to solve this problem, having only mild succes. I noticed that Vortex disks and other high capacity formats are available for 720kB but none, so far in my attempts, support booting CP/M. The DS 80 track format can be read in Locomotive Basic with the CAT command but booting in CP/M would probably require a custom mod for an existing disk image or a new one created from scratch. I am trying to create such a boot disk, and I am asking for some assistance regarding this issue.

To give a good understanding of what I achieved by now, let's say that I found a way to use a DS 80 track format disk in CP/M but only as drive B, and using a specific setb.com program that allows such a configuration to work. I used a custom profile.sub to automate the startup configuration with larger B drive size and it is reasonably well. However, I am still longing for a solution that would make it possible to use the first drive as a large disk and the second one as a document storage area, simplifying file management. I have not had any succes with Symbiface emulation and other possible avenues of increasing available capacity in WinApe.

Any help is highly welcome!


You should be able to grab a copy of RAMDOS (details and download here: http://www.cantrell.org.uk/david/tech/cpc/ramdos/ ) to either run in CPM+, or modify your CPM+ disc to use drive B as a high capacity drive.
Hope this helps!


Thank you for your answer. While Ramdos seems interesting, in the sense that it provides more capacity, there seems to be two issues, as I looked on the documentation and tried to see how it works, partially. Pardon my inexperience if I am unclear.

C10CPM3.EMS is the system boot file for CPM/3 on the Amstrad. This is certain. At the moment I modded CPM to accept a high capacity B drive but high capacity on A, the main boot drive, is still not possible.

Ramdos might be a good idea, however, there are two problems:
1. I do not know the format of the standard boot sector on the CPM/3 disk for the CPC, meaning how I must setup the disk to recognize a valid boot sector and how to point at the actual C10CPM3.EMS file location on the disk. I may be able to format the new disk image in the high capacity mode but I do not know how it is better done. I cannot use Disckit routines to format DS 80 disks, I used the standard WinApe build disk format tool for a standard Data disk. I am not sure if the Ramdos format D10 is compatible (D20 seems to be over the standard formatted size).
2. I already use CP/M fastloader 1.4 with Fastscreen, and I am not familiar with how it changes the C10CPM3.EMS file. I noticed that it makes some routines work faster and it improves a bit the speed at which Wordstar updates the screen, although Wordstar is still slow (not that it felt faster on CP/M 2.2 back in the day when I tested it). I do not quite understand if fastloader patches the C10CPM3.EMS file or it does some runtime patch, to understand what happens. I have not made a file comparison for C10CPM3.EMS, it might be a good idea.


Quote from: fider on 19:35, 23 April 18
To give a good understanding of what I achieved by now, let's say that I found a way to use a DS 80 track format disk in CP/M but only as drive B, and using a specific setb.com program that allows such a configuration to work. I used a custom profile.sub to automate the startup configuration with larger B drive size and it is reasonably well. However, I am still longing for a solution that would make it possible to use the first drive as a large disk and the second one as a document storage area, simplifying file management. I have not had any succes with Symbiface emulation and other possible avenues of increasing available capacity in WinApe.
Any help is highly welcome!

Try CPM box from habisoft


Johnny Olsen

If you use WinApe you also have Parados.
Type | drive and try it.



AMSDOS (the default DOS) and other derivatives (e.g. Parados) only support booting from an Amstrad "System" format. This is normally 40 tracks, single sided with sector ids 41-49. There are some extended disc formats based on this.

The |CPM in the ROM reads from the first few tracks on side 0. The program in those sectors then searches on disc for the EMS file and loads and executes it.

If you want to use other disc formats you either need to boot into a normal CPM disc and run a COM program or you need a patched CPM and boot into that. (e.g. RAMDOS+.COM or CPM patched for RAMDOS - there are other COM programs available for other formats). If running from Amstrad ROM this means booting into System and using a patched cpm to read from an extended drive B.

Vortex DOS has a CPM which has been patched by Vortex to support their DOS. This reads their 704K discs.

You can also boot from Dobbertin HD20 hard disk or Vortex WD20 hard disk. Both have their own ROMs which look on the hard disc for the CPM boot and allow booting into CPM (when formatted and installed to the hard disk). These devices are rare hardware and most emulators don't support them. (MESS/MAME supports the Dobbertin HD20, Arnold has preliminary support for both, but you can't yet define a hard disk image to use).

Booting from Symbiface 2 or X-MASS or similar modern device into CPM would require a new rom that will search for CPM on the hard disc and a patched CPM to read from the drive.

I think some of this way of working comes from the version of CPM used by Amstrad and that Amstrad probably assumed most users would have a 3" drive A.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource


I'm not quite sure about your priorities here?

Your messages suggest that you are mainly concerned with running/emulating CP/M, in which case please note that John Elliott's Joyce emulator, for the PCW range - supports the PCW 9512 machines which will boot from the higher capacity A: variant.   Also, this system will allow the definition of multiple virtual HDs, i.e. C: onwards, where each HD can be 8 Mb, emulated onto the host computers own HD and directly accessible from the host's OS.

I understand that this will remove any CPC compatibility, and limit any graphics potential.  Maybe that's REALLY your priority?



Get the Dobbertin CP/M Plus, it provides Vortex format (standard), so you get 700 KB on drive B and a 444 KB RAM disc on C if you have an RAM expansion (and emulators got that).  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)


First of all, thank you very much for all your replies and suggestions!  :D

I will offer more details about my priorities and why I am still searching for a way to use WinApe, despite some possible shortcomings but first, I will mention the CP/M/WinApe combo. I have previusly tried Sugarbox but it was less featureful. Of course, if there is no other way, I will not persist in using WinApe.

Thank you for your suggestions, I will try CPMBox and Joyce emulator. I previously tried to use MyZ80, Z80Emu and I think another one that I do not remember. Regarding Dobbertin, I think I made an unsuccessful attempt, I do not remember where I got stuck. Same goes for Symbiface, both of them I was not able to use in CP/M or boot from them in CP/M. If you have some suggestions for the steps I should follow, I kindly appreciate.

Regarding my CP/M/Winape choice:
1. The number one reason for this combo pertains to the flexibility regarding disk images. Without any additional software, mounting and unmounting, I can drag and drop files in the disk image manager. The way I manage them is similar for a low or high density disk image.
2. The way in which graphics is created is very nice in WinApe. I especially like the PAL colour filter and scaler. Of course, it could be better but as far as I can tell it looks very good.
3. I chose the older 464/6128 CPC since it is a 16-colour computer that is also versatile enough to run classic games and software as well as CP/M based ones. I agree that the standard disk size is not large.
4. I try to reach the best performance in CP/M, hence I used the FastScreen loader. I prefer to see how a real machine would work with only some minimal differences (a faster floppy drive) than the long list of issues with timings and unreal performance brought by higher speed CPU emulation (which would help graphics performance much more)

Now, about my attempts
1. I constantly use ParaDOS as my main ROM in the 7th slot. I have succeeded in accesing 720kB disk images but only in the standard Locomotive Basic interface. CP/M cannot directly access them due to its own BDOS configuration.
2. I tried to use ROMDOS, VaraDOS, Vortex ROMS with varying success. One of them was able to show the disk content properly, it even started the FastLoader but it failed partly underway in the boot process.
2. I used a special SETB.COM program that makes it possible to access a 720kB disk as drive B. It is better but I would like the same.
3. I have managed to use a RAM drive with one CP/M boot image as the third drive, but it is not as useful for a work drive since it cannot be easily mapped to an image file or a file browser with drag and drop capabilities in Windows. Could be a little better as a CP/M swap disk for some applications.

What I try to achieve is a real feel of CP/M with better working capabilities due to dual 720kB disk drives. While IDE or other large disk types are theoretically better, there is still the problem of coping with the limited file folder capability of CP/M and other file management tools (folders are implemented as user areas). This means that there will be chaos with more than 2-3 large applications on a single 720kB drive, hence my self limitation at this goal. However, I would like to experiment with an IDE or large disk as well, for the sake of it!

If I have not been clear enough, please ask me for more details.


Just for your information, IF you decide Joyce:

Joyce allows you to boot the system from A: or B:, I believe regardless of the system being emulated.   You could also boot from a designated .EMS file.   These options work via command line options.

If you want to use the emulated 8Mb HDs, these require the loading of a .FID file at boot.   Also needed is a later version of the CP/M .EMS file which supports .FID files - I've been using 2.09 I think.

The HD setup includes the use of User Areas, which work normally under CP/M - however, if you subsequently access the drive via the host system (in my case DOS or WinDoze) then the files in user areas other that User 0 may not be so readily accessible.   For example, a file in User 2 would show as 02..file.ext which some software might not like.

Joyce provides a couple of utilities for moving files in and out of images (and hence in and out of CP/M) but this process is a little fiddly and may not be as convenient as other options.   However, these utilities are redundant if you are using the HDs which are must more easily accessible both within CP/M and within the host system.



I agree with everything you said regarding convenience. Although Joyce may seem good to me, the lack of realtime, interactive file transfer possibilities is not quite a plus. I tried to use it a little yesterday but it seems that it is not suitable. CPMBox seems to be in the same camp with no run-time file transfer possibilities on a disk image that is already loaded. I remember I tried this program around two weeks ago. Thank you for all the details you kindly provided regarding Joyce.

Getting back to CP/M and Winape I see two possible steps, the first one with two separate ways:
1A. Find or mod a 720kB disk image that starts C10CPM3 on a 720kB. The disk image can be for ParaDos, Vortex, anything else (in that case I need to know how to set my ROMs. If modding a blank disk I need to know how to create a CPC boot sector and how to make it point at the C10CMP3.EMS first sector on the disk.
1B. Find a CP/M bootdisk for Dobbretin (in this case it could also be a hdd image) or Symbiface or anything else that offer hdd storage. I may also have to fiddle with some ROMs.
2. Hex edit the C10CPM3.EMS to enable faster screen routines


After reading more the forum and excluding some potentially unsupported hardware combinations in my emulator, as arnoldemu has pointed very well, I settled for an attempt at trying to find a 704Kb Vortex/Dobbertin disk image for CP/M 3 or PLUS. I noticed this discussion but there seems that a final detail is missing: http://www.cpcwiki.eu/forum/technical-support/cpm-720k-disk/10/

Your help in showing where I could find the image is highly appreciated.

Powered by SMFPacks Menu Editor Mod