Sinclair QL Kurzbeschreibung

Der erste Großserien-Micro-Computer mit präemptivem 32-Bit Multitasking-Betriebssystem

Der Sinclair QL war mein erster Computer (abgesehen von einem Sharp Pocket-PC 1500). Das QL steht für "Quantum Leap", und der Rechner und vor allem das Betriebssystem war zu dieser Zeit (2 Jahre nach dem C64 und ca. 1 Woche bevor der erste Macintosh vorgestellt wurde) auch tatsächlich ein Quantensprung. Er besaß einen 16/32-Bit Prozessor (68008), 128 KByte RAM (wovon 32 KByte als Bildschirmspeicher verwendet wurden) und das 32-Bit-Betriebssystem QDOS. Letzeres war zusammen mit dem SuperBASIC-Interpreter in einem 48 KByte großen ROM untergebracht. Als Massenspeicher benutzte er 2 Microdrives mit einer Kapazität von je ca. 110 KByte. Die Microdrives waren kleine Endlosbänder mit einer mittleren Zugriffszeit von 3,5 Sekunden (ein Umlauf dauerte 7 Sekunden). Wegen dieser Microdrives wurde der QL stark kritisiert. Allerdings waren sie bei der Datenübertragung um Faktor 4 bis 30 (je nach Größe der in einem Stück zu schreibenden Daten) schneller als die Floppy eines C64 (siehe z. B. hier), die mit 170 KBytes nur wenig mehr Speicher bot (und zusätzlich gekauft werden musste). Zudem waren für den QL sehr schnell Floppy Controller verfügbar. Ich hatte mir ca. ein halbes Jahr nach dem Kauf bereits einen Kempston-Controller plus 2 3,5"-Laufwerke mit je 720 KByte für den (heute) astronomischen Preis von 1200 DM (Controller und jedes Laufwerk je 400 DM [Deutsche Mark, ca. 1/2 EURO]) geleistet. (Ein Floppy-Laufwerk kostete einige Jahre später unter 50 DM).

Dank der für die damalige Zeit sehr hohen Auflösung von 512x256 Pixeln bei 4 Farben, was 84 Zeichen pro Zeile und 25 Zeilen erlaubte, eignete er sich hervorragend für Business-Programme. Ein "Office-Paket" bestehend aus Quill (Textverarbeitung), Abacus (Tabellenkalkulation), Archive (programmierbare relationale Datenbank) und Easel (Geschäftsgrafik) wurde beim QL auch gleich mitgeliefert - zu dieser Zeit der ideale PC für einen Studenten. Weiterhin war im ROM SuperBASIC eingebaut, das (damals keineswegs selbstverständlich - GW-BASIC vom PC konnte das nicht) strukturierte Programmierung mit rekursiv aufrufbaren Prozeduren und Funktionen unterstützte, an die Parameter ("per Value" oder "per Reference" - letzteres kann Java z. B. nicht) übergeben werden konnten, und in denen man lokale Variablen definieren konnte. SuperBASIC diente auch als Shell ("Eingabeaufforderung" unter Windows). Es gab auch bald einen Compiler für SuperBASIC (SuperCharge, später Turbo), mit dem man die BASIC-Programme in native, multitaskingfähige Programme übersetzen konnte (der SuperBASIC-Interpreter war zu Beginn nicht multitaskingfähig - es gab nur einen einzigen SuperBASIC-Interpreter). Es gab auch bald einen weiteren Compiler (QLiberator) der ähnlich wie heute Java und C# eine Laufzeitumgebung hatte und damit zwar etwas langsamer, dafür aber deutlich kompatibler zum Interpreter war. Turbo unterstützte z. .B. Parameterübergabe an Maschinensprachen-Prozeduren/Funktionen (SuperBASIC konnte um neue Prozeduren/Funktionen in Maschinensprache erweitert werden!) nur "per Value" (wodurch einige wenige Maschinensprachenerweiterungen nicht verwendet werden konnten). Bei SuperBASIC-Funktionen/Prozeduren musste man (ähnlich wie bei C#) per Referenz zu übergende Variablen durch ein spezielles REFERENCE Schlüsselwort () vorher kennzeichnen (was aber nicht im Interpreter funktionierte ignoriert wurde).

Der QL unterstützte von Anfang an Fenster, in die man auch Grafik ausgeben konnte. Die Fenster waren allerdings destruktiv. Überlagerte man ein Fenster (teilweise) mit einem anderen, ging der überlagerte Teil verloren. Das war kein Problem wenn ein Programm lief, aber der QL unterstützte von Anfang an präemptives Multitasking (im Gegensatz zu allen anderen damaligen Großserien-Rechnern). Wenn also 2 Programme gleichzeitig liefen, überschrieben sie sich ihre Fenster gegenseitig. Daher hatten fast alle interaktiven Programme (wie die Office-Programme) eine Tastenkombination (Strg-F4), die den Bildschirm wieder herstellte (Refresh). Im Mai 1986 kam dann aber eine Betriebssystem-Erweiterung vom Autor von QDOS heraus (QRAM), die die Fenster nicht-destruktiv machte und auch Mausunterstützung und andere GUI-Funktionen bot wie bei den Konkurrenten Macintosh, Atari ST und Commodore Amiga (letzterer bot lange Zeit als einziger vergleichbarer Rechner ebenfalls präemptives Multitasking).

Falls Sie nicht wissen was präemptives Multitasking ist: Das ist das, was heute unter Windows, Mac-OS und Linux ganz normal verwendet wird: Mehrere Programme zur gleichen Zeit ausführen. Dies war 1984 eine Sensation (bei einem preiswerten Massen-PC) und sonst nur auf sündhaft teuren Workstations (Preis 20.000 DM aufwärts) möglich. Wollte man damals z. B. ein C-Programm übersetzen lief das auf einem (IBM-)PC folgendermaßen ab: Editor starten, Sourcecode laden, verändern und Editor mit Speichern verlassen. Compiler starten, falls keine Fehler auftraten Linker starten, .EXE testen. Falls Fehler auftraten .EXE beenden und das ganze wieder von vorne.

Beim QL startete man den Editor, rief den Compiler und danach den Linker auf (während die liefen, konnte man weiter im Editor oder jedem anderen Programm arbeiten). Dann testete man das Programm. Bei Fehlern beendete man es und wechselte zurück zum Editor. Zwischen den laufenden Programmen wechselt man mit der Tastenkombination <Strg-C> (ähnlich wie <Alt-TAB> bei Windows) - bei echten QLs ist diese Taste ("Strg") aber mit "CTRL" (für "Control") bezeichnet. Wenn die bei QRAM mitgelieferte Betriebssystemerweiterung ("Pointer Interface") geladen war (Speichererweiterung von mindestens 256 KBytes erforderlich), konnte man (teilweise) verdeckte Fenster auch durch anklicken mit der Maus in den Vordergrund holen (wie heute allgemein üblich).