Diese Textsammlung ist Tabellenwerk und Beschreibung zum QDOS, dem Betriebssystem des QL, letztere vom persönlichen Umgang damit geprägt und betreffs der dabei gewonnenen Eindrücke durchaus subjektiv abgefaßt.
Der Text basiert auf der Sachlage Anfang 1995. Soweit es bei der geringen Mitteilungsfreudigkeit der am QDOS herumbosselnden Autoren möglich war, wurde er so gut es ging auf den Stand Anfang 1998 aktualisiert. Die Arbeiten am QDOS wurden 1985 mit der MGx-ROM-Serie abgeschlossen. Seitdem sind etliche mehr oder weniger gelungene Nachahmungen und Emulatoren für andere Rechner erschienen. Das Copyright zum QDOS liegt inzwischen bei Amstrad, der Code des ROM-Originals in Variante JS(?) wurde zur nichtkommerziellen Verwendung in Einzelfällen freigegeben. Das QDOS ist ein offenes erweiterbares und eben darum umfassend dokumentiertes System, das JEDEM zur Verfügung steht, der einen entsprechenden Rechner betreibt. Daran sollten sich Nutzer und insbes. Programmierer halten und es nicht unnötig verderben. Man wird sie an ihren eigenen Verhalten messen dürfen: Versteckte "Neuerungen" und Gemaule wegen fehlender Dokumentation anderer lassen eher ängstlich verborgene Inkompetenz vermuten, als bahnbrechende Eigenentwicklungen, die es zu sichern gilt.
In diesem Zusammenhang mag man auch die Anmerkungen zum SMSQ
sehen. Es wird zwar standhaft dessen QDOS-Compatibilität behauptet,
diese ist jedoch keineswegs gegeben! Weil aber neben den mittlerweile
ausgereiften und außerordentlich verläßlichen MINERVAe auch
das SMSQ in seinen zahllosen "Versionen" weite Verbreitung gefunden hat, und
da es Zweck der Arbeit ist, das zum Umgang mit den diversen QDOS-artigen
Systemen nötige Werkzeug zu liefern, finden sich vor allem kritische
Hinweise, die die "Ungereimtheiten" jenes Systems aufdecken und so den
QDOS-konformen Umgang damit erleichtern sollen. Nach Möglichkeit sind
Beispiele angegeben, mit Hilfe derer einerseits Unstimmigkeiten umgangen und
andererseits die immerhin auch vorhandenen Vorteile des SMSQ so genutzt
werden können, daß die resultierenden Programme für alle
QDOS-Typen verwendbar bleiben.
Es geht hier nicht um eine Werbemaßnahme zur Steigerung irgendwelcher
Verkaufszahlen, wo, wie in praxi zu beobachten, die Verhältnisse
mitunter deutlich "geschönt" wiedergegeben werden. Der Autor ist
vielmehr der Überzeugung, daß gerade klares Herausstellen von
Unterschieden und Schwächen der einzelnen Varianten es überhaupt
erst möglich machen, zuverlässig und über den Augenblick
hinaus in allen infragekommenden Systemen einsetzbare Programme zu
erzeugen.
Durch Tatsachen belegte Hinweise von Lesern betreffs neuer Varianten oder im Text enthaltener Fehler werden dankbar aufgenommen und in der aktuellen Bearbeitung berücksichtigt werden.
Und auch dies noch: Wenn relativ häufig irgendwelche Fehler beschrieben werden, so entspringt das Wissen darum nicht zuletzt der Selbsterkenntnis. Da die Wiederholung solcher Fehler aber zu den durchaus entbehrlichen Erfahrungen zählt, finden sich entsprechende Notizen im Text.
So soll das über den Inhalt des zum QL mitgelieferten Handbuchs ("QL User Guide") hinausgehende Material {20} zur Programmierung des QL möglichst umfassend gesammelt in deutscher Sprache verfügbar gemacht werden. Der Text beschreibt die Konzeption des QL zunächst anhand grundlegender englischsprachiger Dokumentationen zum QL {1,2,6,9}. Großenteils wurden auch die mit dem Toolkit II angebotenen Besonderheiten aufgenommen. Varianten der Betriebssysteme, Korrekturen offenkundiger Fehler und Ergebnisse eigener Untersuchungen sind berücksichtigt. Weiter auch Pointer Environment und "Thing"-System, wenn auch insbes. letzteres weniger eingehend, da es weder Bestandteil des QDOS ist, noch jenes auf den darin vorgesehenen Wegen ergänzt, sondern ähnlich dem ebenfalls kurz angerissenen "Hotkey-System" das QDOS lediglich nutzt.
Literaturhinweise finden sich in {Klammern}, eigene Feststellungen mit Angabe der Rom-Version, z.B. {MGG}. Als Referenz gelten sonst vor allem JS, MINERVA(1.93) im QL (mit GC), und SMSQ(2.76) in der QXL. Die Beispiele sind mit dem MGG-Rom geprüft worden, in den Neuauflagen dann überwiegend mit MINERVA(1.93) und in der QXL; auf andere Betriebssysteme wird besonders hingewiesen. Die daraus hervorgegangene IO2-Sammlung hat sich in den verschiedensten Konstellationen von JM bis SMSQ und QXL bewährt. Ebenso die zur Prüfung benutzen Programme, insbes. der Computer One Monitor in einer für alle QDOS-Rechner geeignten Variante sowie das F6 Forth-System des Autors.
MINERVA lag in Version 1.93 vor. Ergänzend finden sich Hinweise zum SMSQ im Text, das dem Autor seit Version 2.16 vorliegt, aktuell SMSQ/E 2.89, als SMSQ 2.76 in ständigem Gebrauch mit der QXL, in jeweils jüngster Version gelegentlich im GC/QL.
Angaben zu den Systemzahlen stehen immer dort, wo sie dem Thema entsprechend ihren Platz haben. Das Wichtigste ist in Anwendungsbeispielen dargestellt. Ein ausführlicher Teil mit Tabellen zu den Traps und Vectoren schließt Angaben zu "Pointer Interface" und "Thing" ein. Dort wurde auch die Namensgebung nach "SMSQ"/"SMS2" {15} berücksichtigt.
Assemblerbeispiele und Tabellen sind passend für den GST-Macro-Assembler aufgemacht und finden sich zusammen mit den assemblierten Codefiles auf der beigefügten Discette rsp. im Archiv "PiQdsk".
"QDOS"-compatibel heißt hier alles, was den Angaben in {2,
20} genügt, ggf. um aktuelle Informationen aus dem Hause Sinclair
ergänzt, auch hinsichtlich Art und Ausführlichkeit der
Dokumentation.
Maßgebliche Referenz zum Basic-Interpreter des QL ist {22}.
Die Möglichkeiten, den QL (durch "Emulator"-Programme) auch auf
völlig anderen Rechnern nachzubilden, sind nur am Rande Gegenstand
dieser Schrift.
Ebensowenig war es Ziel, Grundkenntnisse in irgendeiner
Programmiersprache zu vermitteln. Das nötige Wissen um Mnemonics der
Assembler und Ähnliches wird vorausgesetzt, mag ansonsten einer
entsprechend spezialisierten Quelle entnommen werden.
Ein authentisches Handbuch zum Processor und seiner Programmierung
wird von dessen Hersteller angeboten {6}. - Aus eigener leidvoller Erfahrung
kann nur dazu geraten werden, sich unbedingt solcher Primärquellen zu
bedienen. Anderes wird ohnehin nur von dort abgeschrieben und weist oft
übelste Fehler auf (so ist insbes. bei Schriften aus dem
"Elektor"-Verlag größte Vorsicht geboten!).
Urheberrechte und Copyright © 1998, Berlin, bei
H.-Peter Recktenwald, Albestr. 21, 12159 Berlin-FriedenauDie vom Autor auf Datenträger verteilte rsp. im Internet angebotene Version darf auf gleichartigen Medien zusammen mit einem Hinweis auf die Quelle in unveränderter Form und nur kostenlos weitergegeben werden. Wiedergabe in gedruckter Form und/oder in anderen Sprachen in nicht-kommerziellen Publikationen ist auf Anfrage und unter der Voraussetzung freigestellt, daß dem Autor ein Belegexemplar übermittelt wird.
Tel.: +49 30 85967858; email: phpr@snafu.de
Inet: http://www.snafu.de/~phpr
Verwendung der Tabellen und Beispiele für eigene Programme unterliegt keiner Einschränkung; alles weitere bedarf der Genehmigung durch den Autor; für ältere Auflagen bereits erteilte Genehmigungen gelten nicht für diese Fassung.
Als authentisches Original ist "PiQ" gegen Freiumschlag nebst zwei DD
formatierten Disketten von ihm zu erhalten (Formate QL, **DOS, ext2), oder
von o.g. Internet-Adresse.
Das durch "PiQ" Mitgeteilte basiert auf Beobachtungen am eigenen
Gerät, gestützt durch o.g. Quellen, und ist experimenteller Natur,
Haftung für Korrektheit ist ausgeschlossen.
Nennung von Namen und Algorithmen im Text bedeutet nicht, daß sie
frei von Rechten anderer sind.
(Trap-Nr/D0-Code) für QDOS-TRAP-Aufrufe, (1/7) z.B. TRAP #1, D0=7 für MT.TRAPV % vor Binärzahlen & vor Oktalzahlen $ vor Sedezimalzahlen abs absolut adr Adresse (adr) Inhalt der Speicherzelle adr AQ Atari ST QL-Emulator jcb Job Control Block jdt Job Definition Table (alias jcb) LV2, LV "Level 2 Device Handler" in TK2, Trump/Gold Card, SM, AQ u.a. ofs Offset - Abstand PE "Pointer Environment" Systemerweiterung PIF "Pointer Interface" im PE ptr Pointer (Zeiger als abs / rel Adr) QL nur(!) der schwarze QL rel relativ rpa Resident Program Area SMS2, SM ein Betriebssystem auf Grundlage des QDOS SNG Localmatador der QL-World ... sp Stackpointer (meist Register A7 des 6800x) TK2, TK "Toolkit 2" Systemerweiterung tpa Transient Program Area
Zahlenformate
.B "Byte", "Zeichen", gilt für 8-Bit-Daten .W "Wort", "Zelle", dto., 16-Bit .L "Langwort", dto., 32-Bit, Standardformat im Text f.p. Fließkommazahl im QL 12-Bit-Exponent, 32-Bit-Mantisse Integer vorzeichenbehaftete 16-Bit-Ganzzahl Lange Integer dto., 32-Bit