Back

Recompiling CP/M 2.0 from the sources

Preparation required for z80pack release 1.8:
Before you do anything else, you need to get your drive i: harddisk that came with z80pack out of the way, the 4 disk drives weren't enough for a setup:
	cd ~/z80pack-x.y/cpmsim/disks
	mv drivei.cpm library/hd-tools.dsk
This is not required with z80pack releases later than 1.8, the disk setup in the distribution is done appropriate already.

Download and Installation of the disk images:
Download the archive with the disk images and unpack the archive under ~/z80pack-x.y/cpmsim with tar xzvf cpm20src.tgz. Type cpm20src to mount the disks and start the emulation, the script checks if the drives c:, d: and i: are empty, before formating and mounting disks.

Drive a: contains a CP/M 2.2 system, the ISIS interface to CP/M 2.2 and the necessary tools. Also the ISIS assembler asm80 is on drive a.
Drive b: contains the ISIS PL/M-80 compiler, linker and tools needed to compile and link the CP/M programs written in PL/M-80.
Drive c: is the scratch disk used by the build scripts.
Drive d: is the destination disk, we are going to build a bootable CP/M 2.0 from the sources on this drive.
Drive i: includes the CP/M 2.0 sources.

The ISIS environment included on the both tool disks is the minimal required set for building CP/M 2.0, due to drive size limitations. More complete ISIS tool disks are available as separate download.

Compiling the transient programs:
The new OS on drive d: is build with a few batch commands:

	submit cmd1
	submit cmd2
	submit cmd3
	submit cmd4

	submit cmd5 - patch for ed, might not work
	submit cmd6 - patch for pip
Compiling the kernel:
	submit kernel-s
Creating a bootable disk:
Use the following commands to relocate the kernel and write it onto system tracks of drive d:
	d:movcpm 64 *
	save 34 d:cpm64.sys
	d:sysgen d:cpm64.sys
	type d for destination drive, followed by two CR
The new build movpm program might not work on your current system, DRI used a lot of serialization code in cpmove.asm to verify the kernel in movcpm.com with the current running one. The program will run into a HALT opcode which will abort the emulation, in case the versions don't match. To overcome this problem run movcpm under control of ddt and patch out the jumps to the error handler:
	ddt d:movcpm.com
	DDT VERS 2.2
	NEXT  PC
	2700 0100
	-s234
	0234 C2 0
	0235 5A 0
	0236 02 0
	0237 02 .
	-s2cb
	02CB C2 0
	02CC 5A 0
	02CD 02 0
	02CE 23 .
	-i64 *
	-g

	CONSTRUCTING 64k CP/M vers 2.0
	READY FOR "SYSGEN" OR
	"SAVE 34 CPM64.COM"
To try out the new disk leave cpmsim, move the disk image from drive d: to drive a: and start cpmsim, if everything went ok CP/M 2.0 will boot.

Please note that the ddt 1.4 version build from this sources doesn't work.

Back