HELLO --
Aktuell von BOOT benutzt, um die Systemmeldung auszugeben und
EMPTY-BUFFERS und DECIMAL auszufuehren.
HERE --
Adresse der naechsten verfuegbaren Adresse im Woerterbuch.
HEX --
Setzen der Zahlenbasis fuer Ein- / Ausgabekonvertierungen auf
16.
HIDDEN -- Voc
Das Vokabular enthaelt alle normalerweise "verborgenen"
Laufzeitroutinen und Teilaktionen, die fuer den Nutzer
meist uninteressant sind und die nur benoetigt werden, wenn
das Compile-Verhalten erweitert werden soll.
HIDE --
Verbirgt den letzten Worteintrag im Woerterbuch, so dasz er
von (FIND) erst nach Aufruf von REVEAL gefunden werden kann.
HLD -- adr U
Ist eine Systemvariable, die die Zieladresse enthaelt, auf
der das naechste erzeugte ASCII-Zeichen abgespeichert wird.
HOLD char --
Einfuegen von char in die Ausgabezeichenkette bei Ausgabekon-
vertierungen mit <# ... #>.
I -- w C,
w ist die Kopie des Schleifenindexes in DO...I...LOOP (bzw.
... +LOOP).
I/O -- Voc
Woerterbuch welches alle Worte, die zur Anpassung an die
systemspezifischen Ein- und Ausgabefunktionen erforderlich
sind, enthaelt. Dazu gehoert auch die Behandlung des Block-
lesens und -schreibens (in der Grundversion fuer RAM-Disk
installiert). Diese Worte sind meist Zielpunkt fuer Vektor-
aufrufe aus dem Stammvokabular. Nutzerspezifische Aenderungen
der Ein- und Ausgabe bzw. Massenspeicherbehandlung sollten
ebenfalls dementsprechend in diesem Vokabular untergebracht
werden.
IF flag -- C, I,
-- sys (comp.Mod.)
Wird in Strukturen der Form: IF...ELSE...THEN oder IF...THEN
verwendet. Wenn flag wahr ist, Ausfuehrung der Woerter zwi-
schen IF und THEN bzw. IF und ELSE mit Fortsetzung hinter
THEN . sys wird mit ELSE bzw. THEN ausbalanciert.
IMMEDIATE --
Kennzeichnung des zuletzt gebildeten Woerterbucheintrags als
ein Wort, welches auch im compilierenden Modus ausgefuehrt
und nicht compiliert wird.
INDEX u1 u2 -- M
Ausgabe der jeweils ersten Zeile jedes Screens von Screen
Nr. u1 bis Screen u2 (Titelzeile).
INTERPRET -- M,
Beginn der Interpretation bei dem Zeichen, welches mit >IN
relativ zum Blockanfang des Massenspeicherblocks mit der
Nummer, die in BLK steht, indiziert wird. Wenn die Blocknum-
mer 0 ist, erfolgt Interpretation vom Texteingabepuffer.
s. auch (INTERPRET) und (COMPILE).
IS --
Abhaengig von STATE wird entweder das folgende DEFER-ierte
Wort (Vector) sofort gesetzt oder zum spaeteren Setzen compi-
liert. z.B. ' .S IS STATUS stellt den Vector so um, dasz nach
jeder Eingabezeile der Datenstack gedruckt wird; sehr geeig-
net fuer Tests.
J -- w C,
w ist eine Kopie des Indexes der naechst aeusseren Schleife.
Nur in genesteten Schleifen DO...LOOP (bzw. ...+LOOP ) an-
wendbar, wenn dazwischen keine Werte auf dem Returnstack
eingetragen werden, z.B. DO...DO...J...LOOP...LOOP .
KEY -- 16b M, Vec,
Die niederwertigen 7 Bit sind die Kodierung des naechsten
eingegebenen ASCII-Zeichens. Alle ASCII-Zeichen sind gueltig,
auch CTRL-Zeichen (keine Echofunktion, keine Aufbereitung).
KEY? -- f Vec
liefert TRUE, wenn eine Tate betaetigt wurde. Entspricht
?TERMINAL in FIG.
L/SCR -- u "lines-per-screen"
Ist eine Konstante. Der Wert stellt die Zeilenanzahl eines
Screens dar.
L>NAME lfa -- nfa "l-to-name"
Ausgehend von der lfa eines Wortes wird die nfa berechnet.
LABEL --
Wird zur Bildung von Marken im Maschinenkode genutzt.
Vgl. ASSEMBLER
LAST -- adr U
Ist eine Variable, die die Anfangsadresse des letzten (u.U.
unvollstaendigen oder ungueltigen) Woerterbucheintrags
enthaelt.
LEAVE -- C, I,
Sofortiges Verlassen einer Schleife DO...LEAVE...LOOP (bzw.
...+LOOP) mit Beseitigung der Schleifenparameter auf dem
Returnstack. Auch in genesteten Strukturierungssequenzen in
Schleifen anwendbar, auch mehrere LEAVE in einer Schleife.
LINK -- adr
USER-Variable die die Adresse des naechsten Tasks in der
Round-Robin-Schleife enthaelt.
LINK> lfa -- cfa "from-link"
Ausgehend von der lfa eines Wortes wird die cfa berechnet.
LITERAL -- 16b C, I,
16b -- (comp.Mod.)
Typische Anwendung im compilierenden Modus: [ 16b ] LITERAL.
Compilation von 16b als Literal, bei der spaeteren Ausfueh-
rung erfolgt eine Eintragung von 16b auf dem Datenstack.
LIST u -- M,
SCR wird auf u gesetzt, Screen u wird ausgegeben. Vgl. BLOCK
LOAD u -- M,
Sicherung der aktuellen Parameter des Eingabestroms >IN und
BLK ; IN wird auf 0 und BLK auf Screennummer u gesetzt, damit
Interpretation von Screen u . Beendigung der Interpretation
und Rueckkehr zu den alten Werten von >IN und BLK explizit mit
\S oder bei Blockende.
Fehler: u = 0 Vgl. >IN BLK BLOCK
LOOP -- C, I,
sys -- (comp.Mod.)
Inkrementieren des Schleifenindexes um 1. Schleifenabbruch,
wenn Index die Grenze zwischen Limit - 1 und Limit ueber-
schreitet, sonst Fortsetzung der Schleife hinter DO.
sys wird mit DO ausbalanciert.
M/MOD d n1 -- n2 n3
die doppeltgenaue Zahl d wird durch n1 dividiert. n3 ist
Quotient, n2 Rest. ACHTUNG: nicht identisch mit M/MOD in FIG.
MARK --
MARK <name> erzeugt einen Woerterbucheintrag <name>, bei
dessen Aufruf alle nach <name> definierten Worte geloescht
werden. s. EMPTY
MAX n1 n2 -- n3 "max"
n3 ist die groessere der beiden Zahlen n1 oder n2 entspre-
chend der Operation >.
MAX# -- n
Vok.: I/O
Anzahl der maximal in der RAM-Disk verfuegbaren Bloecke.
MIN n1 n2 -- n3 "min"
n3 ist die kleinere der beiden Zahlen n1 oder n2 entsprechend
der Operation <.
MOD n1 n2 -- n3
n3 ist der Rest der Division n1 / n2 mit gleichem Vorzeichen
wie n2 oder gleich 0 . Fehler: Divisor = 0 oder n1 / n2
ausserhalb des Bereichs -32768 ... +32767.
MOVE adr1 adr2 u --
Falls u > 0, werden u Bytes ab adr1 in den Bereich ab adr2
transferiert.
MU/MOD ud1 u1 -- u2 ud2
Ist eine mathematische Operation mit gemischten Zahlentypen
ohne Vorzeichen, die den Rest u2 und den Doppelzahlquotienten
ud2 bei der Division einer Doppelzahl ud1 durch einen Divisor
u1 liefert. ud1/u1=:ud2 Rest u2
N>LINK nfa -- lfa "n-to-link"
Ausgehend von der nfa eines Wortes wird die lfa berechnet.
NAME> nfa -- cfa "from-name"
Ausgehend von der nfa eines Wortes wird die cfa berechnet.
NEGATE n1 -- n2
n2 ist das Zweierkomplement von n1.
NIP w1 w2 -- w2
Loescht den zweiten Stackeintrag.
NOOP --
Ist eine leere Anweisung.
NOT 16b1 -- 16b2
16b2 ist das Einerkomplement von 16b1.
NUMBER? adr -- d f Vec
Konvertiere die Zeichenkette, deren erstes Zeichen auf adr
steht, in eine 32-Bit-Zahl entsprechend dem aktuellen Inhalt
von BASE . Standartmaessig auf (INUMBER?) vektorisiert.
Flag gibt Auskunft ueber Erfolg der Konvertierung.
OFF adr --
Setzt Inhalt von adr auf FALSE.
OFFSET -- n U,
Ist eine Variable, die den Blockoffset enthaelt, welcher bei
Ausfuehrung von BLOCK oder BUFFER zur Blocknummer auf dem
Stack addiert wird.
ON adr --
Setzt Inhalt von adr auf TRUE.
ONLY --
Vok.: ROOT
Das erste Woerterbuch in der Suchreihenfolge wird durch ROOT
ersetzt. ROOT wird gleichzeitig zum einzigen durchsuchten
Vocabular. Vgl. VOCABULARY und Teilwoerterbuch ROOT
OR 16b1 16b2 -- 16b3
16b3 ist die bitweise ODER-Verknuepfung von 16b1 mit 16b2 .
ORDER -- Vok.: ROOT
zeigt die z. Z. gueltige Vokabular-Suchreihenfolge.
OS n -- Vok.: I/O
Aufruf der Systemroutinen im Installationsbereich. n ist der
Adressoffset zum Aufruf von CI (Zeicheneingabe).
OVER 16b1 16b2 -- 16b1 16b2 16b3
16b3 ist die Kopie von 16b1 .
P! n adr --
Direkte Portausgabe, wobei n der auszugebende Wert und adr
die Adresse des Ports ist.
P@ adr -- n
Direkte Porteingabe, wobei n der einzugebene Wert und adr die
Adresse des Ports ist.
PAD -- adr
Anfangsadresse eines mindestens 84 Byte langen Textzwischen-
puffers.
PARSE +n1 -- adr +n2
Separiert im Eingabestrom eine Zeichenkette, die mit +n1
endet, liefert die Anfangsadresse adr und die Laenge +n2 der
Zeichenkette. Aktualisiert den >IN-Zeiger.
PARSE-WORD +n1 -- adr +n2
Separiert im Eingabestrom eine Zeichenkette, die mit +n1
beginnt, liefert die Anfangsadresse adr und die Laenge +n2
der Zeichenkette. Aktualisiert den >IN-Zeiger.
PAUSE --
Ist eine leere Anweisung. Sie ist fuer Multitask reserviert,
wo sie eine Umschaltung auf das naechste Task bewirkt.
PICK +n -- 16b
16b ist die Kopie des n-ten Stackeintrags (+n nicht mitge-
rechnet). 0 PICK entspricht DUP , 1 PICK entspricht OVER .
PLACE adr1 n adr2 --
Lagert Zeichenkette der Laenge n von adr1 (Quelladresse)
nach adr2 (Zieladresse) um.
PREVIOUS --
Vok.: ROOT
entfernt als Gegenstueck zu ALSO das zuletzt deklarierte
Woerterbuch aus der Suchreihenfolge.
PRINTING -- adr U
USER-Variable, die anzeigt, ob Drucker als Echo zugeschaltet
ist. PRINTING ON bzw. OFF schaltet den Drucker zu bzw. ab.
PRIOR -- adr
Ist eine Variable, die zur Woerterbuchsuche verwendet wird.
Zeigt zum letzten Woerterbuch, das durchsucht wurde.
PUT --
Speichert den Inhalt der RAM-Disk auf Magnetband ab. Beachte
rechnerspezifische Unterschiede.
QUERY -- M,
Empfangen von 80 Zeichen in den TIB und zwar so lange, bis
<ret> erkannt wird oder der Textpuffer gefuellt ist. >IN und
BLK werden auf 0 gesetzt, #TIB enthaelt den Wert von SPAN .
Vgl. EXPECT
QUIT --
Fuehrt folgende Operationen aus: Returnstack saeubern, aus-
fuehrenden Modus einschalten, Eingabe ueber das aktuelle Ein-
gabegeraet, Beginn der Wortinterpretation. KeineSystemaus-
schrift.
R# -- adr U "r-sharp"
Ist eine Systemvariable, die den Ort eines Editcursors oder
anderer mit Files zusammenhaengender Funktionen enthalten
kann.
R> -- 16b C,
Entnahme von 16b vom Returnstack und Transfer zum Parameter-
stack.
R@ -- 16b C,
Kopiert den obersten Wert des Returnstacks als 16b auf den
Datenstack.
READ adr n --
Vok.: I/O
liest aus der RAM-Disk Block n und schafft ihn auf Adresse
adr. Standartvoreinstellung fuer READ-BLOCK.
READ-BLOCK adr n -- Vec
liest Block n von (RAM) Disk nach Adresse adr.
RECURSE -- C, I,
Compiliert die Compilationsadresse der Definition, die gerade
compiliert wird. Ausfuehrung erfolgt spaeter rekursiv.