Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:cpa [2011/02/14 18:30] volkerpcpm:cpa [2024/03/05 10:24] (aktuell) – [Downloads] volkerp
Zeile 1: Zeile 1:
 ====== CP/A ====== ====== CP/A ======
  
-CP/A ist eine CP/M-kompatibles Betriebssystem der Akademie der Wissenschaften der DDR.+CP/A ist ein CP/M-2.2-kompatibles Betriebssystem der **Akademie der Wissenschaften der DDR**, der Hauptentwickler war  **Hans Willy Dames**. 
 + 
 +CP/A 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. 
 + 
 + 
 +s.a. http://www.robotrontechnik.de/html/software/scp.htm#cpa 
 + 
 + 
 +===== Downloads ===== 
 + 
 +  * {{:cpm:cpa_src.zip|}} Assembler-Quellcode von CCP und BDOS, 3 Versionen, incl. Quellen von CP/M 2.2 zum direkten Vergleichen 
 +  * {{:cpm:cpa.zip|}} komplettes CPA-Archiv aller mir bekannten Versionen (s.u.) 
 + 
 + 
 +===== 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 
 + 
 +===== 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, besonders bei den CP/A-spezifischen Kommandos EXT, SWAP, CLK 
 + 
 +**Besonderheiten des CCP** 
 +                
 +Das CCP enthält gegenüber der Version CP/M 2.2 einige Erweiterungen  (bei 
 +gleichem Hauptspeicherbedarf von  800h  Bytes). Sie  betreffen vor allem die 
 +Arbeit mit verschiedenen  Nutzerbereichen, wie sie sich bei 800k-Disketten als 
 +sinnvoll erweisen kann. 
 +                
 +Bei  einem eingestellten Nutzerbereich größer als  0  lautet die Prompt-Meldung 
 +du> statt nur d> (d für Default-Laufwerk, u für  dezimale Nutzernummer). 
 +Hierdurch hat der Anwender  bei der  Aufteilung einer Diskette in mehrere 
 +Nutzerbereiche einen leichteren Überblick,  in welchem Bereich er sich  z.Zt. 
 +bewegt. 
 +                
 +Kommandofiles  werden  bei USER>0 auch unter USER 0  und  wenn dort erfolglos 
 +auf der Systemdiskette (im Kaltstart-LW)  unter USER 0 gesucht (gilt nicht für 
 +nachgeladene Files!). 
 +                
 +Weiterhin existieren zusätzliche residente Kommandos: 
 +                
 +**CLK** hh:mm:ss tt.mm.jj 
 + 
 +Durch  dieses  Kommando  können Uhrzeit  und  Datum (beide Angaben ab 50h in 
 +BCD-Form vom Kaltstart bzw. von  ACCOUNT hinterlegt) neu gestellt  werden. 
 +                          
 +**GO** <beliebige Parameter> 
 +                          
 +Das  letzte  geladene Programm wird   ohne  Neuladen aktiviert,  Parameter 
 +können wie beim  Direktaufruf angegeben werden,  Nutzerbereich beliebig (d.h. 
 +das Programm  kann  zuvor über einen anderen  Nutzerbereich in den 
 +Hauptspeicher gebracht worden sein), 
 +                  
 +**EXT** [d:]<filename> 
 +                          
 +Das  angegeben  COM-File  wird zu  einem  residenten Kommando erklärt,  indem 
 +es vor BDOS,  CCP und  vor evtl.  schon  residenten zusätzlichen Kommandos  im 
 +Hauptspeicher abgelegt wird, um bei Aufruf statt von Diskette von dort nach 100h 
 +geladen zu werden. Hierdurch  verringert sich jedoch der TPA  entsprechend. 
 + 
 +Da  residente  Kommandos nur maximal 4 Zeichen  lang sein dürfen, trifft dies 
 +auch auf <filename> zu. 
 +                
 +**RES** 
 + 
 +Streichen aller zusätzlich residenten Kommandos 
 + 
 +**HELP** 
 + 
 +Ausgabe einer Liste aller z.Zt. residenten Kommandos 
 +                
 +Bei  jedem  Warmstart prüft das BIOS,  ob das über  das  CCP definierte 
 +Standard-Laufwerk im System definiert ist. Im negativen  Fall (z.B. 
 +Tippfehler) wird auf das Kaltstart-Laufwerk umgeschaltet, der Nutzerbereich 
 +bleibt erhalten.
  
 ===== BDOS ===== ===== BDOS =====
  
