mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
434 lines
14 KiB
Plaintext
434 lines
14 KiB
Plaintext
CP/M 3 Operating System for the 'z80em86' emulator
|
|
==================================================
|
|
The CP/M 3 implementation contained in this distribution is intended for
|
|
running under the 'z80em86' Z80 CPU emulator. The emulator sources and
|
|
binaries can be downloaded from here:
|
|
|
|
http://www.cpm.z80.de/source.html
|
|
http://www.gaby.de/z80/z80emu.htm
|
|
|
|
The 'z80em86' emulator documentation will describe the hardware emulated. To
|
|
exit CP/M 3 back to the system the supplied 'exit.com' program may be run or
|
|
the emulator's CTRL+ALT+I keys may be pressed and exit selected from the DOS
|
|
dialogue window that appears.
|
|
|
|
Freeware License
|
|
================
|
|
The "customised sections" (see below) of this distribution are "Freeware".
|
|
The software comes with absolutely no warranties and is to be used at your
|
|
own risk. The code is provided "as-is".
|
|
|
|
The customised source/scripts and binary code are allowed to be modified for
|
|
personal use only, these must not be used in any other projects in original
|
|
or modified form without written permission from the author.
|
|
|
|
The "customised sections" in this distribution consists of the following
|
|
directories and contents thereof:
|
|
|
|
bios (except for DR, SPR and REL files)
|
|
support
|
|
scripts
|
|
doc
|
|
|
|
Distribution
|
|
============
|
|
The ZIP file should be unzipped to the same location where the 'z80em86'
|
|
emulator directory is located. The build scripts will expect this install
|
|
location.
|
|
|
|
A bootable HDD disk image and sources to re-build the system are provided in
|
|
this distribution. The pre-built system has been assembled using the Y2K
|
|
fixes from the 'CP/M 3 BINARY w/YEAR 2000 fixes' package available from
|
|
http://www.cpm.z80.de/binary.html and is also included in this package.
|
|
|
|
This distribution contains several directories. The 'scripts' directory
|
|
contains some BASH and 'submit' file scripts to build either the original
|
|
CP/M 3 system or the fixed Y2K version.
|
|
|
|
The distribution should contain these directories and files:
|
|
|
|
z80hdd.dsk
|
|
bios
|
|
cpm3
|
|
cpm3_y2k
|
|
support
|
|
extras
|
|
scripts
|
|
doc
|
|
|
|
4MB HDD disk image (z80hdd.dsk)
|
|
-------------------------------
|
|
This is the bootable HDD disk image containing the banked and non banked
|
|
CP/M 3 systems. Either system may be made bootable, the default is the
|
|
banked system. It contains the original CP/M 3 (and Y2K fix binaries) and
|
|
custom support files. The 'cp.com' copy program is also provided.
|
|
|
|
The directory is formatted for date and time stamping of files.
|
|
|
|
bios directory
|
|
--------------
|
|
Customised BIOS CP/M 3 source files required to build the systems. This
|
|
directory also includes the CP/M 3 SPR and REL files from the normal
|
|
distribution. When building the Y2K system the SPR and REL files from the
|
|
'cpm3_y2k' directory will be used instead.
|
|
|
|
The source files are all coded in Z80 assembly language. The 'bios.asm'
|
|
file was converted to Z80 assembly language (zbios.mac).
|
|
|
|
cpm3 directory
|
|
--------------
|
|
All the CP/M 3 files from a normal distribution.
|
|
|
|
cpm3_y2k directory
|
|
------------------
|
|
A copy of files from the 'CP/M 3 BINARY w/YEAR 2000 fixes' package available
|
|
from http://www.cpm.z80.de/binary.html
|
|
|
|
These files will be used to replace the matching files in the 'cpm3'
|
|
directory and the SPR and REL files in the 'bios' directory when building a
|
|
Y2K system.
|
|
|
|
support directory
|
|
-----------------
|
|
Contains the customised support programs and sources. Turbo Pascal v2.00A
|
|
is required to re-compile the pascal sources.
|
|
|
|
extras directory
|
|
----------------
|
|
Contains any files that should be included when using the build scripts. The
|
|
'cp.com' copy program is the only supplied program in the distribution but
|
|
users may add other files before running any build scripts.
|
|
|
|
scripts directory
|
|
-----------------
|
|
Contains Linux BASH and CP/M 3 submit script files used for building various
|
|
systems.
|
|
|
|
doc directory
|
|
-------------
|
|
Contains this README file and the ChangeLog.
|
|
|
|
Building the CP/M 3 systems (optional)
|
|
======================================
|
|
1. Create a CP/M formatted floppy disk. The default floppy disk format for
|
|
drive 'A' is identical to a 1.44MB MSDOS formatted disk but filled with
|
|
E5 hex.
|
|
2. To build the systems 'm80.com' and 'l80.com' are required. These should
|
|
be copied to the HDD disk image using the CP/M 3 'dostocpm.com' program.
|
|
3. To build the systems on a Linux platform with 'DosEmu' installed run one
|
|
of the following scripts:
|
|
|
|
Build the 'Y2K' banked and non banked systems:
|
|
sh scripts\make_y2k.sh
|
|
|
|
Build the original banked and non banked systems:
|
|
sh scripts\make_dr.sh
|
|
|
|
After the systems are built on drive 'A' an image of the floppy disk will
|
|
be created in the 'floppy' directory.
|
|
|
|
Alternatively the submit files can be run manually. See the submit files
|
|
in the 'scripts' directory for more information.
|
|
|
|
Creating a HDD bootable disk image
|
|
==================================
|
|
1. Make a bootable floppy disk with the required system files and support
|
|
programs (see 'Building the CP/M 3 systems').
|
|
|
|
2. The DOS 'z80hdd.com' program needs to be run in the 'z80em86' directory.
|
|
This will create a 4MB 'z80hdd.dsk' disk image formatted with E5 hex.
|
|
You may want to rename any existing 'z80hdd.dsk' file if you don't want
|
|
to lose it.
|
|
|
|
3. To place a system onto the HDD disk image under Linux with 'DosEmu'
|
|
installed run the following script:
|
|
|
|
sh scripts/make_hdd.sh
|
|
|
|
Alternatively the submit file can be run manually. See the
|
|
'make_hdd.sub' file in the 'scripts' directory for more information.
|
|
|
|
Command line parameters
|
|
=======================
|
|
The start-up process for booting from a disk is described in the z80em86
|
|
emulator's README file in more detail.
|
|
|
|
If no drive is specified the emulator will attempt to boot from the HDD disk
|
|
image on the current drive. If no image is found then a DOS window message
|
|
will prompt the user for a floppy disk in drive 'A'.
|
|
|
|
Booting from a floppy disk in drives 'A' or 'B' can be forced using options
|
|
'-a' or '-b'.
|
|
|
|
Additional command line parameters allows CP/M 3 commands to be run on boot
|
|
up before exiting automatically. (requires 'cpmjob.com' to be active)
|
|
|
|
A CP/M 3 command line or a submit file may be passed. If the submit file
|
|
ends with '.sub' then the 'cpmjob.com' program will upload the submit file
|
|
from DOS.
|
|
|
|
Examples:
|
|
|
|
Boot from floppy drive A:
|
|
>z80em86 -a
|
|
|
|
Boot from floppy drive B:
|
|
>z80em86 -b
|
|
|
|
Boot the HDD image and execute a full directory command.
|
|
>z80em86 dir [full]
|
|
|
|
Boot floppy drive 'A' and execute a full directory command.
|
|
>z80em86 -a dir [full]
|
|
|
|
Boot and upload and execute commands from a submit file on the host system.
|
|
>z80em86 mysubmit.sub
|
|
|
|
Set conout to use STDOUT, full directory command redirected to 'output.txt'
|
|
>z80em86 device conout:=crt2!dir *.* [full] > output.txt
|
|
|
|
Support programs
|
|
================
|
|
The following programs and sources are provided in the 'support' directory
|
|
and most are designed to only run under this CP/M 3 system.
|
|
|
|
cls.com
|
|
-------
|
|
Clears the screen display for device CRT1 and places the cursor in the top
|
|
left corner of the display.
|
|
|
|
cpmjob.com
|
|
----------
|
|
This program allows a CCP command or a submit file to be specified from the
|
|
DOS command line. The 'profile.sub' submit file needs the following entries
|
|
to allow this to work automatically when CP/M 3 boots:
|
|
|
|
cpmjob m:
|
|
m:cpmjob.sub
|
|
|
|
The first line creates a submit file on the RAM disk 'M' based on the
|
|
parameters passed on the DOS command line.
|
|
|
|
The second line executes the submit file.
|
|
|
|
cpmjob.sub files will contain the 'exit.com' command at the end of the file
|
|
so will exit the emulator after completing the submit commands.
|
|
|
|
cpmtodos.com
|
|
------------
|
|
Copies files from CP/M to DOS. Run the program without any options for
|
|
usage information.
|
|
|
|
dosdir.com
|
|
----------
|
|
Displays a directory listing of DOS files. The command output looks the
|
|
same as that from a MSDOS directory command. Wildcards and DOS paths may be
|
|
specified. There are no options available.
|
|
|
|
The 'bytes free' size may report incorrectly.
|
|
|
|
dostocpm.com
|
|
------------
|
|
Copies files from DOS to CP/M. Run the program without any options for
|
|
usage information.
|
|
|
|
exit.com
|
|
--------
|
|
Exits the emulator back to DOS with no confirmation.
|
|
|
|
fmfd.com
|
|
----------
|
|
A high level floppy disk formatting utility. This program overwrites
|
|
existing data on a pre-formatted floppy disk with E5 hex. This program can
|
|
be used instead of the supplied 'format.com' program.
|
|
|
|
Typical use is to re-format a DS HD 3.5" 1.44MB floppy disk to a blank CP/M
|
|
format. Single sided (SS) or double sided (DS) and the number of tracks on
|
|
each side are supplied on the command line. The program works out the
|
|
Sectors Per Track (SPT) value from CP/M 3.
|
|
|
|
Usage:- fmfd SS/DS 40/80 drive:
|
|
SS/DS = SS is single sided, DS is double sided disk
|
|
40/80 = 40 or 80 tracks per disk side
|
|
drive: = CP/M drive A: or B:
|
|
|
|
To format a DS HD 3.5" 1.44MB floppy disk to CP/M format in drive 'A':
|
|
>fmfd ds 80 a:
|
|
|
|
fixturbo.com
|
|
------------
|
|
A program to overcome a limitation for programs compiled with Turbo Pascal
|
|
v2.00A where only a very limited command line was possible. This program is
|
|
run on compiled Turbo Pascal executables and requires a constant string
|
|
defined in the source file. See some of the example sources.
|
|
|
|
Turbo Pascal developed support programs supplied in this distribution that
|
|
require extended parameters require this.
|
|
|
|
A later Turbo Pascal version would fix this problem and the work around code
|
|
could be removed.
|
|
|
|
format.com
|
|
----------
|
|
A low level floppy disk formatting utility. This program is designed to
|
|
write E5 hex to the disk but on later hardware/systems writes F6 instead of
|
|
E5. This means the directory structure will not be cleared correctly and
|
|
will not work correctly under CP/M.
|
|
|
|
Use the supplied high level formatting utility 'fmfd.com' after using
|
|
'format.com' to correct this.
|
|
|
|
modem.com
|
|
---------
|
|
A very simple file receiving program implementing the 'Ward Christensen file
|
|
transfer protocol' with file name support for receiving of files.
|
|
|
|
The program makes use of AUXIN and AUXOUT settings so these must be
|
|
configured first.
|
|
|
|
putldr.com
|
|
----------
|
|
This program places the 'cpmldr.sys' file onto the system tracks. Two
|
|
parameters are required, the first parameter determines what the default
|
|
system type is. 'b' is used for a banked system and 'n' for a non banked
|
|
system.
|
|
|
|
The second parameter is the destination drive 'x:'
|
|
|
|
The current drive type (DPB, skew, etc) data for drive 'A' will also be
|
|
placed into 'cpmldr.sys'. If the drive type has been temporarily changed
|
|
with the 'setdrive.com' program then those values will be used.
|
|
|
|
To make disk C: boot the banked system:
|
|
>putldr b c:
|
|
|
|
To make disk C: boot the non banked system:
|
|
>putldr n c:
|
|
|
|
A boot disk will require some system files and a console command processor
|
|
as a minimum. Copy system files 'stdcpm.sys', 'bnkcpm.sys', 'cpmldr.sys'
|
|
and 'ccp.com' to the boot disk.
|
|
|
|
reset.com
|
|
---------
|
|
Resets the emulator in one of four ways, the changes are not permanent:
|
|
|
|
boot up non banked CP/M 3 system
|
|
>reset n
|
|
|
|
boot up banked CP/M 3 system
|
|
>reset b
|
|
|
|
boot up default CP/M 3 system
|
|
>reset d
|
|
|
|
boot up same system
|
|
>reset
|
|
|
|
setdrive.com
|
|
------------
|
|
Sets a floppy drive to use another CP/M format:
|
|
|
|
>setdrive D: ID
|
|
|
|
'D:' is the floppy drive.
|
|
|
|
See the 'cpmdpb.dat' text file for the structure and the ID (KEY) names that
|
|
may be used.
|
|
|
|
How well this works depends on the underlying floppy hardware. Some formats
|
|
may work on one machine and not on others.
|
|
|
|
terminal.com
|
|
------------
|
|
A simple terminal program. The terminal(s) emulated depends on the setting
|
|
of CONIN and CONOUT devices and any terminal drivers in use.
|
|
|
|
CRT1 provides a basic Adm3a/Televideo terminal emulation in the emulator's
|
|
CRT1 video driver.
|
|
|
|
CRT2 (STDOUT) may be able to run through a DOS terminal driver but this has
|
|
not been tested.
|
|
|
|
The program makes use of AUXIN and AUXOUT settings so these must be
|
|
configured first.
|
|
|
|
video.com
|
|
---------
|
|
Turns video on or off. This is mainly intended when a parameter is passed
|
|
on the command line when invoking the emulator. The emulator will disable
|
|
video output so that the sign on screen is hidden. A 'cpmjob.sub' submit
|
|
file will issue a 'video on' to switch the video back on before executing
|
|
submit commands. (see 'cpmjob.com')
|
|
|
|
Turn video off:
|
|
>video off
|
|
|
|
Turn video on:
|
|
>video on
|
|
|
|
CP/M 3 Devices
|
|
==============
|
|
The devices available under CP/M 3 are shown below, the CP/M 3 'device'
|
|
program can be used to configure the settings. See the 'z80em86' emulator's
|
|
README file for more detailed information.
|
|
|
|
KBD1: Uses direct keyboard handler
|
|
KBD2: Uses STDIN input
|
|
CRT1: Uses BIOS output (supports colour and monochrome)
|
|
CRT2: Uses STDOUT
|
|
COM1: Serial #1 I/O communications (no interrupts)
|
|
COM2: Serial #2 I/O communications (no interrupts)
|
|
COM3: Serial #3 I/O communications (no interrupts)
|
|
COM4: Serial #4 I/O communications (no interrupts)
|
|
LST1: Output to printer port #1
|
|
LST2: Output to printer port #2
|
|
LST3: Output to printer port #3
|
|
|
|
Disk drives
|
|
===========
|
|
Drives 'A' and 'B' allow access to floppy disk drives, there is no support
|
|
for disk images for these two drives. Floppy disks may be changed when the
|
|
drive is not active. The default floppy formats are shown below but may be
|
|
changed using the 'setdrive.com' program.
|
|
|
|
A RAM drive 'M' will be allocated to the remaining free memory from DOS's
|
|
640K memory, typically this results in a RAM drive of ~400K.
|
|
|
|
Drive 'C' is a HDD disk image file located on non floppy drive.
|
|
|
|
Drive A: - 80T DS HD 18 s/t 512 b/s
|
|
dpb0: dpb 512, 18, 160, 2048, 512, 1
|
|
|
|
Drive B: - 80T DS HD 18 s/t 512 b/s
|
|
dpb1: dpb 512, 18, 160, 2048, 512, 1
|
|
|
|
Drive C: - HDD-DISK (4 Megabytes)
|
|
dpb2: dpb 512, 64, 128, 2048, 1024, 1, 8000h
|
|
|
|
Drive M: - RAM-DISK (16k default)
|
|
dpb3: dpb 128, 128, 1, 2048, 128, 0, 8000h
|
|
|
|
LINKS
|
|
=====
|
|
CP/M 3 and other DRI Manuals:
|
|
|
|
"Tim Olmstead Memorial Digital Research CP/M Library"
|
|
http://www.cpm.z80.de/drilib.html
|
|
|
|
"The Unofficial CP/M Web site"
|
|
http://www.cpm.z80.de/index.html
|
|
|
|
http://www.gaby.de/ehome.htm
|
|
http://www.seasip.demon.co.uk/Cpm/
|
|
|
|
http://www.z80.eu/cpmcomp.html
|
|
|
|
Contact
|
|
=======
|
|
Email to: ubee512@gmail.com
|
|
|
|
Please state which project your referring to.
|
|
|
|
Stewart
|