Nachdem sich der QL-Zubehörhändler David B. Smith von Ultrasoft getrennt hat, firmiert er nun unter Hallmark Software. Dieser neue Name wird gleich mit einem wahren Paukenschlag eingeführt: Es gibt einen CP/M-Emulator für den QL! Damit steht diesem Rechner endlich eine der größten Programmbibliotheken zur Verfügung. Wir haben den „CP/Mulator" auf Herz und Nieren geprüft.
Der Begriff CP/M muß wohl nicht mehr näher erklärt werden, nachdem ja auch die CPC-Rechner zu seiner Wiederbelebung beigetragen haben. Es wurde von Digital Research für den 8080-Mikroprozessor von Intel geschrieben. Später fand fast nur noch der Nachfolger des 8080, der Z80, in CP/M-Systemen (z. B. den SchneiderRechnern) Verwendung. Das Standard-CP/M benutzt jedoch nur den Befehlssatz des 8080, der eine Untermenge des Befehlssatzes des Z80 darstellt. So kennt der 8080 z.B. keine Anweisungen zur Blockverschiebung. Es existieren aber Programme, die den vollen Z80-Befehlssatz ausnutzen (z.B. Turbo-Pascal von Borland/ Heimsoeth) und deshalb auf einem echten 8080-CP/M-System nicht laufen!
Der "CP/Mulator" für den QL emuliert nun ein Z80- und bietet somit mehr als ein echtes CP/M. Allerdings muß bei einem Emulator der goldene Mittelweg zwischen zwei nicht zu vereinbarenden Extremen gefunden werden, d.h. Schnelligkeit und vollständige Emulation aller, auch exotischer Befehle. Es sind also in jedem Falle .Kompromisse notwendig, wenn man ein Optimum finden will.
Auch der "CP/Mulator" verarbeitet nicht alle Z80-Anweisungen korrekt. Interrupt-Befehle werden durch ein NOP (tue, nichts) ersetzt, da die Interrupts des 68000 und des Z80 zu verschieden sind. Bei den CP/M-Emulatoren des Atari ST erzeugen diese Anweisungen eine Fehlermeldung, und das Programm bleibt stehen. Auch alle I/O-Kommandos des Z80 werden durch ein NOP-ersetzt, da der 68008 des QL keine I/O-Ports kennt. Außerdem wird über die I/O-Befehle typischerweise Hardware (z. B. spezielle Schnittstellen oder eine Uhr) angesprochen, die im QL dann sowieso nicht existiert.
Kommen wir nun aber zur Geschwindigkeit des "CP/Mulators". Als Vergleich dient hier die Taktfrequenz, mit der ein Z80-Prozessor laufen muß, um genauso schnell- zu sein. Der langsamste Befehl ist das NOP (etwa 400 kHz Z80); am schnellsten sind die komplexen Kommandos (etwa '1 MHz Z80). Dieses auf den ersten Blick unerwartete Ergebnis ist jedoch leicht zu verstehen: Der Overhead durch das Interpretieren der Z80-Befehle (schließlich muß der "CP/Mulator" ja wissen, was er tun soll) ist für alle Kommandos gleich. Beim NOP als kürzestem macht er sich deshalb am schlimmsten bemerkbar. Hingegen ist er bei komplexen Befehlen praktisch zu vernachlässigen.
Das Programm wird auf einer 3,5"-Diskette und einem 16 KByte-EPROM geliefert. Letzteres läuft nur im ROMPort des QL und hält sich nicht an die Sinclair-Norm für EPROMs! Der Grund ist ein cleverer Kopierschutz. Neben dem eigentlichen "CP/Mulator" gehören noch ein File-Utility MENUE.COM (geschrieben in Turbo-Pascal) und ein sehr interessantes Formatleseprogramm RDCPM_EXE dazu. Mit ihm können fremde CP/ M-Formate gelesen werden.
Der "CP/Mulator" kennt die residenten Befehle DIR (Inhaltsverzeichnis), DIRS (Inhaltsverzeichnis mit File-Länge), REN (File umbenennen), ERA (File löschen), ERQ (File löschen mit Rückfrage), TYPE (File anzeigen), SAVE (Speicherbank sichern), CLS (Bildschirm löschen), TIME (Zeit anzeigen) und QDOS (zurück zum QDOS). Selbstverständlich sind in den File-Namen die Jokerzeichen ? und * erlaubt. Nach ERA . sind aber alle Files unwiderruflich verlören. Hier ist also Vorsicht geboten. Das REName funktioniert auf einem Standard-QL ohne Erweiterungen nicht, da dazu eine Befehlserweiterung nötig ist. Mit den meisten DiskettenControllern oder dem TOOLKIT II geht es aber.
Gibt man ein Kommando ein, das in den erwähnten nicht enthalten ist, so wird versucht, das entsprechende COMFile vom voreingestellten Laufwerk zu laden. Tippt man z. B. TURBO ein, so erfolgen Laden und Ausführung von TURBO .COM. Ein kleiner Unterschied besteht auch darin, daß "C (gemeint ist CTRL C) meistens, aber nicht immer funktioniert. Da zur Eingabe einer Zeile (BDOS-Funktion 10) der Zeileneditor des QL aufgerufen wird, läßt sich hier kein "C eingeben. Ersatzweise verwendet man das Copyright-Zeichen (SHIFT ESC) mit anschließendem ENTER. "C schaltet beim normalen QL zwischen den Jobs um; diese Funktion wird, während der "CP/Mulator" läuft, durch CTRL SHIFT = ersetzt.
Echten CP/M-Experten sei noch gesagt, daß die BDOS-Funktionen 7, 8, 10 und 27 bis 32 sowie die BIOSFunktionen READ und WRITE nicht voll unterstützt bzw. nicht Standard sind. Im wesentlichen heißt das, daß irgendwelche, DummyWerte übergeben werden. Zu einem Programmabsturz führt dies allerdings nicht.!
Ein normales CP/M-System kennt die Laufwerke A: und B:. Beim "CP/Mulator" sind aber maximal 16 von A: bis P: möglich. Während des Tests fand folgende Zuordnung statt: auf A: und B: je ein Diskettenlaufwerk, auf C: und D: die beiden Microdrives und auf E: und F: jeweils 200 Sektoren große RAM-Disks, wobei solche aus dem Sandy SuperQBoard und der TOOLBOX II von Hallmark Software einwandfrei funktionierten. Dies läßt sich mit dem Installationsprogramm nach Bedarf ändern. Auch die Zuordnung der logischen Einheiten RDR:, LST: und PUN: zu den Einheiten des QL SER1, SER2 oder PAR werden hiermit durchgeführt.
Mittels PIP . (zu PIP später mehr) ließ sich das CP/MSystem ohne große Schwierigkeiten auf MicrodriveCartridges transferieren! Zur Überraschung läuft der "CP/Mulator" auf einem nicht erweiterten QL nur mit Microdrives. Der Zugriff auf die Laufwerke dauert zwar recht lange, ist aber noch akzeptabel.
Im Gegensatz zum CP/M des Atari ST kann man den "CP/ Mulator" multitasken. Drei CP/ Ms auf dem QL stellen kein Problem dar. Allerdings bremsen die Jobs sich dann gegenseitig aus.
Nun aber zur eigentlichen Kernfrage: Welche Software läuft unter dem "CP/Mulator"? Die uns derzeit bekannte Liste sieht folgendermaßen aus (Hersteller in Klammern): Turbo-Pascal (Borland/Heimsoeth), Pascal MT+ (Digital Research), "WordStar" (MicroPro), Basic-80-Compiler, Basic-80-Interpreter, Macro-80, Link-80, LIB-80 (alle 80Software: Microsoft), DDTZ (CP/ M Users Group), ZSID (Digital Research), GEMDEBUG (Gemini Computer Systems) und PIP (Digital Research).
Alle diese Programme sind in der CP/M-Welt wohl bekannt und, dies sei ausdrücklich erwähnt, nicht Public Domain. "WordStar" ist zwar langsam, doch hat es, auch seine Anhänger. Der eindeutige Knüller ist Turbo-Pascal. Für die Programmentwicklung schlägt es das ausgezeichnete Computer One Pascal um Längen. In der Ausführung rechenintensiver Vorgänge ist es allerdings deutlich langsamer.
Als einziges Problem bleibt der Transfer der Programme auf den QL. Am Beispiel Turbo-Pascal sei gezeigt, wie dies funktioniert. Heimsoeth, der deutsche Lieferant, kann Turbo-Pascal natürlich nicht auf Cartridge verkaufen. Auch QL-Disketten stehen (bislang?) nicht zur Verfügung. Aber mit RDCPM_EXE ist es ja möglich, Fremdformate zu lesen. Im Menü von RDCPM findet man Atari-ST-CP/M, GEMQDOS, JKCPM+ und SUPERBRAIN DD35.
Da Heimsoeth drei Atari-CP/ M-Formate auf 3,5"-Disketten liefern kann, haben wir diese auch getestet. Wer TurboPascal kaufen möchte, bestellt das einseitige Atari-ST-CP/M-Format. Es läßt sich mit dem Atari-Format aus dem Menü von RDCPM lesen. Für die beiden anderen müssen eigene Format-Files erstellt werden, was jedoch nicht schwierig ist. Im Nu waren alle Files von der Atari- auf die OL-Diskette kopiert.
Der nächste Schritt ist die Terminal-Installation. Der QL versteht ja leider keine Bildschirmsteuerzeichen, aber auch daran hat Peter Szymanski, der Autor des "CP/Mulator", gedacht. Unter CP/M emuliert der QL ein LearSiegler ADM 3A Terminal, eines der vielen Standard-Terminals in der CP/ M-Welt. In der nächsten Version soll dann auch ein VT52Terminal emuliert werden.
Nach der Installation lief Turbo-Pascal ohne Probleme. Lediglich aufgrund der fehlenden File Allocation Table wird grundsätzlich in der Directory "243 KBytes free" angezeigt. Leider sind die File-Systeme von QL und CP/M für eine vernünftige Umsetzung zu verschieden. Die Tatsache, daß der "CP/Mulator" "normale" QL-Files erzeugt, ist besonders hervorzuheben. Somit wird der Transfer von Files zwischen QDOS und CP/M zum Kinderspiel. Für QDOS beginnen alle CP/M-File-Namen mit einem Copyright-Zeichen (CHR$ (127) oder SFIIFT ESC) und haben am Zeilenende zusätzlich ein CR (CHR$ (13) oder Carnage Return) eingefügt.
Der "CP/Mulator" ist sicherlich eines der wichtigsten Software-Produkte für den QL. Das Preis/LeistungsVerhältnis ist günstig (99,- DM), und seine Möglichkeiten sind extrem vielseitig. Im Vergleich mit den CP/M-Emulatoren für den Atari ST von Softdesign und Omikron schneidet er gut ab. Unser Eindruck war (allerdings ohne systematische Benchmark-Tests), daß er auch schneller ist als Atari-CP/M. Beim Atari erfolgt unter CP/M insbesondere der Diskettenzugriff sehr langsam. Unter QL-CP/M wird Turbo-Pascal von der Diskette in vier Sekunden geladen!
Natürlich darf man auch nicht .vergessen, daß nun auf dem QL die Programmierung von Z80-Maschinensprache möglich ist. Wer vom ZX Spectrum zum QL kam, weiß das sicher zu schätzen. Auch viele CPC-User besitzen noch CP/M-Software. Das HISOFT DEVPAC gibt es für CP/M mit einem hervorragenden Fullscreen Editor. (Wir wissen allerdings noch nicht, ob es auf dem QL läuft.) Der Software-Fundus der - Apple-CP/M-Freaks ist auch fast unermeßlich. Weitere Informationen sind erhältlich bei:
Hallmark Software
David B. Smith
Maximilianstr. 42 a 4400 Münster