-Vom BDOS lag mir leider kein Quelltext vor. Ich habe deshalb das BDOS, was im CP/A für den Z9001 enthalten ist, 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) mittel DIFF offenbart die Unterschiede:+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   * Das CP/A-BDOS wurde im Prinzip komplett und fast 1:1 aus dem DR-BDOS abgekupfert
Zeile 16: Zeile 115:
   * READ beachtet zusätzlich 13H (Ctrl-S)   * READ beachtet zusätzlich 13H (Ctrl-S)
  
-===== Versionen =====+Die Version vom PC1715, datiert 11.1.89, enthält eine kürzere Meldung bei "bad sector", ist ansonsten identisch mit der vom Z9001.
  
-  cpa biop 861106.zip +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 861125.zip + 
-  * cpa biop 890103.zip +**Besonderheiten des BDOS** 
-  * cpa bios 880531.zip +                
-  * cpa bios 880531.zip 2. Variante +CP/A unterscheidet sich durch folgende inhaltlichen  Veränderungen 
-  * cpa bios 890925.zip +im  BDOS vom Betriebssystem  CP/M,  Version  2.2  (bei  gleichem 
-  * Verschiedene Beschreibungen+Hauptspeicherbedarf von E00h Bytes): 
 +                
 +- Beschleunigung der Arbeit mit Nicht-Default-Laufwerken.  Ist im    FCB  ein 
 +anderes als das  Default-Laufwerk  angegeben (FCB[0]<>0) und dies ist nicht 
 +ausgewählt, so wird vom BDOS auf  dieses umgeschaltet (SELDSK) und beim 
 +Verlassen  nicht zurückgeschaltet,  sondern  nur eine hängende  Umschaltung 
 +vermerkt
 +Dadurch  wird eine ständige Übernahme  der  Disk-Parameter durch  das BDOS 
 +vermieden,  so dass auch in diesem Fall  die gleiche  Geschwindigkeit  wie  bei 
 +der Arbeit  mit  Default- Disketten erreicht wird
 +                
 +- Wegfall der ^S-Funktion. 
 + 
 +Das  Stoppen  von Konsolausgaben kann  als  Spezialfall  der allgemeinen Stop- 
 +Funktion im BIOS (s.5.1.3) erreicht werden. Verbunden  mit  dem Wegfall der ^S- 
 +Funktion konnte  auf  die Pufferung von Konsoleingaben im BDOS völlig 
 +verzichtet werden,  d.h. es werden keine Zeichen vertauscht, wenn zwischen 
 +BDOS und direkter BIOS-Tastatureingabe gewechselt wird. 
 +                
 +- ^S  und DEL wirken bei der Stringeingabe über das BDOS  wie ^H. 
 +                
 +- Um eine Arbeit ohne LW A (weil es gerade defekt ist und  die Laufwerke nicht 
 +umgesteckt werden können) zu erlauben, wird statt Laufwerk A:  dasjenige 
 +Laufwerk, von dem aus der Kaltstart  erfolgte  bei der BDOS-Funktion "Disk-Reset" 
 +selektiert.  Da mit dieser BDOS-Funktion auch die Abarbeitung von 
 +SUBMIT-Strömen  verbunden ist,  muss daher beim Aufruf  von SUBMIT das 
 +Kaltstart-Laufwerk als Standardlaufwerk  zugewiesen sein, damit der 
 +Kommandostrom dort abgelegt wird! 
 +Erfolgte  der Kaltstart von Laufwerk A,  so hat diese  BDOS-Änderung keine 
 +Auswirkungen. 
 +                
 +- IX  und  IY werden durch das BDOS (und daraus  resultierende BIOS-Aufrufe) 
 +nicht zerstört. 
 +                
 +- Es  wurde  ein Kopierschutz  integriert,  das  Kopieren  geschützter Dateien 
 +führt zu der Fehlermeldung  'File R/O' (unabhängig vom evtl.  R/O-Status der 
 +Dateien).  Wie dieser Schutz funktioniert, wird hier <del>nicht</del> verraten. 
 + 
 +<code> 
 +; - Kopierschutz durch Kommando: 
 +;     POWER SET [-X] 
 +;     alle zu schuetzenden Files auswaehlen. 
 +;     Vor "[" kann ein Laufwerk, z.B. "B:[-X]" angegeben werden. 
 +; Beim Kopier-Versuch erfolgt die Ausschrift 'File R/O' 
 +; und Abbruch. Geschuetzte Files sind anderweitig nicht er- 
 +; kennbar, insbesondere liefern DIR und DIR in POWER keinen 
 +; Hinweis. 
 +; Die Kopierfunktion im FORMAT[P]-Programm wird im Menuetext 
 +; und als Menueantwort nur bei der Aufrufform 'FORMATP CPA' 
 +; zugelassen, im normalen Aufruf 'FORMATP' ohne oder mit fal- 
 +; schem Parameter ist sie verboten. 
 +; Diese Schutzfunktionen sollten nur vom Systemverantwortlichen 
 +; genutzt werden und auch nur diesem bekannt sein! 
 +</code> 
 + 
 +aus den BIC-Quellen: 
 +<code> 
 +;; modifizierungen gegenueber original cp/m 2.2: (Original Dames) 
 +; -  um eine arbeit ohne lw a zu erlauben, wird das erste 
 +;    default-lw nach kaltstart als $$$.sub-lw bei disk-reset 
 +;    benutzt. dem anwenderprogramm wird dazu nach disk-reset 
 +;    in h die kaltstart-lw-nr (a=0, b=1,..) und in l und a 
 +;    ff bei vorhandener $-datei, 00 sonst uebergeben. 
 +; -  um fuer pc1715 im directory "sauber" die loader-informa- 
 +;    tionen unterzubringen, werden zu uebergehende dir-ein- 
 +;    traege bei login nicht nur an USER=e5h, sondern auch 
 +;    an filename[1] =00h oder >=f0h erkannt. 
 +; -  einfuehrung eines kopierschutzes: 
 +;    eine $$$-datei kann nicht in eine datei mit gesetztem 
 +;    bit 7 im 3. typ-byte umbenannt werden (file r/o -meldung) 
 +;    die $$$-eintragung im directory wird unkenntlich gemacht. 
 +; -  ix und iy werden vom BDOS gerettet und wiederhergestellt 
 +; -  einsparung von bytes durch einfuehrung von jr-spruengen 
 +;    und streichen von steuerzeichen fuer nicht-bildschirm- 
 +;    konsolen. 
 +; -  beschleunigung der arbeit mit fcb(0)=0 indem nicht sofort 
 +;    wieder auf current-laufwerk zurueckgeschaltet wird 
 +; -  das puffern von zeichen im BDOS entfaellt zusammen mit der 
 +;    ^s-funktion (nur dafuer noetig), da im BIOS ein allgemei- 
 +;    nes stop des rechners implementiert ist (ci-taste). 
 +; -  ^s wirkt wie ^h (falls ^h-taste zu ^s umdefiniert wurde) 
 +; -  verlegung des sprungverteilers fuer die BDOS-funktionen 
 +;    nach vorn, damit speicherschutz von BDOS+40h moeglich ist. 
 +; -  fehlerkorrektur bei selektivem lw-reset (fkt. 25h), funktionierte 
 +;    nur bei zwischenzeitlichem lw-wechsel  
 +</code> 
 + 
 + 
 +===== 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: 
 + 
 +<code> 
 +m80 =biop/x/c 
 +ref lst:=biop ( statt lst auch datei PRN ) 
 +linkmt @os=ccpbas,ccp,bdos,x:biop/p:0ba80 
 +</code>
  
-===== Downloads ===== 
  
-  * {{:cpm:cpa_src.zip|}} BDOS-Quellcodes 
-  * {{:cpm:cpa.zip|}} komplette CPA-Archive 
  
  • cpm/cpa.1297708255.txt.gz
  • Zuletzt geändert: 2011/02/14 17:30
  • (Externe Bearbeitung)