Benutzung
---------

Nach dem Uebersetzen von scanner.pas in G-Pascal und dem Starten
kann man den PL/0-Quelltext zeilenweise eingeben (immer in der
obersten Bildschirmzeile). Der Compiler verzeiht keine Fehler.
D.h. wenn es zu einer Fehlermeldung kommt, muss man den Compiler
beenden (Restore oder "." eingeben) und von vorne anfangen.

Zeitlich versetzt werden zu dem eingegeben Quelltext der
erzeugte Assembler-Code ausgegeben. Nach der Eingabe eines
Punktes fuer das Programmende werden die restlichen Zeilen
des Assembler-Codes und die Symboltabelle ausgegeben.

G-Pascal erlaubt es, die Bildschirmausgabe zeitgleich auf
einen Drucker zu schicken. Wenn das Ganze in einem C64-Emulator
laeuft, kann man die Druckerausgabe in eine Textdatei umleiten
und hat so die Grundlage fuer die weitere Verarbeitung in ACME.


Befehle
-------

PL/0 ist eng verwandt mit PASCAL. Die genaue Syntax ist als
EBNF in einer separaten Textdatei angegeben.

Befehl        | Beschreibung
--------------+----------------------------------------------
const         | Definition von Konstanten
var           | Deklaration von Variablen
begin/end     | Programmblock (obligatorisch fuer das Haupt-
             | programm; ansonsten noetig bei mehreren
             | Anweisungen)
if/then/else  | Bedingte Verzweigung
while/do      | Schleife mit der Ausfuehrungsbedingung am
             | Anfang
repeat/until  | Schleife mit der Abbruchbedingung am Schluss
write         | Bildschirmausgabe

Bei Variablen gibt es als einzigen Typ Werte mit 16 Bit ohne
Vorzeichen (0 bis 65535).


Weitere Verarbeitung
--------------------

Der vom Compiler erzeuge Assembler-Quelltext muss noch ergaenzt
werden, damit er von ACME uebersetzt werden kann.

Am Anfang muessen Programmname, Format und Startadresse
eingefuegt werden:

 !to "NAME", cbm
 *=$c000


Es wird der Quelltext aus dem Projekte "Stackbasierte
Programmierung" verwendet, wofuer folgende Ergaenzung
notwendig ist (Einzelheiten sind in der dortigen
Dokumentation zu finden):

 jmp start
 !source "stack.a"
start
 +initstp

Danach kommt der vom Compiler erzeuge Assembler-Quelltext.

Am Schluss muessen der Ruecksprung und die Platzhalter
fuer die Variablen ergaenzt werden (pro Variable zwei
Bytes bzw. ein word):

 rts

var1
 !wo 0
var2
 !wo 0
..
varN
 !wo 0