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 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.
CCP
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
BDOS
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 Medlung bei „bad sector“, ist ansonsten identisch mit der vom Z9001.
Versionen
- 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
Downloads
- 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
Kompilieren
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