Back

Recompiling MP/M 2 from the sources

Introduction:
The original DRI MP/M 2 sources are achived here.

The archive for Z80SIM with disk images and scripts to mount disks can be downloaded here. Unpack the archive under ~/z80pack-x.y/cpmsim with tar xzvf mpmsrc.tgz.

Disk configuration:
Drives A: and B: contain CP/M 2 and the tools for building the binaries. Drive C: and D: are empty and used as scratch and build target. Drive I: contains the MP/M 2 sources and build scripts.

Instructions for compiling:
Make sure that drives C, D and I are empty, then run mpmsrc to mount and format disks.

The kernel, loader and system generation tool are build with:

	submit i:bdos
	submit i:bnkbdos	(***)
	submit i:xdos1
	submit i:xdos2
	submit i:bios
	submit i:mpmldr
	submit i:gensys
(***) The bdos submit script build a bnkbdos.spr module already, which is release 2.0. The bnkbdos script will build release 2.1, skip this step if you want 2.0.

To compile the utilities run:

	submit i:sdir
	submit i:asm
	submit i:ddt
	submit i:pip
	submit i:ed
	submit i:prla1
	submit i:prla2
	submit i:prla3
	submit i:mpmstat
	submit i:spool
	submit i:abort
	submit i:sched
	submit i:load
	submit i:genhex
	submit i:genmod
	submit i:dump
	submit i:prlb1
	submit i:prlb2
	submit i:prlb3
	submit i:prlb4
Everything needed to build the MP/M kernel now is on drive D. A pre-configured and runnable MP/M kernel is build on drive C: with:
	submit i:build
The gensys program won't include the system resident modules in automatic mode, if you want them run manually again and copy MPM.SYS to C. To make the disks bootable put a CP/M 2 onto the system tracks of drive C: with the sysgen program from the CP/M 2 disk. Then place C: in A: and D: in B:, boot CP/M 2 with cpmsim and run mpmldr to boot MP/M.

One also could write the boot loader and mpmldr onto the system tracks of a disk, to boot into MP/M directly. The submit script i:boot.sub can do this with the CP/M 2 sysgen program. This is explained in greater detail in the instructions for building CP/M 3.

Back