Beschreibung

Kurzbeschreibung zur Arbeit mit der CP/M Nachruestung

  1. Stecken aller drei Module: Schalt-ROM, 64K-Schalt-RAM, FDC
  2. Einschalten des Rechners, dann Floppy Station
  3. Aufruf des CP/M mit…
   CPM 1 4  >ET<  fuer Laufwerk 1.2      200K
   CPM 2 4   "     "       "    1.4 ds   400K
   CPM 1 8   "     "       "    1.4 dd   400K
   CPM       "     "       "    1.6 dd   800K
 
   Das Booten beginnt vom Laufwerk "A"
  
   bei Aufruf...
   CPM 1 4 B 
   usw erfolgt das Booten vom Laufwerk "B"

:!: Statt CPM kann das Boot-Programm auch anders heißen, z.B. BOOT.

  1. Jetzt normales Arbeiten im CP/M Modus
  2. Besonderheiten
    • Tastatur: Extra-Zeichen mit der Betätigung der LIST Taste (Das ist im JKCEMU Emulator F1) und dann
                   (  bzw. 8  -->  [ (Ä)
		   )  bzw. 9  -->  ] (Ü)
		   <  bzw. .  -->  { (ä)
		   >  bzw. ,  -->  } (ü)
		   I          -->  | (ö)
		   /  bzw. ?  -->  \ (Ö)
		   s  bzw. =  -->  ~ (ß)
  • BASIC
    • mit ZBASIC Laden und Speichern auf DISK
    • mit ZBASICT Laden vom TAPE und Speichern auf DISK
    • mit BASG3 Laden und Speichern auf DISK. Das ist eine BASIC86-Variante mit DIR-Befehl (vp 2007)
    • Filenamen müssen GROSS geschrieben werden !
  • Turbo Pascal
    • fuer das ^K muss ^E geschrieben werden z.B. ^Kd =⇒ ^Ed

Es gibt zwei wichtige Dokumente zum CP/M-System am Z9001. Zum einen:

Diskettenstation zum zum KC 85/1 und KC 87
VEB Robotron-Meßelektronik „Otto Schön“ Dresden

Diese Dokumentation ist bei U. Zander http://www.sax.de/~zander unter Z9001»Module»Diskettenbestellung, Beschreibung der Diskettenstation zu finden (http://www.sax.de/~zander/z9001/module/disk/z9_disk.pdf).

Die folgende zweite wichtige Dokumentation stammt von einer Rossendorfer Systemdiskette; gilt wegen der Analogie beider Systeme aber genauso für die Robotron-Module.

CP/M 2.2 auf KC 85/1 und KC 87
F. Schwarzenberg

Im folgenden werden Besonderheiten der Implementation von CP/M2.2 auf den o.g. Heimcomputern erläutert, die insbesondere bei der Übernahme von CP/M-Programmen von anderen Rechnern beachtet werden sollten.

Die Grösse des TPA ist generierungsabhängig (i.A. >51K !). Der gesamte Adressraum von 0 .. E7FF muss als RAM verfügbar sein. Hardwarevoraussetzung für eine CP/M-Implementation ist folglich eine (64KB) RAM-Karte, die den genannten Adressraum belegt.

Das Z9001-Betriebssystem (BOS) wird weiterhin mit verwendet. Es belegt einen Teil des für CP/M und BIOS reservierten Speicherbereiches von 0 .. 80H. Die Z80-Restart-Adressen sowie die von CP/M 2.2 standardmäßig verwendeten Bereiche (bis auf eine Ausnahme, s. I/O-Byte) sind davon nicht betroffen. Vorsicht ist aber bei solchen Programmen geboten, die insbesondere den für zukünftige BIOS-Erweiterungen reservierten Platz nutzen (40h .. 5Bh). Dieser Bereich wird vom BOS genutzt!.

Die verwendete 64 KB-RAM-Erweiterung erlaubt die Nutzung einer „versteckten“ 16 KB-Bank (s. Dokumentation RAM-Karte):

Die versteckte Bank wird vom BIOS für den sog. Disk-Transfer-Buffer sowie zum Halten einer Kopie des CCP (kein Laden von Diskette beim Warmstart!) genutzt. Damit sind je nach Größe des Diskbuffers (1K..8K je nach Generierung, Standard ist 1K) 3..10K der Bank vom BIOS genutzt. Die Belegung der Bank erfolgt von oben nach unten (ab 7FFFh abwärts).

VP: Seit 2007 gibt es auch eine CP/M-Version, die ohne das spezielle 64K-Modul mit 2 RAM-Modulen arbeitet. Wird der Bootloader von Kassette geladen (oder er steckt in einem normalen ROM-Modul, das nicht abschaltbar sein muss), kann man CP/M ausschließlich mit einem Floppy-Modul betreiben. Hat man auch dieses nicht, bleibt zum Kennenlernen noch das Mini-CP/M.

