home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
dev
/
cursor-1.7.lha
/
Cursor
/
Cursor.dok
< prev
next >
Wrap
Text File
|
1994-02-24
|
12KB
|
386 lines
Cursor V1.7 - Ein BASIC-Compiler
(c) Copyright 1990-1994 Jürgen Forster
Dieses Programm ist Shareware. Es darf für eine kleine Kopiergebühr
weitergegeben werden, wird es aber oft benutzt, so sollte eine Sharegebühr
von 20 DM oder 15$ an den Autor geschickt werden.
"Cursor" übersetzt BASIC-Programme, die für den AmigaBASIC-Interpreter
geschrieben wurden, in allein lauffähige Programme, die vom CLI oder von
der Workbench aus gestartet werden können und schneller sind, als wenn
sie vom Interpreter aus ablaufen. Es werden (noch?) nicht alle Befehle des
AmigaBASIC-Interpreters unterstützt, eine Liste der möglichen Befehle ist
unter "UNTERSTÜTZTE BEFEHLE UND FUNKTIONEN" zu finden.
Ich übernehme keine Verantwortung für irgendwelche Schäden, die dieses
Programm anrichten könnte.
Mit "Cursor" übersetzte Programme dürfen (einschließlich der "basic.library")
nur weitergegeben oder verkauft werden, wenn die Shareware-Gebühr bezahlt
wurde.
INSTALLATION
Um den "Cursor" zu benutzen, muß die Datei "Cursor" ins "C:"-Verzeichnis
und die Datei "basic.library" ins "LIBS:"-Verzeichnis kopiert werden.
Alle Programme, die mit "Cursor" übersetzt wurden, brauchen diese Library,
außer sie wurden mit der "STANDALONE"-Option übersetzt (siehe unter
"OPTIONEN").
Außerdem werden die Mathematik-Libraries "mathtrans.library",
"mathieeedoubbas.library" und "mathieeedoubtrans.library" benötigt,
die sich also auch im "LIBS:"-Verzeichnis befinden müssen.
"Cursor" schreibt einige temporäre Dateien in das T:-Verzeichnis, das sich
am besten in der RAM-Disk befindet ("assign T: RAM:").
BENUTZUNG
Um ein BASIC-Programm zu übersetzen, muß es im ASCII-Format vorhanden
sein (AmigaBASIC-Programme können aus dem Interpreter heraus mit
SAVE "Name.bas",A im ASCII-Format abgespeichert werden).
Vom CLI aus kann man "Cursor" mit dem BASIC-Programmnamen als Parameter
aufrufen. Es können außerdem einige Optionen eingestellt werden (siehe
bei "OPTIONEN").
Will man "Cursor" von der Workbench aus starten, benutzt man den Editor
"CursorMenu" (der natürlich auch vom CLI aus gestartet werden kann), von
dem aus sich die Optionen über Menüs einstellen lassen.
Wenn während der Übersetzung kein Fehler auftritt, wird ein ausführbares
Programm erzeugt, dessen Name der des Quelltextes ohne Endung ist.
ÜBERSETZTE PROGRAMME
- Alle von "Cursor" übersetzten Programme sind "Pure", "Cursor" setzt
automatisch das "Pure-Bit" dieser Programme.
- Alle Programme können von der Workbench oder dem CLI aus gestartet werden.
Von CLI übergebene Parameter werden so behandelt, als ob der Benutzer sie
über die Tastatur getrennt durch die <RETURN>-Taste eingegeben hätte.
- Tritt während des Ablaufs eines Programms ein Fehler auf, so wird
die Fehlermeldung entweder in das CLI-Fenster (Standardausgabedatei)
geschrieben oder ein Requester wird angezeigt. Wenn z.B. eine Datei mit
"OPEN" geöffnet werden sollte, aber nicht vorhanden ist, so wird der
genaue Fehler (OBJECT_NOT_FOUND) angezeigt. Außerdem wird ggf. die
Zeilennummer im Quelltext, an der der Fehler aufgetreten ist, angezeigt
(siehe "OPTIONEN").
- Die Übersetzten Programme können fast immer mit Hilfe eines WINDOWCLOSE-
Gadgets oder mit <CTRL>-C abgebrochen werden.
OPTIONEN
Es können verschiedene Optionen eingestellt werden, die das übersetzte
Programm beeinflussen. Die Wahl der Optionen geschieht entweder vom Editor
"CursorMenu" aus, durch den OPTION-Befehl im Quelltext (z.B. "OPTION
NOWINDOW") oder durch CLI-Parameter (z.B. "Cursor -m2 Test.bas").
Folgende Optionen sind möglich:
- NOWINDOW (-w0 vom CLI), OPENWINDOW (-w1)
Bei NOWINDOW wird beim Start des übersetzten Programms kein Fenster
automatisch geöffnet.
Bei OPENWINDOW (Voreinstellung) wird ein neues Fenster mit der Nummer 1
auf dem Workbench-Bildschirm oder dem Bildschirm des Editors "CursorMenu"
in dessen Größe geöffnet.
- ALLPCRELATIVE (-b2), SOMEPCRELATIVE (-b1), NOPCRELATIVE (-b0)
Bei ALLPCRELATIVE wird angenommen, daß alle Verzweigungen im übersetzten
Programm nicht weiter als 32K entfernt reichen. Dadurch werden Programme,
die nicht zu groß sind, noch etwas kürzer.
Bei SOMEPCRELATIVE (Voreinstellung) reicht es, daß alle Verzweigungen
innerhalb von Unterprogrammen nicht weiter als 32K entfernt reichen.
Bei NOPCRELATIVE können alle Verzweigungen beliebig weit reichen.
- STANDALONE (-s)
Wenn diese Option gewählt wird, wird die "basic.library" nicht mehr
gebraucht, wenn das übersetzte Programm abläuft, sie muß nun aber während
der Übersetzung im aktuellen oder im "LIBS:"-Verzeichnis vorhanden sein.
Obwohl das übersetzte Programm so etwa 30K länger wird, wird nun immer die
gleiche und richtige Version der "basic.library" benutzt. Wenn Sie ihre
Programme an andere Benutzer weiter geben wollen, so sollten sie diese
Option benutzen.
- LISTING (-l[<listing file>])
Bei dieser Option wird eine Liste der im Programm verwendeten Variablen
erzeugt. In dieser Liste wird angegeben, in welchem Unterprogramm
jede Variable verwendet wird, und in welchen Zeilen des Programmes sie
benutzt wird. Die Liste wird in eine Datei mit der Endung ".lst" oder
in die Datei, die der Benutzer vom CLI aus gewählt hat, geschrieben.
UNTERSTÜTZTE BEFEHLE UND FUNKTIONEN
"Ja" heißt, daß der Befehl oder die Funktion (fast) genauso wie
beim AmigaBASIC-Interpreter funktioniert, "Nein" heißt, daß der Befehl/die
Funktion noch nicht verwendbar ist.
Wenn ein Befehl oder eine Funktion noch nicht unterstützt werden, so wird
das nicht unbedingt schon bei der Übersetzung des Programms angezeigt,
manchmal bricht das übersetzte Programm erst dann ab, wenn es zu einem
solchen Befehl gelangt und gibt eine "Advanced Feature"-Fehlermeldung aus.
ABS() Ja
AREA Ja
20 verschiedene Punkte können gesetzt werden.
AREAFILL Ja
ASC() Ja
ATN() Ja
BEEP
Bildschirm blinkt nur auf, kein Ton.
BREAK Ja
CALL Ja
CDBL() Ja
CHAIN Nicht möglich
CHDIR Ja
CHR$() Ja
CINT() Ja
CIRCLE Nein
CLEAR Ja
Dient zum Festlegen der Größe des Speichers für die String-Variablen
und der Größe des Stapelspeichers (für GOSUB/RETURN und CALL/SUB).
Während das übersetzte Programm abläuft werden die Größen dieser
Speicherbereiche aber nicht mehr verändert, es wird immer der größte
während des Übersetzens auftretende Wert verwendet. D.h. daß als Parameter
hier keine Variablen sondern nur Konstante angegeben werden dürfen. Die
Voreinstellungen sind 25000 Bytes für String-Variable und 4000 Bytes für
den Stack.
CLNG() Ja
CLOSE Ja
CLS Ja
COLLISION Ja
COLLISION() Ja
COLOR Ja
COMMON Nicht möglich
CONT Nicht möglich
COS() Ja
CSNG() Ja
CSRLIN Ja
CVI() Ja
CVL() Ja
CVS() Ja
CVD() Ja
DATA Ja
DATE$ Ja
DECLARE FUNCTION Ja
DEF FN Ja
DEFINT Ja
DEFLNG Ja
DEFSNG Ja
DEFDBL Ja
DEFSTR Ja
DELETE Nicht möglich
DIM Ja
END Ja
END SUB Ja (siehe "SUB")
EOF() Ja
ERASE Ja
ERL Ja
ERR Ja
ERROR Ja
EXIT SUB Ja (siehe "SUB")
EXP() Ja
FIELD Ja
FILES Ja
FIX() Ja
FOR Ja
FRE() Ja
FRE(-3) Gibt AvailMem(MEMF_LARGEST) zurück, wie es auch AmigaBASIC tut.
FRE(0) Erzwingt eine Garbage-Collection (Aufräumen des Speichers für
Strings) und gibt die Größe des noch freien Stringspeichers zurück.
GET Ja
GOSUB Ja
GOTO Ja
HEX$() Ja
IF Ja
INKEY$ Ja
INPUT Ja
INPUT$() Ja
INPUT # Ja
INSTR Ja
INT() Ja
KILL Ja
LBOUND Nein
LEFT$() Ja
LEN() Ja
LET Ja
L