BASIC-Compiler

BASIC-Compiler mit Kommandozeile aufrufen

Der JKCEMU-BASIC-Compiler kann mit einer Kommandozeile auch ohne den eigentlichen Emulator als eigenständiges Programm aufgerufen werden. Unter Windows müssen Sie dazu die Eingabeaufforderung starten (ggf. nach cmd.exe suchen). Die Kommandozeile zum Aufruf des BASIC-Compiler sieht folgendermaßen aus (Name und Pfad der JKCEMU-JAR-Datei sind entsprechend anzupassen):

java -jar jkcemu.jar --bc [Optionen] <Quelltextdatei>

oder

java -jar jkcemu.jar --basiccompiler [Optionen] <Quelltextdatei>

Folgende Optionen können angegeben werden (Groß-/Kleinschreibung beachten!):
OptionBedeutung
-h Hilfe zu den BASIC-Compiler-Optionen anzeigen
-f <Datei> weitere Kommandozeile aus Datei lesen

Die Kommandozeile kann recht lang sein, möglicherweise länger als von der Eingabeaufforderung oder dem Betriebssystem unterstützt. Aus diesem Grund kann die Kommandozeile aus einer Datei gelesen werden.

Beim Erreichen der Option -f öffnet der Compiler die angegebene Datei und liest daraus die weitere Kommandozeile. Wenn das Ende der Datei erreicht wurde, wird der Rest der ursprünglichen Kommandozeile weiter verarbeitet. Der Compiler tut also so, als ob der Inhalt der Datei anstelle der Option -f in der Kommandozeile stehen würde.

In der Datei müssen die einzelnen Kommandozeilenargumente nicht in einer Zeile stehen, sondern können auf mehrere Zeilen aufgeteilt werden. Wenn ein Kommandozeilenargument Leerzeichen enthält, muss dieses in doppelte Hochkommas eingeschlossen werden, damit der Compiler es als ein Argument verarbeitet.
-g bei Abbruch aufgrund eines Fehlers Zeilennummer ausgeben (erzeugt zusätzlichen Programmcode)
-o <Ausgabedatei> Der erzeugte Programmcode wird in die angegebene Datei geschrieben. Das Format der Ausgabedatei hängt von der Endung ab (*.com; *.bin; *.hex; *.kcc; *.tap; *.z80).
Fehlt die Option, hat die Ausgabedatei mit Ausnahme der Endung den gleichen Namen wie die Quelltextdatei. Die Endung lautet dann entweder *.s (wenn die Option -S angegeben wurde) oder *.com (wenn das Zielsystem CPM mit Anfangsadresse 0100h ist) oder *.bin (in allen anderen Fällen).
-t <System> Zielsystem festlegen,
Diese Option muss angegeben werden. Mögliche Schlüsselwörter sind:
  • AC1
  • CPM
  • HUEBLER
  • KC85
  • KC85_4
  • KRAMER
  • LLC2_HIRES
  • SCCH
  • Z1013
  • Z1013_64X16
  • Z1013_KRT
  • Z1013_ZX
  • Z9001
  • Z9001_KRT
Die Schlüsselwörter können groß oder klein geschrieben werden.
-A <Anfangsadresse>
-A <Anfangsadresse>:<BSS-Adresse>
Anfangsadresse für den Programmcode und ggf. auch für den BSS-Bereich (Block Storage Segment: Variablen, Speicherzellen, Stack) festlegen (hexadezimal),
Fehlt die Option, gilt abhängig vom Zielsystem folgende Anfangsadresse:
  • 0100h bei CPM, HUEBLER und allen Z1013-Zielsystemen
  • 0300h bei KC85, KC85_4, Z9001 und Z9001_KRT
  • 1000h bei KRAMER
  • 2000h bei AC1, LLC2_HIRES und SCCH
Wird die BSS-Adresse nicht angegeben, liegen die Variablen, die Speicherzellen und, sofern ein eigener Stack verwendet wird auch dieser, direkt hinter dem Programmcode.
-D <Treiberliste> Die Option gibt an, welche Treiber in das compilierte Programm eingebunden werden sollen. Dazu werden die Treiber mit Komma getrennt hinter der Option angegeben. Die Treiberliste kann auch in Doppelhochkommas eingeschlossen werden.

Beispiele:
 -D vdip
 -D crt,lpt
 -D "CRT,LPT"

Folgende Treiber stehen zur Verfügung: CRT, FILE, LPT, VDIP
Die Groß/Kleinschreibung der Treibernamen spielt keine Rolle.

Wird ein Treiber angegeben obwohl das BASIC-Programm gar keine Anweisung oder Funktion enthält, die den Treiber verwenden könnte (CRT, FILE, LPT und VDIP werden z.B. nur von OPEN verwendet), wird der Treiber nicht eingebunden.

Wird die Option -D nicht angegeben, werden alle sinnvollen Treiber eingebunden.
-L <Sprache> Sprache der Laufzeitauschriften (z.B. Fehlermeldungen) festlegen,
Die Sprache wird in Form des zweistelligen ISO-Codes angegeben, wobei die Groß-/Kleinschreibung egal ist. Mögliche Sprachen sind de (Deutsch) und en (Englisch). Fehlt die Option, erscheinen Laufzeitauschriften in Deutsch.
-M <Zahl> Stack-Größe festlegen,
Bei einer Stack-Größe 0 wird der System-Stack verwendet und somit kein eigener Stack-Bereich angelegt.
-N <Name> Programmname festlegen,
Mit diesem Namen wird das Programm auf dem Zielsystem gestartet (nur relevant bei KC85, HUEBLER, Z9001 und Z9001_KRT).
-B... Abbruchmöglichkeit festlegen:
OptionBedeutung
-B0 CTRL-C bricht Programm nicht ab
-B1 CTRL-C bricht Programm nur bei Eingaben ab
-B2 CTRL-C bricht Programm ab

Fehlt die Option, wird automatisch -B2 angenommen,

Achtung! Bei der Option -B2 wird das Programm aufgrund der ständigen Tastaturabfragen entsprechend langsamer!
-O... Programmcodeoptimierung festlegen:
OptionBedeutung
-O1 Stack-Prüfungen ausschalten
-O2 zusätzlich Feldprüfungen ausschalten
-O3 zusätzlich relative Sprünge bevorzugen

Die Option -O hat die gleiche Wirkung wie -O2.
Wurde keine Option zur Programmcodeoptimierung angegeben, sind alle Laufzeitprüfungen aktiv (identisch mit -O0).
-S nur Assembler-Quelltext ausgeben,
Die Ausgabedatei hat in dem Fall immer das Format einer einfachen Textdatei, unabhängig von ihrer Endung.
-W <Schlüsselwort> Warnungen festlegen, die der Compiler ausgeben soll,
Folgende Schlüsselwörter sind möglich:
SchlüsselwortBedeutung
ALL Alle Warnungen aktivieren
NONASCII Bei Nicht-ASCII-Zeichen warnen
UNUSED Bei nicht verwendeten Funktionen, Prozeduren und Variablen warnen
NONE Keine Warnungen ausgeben