Source file: /~heha/hs/kcemu/kcswberg.zip/DISK/PASCAL2.TXW

   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