Jump to content

[Support] Z80Pack - Vintage Computing in a Docker (CP/M and MP/M)

Recommended Posts

I have built a Docker that emulates CP/M 1, CP/M 2, CP/M 3, and MP/M.  The Docker is based on a package called Z80Pack that is a cross development package that runs on Linux.  The Docker is a command line only Docker.  The Docker includes Shell in a Box which gives a command line interface in a browser window..  


Install the Docker by searching on 'Z80Pack' in CA.  Online documentation is here.


The Z80Pack website is here.  The project includes an Altair and IMSAI emulation.  I have not done anything with those emulators because of the graphics requirements that are very difficult to provide in a Docker.


The Docker has a WebUI that is available on the Docker menu.  This is a Shell in a Box UI and you'll have to log in for access.  The User is 'vintage' and the password is 'computer'.  The home directory is set for the /root/z80pack/cpmsim directory.  You can always do 'cd ~' to get back the home directory.  This is the preferred way to use the Docker.  To run a simulation you need to run 'sudo ./cpm' so the simulator has root privileges.


This is an alternative method to run CP/M or MP/M:

docker exec -it Z80Pack bash

Once inside the Docker, change directory to the cpm simulation:

cd /root/z80pack/cpmsim

To run CP/M:

./cpm2 or ./cpm3

To run MP/M:


The MP/M script starts CP/M and you have to type mpmldr to start MP/M.


The cpmutils package is included so you can create disk images and copy files into and out of your disk images.


To create disk images:

cd /root/z80pack/cpmsim/disks/library

then for a floppy image:

mkdskimg mpm-c.dsk

For a 4MB hard disk image:

mkfs.cpm -fz80pack-hd mpm-i.dsk

For a 512MB hard disk image:

mkfs.cpm -fz80pack-hdb mpm-p.dsk


Then include these disk images in the cpm and mpm scripts.


You will also have to change this line in the script:

rm -f disks/drive[ab].dsk


rm -f disks/drive[a-z].dsk


The disk images you create and the cpm and mpm scripts are persistent in the appdata folder.


The disk configurations are pre-defined as: A, B, C, and D disks are all 8 inch floppy disk formatted.  I and J are pre-defined as 4MB hard drives.  P is pre-defined as a 512MB hard drive.  You'll have to change the CP/M and MP/M system files to re-define the disks if you want to change these pre-defined disks.


If you want to get a realistic user experience, set the parameter '-f4' on the cpmsim command in the cpm and mpm scripts.  The emulation will run at the original 4MHz processor speed.  In the day that was some real processing power!

Edited by dlandon
Link to comment

I have updated the Docker image so it now has a GUI.  The Docker includes shell in a box so you can run the simulator in a browser window.  To take advantage of this feature you'll have to update the Docker template to the latest one.  Go to CA and search for 'z80pack'.  Re-install using the new template and the WebUI will now be an option in the Docker menu.


The login information for shell in a box is documented in the first post of this thread.

Edited by dlandon
Link to comment

I've found some of the vintage programs use Ctrl keys that Chrome captures for shortcuts.  An example is the Chrome Crtl-W to close a browser tab.  Does anyone know of a way to disable these keys?  There were some older Chrome apps that did the job, but they don't work anymore.


I have remapped the keys to the 'vedit' editor to get around the ctrl keys problem and to be able to use the arrow, backspace, and other keys on a modern keyboard when using Shell in a Box.  If anyone wants a copy of my modified 'vedit' I can post it on github.  I've also adjusted the monitor sizes to fit Shell in a Box and use the full screen width and height.

Edited by dlandon
Link to comment
  • 4 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...