Der KC realisiert eine Bilddarstellung im Format von 40 Zeichen a 20 oder 24 Zeilen. Viele CP/M-Programme erfordern ein Format von 80*24 oder zumindest 64*16. Einige Programme sind deshalb nicht ohne weiteres lauffähig (z.B. Wordstar bzw. TP). Die Cursor-Positionierung kann über eine Control-Sequence der folgenden Form erfolgen: CSI Zeile+128 Spalte+128 (kompatibel zum PC 1715) mit

     CSI      1Bh
     Zeile    0..23
     Spalte   0..39 .

Die Codierung der Cursortasten und Sondertasten ist beim KC nicht standardgerecht und erzwingt bei der Installation einiger Programme Kompromisse (z.B. Turbo-Pascal, ^K kann nicht beibehalten werden, da sonst die Cursor-Hoch-Taste nicht sinngemäß genutzt werden kann). Einige auf der Tastatur nicht vorhandene Tasten können durch direkt vorhergehendes Betätigen der LIST-Taste (1CH) simuliert werden:

          [ (Ä)   ==>  LIST + (
          ] (Ü)   ==>  LIST + )
          { (ä)   ==>  LIST + <
          } (ü)   ==>  LIST + >
          | (ö)   ==>  LIST + i
          \ (Ö)   ==>  LIST + /
          ~ (ß)   ==>  LIST + s (bzw. LIST + =)

D.h. 2 Tasten sind zu betätigen, um die oben gezeigten Zeichen zu erhalten (1. LIST, 2. s.o, ohne SHIFT-Taste!).

Das I/O-Bytekonzept des CP/M wurde mit realisiert (s.a. Abschnitt Gerätetreiber), da der entsprechende Mechanismus bereits im BOS-Z9001 enthalten ist. Eine Besonderheit ergibt sich dadurch, dass vom BOS das I/O-Byte im Gegensatz zum CP/M-Standard auf der Adresse 4 erwartet wird:

Adr. 3 4
CP/M I/O-Byte akt. Laufwerk
CP/M-Z9001 akt. Laufwerk I/O-Byte

:!: Programme, die das I/O-Byte direkt abfragen/verändern, müssen entsprechend angepasst werden. Für die wesentlichen Programme liegt eine angepasste Version vor (STAT, Turbo-Pascal).

Mehrere Drucker- und Consoltreiber sind standardmäßig implementiert. Die Treiber können über das I/O-Byte (z.B. mit dem Programm STAT) jederzeit während des Betriebes ausgewählt werden. Folgende Treiber stehen zur Verfügung:

  -  Console:   (STAT CON:=TTY:) ==> Tastatur-Beep
                                     Umwandlung Groß- &lt;==> Kleinb.
                                     Behandlung  der   Sondertasten
                                     wie unter 3. angegeben.
                (STAT CON:=CRT:) ==> Tastatur-Beep, keine Umwandlg.
                                     (zu  empfehlen bei der  Arbeit
                                     mit Basic)
                (STAT CON:=UC1:) ==> ohne Beep und Umwandlung

  - Drucker:    (STAT LST:=CRT:) ==> V24-Userport 1200 Baud
                (STAT LST:=LPT:) ==> V24-Userport 9600 Baud
                (STAT LST:=UL1:) ==> Centronics-Userport

V24-Betrieb erfordert geringfügige Maßnahmen zur Pegelanpassung sowie das sog. DTR- (bzw. Hardware-) Protokoll. Der Centronics-Treiber überträgt 7 Datenbits. Die Treiberproblematik ist ausführlich beschrieben in der Zeitschrift Mikroprozessortechnik 10/87 mp 10/87 S. 311 ff..

Das MBASIC (bzw. BASI etc.) des CP/M kann verwendet werden.

Ferner wurde das KC-BASIC für den Betrieb unter CP/M modifiziert (aufrufbar als ZBASIC oder BAS). Ausgangspunkt für die Modifikation war das sog. RAM-BASIC. Volle Kompatibilität ist gegeben, sofern diese zum RAM-BASIC gegeben war (d.h. Basic-Programme mit Maschinencode-Anteil laufen i.A. nicht!). Bei der Arbeit mit Disketten ist auf Großschreibung der Dateinamen zu achten, andernfalls kann es insbesondere für den ungeübten Nutzer zu Problemen kommen. Die Dateinamen können max. 8 Zeichen lang sein (Buchstaben,Zahlen). Als Typ wird standardmäßig „ZBS“ verwendet (kann vom Nutzer nicht beeinflusst werden). Z.B. erscheint das Programm PASCH im Diskettenverzeichnis als PASCH.ZBS.

Zum Laden von Kassette und Speicher auf Floppy gibt es die Version ZBASICT bzw. BAST.

VP: Seit 2006 gibt es nun auch eine Version BASG, die die Grafikausgabe auf Plotter und Vollgrafik unterstützt. Dieses basiert auf dem moderneren ROM-BASIC des Z9001 und bietet damit auch eine bessere Kompatibilität für Basic-Programme mit Maschinencode-Anteil.

