T n,,f ]bersetzen ab Zeile n bis Programmende und Sichern der ]ber- setzung unter dem Namen f. Nach fehlerfreier ]bersetzung kann auf die Frage "Ok?" mit "Y" oder "N" geantwortet werden. Erst auf die Antwort "Y" erfolgt die Verbindung der Bibliothek (etwa 4 kByte) mit dem Objektprogramm. Es entsteht ein selbstst{ndig lauff{higes Codeprogramm, das nach dem Einlesen automatisch startet. Wieder- holter Start ist vom Betriebssystem aus durch "R" m|glich. V Anzeige des Parameterspeichers in der Form n m f s X Liefert die Anfangs- und Endadresse des Quelltextes in Hexaform 3.2 Verk}rzte und wiederholte Kommandos --------------------------------------- F}r die vier Kommandoparameter n,m,f,s existiert ein Speicher, der nach jeder Kommandoeingabe mit den neuen Parametern belegt wird. Im Kommando nicht belegte Parameter bleiben dabei unver{ndert. Anschlie~end erfolgt die Ausf}hrung des Kommandos, wobei die Parameter aus dem Parameterspeicher verwendet werden. Nach der Initialisierung hat der Parameterspeicher den Zustand 10 10 leere Zeichenkette leere Zeichenkette Bei diesem Zustand des Parameterspeichers ist das Kommando I gleichbedeutend mit dem Kommando I 10,10 Beachten Sie dabei: Wenn ein ausgelassener Parameter nicht der letzte ist, so mu~ das ihm folgende Komma gesetzt werden! Aus diesen Regeln ergibt sich die M|glichkeit, bei oft verwendeten Kommandos die Parametereingabe abzuk}rzen. Beispiel 1: Soll nur die Zeile n editiert werden und dabei keine Unterst}tzung durch Zeichenketten-Vorwahl erfolgen, so gen}gt das Kommando E n Beispiel 2: An mehreren Prozedurk|pfen sollen [nderungen vorgenommen werden. Kommando: F n,m,PROCEDURE Nach beendeter Korrektur der so aufgerufenen Zeile kann mit dem Editor-Unterkommando "F" zum n{chsten Prozedurkopf }bergegangen werden. Ausnahmen: C ]bersetzen ab niedrigster Zeilennummer D n,m Verk}rzung nicht m|glich E n weitere Verk}rzung nicht m|glich K wirkt wie das Kommando "K 15" L n,m Weglassen von n bewirkt das Listen ab niedrigster Zeilennummer, Weg- lassen von m das Listen bis Textende N n,m Verk}rzung nicht m|glich T ]bersetzen ab niedrigster Zeilennummer und Auslagern mit Namen f aus T ,,f dem Parameterspeicher bzw. mit dem angegebenen Namen. 3.3. Unterkommandos des Editors ------------------------------- Nachdem dur "E ..." oder "F ..." das Editieren er|ffnet ist, stehen folgende Unterkommandos zur Verf}gung. Space bewirkt die zeichenweise ]bernahme aus der alten in die neue Zeile. --> }bernimmt bis zur n{chsten Tabulatorposition. <-- baut die neue Zeile wieder zeichenweise ab. C stellt auf Korrigieren um. Der Cursor ist jetzt '+'. Die alten Zeichen werden durch neue }berschrieben. <-- r}ckt l|schend zur}ck ENTER beendet das Unterkommando C F sucht die n{chste Zeichenkette f, der Cursor wird auf die erts Position dieser Zeichenkette gesetzt. I stellt um auf Zeichen einf}gen. Der Cursor ist jetzt '*'. Auf Cursor- position kann ein Zeichen eingef}gt werden. --> Erzeugen von Leerzeichen <-- r}ckt l|schend zur}ck ENTER beendet das Unterkommando I K l}scht das Zeichen auf Cursorposition. Mehrmaliges Dr}cken von "K" be- wirkt die L}schung der n{chsten Zeichen (ohne Reaktion auf dem Bild- schirm). L schreibt die aktuelle Zeile aus, }bernimmt dabei bereits get{tigte Kor- rekturen und stellt den Cursor auf das erste Zeichen dieser Zeile. Q beendet die Korrektur der Zeile, ohne deren Korrekturen zu }bernehmen und beendet die Arbeit mit dem Editor. R wie L, die bereits get{tigten Korrekturen werden aber nicht }bernommen. S setzt ab erster Position der zuletzt gefundenen Zeichenkette f die Zeichenkette s ein und geht zum Unterkommando "F" }ber. X stellt um auf Weiterschreiben am Ende der Zeile. Cursor und weitere Funktionen wie bei "I". Z l|scht ab Kursorposition bis zum Zeilenende. ENTER beendet die Korrektur der Zeile und die Arbeit mit dem Editor 4. Kontrollfunktionen des Compilersçç ___________________________________ Der Compiler hat eine Reihe von Kontrollfunktionen, die abgeschaltet werden k|nnen, um die Bearbeitungsgeschwindigkeit zu erh|hen. Sie werden geschaltet durch das entsprechende Funktionszeichen mit vorangestelltem '$' zu Beginn eines Kommentars, z.B. ($L-,C-) . Die Kontrollfunktionen sind standardm{~ig auf '+' eingestellt. Kontroll- Wirkung funktion A Im Zustand A+ werden alle Feldindizes auf Einhaltung der Feldgrenzen }berpr}ft, im Zustand A- entf{llt diese Kontrolle. C Im Zustand C+ wird w{hrend des Programmlaufs in allen Schleifen, Funktionen und Prozeduren die Tastatur auf Dr}cken der "STOP"-Taste }berpr}ft, gegebenenfalls der Programmlauf unterbrochen und auf eine weitere Tastenbedienung gewartet. Nochmaliges Dr}cken der "STOP"- Taste f}hrt jetzt zum Abbruch, auf jede andere Taste wird das Pro- gramm fortgesetzt. Bei C- wird auf die Tastaturkontrolle verzichtet. L Im Zustand L+ wird beim ]bersetzen der Quelltext mit den Objektcode- Adressen gelistet. Bei L- werden Zeilen nur dann gelistet, wenn in ihnen Fehler auftreten. O Alle Gleitkommaoperationen sowie die Multiplikation und Division bei ganzen Zahlen unterliegen einer st{ndigen ]berlaufkontrolle. Bei O+ unterliegen auch die Addition und Subtraktion von ganzen Zahlen dieser Kontrolle. S Sie kontrolliert die Ausdehnung des Kellerspeichers (Stack). Bei S- unterbleibt diese Kontrolle. 5. Fehlermeldungen des Laufzeitsystemsçç ______________________________________ Halt Es liegt kein Fehler vor, denn es wurde "HALT" programmiert oder "STOP" bzw. "BRK" zweimal hintereinander gedr}ckt. Overflow Arithmetischer Uber- oder Unterlauf Out of RAM F}r die erzeugten Daten reicht der 'Top of RAM' nicht aus / by Zero Division durch Null, hervorgerufen durch die Operationen /, DIV oder MOD Index too Low Feldindex zu klein Index too High Feldindex zu gro~ Maths Call Error Fehler beim Aufruf einer mathematischen Funktion Number too large Zahl ist zu gro~ Number expected Bei "READ" wurde Zahl erwartet Exponent expected Ein Exponent wurde erwartet 6. Fehlermeldungen des Compilersçç ________________________________ 1 Zahl zu gro~ 40 SET ist zu gro~ (>256 El.) 2 ; oder END fehlt 41 Typename f}r Funktionswert w.e. 3 nicht deklarierter Name 42 , oder ═ oder /) in SET w.e. 4 ein Name w.e. 43 .. oder , oder ═ in SET w.e. 5 := in Konstantendefinition 44 Typename des Parameters w.e. 6 = w.e. 45 leere Menge als erster Operand n.e. 7 dieser Name hier n.e. 46 Skalar oder REAL w.e. 8 := w.e. 47 Skalar w.e. 9 ) w.e. 48 Mengen nicht vertr{glich 10 falscher Typ 49 < und > f}r Mengenvergleiche n.e. 11 . w.e. 50 FORWARD, LABEL, CONST, VAR, TYPE 12 ein Operand w.e. oder BEGIN w.e. 13 Konstant w.e. 51 Hexazahl w.e. 14 Name ist keine Konstante 52 cannot poke sets 15 THEN w.e. 53 Feld zu gro~ 16 DO w.e. 54 END oder \ in Satzdeklaration w.e. 17 TO oder DOWNTO w.e. 55 Feldname w.e. 18 ( w.e. 56 Variable nach WITH w.e. 19 dieser Type nicht schreibbar 57 Variable nach WITH vom Satztyp w.e. 20 OF w.e. 58 zu Satzkomponente fehlt zugeh|hrige 21 , w.e. WITH-Anweisung 22 : w.e. 59 Nach LABEL vorzeichenlose ganze Zahl 23 PROGRAM w.e. w.e. 24 Variable als Parameter w.e. 60 Nach GOTO vorzeichenlose ganze Zahl 25 BEGIN w.e. w.e. 26 Variable als Parameter von READ w.e. 61 Marke in falschem Niveau 27 Ausdr}cke dieses Typs nicht ver- 62 Nicht deklrierte Marke gleichbar 63 Parameter von SIZE mu~ Variable sein 28 INTEGER oder REAL w.e. 64 Pointer k|nnen nur auf Gleichheit 29 dieser Variablentyp nicht lesbar getestet werden 30 Name ist kein Typebezeichner 67 H nach zweitem : w.e. 31 Exponent in REAL-Zahl w.e. 68 Strings d}rfen kein CR enthalten 32 Ausdruck v. Skalartyp w.e. 69 Parameter v. NEW, RELASE oder MARK 33 Leerstring ('') n.e. mu~ v. Pointertyp sein 34 ╦ oder (/ w.e. 70 Parameter von ADDR mu~ Variable sein 35 ═ oder /) w.e. 36 Feldindex mu~ skalar sein Verwendete Abk}rzungen: 37 .. w.e. 38 ═ oder /) oder , in Felddeklaration w.e.: wird erwartet w.e. 39 untere Grenze gr|~er als obere n.e.: nicht erlaubt Anschrift der Autoren: Dr. Klaus Vetters Gartenheimallee 2 Dresden 8021 e.: nicht erlaubt Anschrift der Autoren: Dr. Klaus