Difference between revisions of "CP/M"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(MicroDOS implementation for KC Compact)
(Amstrad CPC and CP/M)
 
(18 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
It was developed by [[Gary Kildall]] of [[Digital Research|Digital Research, Inc.]] as a private project from 1974 on, named '''''C'''ontrol '''P'''rogram/'''M'''onitor''. When it became commercial software in November 1977 it was renamed to '''''C'''ontrol '''P'''rogram for '''M'''icrocomputers''.
 
It was developed by [[Gary Kildall]] of [[Digital Research|Digital Research, Inc.]] as a private project from 1974 on, named '''''C'''ontrol '''P'''rogram/'''M'''onitor''. When it became commercial software in November 1977 it was renamed to '''''C'''ontrol '''P'''rogram for '''M'''icrocomputers''.
  
CP/M had a machine independent part (implemented by Digital Research) and a machine dependent part implemented by the vendor (Amstrad).
+
CP/M is in three parts. The console command processor (CCP) which handles your input from the "A>" prompt. The basic disk operating system (BDOS) and the basic input/output system (BIOS).
  
'''CP/M''' was shipped with the disk models of the Amstrad CPC and the [[DDI-1]] disc drive on one or two [[System Disk]]s.
+
The CCP and BDOS are machine independent and are made by Digital Research. The BIOS is implemented by the vendor (e.g. Amstrad).
  
For the DDI-1 and CPC664 there was a single disc with CP/M 2.2 on it.
+
There are other CP/M compatible systems or systems that replace part of CPM to fix bugs and enhance it:
For CPC6128 and later there were two discs with CP/M 2.2 on one disc and CP/M+ on the other.
+
* [[Z80DOS]]
 +
* [[Z-System]]
  
Vortex also shipped their CP/M with their disc drives which used their memory expansion and Dobbertin shipped CP/M to be used with their hard disk.
+
== Extracting CP/M archives under Windows/Linux ==
  
[[Graduate Software]] provided a version of CP/M+ on ROM.
+
Most of these do not have windows 64-bit executables and need building from source.
  
Various utilities also patched CP/M to use extended disc formats and to support Amstrad peripherals.
+
* [http://gnuwin32.sourceforge.net/packages/arc.htm ARC extractor]
 +
* [http://www.seasip.info/Unix/Lar/index.html LBR extractor]
 +
* [http://www.gaby.de/cfx13.zip CFX extractor tool]
 +
 
 +
== Amstrad CPC and CP/M ==
 +
 
 +
'''CP/M''' was shipped with the disk models of the Amstrad CPC and the [[DDI-1]] disc drive.
 +
See [[System_Disk]].
 +
 
 +
Other versions of CP/M were also available:
 +
* [[Vortex_CPM|Vortex]] also shipped their CP/M with their disc drives and their hard disk. This utilised their memory expansion and supported their disc format (which was widely used)
 +
*  [[Dobbertin_CPM|Dobbertin]] shipped CP/M to be used with their hard disk.
 +
*  [[Graduate Software]] provided a version of CP/M+ on ROM.
 +
 
 +
Various utilities also patched CP/M to use extended disc formats and to support Amstrad peripherals which included:
 +
* [[DkTronics_CPM|Dk'Tronics CP/M]]
 +
* [[ROMDOS|RAMDOS/ROMDOS patched for CPM2.2 and CP/M+ to use RAMDOS/ROMDOS disc formats]]
  
 
CP/M versions relating to the Amstrad CPC
 
CP/M versions relating to the Amstrad CPC
Line 35: Line 52:
 
The boot sequence on KC Compact is:
 
The boot sequence on KC Compact is:
 
* |CPM from BASIC
 
* |CPM from BASIC
* An ID is read from drive 0, track 0, side 0. Both C and N from the result phase of the ID command are checked. N must be 3 and not have a CPC id (49/c9 etc)
+
* An ID is read from drive 0, track 0, side 0. Both C and N from the result phase of the ID command are checked. N must be 3 and not have a CPC id (41/c1 etc)
* If ID is not MicroDOS then follow normal AMSDOS CP/M boot procedure
+
* If ID is not MicroDOS then follow normal AMSDOS CP/M boot procedure (therefore allowing boot into Amstrad's CP/M on system format discs)
 
* If ID is MicroDOS then boot MicroDOS.
 
* If ID is MicroDOS then boot MicroDOS.
  

Latest revision as of 06:11, 20 May 2018

CP/M is an operating system running on different computers with Intel 8080 and compatible CPUs. It was the most popular operating system for micro computers, before the 16 bit age started successfully with the IBM PC and MS-DOS. Most computer systems running CP/M were based on a Z80 CPU.

It was developed by Gary Kildall of Digital Research, Inc. as a private project from 1974 on, named Control Program/Monitor. When it became commercial software in November 1977 it was renamed to Control Program for Microcomputers.

CP/M is in three parts. The console command processor (CCP) which handles your input from the "A>" prompt. The basic disk operating system (BDOS) and the basic input/output system (BIOS).

The CCP and BDOS are machine independent and are made by Digital Research. The BIOS is implemented by the vendor (e.g. Amstrad).

There are other CP/M compatible systems or systems that replace part of CPM to fix bugs and enhance it:

Extracting CP/M archives under Windows/Linux

Most of these do not have windows 64-bit executables and need building from source.

Amstrad CPC and CP/M

CP/M was shipped with the disk models of the Amstrad CPC and the DDI-1 disc drive. See System_Disk.

Other versions of CP/M were also available:

  • Vortex also shipped their CP/M with their disc drives and their hard disk. This utilised their memory expansion and supported their disc format (which was widely used)
  • Dobbertin shipped CP/M to be used with their hard disk.
  • Graduate Software provided a version of CP/M+ on ROM.

Various utilities also patched CP/M to use extended disc formats and to support Amstrad peripherals which included:

CP/M versions relating to the Amstrad CPC

MicroDOS

MicroDOS (Microcomputer Disc Operating System) is a CP/M clone made in East Germany (GDR) for computers of the brand Kleincomputer (KC). It was available for the KC Compact. Unfortunately it is not 100% compatible with CP/M.

MicroDOS implementation for KC Compact

MicroDOS disc format is 1024 bytes per sector (N=3), Sector IDs 1-5. Double sided (Head ids are 0 or 1).

The following are requirements:

  • KC Compact disc interface (which has the BASDOS ROM, 64KB RAM and disc interface) (a CPC6128 should be able to run MicroDOS with an appropiate boot program)
  • MicroDOS formatted disc with boot sector.

The boot sequence on KC Compact is:

  • |CPM from BASIC
  • An ID is read from drive 0, track 0, side 0. Both C and N from the result phase of the ID command are checked. N must be 3 and not have a CPC id (41/c1 etc)
  • If ID is not MicroDOS then follow normal AMSDOS CP/M boot procedure (therefore allowing boot into Amstrad's CP/M on system format discs)
  • If ID is MicroDOS then boot MicroDOS.

MicroDOS boot:

  • read drive 0, track 0, side 0, sector 1-5 to &3F80 in RAM.
  • read drive 0, track 0, side 1, sector 1-5 to &5380 in RAM.
  • read drive 0, track 1, side 0, sector 1-5 to &6780 in RAM.
  • read drive 0, track 1, side 1, sector 1 to &7B80 in RAM.
  • check if &3f80 starts with <0> "DOS". i.e. 0 byte followed by DOS text
  • execute &4000.

Therefore you require a MicroDOS specifically for the KC Compact (i.e. a MicroDOS for KC85/4 or other KC computers will not work because the hardware is different) because the code on the disc initialises the hardware and configures the environment for MicroDOS specific to the computer booting it.

Links

Videos

These four introduction videos show the basic usage and programming environment of CP/M on a modern Altair 8800 simulator connected to a terminal emulator ("Vince Briel PockeTerm") via serial port. (These videos are made by the person who sells these Altair simulators, so you can ignore the small sales pitch at the end of each video.)

CP/M Introduction

{{#ev:youtube|BQq6ad9F3Xk|450}}

CP/M Programming Environment

{{#ev:youtube|YQNHg1XuFR4|450}}

Changing CP/M's RAM Size

{{#ev:youtube|DJvT-9Gykm8|450}}

CP/M Application Demos

{{#ev:youtube|_19ks4I5XwE|450}}