zurück  : weiter  : english  =

 


Programmieren in Qdos (PiQ)

3. Auflage (2. Überarbeitung), .hpr'7/98

- vorläufige Fassung,   -


Inhalt / Seite

(Seitenangaben beziehen sich auf den QUILL-Text voriger Auflage,
(Posten ohne Seitenangabe sind neu, andere großenteils ergänzt.
 
 
  
  1. "QL Advanced User Guide", Adrian Dickens, 1984, Adder Publishing
  2. "QL-Technical Guide", Karlin & Tebby, 1985, Sinclair, (zum JS-ROM)
  3. Dann neben etlichen Einzelartikeln auch

  4. MINERVA Technical Guide, Ausgabe ab v1.72, 1991, QView
  5. Sinclair QL World, laufende Ausgaben
  6. {4}, Reihe "QL CONNEXIONS", Colin Opie 12/86 - 7/87
  7. Andere Quellen und Literatur zum Thema

  8. MC68008, Motorola, 1985, ADI939R2, Best.nr. MC68008/D und
    MC68000, Motorola, 1985, ADI814R6, Best.nr. MC68000/D
  9. Elementare Hardware von Mikroprocessoren,.hpr 1991
  10. Maschinen- und Assemblersprache des MC68000,
    Osterman, 1987, Vogel-Verlag (QL-Programme mangelhaft bis unbrauchbar)
  11. Floppy Disc Standard, Sinclair
  12. Relocatable Object File Standard, Sinclair,
    deutsch im GST-ASSEMBLER-Handbuch, .hpr 1990
  13. Trump Card Toolkit User Manual, Miracle Systems, 1987
  14. QL Assembly Language Programming, Colin Opie, MacGraw-Hill, 1984
  15. IO2, Code- und Assemblertext-Sammlung für den QL, 1990+
  16. Sinclair Service Manual, Sinclair, 1985
  17. QDOS Reference Manual, bei J.Merz, 1991
    (Namen sind SMSx-Referenzen, die gesamte Dokumentation ist stark 
       (SMSQ-lastig und das wirkliche QDOS betreffend mitunter falsch.
  18. Pointer Environment
    mit ptr_gen 1.42 und wman 1.34, dazu Dokumente unklarer Herkunft.
  19. The Hutchinson QL Series, 1984
    Anleitungen zu Basic und den Psion-Programmen
  20. Computer Kontakt, Jahrgang 1988
  21. 19.Das Internet
  22. Sinclair QL User Guide, deutsche Ausgabe
  23. QL-Today, deutsch & englisch, seit 1997.
  24. Jan Jones, "QL SuperBASIC, The Definitive Handbook"

Verfügbarkeit entsprechender Quellen ist unerläßlich

20.   Sinclair QL User Guide, deutsche Ausgabe, zum MGG-ROM
6.     MC68008, Motorola, s.o., zum 68008-Processor

 


1.2 ** Zur 2. Auflage, 6/1998

Es wurden Angaben zur QXL-Karte, dem QXL.WIN-Aufzeichnungsformat und zu den Varianten des SMSQ rsp. SMSQ/E aufgenommen, Fehler korrigiert und einiges inzwischen überflüssige entfernt.

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.

 

1.2.1 ** Voraussetzungen

Ziel der Arbeit ist, das in vielerlei Hinsicht außerordentliche Betriebssystem des QL nach bestem Wissen des Autors offenzulegen und zu erklären. In Konzeption und universeller Einsetzbarkeit ist es beispielhaft. Fehlertoleranz, plausibler Aufbau und vollständige Dokumentation erlauben weitgehend problemlose Programmierung.

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-Friedenau
 Tel.: +49 30 85967858; email: phpr@snafu.de
 Inet: http://www.snafu.de/~phpr

 

Die 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.

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.

   


1.3   ** Abkürzungen und Begriffe im Text


Speicherzellen, Zahlen und Variable
gelten dezimal und in 32-Bit-Größe mit Vorzeichen, wenn nichts anderes angegeben ist.
1K steht für 1024 Bytes.
 
(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
.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

 

   oben : weiter


(count)