Commodore 128 Running CP/M
With the enormous CP/M software library and the inclusion of a Z80A CPU, Commodore created the most flexible 8-bit computer of all time, being able to run serious business software as well as games with almost 100% compatibility. Unfortunately, the C128 runs CP/M noticeably slower than most dedicated CP/M systems as the Z80A can only run at an effective speed of 2 MHz for half the time, rather than the more common 4 MHz all the time. This is because of wait states in order to allow the VIC-II video chip access to the system bus.
The Commodore 128 powers up using its Z80 microprocessor, whereupon it checks for the presence of a bootable CP/M disk in the first floppy drive. If this is not found, it switches to the 8280 micrprocessor and defaults to C128 mode unless the Commodore is held down during this process, in which case it enters C64 mode.
This page focusses on the Commodore 128's ability to run CP/M. The C128 came bundled with CP/M 3.0 (also known as CPM Plus) on floppy disk. This version is backward-compatible with CP/M 2.2 and ADM31/3A terminal emulation.
Prerequisites
In order to be able to use the Commodore 128 in CP/M mode, you need to have the following:
- C128 connected to a monitor able to support RGB input [for 80-column mode only]*
- A 1571 floppy disk drive**
- A bootable CP/M floppy disk [disk image file can be found further down this page]
*The Commodore 128 can run CP/M in 40-column mode (this uses the VIC-II video chip that the C128 inherited from the C64). However, much CP/M software expects 80 columns wide to be displayed. The Commodore 128 supports 80 columns via a new display chip called the VDC (Video Display Chip). This provides a colour CGA-compatible output via the C128's RGB output socket. When using the C128 in 40-column mode you can hold down the Control key and press the cursor keys to scroll the display window left or right.
**CP/M can be run using a 1541 floppy drive, but only single-sided GCR disks can be used, and the speed of operation will be roughly one-tenth the speed of using the 1571 floppy drive. Note that because of the different encoding method used by Commodore (GCR instead of the CP/M standard which is MFM), the CP/M command to format a floppy disk, "COPYSYS", is not implemented. Instead it is replaced by the "FORMAT" command .
CTools
The file below contains some DOS and LINUX tools that can help you in processing Commodore CP/M disk images, including adding or extracting CP/M files from the CP/M .D64 image file:
Some examples of use on the command-line are:
... to show a directory:
C:\CPMFILES>ctools example.d64 d
... to get all files with pattern *.com from image into current directory:
C:\CPMFILES>ctools example.d64 g *.com
... to put all files with pattern *.com from current directory into image:
C:\CPMFILES>ctools example.d64 p *.com
CP/M 2.2 Commodore 64 Disk Reader
One utility that runs in Windows is the CP/M 2.2 Commodore 64 Disk Reader. This will read the contents of a Commodore disk image (.d64) containing CP/M files, and allows you to add new files to the disk image. Just start the program and pick up the D64 image file of a CP/M floppy.
After the program shows you all directory entries, use the window slider at the right side if necessary, do not click on a row until you want to save the file.
Directory extends (always exist when the size of a file exceeds 16 KByte) are fully implemented, to save a file with one or more extends, click on the filename without an asterisk ('*') at the beginning. USER numbers/partitions are ignored.
CP/M Disk Images
This section below and the files available from here are mirrored from René van Belzen's CP/M pages on The Commodore 128 Page at Tripod. The only functional changes being to remove the links not associated with CP/M and I have fixed the broken external links. This collection was created by Burton Craddock. The contents are either (C) Copyright Burton Craddock 2007 or are derivative or direct works of their various authors to which the respective Copyrights apply. It is provided in the hope that it will be interesting or useful or both, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. In particular, Bill Buckels has no warranty obligations or liability resulting from its use in any way whatsoever.
These files are contained in .D64 disk files and should be copied as whole disk images to 5.25" diskettes. Only the cpm1d64 file is bootable for CP/M mode. This boot disk is enhanced with the faster ZP/M (Z80 coding, instead of 8080 coding). The original 8080 coded CP/M disk image may be downloaded as a gzipped file from here. This link is a system disk of CP/M Plus Version 3.0, Serial No. 6228151676.
Description | |
---|---|
cpm1d64.zip | CP/M Boot DiskCP/M Plus based on Simeon Cran's fully compatible ZP/M system. It contains the following files: CCP COM 4k 25 Dir RW |
cpm2d64.zip | CP/M Additional UtilitiesSome further utilities to spice up your CP/M Plus. For a full description of all the files, see the Commodore 128 System Guide. Contains: DATE COM 4k 25 Dir RW |
cpm3d64.zip | More CP/M Additional UtilitiesSome useful utilities for C128 CP/M Plus. Contains:
|
cpm4d64.zip | CP/M Assembler UtilitiesMany of the files on this disk are described on the CP/M Assembler Utilities Help Page. Contains:
|
cpm5d64.zip | Microsoft BASIC-80MBASIC is one of the most popular BASIC dialects for the 8080 microprocessor, also referred to as BASIC-80. MBASIC came with a compiler. All this put together is so much that it wouldn't fit on one .D64 disk image, so I divided the files over two disk images. Both are contained in the ZIP-file, so you download both at the same time. You will find the "BASIC-80 Reference Manual" on the Commercial CP/M Software site (http://deltasoft.fife.wa.us/c pm/index.html). I hope to complete the conversion of the scanned pages into an HTML text document soon, and will put them in my e-document section. I got the files from several sources. First of all, the Commercial CP/M Software site (http://deltasoft.fife.wa.us/c pm/index.html), which--at the time--had a non-working BASIC compiler. The working version was graciously provided by Jack Cammell, who found it in one of his old disk boxes, which he hadn't opened for years, just like a little treasure-trove :-). Here is an (incomplete) description of the files on both disk images:
|
CP/M Versions
File | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cpmfast.zip | A 1999 update to C128 CP/M, by Linards Ticmanis. This version addresses some of the CP/M driver performance limitations of the original and purports to improve 80-column screen updates by 75%. | ||||||||||||||||||||||||||||||||||||||||
CP/M Plus Source Code | This file contains the latest source code of C128 CP/M Plus (3.0), dated May 28th 1987. The files are as follows:-
To generate a new CPM+.SYS file used by CP/M on the Commodore 128 follow the procedure listed below. You will need a 1581 disk drive for this task. Without a 1581, you will have to make modifications to the procedure to suit your system (refer to the MAKESYS instructions on the 5.25" diskette that accompanies the DRI manual offer). If you're lucky enough to possess a 1750 RAM expander, you could use it (drive M:) in place of the 1581 work disk. This procedure requires a 400K work space.
|