Der Bootstrap-Lader muss auf einer (geschalteten) ROM-Karte gesteckt sein. Dann kann das Laden vom OS-Mode mit CPM (bzw. BOOT) erfolgen. Die System-Diskette muss vorher im Laufwerk eingelegt sein.

Das Z9001-CP/M-System muss auf der Systemdisk als 1.File mit dem Namen @CPMZ9.COM vorliegen. Eine neue Systemdisk kann durch einfaches Kopieren dieses Files auf eine leere Diskette erzeugt werden. Als Standard-Disk-Format wird das 800K-Format für 80 Track-DS-Laufwerke (1.6) eingesetzt. Eine Reihe anderer gängiger Formate werden aber automatisch erkannt (780K, 720K, 624K, 400K, 360K, 200K, 148K ..).

prinzipieller Aufbau:

  CPM [S] TT KK .COM

   |   |  |  |______  2 Buchstaben Kennung für zus. Treiber
   |   |  |_________  2 Buchst. Laufwerkstyp
   |   |                (D8 - 80 Track DS
   |   |                 S8 - 80 Track SS
   |   |                 D4 - 40 Track DS
   |   |                 S4 - 40 Track SS)
   |   |____________  1 Buchst. geschaltetes System (s)
   |__________________3 Buchst. CPM (konstant)

Zusatzkennungen:

sm - mit Treiber für S6010 (SIO-Karte)

@CPMZ9   COM:	Betriebssystem, muss 1.File auf Diskette sein
CLOCK    COM:   Zeigt Uhrzeit in rechter oberer Bilschirmecke.
                Abschalten bei Arbeit mit Magnetband-Kassette!!
STAT     COM:	modifiziertes CP/M-STAT (I/O-Byte!)
SUBMIT   COM:	original CP/M-Submit
XSUB     COM:	   "     CP/M-XSUB
20Z      COM:	stellt 20-Zeilen Bildschirmode ein (BITEX!)
24Z      COM:	stellt 24-Zeilen-Mode ein (TURBO !)
DIP      COM:	Kopierprogramm, gut falls nur 1 Laufwerk
L80      COM:	original L80
M80      COM:	original M80
ULAD     DOC:	8-Bit-Wordstar(TP)-Datei!
POWER    COM:	original Power
ULAD     COM:	s. ULAD.DOC
BITEX    COM:	schneller Bildschirmeditor
ZSID     COM:	Debugger
TURBO    COM:	Turbo-Pascal, installiert fuer CP/M-Z9001
BITEX    DOC:	8-Bit-Wordstar-Datei
TURBO    MSG:
TURBO    OVR:
KCCPM    TXT:	16-Bit-Wordstar-Datei, Beschreibung CP/M-Z9001
ZBASIC   COM:	Heimcomputer-BASIC, Disketten-Version
ZDIR     COM:	Directory-Anzeige, beenden mit ESC
ZBASICT  COM:	HC-BASIC, liest von Kassette, schreibt auf Disk
                CLOCK muss abgeschaltet sein!!!
DPB      DOC:	Disk-Parameter-Block
BOALAB   ZBS:	Basic-Spiel
PASCH    ZBS:	dito
PFERD    ZBS:	dito
SKAT     ZBS:	dito
RESET    COM:	Ruecksetzen zum OS-Z9001
FORMATZ  COM:   Fuer CP/M-Z9001 autorisiertes Programm zum
                Formatieren (initialisieren) von Disketten.
                Standard fuer CP/M-Z9001 sind die Formate
                800K,400K und 200K (je nach Laufwerkstyp).
BOOT720  DAT:   Diese Dateien gehoeren zu FORMATZ und werden
BOOT360  DAT:   beim Formatieren von MS-DOS-Disketten benoetigt.

Achtung: ^K musste wegen Tastatur mit ^E getauscht werden. D.h., das ^K-Menu wird jetzt durch ^E erreicht! Vor Aufruf von Turbo ist 24-Zeilen-Mode einzustellen

Vor Bitex-Aufruf 20-Zeilen-Mode einstellen

   - Folgende Fehlermeldungen werden bei
     fehlerhaftem Bootvorgang ausgegeben:

     N: falsches System (Name!)
     L: falsche Laenge des Systems
     ?: kein CCP am Systemanfang

   - BIOS-Fehlermeldungen (bei Disk-Arbeit)

     Die Fehlermeldung hat folgendes Format:

  	{R|W} fc ;T,Si,Se=tthhss

  	  |___R: Fehler beim Lesen
  	      W: Fehler beim Schreiben

     tt: Spur
     hh: Kopf (Side)
     ss: Sektor
         (alle hexadezimal)

     mit fc =

     R  Geraet nicht bereit, aber existent
     W  Diskette schreibgeschuetzt
     S  Sektor nicht gefunden
     T  Spurnummer zu gross oder nicht zu finden
     C  CRC-Fehler
     D  Laufwerk nicht existent
     U  keine Marke gefunden
     B  fehlerhafte Befehlsaugabe (interner Fehler)
     F  Fehler ber Ausfuehrung des Seek-Kommandos