REPEAT -- C, I,
sys -- (comp.Mod.)
Verwendung in BEGIN...WHILE...REPEAT. Zur Ausfuehrungszeit
Sprung von REPEAT zur Stelle hinter BEGIN. sys wird mit WHILE
ausbalanciert. Vgl. BEGIN
REVEAL --
Replaziert die letzte Definition in das Hauptwoerterbuch.
ROLL +n --
Der +n - te Stackeintrag (+n nicht mitgerechnet) wird an die
oberste Stackposition rotiert, die folgenden Eintraege gelan-
gen auf die jeweils frei werdenden Plaetze. 2 ROLL ent-
spricht ROT , 0 ROLL ist eine Nulloperation.
RMARGIN -- adr
Ist eine Variable. Der Inhalt der Adresse (adr) entspricht
der Anzahl der Stellen, die bei einer Ausgabe auf Bildschirm
oder Drucker rechts maximal ausgegeben werden. Wird bisher
nur von WORDS genutzt.
ROOT -- Vok
Das Vokabular ROOT enthaelt die zur Steuerung der
Suchreihenfolge notwendigen Worte und basiert auf den
Experimentalvorschlaegen von ...
(s. auch Der Standart FORTH 83)
ROT 16b1 16b2 16b3 -- 16b2 16b3 16b1
Die 3 obersten Stackeintraege werden rotiert, der drittober-
ste gelangt an die Spitze.
RP0 -- adr U "r-zero"
Ist eine Systemvariable, die die Ausgangsposition des
Returnstack-Zeigers enthaelt.
RP! adr -- "r-p-store"
Setzt Returnstackanfang auf die Adresse adr.
RP@ -- adr "r-p-at"
Hinterlaesst den aktuellen Returnstack-Zeiger-Wert auf dem
Datenstack.
S>D n -- d
Wandelt eine vorzeichenbehaftete Einfachintegerzahl n in
eine Doppelintegerzahl d.
SAVE-BUFFERS -- M, "save-buffers"
Die Inhalte aller als aktualisiert gekennzeichneten Blockpuf-
fer werden in die entsprechenden Massenspeicherbloecke zu-
rueckgeschrieben, alle Puffer werden nicht laenger als aktua-
lisiert gekennzeichnet, bleiben aber u.U. zugewiesen.
SCAN adr1 +n1 n2 -- adr2 +n3
Aus einer Zeichenkette mit der Adresse adr1 und der Laenge
+n1 wird nach einem Zeichen n2 gesucht. Auf dem Datenstack
wird nach der Ausfuehrung des Wortes die Adresse adr2 des
gefundenen Zeichens n2 und die Laenge der verbleibenden Zei-
chenkette (+n3).
SCR -- adr "s-c-r"
Adresse der Variablen, die die Nummer des zuletzt ausgegeben
Screens enthaelt. Vgl. LIST
SEAL -- Vok.: ROOT
SEAL <name> macht das Woerterbuch <name> zum alleinig
durchsuchten. Kann z.B. fuer versiegelte Applikationen ver-
wendet werden.
SIGN n --
Bei n < 0 Einfuegen eines ASCII-Zeichens '-' (Minuszeichen)
an die Zeichenkette der Ausgabekonvertierung. Anwendung in-
nerhalb <# ... #>.
SKIP adr1 +n1 n2 -- adr2 +n3
Aus einer Zeichenkette mit der Adresse adr1 und der Laenge
+n1 wird nach einem Zeichen +n2 gesucht. Auf dem Stack liegen
nach Ausfuehrung des Wortes die Adresse adr2 des ersten
Zeichens nach dem gefundenen Zeichen +n2 und die Laenge der
verbleibenden Zeichenkette (+n3).
SOD -- adr Vok.: I/O
Uebergibt die Adresse im Boot-Bereich, auf der die erste von
der RAM-Disk benutzte Adresse steht.
SOURCE -- adr n
Liefert Quelladresse adr und Laenge n des Eingabestromes.
SP0 -- adr U "s-zero"
Variable, die den Initialisierungswert des Datenstack-
pointers enthaelt.
SP! adr -- "s-p-store"
Setzt Datenstackanfang auf adr.
SP@ -- adr "s-p-at"
adr ist die Adresse des obersten Stackeintrags, bevor SP@
ausgefuehrt wurde.
SPACE -- M,
Ausgabe eines ASCII-Leerzeichens.
SPACES +n -- M,
Ausgabe von +n ASCII-Leerzeichen.
SPAN -- adr
Adresse der Variablen, die die Laenge der zuletzt mit EXPECT
empfangenen Zeichenkette enthaelt. Vgl. EXPECT
STATE -- adr
Adresse der Variablen, die die Systemzustandsinformation
enthaelt (compilierender Modus: Inhalt ungleich 0)
STATUS -- Vec
Ausfuehrungsvektor, der jeweils nach Abarbeitung einer
Eingabezeile ausgefuehrt wird und den Systemstatus meldet.
(Normalerweise CR, sinnvoll ist fuer Testfaelle die Umstel-
lung mit ' .S IS STATUS)
SWAP 16b1 16b2 -- 16b2 16b1
Die 2 obersten Stackeintraege werden getauscht.
THEN -- C, I,
sys -- (comp.Mod.)
In IF...ELSE...THEN oder IF...THEN verwendet markiert THEN
die Stelle, wo die Ausfuehrung nach der Abarbeitung des IF -
bzw. des ELSE - Zweigs fortgesetzt wird.
sys wird mit IF bzw. ELSE ausbalanciert.
THRU u1 u2 -- M,
Lade die aufeinanderfolgenden Bloecke von u1 bis u2.
TIB -- adr "t-i-b"
Adresse des Texteingabepuffers, darin Speicherung der Zeichen
des Eingabestroms vom aktuellen Geraet.
TOS -- adr
User-Variable, die bei Taskumschaltung den TOS des jeweiligen
Task zwischenspeichert.
TRIM adr voc-adr --
Vok.: HIDDEN
Stutzt die 4 Hash-Faeden eines Vocabulars so, dasz sie
kleiner als adr sind.
TRUE -- n
Ist eine Konstante und liefert den Wert n=-1 (0FFFFH).
TUCK w1 w2 -- w2 w1 w2
Verdoppelt den letzten Stackeintrag und bringt diesen Wert
auf die 3. Stackposition.
TYPE adr +n -- M,
+n Zeichen werden fortlaufend ab adr aus dem Speicher gelesen
und ausgegeben, falls +n > 0.
U. u -- M, "u-dot"
Formatfreie Ausgabe von u als vorzeichenlose Zahl.
U.R u +n -- M, "u-dot-r"
Konvertierung von u bezueglich der aktuellen Zahlenbasis,
rechtsbuendige Ausgabe in einem gedachten Feld der Weite +n.
Fehler: Feldweite reicht nicht zur Darstellung aller Zeichen
aus. Vgl. "Zahlenkonvertierung"
U2/ u1 -- u2
u2 ist das Ergebnis der arithmetischen Rechtsverschiebung von
u1 um 1 Bit. In die frei werdende Bitposition wird eine Null
geschoben.
U< u1 u2 -- flag "u-less"
Das flag ist wahr, falls u1 < u2.
UM* u1 u2 -- ud "u-star"
ud ist das vorzeichenlose Produkt u1 * u2.
UM/MOD ud u1 -- u2 u3 "u-m-divide-mod"
u2 ist der Rest und u3 der Quotient nach der Division
u1/u2. Fehler: Division durch 0 oder Quotient ausserhalb
0...65 535 . Vgl. "Division mit Rundung"
UNTIL flag -- C, I,
sys -- (comp.Mod.)
Markiert das Ende in einer Schleife BEGIN...flag UNTIL.
Schleifenabbruch, falls flag wahr ist, sonst Fortsetzung der
Abarbeitung hinter BEGIN. sys wird mit BEGIN ausbalanciert.
Vgl. BEGIN
UP -- adr "user-pointer"
Ist eine System-Variable. Enthaelt die Adresse des aktuellen
USER-Areas.
UPD -- adr Vok.: HIDDEN
Variable, die anzeigt, ob der Block im Buffer UPDATE ist.
UPDATE --
Kennzeichnung des aktuell gueltigen Blockpuffers als aktuali-
siert. Vor Aenderung des Blockinhalts (Beschreiben mit einem
anderen Blockinhalt oder Ausfuehrung von FLUSH oder SAVE-
BUFFERS) erfolgt automatisches Rueckschreiben zur RAM-Disk.
USER -- Voc, M
Vokabular zur Definition von USER-Variablen und -Vektoren. Die
Definition dieser Worte weicht vom bisher bekannten etwas ab.
Die Position im USER-Area wird vom System selbst verwaltet.
Die Definition einer Variablen lautet dann:
USER VARIABLE name
Die eines USER-Vektors:
USER DEFER name
VARIABLE -- M,
Definitionswort fuer 16-Bit-Variablen: VARIABLE Wortname. Bei
Ausfuehrung von Wortname wird die Parameterfeldadresse auf dem
Stack abgelegt.
VARIABLE --
Voc.: USER
Definiert eine USER-Variable und ist somit aequivalent zum
Befehl USER in FIG.
VOCABULARY -- M,
Definitionswort fuer Woerterbuecher: VOCABULARY Wortname.
Eintragen von Wortname ins Woerterbuch zur Spezifizierung
einer neuen geordneten Liste von Wortdefinitionen. Die Aus-
fuehrung von Wortname ersetzt das erste Woerterbuch in der
Suchreihenfolge durch Wortname. Wenn Wortname Compilations-
woerterbuch ist, so werden neue Definitionen an die Liste von
Wortname angefuegt.
Vgl. DEFINITIONS
VOC-LINK -- adr
Ist eine Systemvariable, welche die Adresse eines Feldes in
der Definition des zuletzt erzeugten Woerterbuches enthaelt.
Alle Woerterbuchnamen sind ueber diese Felder verkettet, um
eine Steuerung von FORGET ueber mehrere moegliche Woerter-
buecher zu ermoeglichen.
VOCS -- Vok.: ROOT
zeigt alle definierten Vokabulare.
WARM --
Die Warmstartprozedur liefert eine Systemmeldung und fuehrt
ABORT aus.
WARNING -- addr
Systemvariable. Wenn ihr Inhalt <>0 ist, wird bei Redefini-
tion eines Wortes eine entsprechende Warnung ausgegeben.
WHERE off n -- Vec
Lokalisiert Screen n und Position des Wortes, dass einen
Fehler verursachte.
WIDTH -- adr U
Ist eine Systemvariable, welche die Hoechstzahl von Zeichen
enthaelt, die bei der Uebersetzung eines Definitionsnamens
abgespeichert werden. Der Wert muss zwischen 1 und 31 liegen
und wird mit 31 vorbesetzt.
WHILE flag -- C, I,
sys1 -- sys2 (comp.Mod.)
In BEGIN...flag WHILE...REPEAT wird die Abarbeitung fuer
flag = wahr zwischen WHILE und REPEAT fortgesetzt, anschlies-
send Ruecksprung zur Stelle hinter BEGIN . Bei flag = falsch
Fortsetzung der Abarbeitung hinter REPEAT.
sys1 wird mit BEGIN, sys2 mit REPEAT ausbalanciert.
WORD char -- adr M,
Erzeugen einer Teilzeichenkette (Token) als FORTH-Zeichen-
kette aus dem aktuellen Eingabestrom. Abschluss durch char
oder bei Erschoepfung des Eingabestroms. Fuehrende Trennzei-
chen char werden ignoriert. Die Laenge des Token wird auf
adr, die Zeichenkette ab adr+1 als Bytefolge mit nachfolgendem
Leerzeichen (zaehlt nicht zur Laenge) abgespeichert. Laenge
der Zeichenkette: maximal 255 Byte, sonst unbestimmt. Bei
erschoepftem Eingabestrom zum Zeitpunkt des Aufrufs von WORD
Generierung einer Zeichenkette der Laenge 0 . Wenn char nicht
gefunden wird, ist der Inhalt von >IN die Laenge des Eingabe-
stroms, sonst wird >IN so korrigiert, dass der Offset hinter
die Teilzeichenkette zeigt. #TIB wird nicht veraendert. Die
generierte FORTH-Zeichenkette wird nach HERE transportiert
und ihre Adresse uebergeben.
WORDS -- M
Ausgabe aller Wortnamen des ersten Woerterbuchs der aktuellen
Suchreihenfolge.
WORDS --
Vok.: ROOT
Redefinition. s. Vokabular FORTH.
WRITE adr n -- Vok.: I/O
schreibt Block n von Adresse adr in die RAM-Disk. Standart-
Voreinstellung fuer WRITE-BLOCK.
WRITE-BLOCK adr n -- Vec
schreibt Block n, welcher auf Adresse adr steht zur (RAM)
Disk.
XOR 16b1 16b2 -- 16b3 "x-or"
16b3 ist das Ergebnis der bitweisen Exklusiv-ODER-Verknuep-
fung von 16b1 mit 16b2.
[ -- I, "left-bracket"
Einschalten des ausfuehrenden Modus, nachfolgend Interpreta-
tion des Textes aus dem Eingabestrom. Typische Anwendung:
Vgl. LITERAL und ]
['] -- adr C, I, M, "bracket-tick"
Mit ['] Wortname wird die Compilationsadresse von Wortname in
eine Doppelpunktdefinition compiliert. Bei deren spaeterer
Ausfuehrung wird adr auf dem Stack abgelegt. Fehler: Wortname
kann nicht in der aktuellen Suchreihenfolge gefunden werden.
Vgl. LITERAL
[COMPILE] -- C, I, M, "bracket-compile"
In [COMPILE] Wortname wird das IMMEDIATE-Wort Wortname compi-
liert und nicht ausgefuehrt.
\ -- "skip-line"
Auf \ folgender Kommentar in der Screenzeile wird bei der
interpretativen Abarbeitung des Screens ignoriert.
\S -- "skip-screen"
Beendet die Abarbeitung des Screens.
] -- "right-bracket"
Einschalten des compilierenden Modus mit nachfolgender Compi-
lation des Textes aus dem Eingabestrom. In diesem Wort steckt
die Hauptcompilerschleife (anders als in fig). s. RUN INTER-
PRET