PASCAL - Bedienerl{uterung des Compilers V1.7
=============================================
Autoren: Doz. Dr. sc. Wolfgang Burmeister
Dipl.-Math. Manfred Lehmann
Dr. Klaus Vetters
1. Laden des Compilers, Speicherkonfiguration‡‡
_____________________________________________
Ihr Kleincomputer kann mit einem 16-kByte-RAM-Erweiterungsmodul ausger}stet
sein. Die Version 1.7 f}r den KC 85/4 erlaubt sogar die volle Nutzung des 64-
kByte-Erweiterungsmoduls.
Das Laden von Kassette erfolgt vom Betriebssystem aus durch das Kommando LOAD.
Nach beendetem Ladevorgang startet der Compiler automatisch. Auf dem Bildschirm
erscheint
Top of RAM? Es handelt sich um den RAM-Top f}r den Compiler. Sie haben jetzt
ENTER oder
eine Zahl zwischen 16677 und 32768 bei einem oder
eine Zahl zwischen 16677 und 49152 bei zwei Erweiterungsmodulen
einzugeben.
Die Eingabe von ENTER wirkt wie die Eingabe von 32768 bzw. 49152.
Danach erscheint
Top of RAM Es handelt sich um den RAM-Top f}r das zu erzeugende Objektcode-
for 'T'? Programm. Sie k|nnen jetzt
ENTER oder
eine Zahl zwischen 5024 und 32768 bei einem oder
eine Zahl zwischen 5024 und 49152 bei zwei Erweiterungsmodulen
eingeben.
Die Eingabe von ENTER bewirkt die ]bernahme des "Top of RAM" als
"Top of RAM for 'T'".
Als n{chste Frage erscheint
Table Size? Gemeint ist die L|nge des internen Arbeitsspeichers, die von der
Anzahl der im Programm benutzten Variablen, Prozeduren, Funktionen
etc. abh{ngt. Jetzt kann
ENTER oder
eine angemessen gro~e Zahl zwischen 0 und 16300 eingegeben werden.
Die Eingabe von ENTER wirkt wie die Eingabe von
("Top of RAM"-19612) DIV 16.
Hinweise:
---------
a) Antworten Sie auf alle drei Fragen mit ENTER, so steht Ihnen f}r Quelltext
und Objektcode der Speicher von
18467 bis 32767 bei einem bzw.
18467 bis 49151 bei zwei Erwiterungsmodulen zur Verf}gung.
Der interne Arbeitsspeicher ist 1021 bzw. 2045 Byte lang.
b) Die angegebenen unteren Schranken besitzen nur theoretischen Wert und lassen
sich nur bei extrem kurzen Programmen anwenden.
c) Da die bei "Top of RAM for 'T'?" verlangte Zahl unter 16384 liegen darf, ist
es m|glich, Objektcode-Programme zu erzeugen, die keinen RAM-Erweiterungs-
modul ben|tigen.
d) Wollen Sie die Gr|~en f}r "Top of RAM", "Top of RAM for 'T'" oder "Table
Size" {ndern, so verlassen Sie den Compiler mit dem Kommando B und gelangen
}ber das Kommando PASNEW wieder in die Initialisierungsphase.
2. Beschreibung des Sprachumfangs‡‡
_________________________________
2.1. PASCAL-Symbole
-------------------
Bezeichner (Identifier) m}ssen mit einem Buchstaben beginnen und k|nnen eine
Folge von Klein- und Gro~buchstaben und Ziffern enthalten. (z.B. a, B, a1B ...)
Bezeichner, die sich in den ersten 10 Zeichen nicht unterscheiden, werden als
identisch angesehen.
a) Arithmetische und logische Verkn}pfungen
Ergibtzeichen :=
Real- und Integerzahlen + - * /
Integerzahlen DIV MOD
Boole'sche Variable OR AND NOT
b) Relationen
IN (f}r Set-Arithmetik)
c) Klammern, Trennzeichen etc.
Auf der Tastatur vorhandene Zeichen: ( ) . , ; : ' # $
Weitere PASCAL-Sonderzeichen:
Nr. Zeichen Ersatzzeichen Taste KC 85/4 bei Vers. 1.7
1 (/ Shift Space
2 /)
3 (*
4 *)
5
d) Programm-Grundstrukturen
PROGRAM BEGIN END FUNCTION PROCEDURE
e) Deklarationen
TYPE LABEL ARRAY ... OF ... PACKED ARRAY ... OF ...
VAR CONST SET RECORD ... END
f) Schleifen
FOR ... := ... TO ... DO ... WHILE ... DO ...
FOR ... := ... DOWNTO ... DO ... REPEAT ... UNTIL ...
Der Abbruchtest wird bei den FOR-Anweisungen zu Beginn der Schleife }ber-
pr}ft, so da~ das ]bergehen der FOR-Anweisung m|glich ist.
g) Verzweigungen
IF ... THEN ... ELSE CASE ... OF ... END
CASE ... OF ... ELSE ...
GOTO Das Sprungziel mu~ im gleichen Block liegen und mittels LABEL dekla-
riert sein.
h) Records
WITH ... DO ...
i) Pointer (dynamische Variable)
NIL
k) Rekursiv gegenseitig definierte Funktionen und Prozeduren
FORWARD
2.2. Identifikatoren
--------------------
a) Konstanten
FALSE TRUE MAXINT Es gilt: MAXINT=32767
b) Type-Konstanten
INTEGER Mittels vorgesetzten # k|nnen INTEGER als Hexazahlen programmiert
werden. In den WRITE-Anweisungen kann durch die Formatangabe :n:H
die Ausgabe in Hexaform erreicht werden (n - Konstante oder Aus-
druck vom INTEGER-Typ)
Beispiel: 1210†D‡ = 4BA†H
Die Anweisung WRITE(1210:n:H) ergibt f}r
n=1: A ... niederwertigstes Halbbyte (Nibble)
n=2: BA ... niderwertigstes Byte
n=3,4: 04BA ... vollst{ndige Hexazahl
n>4: rechtsb}ndiges Schreiben von 04BA im angegebenen Format
REAL Die REAL-Zahlen werden in 4-Byte-Gleitkommaarithmetik verkn}pft
CHAR
BOOLEAN
c) Arithmetische, mathematische und Boole'sche Funktionen
ROUND(r) FRAC(r) ODD(i) ENTIER(r) COS(r)
TRUNC(r) ABS(r) SQR(r) SQRT(r) SIN(r)
EXP(r) LN(r) TAN(r) ARCTAN(r)
RANDOM Erzeugung von ganzzahligen Zufallszahlen z mit 0 <= z <= 255 (durch
Abfrage des Refreshregisters).
EOLN Wird TRUE, falls das n{chste einzulesende Zeichen CR (Code 13) ist,
sonst FALSE.
Beispiel: Eingabe einer Zeichenkette variabler L{nge
i:=1;
REPEAT READ(a i ); i:=i+1 UNTIL EOLN
d) Ordnungsfunktionen f}r Skalartypen
ORD(a) liefert Position des Skalarwertes a in der durch den Typ von a
festgelegten Wertemenge
CHR(i) liefert ASCII-Zeichen, Steuerzeichen oder Graphikzeichen mit Code i
SUCC(a) Nachfolger von a
PRED(a) Vorg{nger von a
Beispiele: SUCC(3) = 4
SUCC('B') = 'C'
PRED(TRUE) = FALSE
e) Verwaltung von dynamischem Speicherplatz
NEW(p) Erzeugung einer dynamischen Variablen p
MARK(q) Merken des Endes der Halde
RELEASE(q) Freigabe der Halde zur}ck bis q
f) Ein- und Ausgabe
READ(A) READLN(A) Achtung! Beim Lesen von Zeichenketten aus dem Eingabe-
WRITE(A) WRITELN(A) puffer ist das erste Zeichen stets CR (Code 13).
Beispiel zur Formatsteuerung:
VAR x: REAL; i,k: INTEGER\
... WRITE(x:10:2,i:6,k:6:H) ...
PAGE Seitenvorschub am Drucker bzw. L|schen des Bildschirmes
INCH Tastaturabfrage, entspricht INKEY$ bei BASIC
TOUT(n,a,l) Schreiben auf Band Š Name n, Anfansadresse a,
TIN(n,a) Laden vom Band Š L{nge l in Byte
Beispiel: TOUT('Feld v',ADDR(v),SIZE(v))
INP(p) Entspricht den Assembleranweisungen IN und OUT.
OUT(p,c) Die Zahl p ist eine Kanaladresse und c eine Konstane oder Vari-
able vom Typ CHAR.
Beispiel: Umschaltung auf 20-Zeilen-Format
OUT(136,CHR(12))
g) Speicherzugriff
SIZE(v) L{nge der Variablen v in Byte
ADDR(v) Adresse des erten Byte der Variable v
POKE(n,v) Eintragen des Wertes der Variablen v ab Adresse n
PEEK(n,t) Beginnend bei Adresse n wird der Speicherinhalt entsprechend dem
angegebenen Typ t ausgewertet.
Typ t darf sein: INTEGER, CHAR, REAL oder ARRAY 1..k OF ...
h) Benutzung des Maschinen-code
INLINE(F) Einf}gen der durch die Parameterfolge F definierten Code-Anwei-
sungen. Als Parameter sind Ausdr}cke vom Type INTEGER oder CHAR
zugelassen.
i) Programm-Abbruch
HALT beendet den Programmablauf mit Ausschrift des Befehlsz{hlers.
3. Kommandos‡‡
____________
3.1. Hauptkommandos
-------------------
B R}ckkehr zum Betriebssystem. Die erneute Aktivierung des Compi-
lers erfolgt durch die Kommandos
PASNEW f}r neue Initialisierung oder
PASOLD f}r Beibehaltung der RAM-Tops, des Table-Size und
des Quelltextes.
C n ]bersetzen ab Zeile n bis Programmende. Nach fehlerfreier ]ber-
setzung kann auf die Frage "RUN?" mit "Y" oder "N" geantwortet
werden. Bei fehlerhaftem Text werden die Fehler angezeigt (s.
Abschnitt 5). Aus der Fehleranzeige kann durch E zum Editieren
der aktuellen und durch P zum Editieren der vorhergehenden Zeile
}bergegangen werden. Die ]bersetzung kann durch "STOP" bzw. "BRK"
unterbrochen werden, anschlie~end ist Fortsetzung oder Abbruch
m|glich.
D n,m L|schen der Zeilen n bis m
E n,m,f,s ]bergang zum Editor auf erstem Zeichen der Zeile n. Die gesamte
Zeile n wird vorher ausgeschrieben. Weitere Kommandos s. Abschn.
3.3.
F n,m,f,s ]bergang zum Editor auf erstem Zeichen der ersten Zeichenkette f,
die zwischen den Zeilen n und m vorkommt. Weitere Kommandos s.
Abschnitt 3.3.
G ,,f Laden des mit "P n,m,f" gesicherten Quelltextes von der Kassette.
Ist bereits Quelltext vorhanden, wird der gesamte Quelltext von
Zeilennummer 10 an mit Schrittweite 10 neu numeriert.
I n,m Automatische Erzeugung der Zeilennummern, beginnend bei n mit
Schrittweite m. Durch "STOP" bzw. "BRK" kann dieser Modus beendet
werden.
K n Stellt das Listen auf Gruppen zu n Zeilen ein.
L n,m Listen des Quelltextes von Zeile n bis Zeile m. Nach jeder Gruppe
kann durch "STOP" bzw. "BRK" unterbrochen werden.
M n,m Die Zeile n wird zus{tzlich als Zeile m eingef}gt.
N n,m Neunumerierung des gesamten Textes, beginnend mit Zeile n,
Schrittweite wird m.
P n,m,f Sichern des Quelltextes von Zeile n bis m auf Kassette unter dem
Namen f.
R Starten des zuletzt mit "C" }bersetzten Programms. Durch Syntax-
fehler, Erweitern des Textes und das T-Kommando wird "R" abge-
schaltet.
setzten Pr
Detected encoding: UTF-8 | 0
|