Difference between revisions of "CP/M"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Videos)
(Amstrad CPC and CP/M)
 
(30 intermediate revisions by 3 users 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''' was shipped with the disk models of the Amstrad CPC and the [[DDI-1]] disc drive on one or two [[System Disk]]s.
+
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:
 +
* [[Z80DOS]]
 +
* [[Z-System]]
 +
 
 +
== Extracting CP/M archives under Windows/Linux ==
 +
 
 +
Most of these do not have windows 64-bit executables and need building from source.
 +
 
 +
* [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
  
 
* [[CP/M 2.2]]
 
* [[CP/M 2.2]]
* [[CP/M 3.0]]  
+
* [[CP/M 3.0]] also called CP/M Plus
 
+
[http://www.gaby.de CP/M Archive site maintained by Gaby]
+
  
 
== MicroDOS ==
 
== 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''' (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.
  
== CP/M on ROM ==
+
== Links ==
  
[[Graduate Software]] offered a service to copy your original CP/M package to a ROM (thus easier access and more disk space).
+
* [http://www.gaby.de CP/M Archive site maintained by Gaby]
  
 
== Videos ==
 
== 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 via serial port.
+
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
 
;CP/M Introduction

Latest revision as of 05: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}}