[ Information | Download ]
This page contains a few files designed to help with running CP/M-86 in DOSEMU. All these programs are made available under the GNU General Public License, version 2 (see the file COPYING).
CP/M-86 is obtainable from www.cpm.z80.de.
Unless you are very determined to have a CP/M-86 partition, I recommend that you keep CP/M-86 on an hdimage file - use mkhdimage to create one. As far as I can tell, you are only allowed one primary partition of 8Mb per "drive", so create the hdimage(s) with this in mind. The number of cylinders should be less than 256.
When the image(s) are set up, insert your CP/M-86 boot disc and start
DOSEMU with DOS -A. If all goes well, you should get various system
statistics including "Hard drives: 1" (or more) and an
Now, start HDMAINT, and create CP/M partitions on the hdimage(s). HDMAINT will instruct you to restart, so type DOS -A again. This time, the first hard drive should be visible as B: (if you have one floppy drive) or C: (if you have two).
Assuming the drives are visible, use PIP to copy all the files from the boot floppy to the hdimage: PIP B:=*.*. Then use HDMAINT again to set the CP/M partition as bootable. CP/M-86 should now start from the hdimage.
You may have noticed that CP/M-86 tends to bring DOSEMU to a halt if you try to select a non-existent drive. There is also no way of exiting DOSEMU politely.
The first feature is caused by the fact that CP/M-86 uses INT E6 to communicate with disc device drivers. Unfortunately, DOSEMU also uses INT E6, and it ends up with the disc requests.
One solution is the file MOVE-E6.CMD. When run, this will patch the memory image of CP/M to use INT E7 rather than INT E6. It will only work if no additional disc drivers have been loaded; if such drivers were to be loaded, then they would have to be rewritten to use INT E7 as well.
The file EXITEMU.CMD terminates DOSEMU when run.