Beschreibung
Kurzbeschreibung
Kurzbeschreibung zur Arbeit mit der CP/M Nachruestung
- Stecken aller drei Module: Schalt-ROM, 64K-Schalt-RAM, FDC
- Einschalten des Rechners, dann Floppy Station
- 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.
- Jetzt normales Arbeiten im CP/M Modus
- 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
Dokumentation
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.
1. Speicheraufteilung
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.
2. Bildschirmformat
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 .
3. KC - Tastatur
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!).
4. I/O-Byte
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).
5. Standardmässig implementierte Gerätetreiber
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ß- <==> 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..
6. BASIC
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.
7. Laden des CP/M
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.
8. System und Disk-Formate
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 ..).
9. Filenamen für CP/M-Z9001-Systeme
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)
10. Inhalt der Systemdiskette
@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.
11. Turbo-Pascal
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
12. Bitex
Vor Bitex-Aufruf 20-Zeilen-Mode einstellen
13. Fehlermeldungen
- 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