Wollen Sie das Programm wirklich beenden ? (Ja/Nein)
}
DEF 'j' ende
DEF 'n' hauptmenü
TEXTAUSGABE
CLR
SPRUNG
; 9;
: ende
EXIT
; 9;
: install
LOAD install
TEXTAUSGABE
SPRUNG
: geschichte
LOAD geschich
TEXTAUSGABE
SPRUNG
; 9;
: einleitung
LOAD einleit
TEXTAUSGABE
SPRUNG
; 9;
: funktion
LOAD funktion
TEXTAUSGABE
SPRUNG
; 9;
: shareware
{
S H A R E W A R E - H I N W E I S E
-----------------------------------
1. Sharewarehinweise
2. Registrierungsformular
Dieses Programm wird nach dem Sharewareprinzip vertrieben. Bitte seien Sie ehrlich genug, und lassen Sie sich registrieren.
}
DEFGOS '1' share
DEFGOS '2' regist
TEXTAUSGABE
SPRUNG
GOTO shareware
: share
LOAD share
DEFGOS 's' regist
TEXTAUSGABE
SPRUNG
GOTO share
; 9;
: regist
LOAD regist
TEXTAUSGABE
SPRUNG
: compiler
{ Die Compilersprache von TWG
1. Die Syntax
2. Die Befehle
3. Das Programm CODE
4. Das Programm TWG
5. Ein Beispiel : Diese Hilfe
}
DEFGOS '1' syntax
DEFGOS '2' befehle
DEFGOS '3' code
DEFGOS '4' twg
DEFGOS '5' hilfe!
TEXTAUSGABE
SPRUNG
GOTO compiler
: hilfe!
LOAD help.txt
TEXTAUSGABE
SPRUNG
: syntax
LOAD syntax
TEXTAUSGABE
SPRUNG
; 9;
: code
LOAD code
TEXTAUSGABE
SPRUNG
; 9;
: twg
LOAD twg
TEXTAUSGABE
SPRUNG
: befehle
{ Befehlsliste
a. BEMERKUNG (;) b. CLR
c. DEF d. DEFGOS
d. GOTO e. GOSUB
f. LOAD g. RETURN
h. RÜCKSPRUNG i. SPRUNG
j. TEXTANFANG ({) k. TEXTAUSGABE
l. ÜBERSCHRIFT m. VERZEICHNIS
n. EXIT o. : (Label)
}
DEFGOS 'a' bemerkung
DEFGOS 'b' clr
DEFGOS 'c' def
DEFGOS 'd' goto
DEFGOS 'e' gosub
DEFGOS 'f' load
DEFGOS 'g' return
DEFGOS 'h' rücksprung
DEFGOS 'i' sprung
DEFGOS 'j' textanfang
DEFGOS 'k' textausgabe
DEFGOS 'l' überschrift
DEFGOS 'm' verzeichnis
DEFGOS 'n' Exit1
DEFGOS 'o' zeile
TEXTAUSGABE
CLR
SPRUNG
GOTO befehle
: bemerkung
{ Bemerkungen und Kommentare
Befehl : BEMERKUNG Abkürzung : B oder ;
Der reine Programmcode ist oft schwer lesbar. Darum ist es empfehlenswert, das Programm zu dokumentieren, damit man es auch später noch lesen kann, und weiß, warum welcher Befehl wo steht. Darum können in den Befehlstext Kommentare eingefügt werden. Dabei muß vor jeder Kommentarzeile ein ; stehen.
Beispiel :
; Dies ist ein
; Beispiel
}
TEXTAUSGABE
SPRUNG
: clr
{ Clr - Befehl
Befehl : CLEAR Abkürzung : C
Mit den Befehlen DEF und DEFGOS können Tasten einem Sprunglabel zugeordnet werden. Dabei wird die Textausgabe beim Betätigen einer definierten Taste abgebrochen, und das Steuerprogramm fortgesetzt.
Die mit DEF und DEFGOS definierten Tastendefinitionen werden mit clr gelöscht.
Beispiel :
load text
def 'a' test_label
textausgabe
clr
; alle Tastendefinitionen werden gelöscht
sprung
.
.
Querverweise :
Def defGos
}
DEF 'd' def
DEF 'g' defgos
TEXTAUSGABE
CLR
SPRUNG
: def
{ Tastendefintionen mit absolutem Sprung : DEF
Befehl : DEF <ASCII> <Zeilenmarke> Abkürzung : D
Einer Taste wird ein Label zugeordnet. Wird während der Textausgabe die definierte Taste gedrückt, so wird die Textausgabe unterbrochen. Beim nächsten Aufruf von SPRUNG springt das Programm zu dem definierten Label. Die Definitionen werden mit CLR gelöscht.
Das ASCII-Zeichen kann inerhalb von einem Hochkomma stehen, muß aber nicht. Das Hochkomma wird beim Erzeugen einer Textdatei von CODE.EXE automatisch hinzugefügt. Es kann auch ein nicht darstellbares Zeichen angegeben werden. Das Format ist :
\<ASCII-WERT>
Der ASCII-WERT kann zwischen 0 und 255 liegen. Damit kann jedes ASCII- Zeichen definiert werden.
Beispiel :
DEF 1 Label2
; Taste '1' wird Label2 zugeordnet.
DEF \13 Label1
; Dem ASCII- Wert 13 (entspricht RETURN) wird Label2 zugeordnet.
DEF 'q' Label3
; Dem kleinem q wird Label3 zugeordnet.
TEXTAUSGABE
; Textausgabe. Wird während der Textausgabe eine 1 gedrückt
; so wird beim Aufruf von S nach Label2 gesprungen,
; bei RETURN nach Label1
; und bei q nach Label2
Querverweise :
Clr defGos Sprung
}
DEF 'c' clr
DEF 'g' defgos
DEF 's' sprung
TEXTAUSGABE
CLR
SPRUNG
: defgos
{ Tastendefinitionen mit Sprung in ein Unterprogramm: DEFGOS
Definiert einen GOSUB-Sprung. Einer Taste wird ein Label zugeordnet. Wird während der Textausgabe die definierte Taste gedrückt, so wird die Textausgabe unterbrochen. Beim nächsten Sprungaufruf wird per GOSUB zum definierten Label gesprungen. Das heißt, das Programm merkt sich, von wo der Sprung ausgefüht wurde. Bei einem Return wird das Programm an dieser Stelle fortgefüht. Ein Return wird entweder durch den Befehl RETURN ausgelöst, oder wenn der Leser des Textordners ESC drückt, und dieses nicht durch RÜCKSPRUNG, DEF oder DEFGOS anders definiert ist.
Beispiel :
DEFGOS 1 Label2
; Taste '1' wird Label2 zugeordnet.
DEFGOS \13 Label1
; Dem ASCII- Wert 13 (entspricht RETURN) wird Label2 zugeordnet.
DEFGOS 'q' Label3
; Dem kleinem q wird Label3 zugeordnet.
TEXTAUSGABE
CLR
SPRUNG
.
.
.
:LABEL2
LOAD text
TEXTAUSGABE
; Da keine Taste definiert wurde, wird die Textausgabe
; nur mit ESC beendet, und dies löst
SPRUNG
; nach SPRUNG ein RETURN aus.
.
.
.
:Label1
LOAD demo
TEXTAUSGABE
RETURN
; Rücksprung mit Return
.
.
.
:Label3
RETURN
Querverweise :
Return Def rüKschrung Sprung Clr
}
DEF 'r' return
DEF 'd' def
DEF 'k' rücksprung
DEF 's' sprung
DEF 'c' clr
TEXTAUSGABE
SPRUNG
: goto
{ Sprungbefehl : GOTO
Befehl : GOTO <Label> Abkürzung : G
Das Programm wird an der Angegebenen Zeilenmarke fortgesetzt. Es findet ein unbedinger Sprung statt.
Beispiel :
TEXTAUSGABE
GOTO Label1
; Springe nach Label1
.
.
:Label1
; Hier wird die Programmabarbeitung fortgesetzt.
Querverweise :
Gosub Sprung
}
DEF 'g' gosub
DEF 's' sprung
TEXTAUSGABE
SPRUNG
: gosub
{ Sprungbefehl zu einem Unterprogramm : GOSUB
Befehl : GOSUB <Label> Abkürzung : GOS
Das Programm wird bei dem angegebenen Label fortgesetzt. Nach einem RETURN springt das Programm zu dem Programmschritt nach dem GOSUB zurück.
Ein Return wird entweder durch den Befehl RETURN ausgelöst, oder wenn der Leser des Textordners ESC drückt, und dieses nicht durch RÜCKSPRUNG, DEF oder DEFGOS anders definiert ist.
Querverweise :
Return Goto Sprung
}
DEF 'r' return
DEF 'g' goto
DEF 's' sprung
TEXTAUSGABE
SPRUNG
: load
{ Texte laden : LOAD
Befehl : LOAD <Pfad+Filename> Abkürzung : L
oder LOAD <Filename>
Load. Die angegebene Textdatei wird geladen, und steht zur Textausgabe zur Verfügung. Es muß ein gültiger DOS- Pfad angegeben werden, wenn nicht mit VERZEICHNIS einer definiert wurde. Wenn die Größe des Arbeitsspeicher es erlaubt, wird der Text im RAM gespeichert, und braucht beim nächsten Aufruf nicht mehr geladen zu werden. Die Endung .txt wird automatisch angehängt.
Beispiel :
LOAD \asc\beispiel
; Der Text beispiel.txt im Verzeichnis asc wird geladen
TEXTAUSGABE
; Text ausgegeben.
Querverweise :
Verzeichnis
}
DEF 'v' verzeichnis
TEXTAUSGABE
SPRUNG
: rücksprung
{ Definition eines Rücksprungs : RÜCKSPRUNG
Befehl : RÜCKSPRUNG <Label> Abkürzung : R
Rücksprung. Dieser Befehl ist eine Sonderform von DEF. Es wird die Rücksprungzeilenmarke definiert. Sie wird beim betätigen von ESC aufgerufen. Die Rücksprungadresse wird nach Aufruf, oder durch CLR gelöscht. Normalerweise wird nach dem Betätigen von ESC ein RETURN ausgelöst. Mit RÜCKSPRUNG kann jedoch eine eigene Sprungadresse definiert werden.
Beispiel :
RÜCKSPRUNG LABEL_52
def \27 LABEL_52
; Beide Ausdrücke sind identisch
TEXTAUSGABE
SPRUNG
; Es wurde ESC gedrückt :
.
.
.
:LABEL_52
; Hier wird das Programm fortgesetzt.
Querverweise :
Return Clr Def
}
DEF 'r' return
DEF 'c' clr
DEF 'd' def
TEXTAUSGABE
SPRUNG
: sprung
{ Sprung nach Textausgabe : SPRUNG
Befehl : SPRUNG Abkürzung : S
Es wird ein bedingter Sprung ausgeführt. Nachdem mit DEF, RÜCKSPRUNG und DEFGOS einigen Tasten Zeilenmarken zugeordnet wurden, und der Text mit TEXTAUSGABE ausgegeben wurde, übergibt die Textausgabe den Label, der mit der zum Abbruch führenden Taste korrespondierte. An diesem Label wird das Programm nach dem Aufruf von SPRUNG fortgesetzt. Die mit DEF und RÜCKSPRUNG definierten Label werden mit GOTO angesprungen, die mit DEFGOS mit GOSUB.
Beispiel :
DEF 1 100
; Taste 1 wird die Zeilenmarke 100 zugeordnet.
TEXTAUSGABE
; Der Text wird ausgegeben. Der Benutzer drückt nun die 1. Die
; Textausgabe wird unterbrochen
SPRUNG
; Das Programm wird nun bei Zeilenmarke 100 fortgesetzt.
.
.
: 100
; Hier wird das Programm fortsetzt.
Querverweise :
Rücksprung Defgos deF
}
DEF 'r' rücksprung
DEF 'd' defgos
DEF 'f' def
TEXTAUSGABE
SPRUNG
: textausgabe
{ Ausgabe eines Textes : TEXTAUSGABE
Befehl : TEXTAUSGABE Abkürzung : T
Textausgabe. Der Text wird auf dem Bildschirm ausgegeben. Man kann im Text mit den Tasten Bild auf und Bild ab blättern. Beendet wird diese Funktion mit dem Druck einer durch D definierten Tasten, oder durch ESC. Welche beim Aufruf von SPRUNG angesprungen wird.
Einige Tasten sind festgelegt
- Page hoch : Eine halbe Seite nach oben blättern
- Page runter : Eine halbe Seite nach unten blättern
- ESC : Beendet die Textausgabe, (siehe RÜCKSPRUNG)
- Pos1 : Blättern zum Anfang des Textes
- Ende : Blättern zum Ende des Textes
Beispiel :
LOAD demo
; Das Programm demo wird geladen
TEXTAUSGABE
; und auf dem Bildschirm ausgegeben.
Querverweise :
Rücksprung Sprung
}
DEF 'r' rücksprung
DEF 's' sprung
TEXTAUSGABE
SPRUNG
: überschrift
{ Überschriften definieren : ÜBERSCHRIFT
Befehl : ÜBERSCHRIFT <Text> Abkürzung : U und Ü
Überschrift. Es wird eine Überschrift definiert. Die Überschrift muß kleiner als 60 Zeichen sein. Sie wird immer dann ausgegeben, wenn die Texte keine eigenen Überschriften besitzten. Sie wird automatisch in die Mitte der Zeile gedruckt.
Beispiel :
ÜBERSCHRIFT Hauptmenü
; Als Überschrift wird 'Hauptmenü' definiert,
; und ausgegeben, wenn der Text keine eigene Überschrift besitzt.
}
TEXTAUSGABE
SPRUNG
: verzeichnis
{ Verzeichnis festlegen : VERZEICHNIS
Befehl : VERZEICHNIS <Pfad> Abkürzung : V
Verzeichnis. Es wird der DOS- Pfad definiert, aus dem die Textdateien geladen werden.
Beispiel :
; TWG wurde aus dem Verzeichnis e:\test\ gestartet :
VERZEICHNIS asc
; Der Pfad für Dateien lautet nun : e:\test\asc\
LOAD demo
; Es wird der File e:\test\asc\demo.txt geladen.
VERZEICHNIS c:\kdv\asc
LOAD text
; Es wird der File c:\kdv\asc\text.txt geladen.
Querverweise :
Load
}
DEF 'l' load
TEXTAUSGABE
SPRUNG
: Exit1
{ Programmende : EXIT
Befehl : EXIT Abkürzung : X
Exit. Dieser Befehl beendet das Programm.
Beispiel :
RÜCKSPRUNG ende
; Rücksprungzeilenmarke ist 'ende'
TEXTAUSGABE
; Textausgabe, wird vom Benutzer mit ESC beendet.
SPRUNG
; Springe zur Zeilenmarke 'ende'
.
.
: ende
EXIT
; Programmende
}
TEXTAUSGABE
SPRUNG
: zeile
{ Zeilenlabel : ZEILE
Befehl : ZEILE Abkürzung : z oder :
Label. Es wird ein Label definiert. Die Label können aus beliebigen Buchstaben und Zahlen bestehen. Zwei Zeilenmarken hintereinander sind unzulässig. Auch eine Bemerkung zwischen zwei Zeilenmarken ist nicht erlaubt.
Beispiel :
: Dies_ist_ein_Label
Label können beliebig lang sein. Lange Labelnamen verbessern die Lesbarkeit des Programmes, vergrößern aber die Tipparbeit. Ein Label muß aber aus einem Wort bestehen. Darum eignet sich der Unterstrich (_) gut, um verschiedene Wörter in einem Label unterzubringen.
Querverweise :
Def defGos gOto goSub Rücksprung
}
DEF 'd' def
DEF 'g' defgos
DEF 'o' goto
DEF 's' gosub
DEF 'r' rücksprung
TEXTAUSGABE
SPRUNG
: return
{ Unterprogramm beenden : RETURN
Befehl : RETURN Abkürzung : ret
Nach einem GOSUB oder einen Sprung der von DEFGOS eingeleitet wurde, erfolgt ein Rücksprung zu der Stelle, von welcher der Sprung eingeleitet wurde.
Beispiel :
GOSUB unterprogramm
; Nach einem Return in 'unterprogramm' wird die Verarbeitung hier
; vortgesetzt.
DEFGOS 'A' unterprogramm
TEXTAUSGABE
; Die Textausgabe wurde mit 'A' abgebrochen.
SPRUNG
; Der Label 'unterprogramm' wird angesprungen. Nach
; einem Return in 'unterprogramm' wird die Verarbeitung
; hier vortgesetzt.
.
.
.
: unterprogramm
; Der Label 'unterprogramm'.
.
.
.
RETURN
; Die Verarbeitung wird hier abgebrochen, und hinter dem GOSUB
; oder SPRUNG- Befehl, der nach 'unterprogramm' sprang,