Dies ist eine alte Version des Dokuments!


CP/A

CP/A ist eine CP/M-2.2-kompatibles Betriebssystem der Akademie der Wissenschaften der DDR, der Hauptentwickler war Hans Willy Dames.

Es setzt einen Z80-Prozessor voraus. Die Bestandteile CCP, BDOS und BIOS sind in sich abgeschlossene Programmteile und unabhängig voneinander. Sie können einzeln oder gemeinsam gegen die entsprechenden Programmteile des originalen CP/M 2.2 ausgetauscht werden. Alle CP/M-Programme laufen weiter unverändert.

Vorteile des CP/A gegenüber CP/M 2.2. sind erweiterte Funktionalitäten. Diese sind in einem ständig erweiterten Handbuch CPA.DOK nachzulesen. Herausragend sind

  • Urladen des Systems aus einer Datei @OS.COM. Das System musste nicht in speziellen Systemspuren gespeichert werden.
  • automatische Erkennung von Diskettenformaten
  • eingebauter Systemmonitor

Das CP/A wurde für Bürocomputer A5120, A5130 und den PC1715 ausgeliefert. Es gab BIOS-Quelltexte und REL-Dateien von CCP und BDOS, mit denen individuelle Systeme generiert werden konnten.

Das CCP von CP/A ist ziemlich sicher ursprünglich aus einem reassemblierten CP/M-2.2-CCP entstanden; wurde aber konsequent auf Z80-Befehle umgearbeitet und vielfach verändert und erweitert.

2014: Ich habe das CCP, welche im CP/A für den PC1715 und dem des Z9001 enthalten sind, reassembliert und mit den Originalmarkennamen und -kommentaren des originalen CP/M-2.2 CCP von Digital Research versehen. Ein Textvergleich aller Varianten offenbart die Unterschiede.

Die Version für den Z9001 und PC1715 (neuer?) unterscheiden sich in ein paar Punkten:

  • der Z9001 benutzt eine andere Adresse für die User-und Laufwerks-Speicheradresse
  • die Copyrightmeldung ist geändert
  • das DIR-Kommando zeigt die Dateien in 2 statt 4 Spalten an
  • Meldungstexte liegen am Ende des CCP
  • der Buffer fürs CLK-Kommando liegt an einer anderen Adresse, außerdem werden nur 3 Byte genutzt
  • kleine Unterschiede in der Implementierung, besondes bei den CP/A-spezifischen Kommandos EXT, SWAP, CLK

Vom BDOS lag mir leider kein Quelltext vor. Ich habe deshalb das BDOS, welche im CP/A für den für den PC1715 und dem des Z9001 enthalten sind, reassembliert und mit den Originalmarkennamen und -kommentaren des originalen CP/M-2.2 BDOS von Digital Research versehen. Ein Textvergleich beider Varianten (bdos_cpa.asm und bdos22.asm) mittels DIFF offenbart die Unterschiede:

  • Das CP/A-BDOS wurde im Prinzip komplett und fast 1:1 aus dem DR-BDOS abgekupfert
  • Durch Verwendung der Z80-spezifischen short jumps (jr) wurden einige Byte eingespart
  • der interne BDOS-Stack ist 32 Level tief, im Original sind es nur 24 Level
  • BDOS sichert die Register IX und IY
  • leicht andere Implementierung von CONIN, CONBRK, INITIAL2,
  • andere Implementierung von RENAME, RESELECT, FUNC13, FUNC14,FUNC25,FUNC37,GOBACK
  • DSKWR2 hat einen Patch am Anfang
  • READ beachtet zusätzlich 13H (Ctrl-S)

Die Version vom PC1715, datiert 11.1.89, enthält eine kürzere Meldung bei „bad sector“, ist ansonsten identisch mit der vom Z9001.

2014/08: Aus den Quelltexten des BIC A5105 geht hervor, dass W. Dames das originale BDOS reassembliert und hat. Das dort verwendete BDOS stammt direkt vom BDOS des CP/A ab („modifizierungen gegenueber original cp/m 2.2: (Original Dames“) Viele Marken heißen auch noch „i<hexadr>“.

  • cpa biop 861106.zip
  • cpa biop 861125.zip
  • cpa biop 890103.zip
  • cpa bios 880531.zip
  • cpa bios 880531.zip 2. Variante
  • cpa bios 890925.zip
  • Verschiedene Beschreibungen
  • cpa_src.zip Assembler-Quellcode von CCP und BDOS, 2 Versionen, incl. Quellen von CP/M 2.2 zum direkten Vergleichen
  • cpa.zip komplettes CPA-Archiv aller obiger Versionen

s. CPA.DOK

a) fuer Buerocomputer

   (( Modifikation des BIOS-Quelltextes BIOS.MAC))
   t:
   s:M80 s:BIOS.ERL=BIOS
   s:
   LINKMT @OS=CPABAS,CCP,BDOS,BIOS/P:xxxx
   ((Kaltstart))

b) fuer PC1715

   (( Modifikation des BIOS-Quelltextes BIOP.MAC))
   t:
   s:M80 s:BIOP.ERL=BIOP
   s:
   LINKMT @OS=CPPBAS,CCP,BDOS,BIOP/P:xxxx
   ((Kaltstart))

handschriftlich vom einem Listing PC1715 BIOP 02.11.87:

m80 =biop/x/c
ref lst:=biop 	( statt lst auch datei PRN )
linkmt @os=ccpbas,ccp,bdos,x:biop/p:0ba80
  • cpm/cpa.1418660928.txt.gz
  • Zuletzt geändert: 2014/12/15 16:28
  • von volkerp