IS-FORTH szójegyzék

A szójegyzék az IS-FORTH 1.1. szójegyzéke alapján készült. A szavakat ABC sorrendben tartalmazza. A leírás sajnos nem teljes (várom FORTH tudorok jelentkezését!) Vannak olyan szavak, amelyeknek a veremhatása nincs jelölve. Ezeknek vagy nincsen veremhatása (FORGET), vagy nem lehet ezzel a technikával jelölni. A veremhatás leírásakor használt jelölések:

b byte-os érték
c karakter (tehát szintén byte-os érték)
n egyszavas, előjeles érték
u egyszavas, előjel nélküli érték
ch EXOS csatornaszám (egyszavas, előjel nélküli érték)
d duplaszavas, előjeles érték (tehát 2 elem a veremben)
ud duplaszavas, előjel nélküli érték (2 elem)
f jelző
igaz igaz értékű jelző
hamis hamis értékű jelző.
cím egyszavas, előjel nélküli érték

0 ( - - - - 0 )
Gyorsművelet: 0-át tesz a veremre.

0!

0< (n1 - - - - f )
Ha n1<0 igaz jelzőt tesz a verembe.

0= (n1 - - - - f )
Ha n1=0 igaz jelzőt tesz a verembe.

0> (n1 - - - - f )
Ha n1>0 igaz jelzőt tesz a verembe.

1 ( - - - - 1)
Gyorsművelet: 1-et tesz a veremre.

1- ( n1 - - - - n2 )
Gyorsművelet: n1-et eggyel csökkenti.

1-!

1+ ( n1 - - - - n2 )
Gyorsművelet: n1-et eggyel növeli.

1+!

2 ( - - - - 2)
Gyorsművelet: 2-öt tesz a veremre.

2- ( n1 - - - - n2 )
Gyorsművelet: n1-et kettővel csökkenti.

2!

2* ( n1 - - - - n2 )
Gyorsművelet: n1-et megszorozza kettővel.

2/ ( n1 - - - - n2 )
Gyorsművelet: n1-et elosztja kettővel (megfelezi).

2@

2+ ( n1 - - - - n2 )
Gyorsművelet: n1-et kettővel növeli.

2CONSTANT

2DROP (n1 n2 - - - - )
Eltávolítja a veremből a két legfelső elemet.

2DUP ( n1 n2 - - - - n1 n2 n1 n2 )
A verem két legfelső elemét megkettőzi (a verem tetejére másolja).

2LITERAL

2OVER ( n1 n2 n3 n4- - - - n1 n2 n3 n4 n1 n2)
A verem harmadik, negyedik elemről készít másolatot a verem tetejére.

2ROT
A verem ötödik, hatodik elemet kiszedi alulról, és feldobja a tetőre;

2SWAP ( n1 n2 n3 n4 - - - - n2 n1 n4 n3)
Párban megcseréli a verem négy legfelső elemét.

2VARIABLE

3 ( - - - - 3 )
Gyorsművelet: 3-at tesz a veremre.

- (n1 n2 - - - - különbség )
Az n1-n2 különbséget adja.

'

! ( n cím - - - - )
A 16 bites n értéket a cím-en tárolja.

-1 ( - - - -  -1)
Gyorsművelet: -1-et tesz a veremre.

-2 ( - - - -  -2)
Gyorsművelet: -2-öt tesz a veremre.

-2ROT

-3 ( - - - -  -3)
Gyorsművelet: -2-öt tesz a veremre.

-!

-ROT

-TEXT

-TRAILING

!CSP
A CSP változóba teszi a veremmutató pillanatnyi értékét.

"

# (ud1 - - - - ud2)
Számok karaktersorozattá konvertálásakor, a <# és #> szó között használjuk. A következő karakterkódot generálja az output karaktersorozatba. A továbbadott duplaszavas érték a további karakterek előállításához szükséges (ez a BASE tartalmával való osztás hányadosa, a karakterkód a maradékból keletkezik).

#> (ud - - - - cím hossz )
Számok karaktersorozattá konvertálásának befejezése. Az output karaktersorozat címét és hosszát teszi a veremre, így ezt a TYPE szóval rögtön kiírathatjuk.

#S (ud1 - - - - ud2 )
Számok karaktersorozattá konvertálásakor, a <# és #> szó között használjuk. A # szó ismételt hívásával karakterkódokat generál az output karaktersorozatba mindaddig, amíg értékes jegy van, azaz, amíg a további konverzióhoz előállított hányados nem 0.


#STATUS

#TIB

$ ( cím1 cím2 - - - - f )
A cím1 és a cím2 címeken kezdődő stringeket hasonlítja össze, és az eredményt (igaz vagy hamis) a verembe teszi.

$! (string cím - - - - )
A stringet a stringváltozóba helyezi.

$. ( cím - - - - )
Az adott kezdőcímű stringet megjeleníti.

$@ ( - - - - cím )
A PAD-rahelyezi az adott stringet, majd a kezdőcímét a veremre teszi (a kiírás a PAD-területéről folyik).

$<>

$CONSTANT
Stringkonstans létrehozására használható.
Használata: " Hello!" $CONSTANT SZIA$
(Amikor a SZIA$ szót hívjuk, a megadott string kezdőcímét helyezi helyezi el a paraméter-stack-re)

$VARIABLE (n1 - - - - )
Helyet foglal a stringváltozónak.
Használata: hossz $VARIABLE NEV$ (Célszerűen a stringváltozó neve $-ra végződjön).

( ( - - - - )
Így használjuk: ( cccc )
A ) határolóig tartó kommentet figyelmen kívül hagyja. A ) határolónak a ( szóval egy sorban kell lennie! Definícióban ugyanúgy használható, mint végrehajtási állapotban. Ne feledkezzünk meg a ( utáni szóhatároló szóközről!

(ABORT)
A felhasználó által definiált megszakítás.

(BACKGROUND)

(SWI)

* ( n1 n2 - - - - szorzat)
Két előjeles szám előjeles szorzatát adja.

***

*/ ( n 1 n2 n3 - - - - n4 )
Az n4 = (n 1 *n2)/n3 hányadost adja. Minden szám előjeles. Az n1*n2 szorzatot duplaszóban tárolja, ez nagyobb pontosságot tesz lehetővé, mint az n1 n2 * n3 / sorozat.

*/MOD ( n1 n2 n3 - - - - n4 n5 )
Az (n1*n2)/n3 osztás n5 hányadosát és n4 maradékát adja. Az n1*n2 szorzatot duplaszóban tárolja. Valamennyi érték előjeles.

,

. ( n - - - - )
Kiírja a verem tetején lévő számot és egy szóközt a képernyőre.

." ( - - - - )
A következőképpen használjuk: ." cccc"
Ha definícióban használjuk, befordítja az új szóba a cccc szöveget egy futó szóval együtt, amely futáskor kiírja a szöveget a ki-készülékre.

.(

.R ( n1 n2 - - - - )
Az n1 számot egy n2 hosszúságú mezőben jobbra igazítva írja ki.

.S
Mely kiírja a veremben lévő számokat, de nem távolítja el azokat. A kiírást a legalsó elemmel kezdi, és sorban kiírja valamennyi a veremben lévő számot.

/ (n1 n2 - - - - hányados )
Az n1/n2 előjeles hányadost adja a vermen.

:
Szó definíciójának kezdete Használata: : cccc .... ;
Létrehoz egy szótárelemet cccc néven, amelybe az utána következő FORTH szavakat fordítja a ;-ig. A szöveginterpreter addig fordít, amíg a STATE állapotjelző értéke nem 0.

;
A kettőspontos definíció befejezése. Leállítja a fordítást.

;S ( - - - - )
Leállítja egy kernyő interpretálását. Kettőspontos definíciók végére ezt a futó szót fordítja a ; szó.

? ( cím - - - - )
A cím-en lévő 16 bites számot kiírja a ki-kjészülékre.

?BRANCH

?CSP

?DUP
(n1 - - - - n1) ha n1=0
(n1 - - - - n1 n1 ) ha n1 <>0
Megduplázza a verem két legfelső elemét, ha az nem 0.

?STACK
Hibaüzenettel megszakítja a futást, ha a verem alá- vagy túlcsordult.

?TERMINAL ( - - - - f )
Teszteli, hogy a terminálról érkezett-e break, vagyis megszakítás (legtöbbször: megnyomták-e valamelyik billentyűt).

@ ( cím - - - - n )
A cím 16 bites tartalmát adja.

[
Kettőspontos szódefinícióban használjuk. Használata: : xxx [ szavak ] többi ;
Felfüggeszti a fordítást. A [ utáni szavak nem fordítódnak le, hanem végrehajtódnak, egészen ] -ig.

[']

[COMPILE]
Lefordítja a mögötte álló azonnali szót amely a [COMPILE] nélkül nem fordítódna le, hanem végrehajtódna.

]
A fordítási állapot visszaállítása. A [ után használjuk.

+ ( n1 n2 - - - - összeg )
Két előjeles szám összegét adja.

+! ( n cím - - - - )
Az n előjeles számot a cím-en lévő 16 bites értékhez adja.

+DRAW

+LOOP
( n 1 - - - - ) ( futáskor )
( cím n2 - - - - ) ( fordításkor )
Kettőspontos definícióban használhatjuk a következő formában:
DO ... n 1 +LOOP
Futáskor a +LOOP dönti el, hogy a vezérlés visszamenjen-e a DO-ra. n1-et a cindexhez adja és az összeget, azaz az új cindexet a ciklushatárhoz hasonlítja. (A cindex és a ciklushatár a ciklus futása alatt a virmen van.) Addig megy vissza a DO-ra, amíg az új cindex a ciklushatárnál nagyobb vagy egyenlő (n1>0), ill. kisebb vagy egyenlő (n1<0) nem lesz. A ciklusból való kilépéskor a cindexet és a ciklushatárt eltávolítja a viremről.

+MOVE

+PLOT

< (n1 n2 - - - - f )
A visszaadott jelző igaz, ha n1<n2.

<#
Számok karaktersorozattá konvertálásának kezdete. A konverzió egy duplaszón dolgozik, a szöveget a pad-nél állítja elő.

<> ( n1 n2 - - - - f )
A kapott jelzó igaz, ha n1<>n2.

<MARK

<RESOLVE

= (n1 n2 - - - - f )
A visszaadott jelző igaz, ha n1=n2.

> (n1 n2 - - - - f )
A visszaadott jelző igaz, ha n1>n2.

-->
A kernyő interpretálásáról rátér a következőére.

>BODY

>IN

>MARK

>R ( n - - - - )
A viremre teszi a verem legfelső elemét. Definíción belül általában a R> szóval kiegyensúlyozva használjuk.

>RESOLVE

ABORT
Kiüríti a vermet, a virmet, és végrehajtási állapotba tér. A vezérlést a terminálra adja.

ABORT"

ABS ( n - - - - u )
Az n szám abszolút értékét adja.

ALLOT ( n - - - - )
Az a előjeles számot a DP szótármutatóhoz adja. Helyfoglalásra, a memória szervezésére használjuk.

AND ( n1 n2 - - - - n )
Bitenkénti ÉS n1 és n2 között.

ASCII

ASK( e - - - - n )
A verembe teszi e EXOS változó értékét.

ASSEMBLER
Belépés Forth-assembler üzemmódna.

ATTRIBUTE

ATTRIBUTES

BACKGROUND

BASE ( - - - - cím )
User változó; az input és output konverziók alapszáma.

BAUD
Hivatkozás a 16-os EXOS változóra: A kifejezés a soros kimenet és a lokális hálózat sebességét állítja be a következő értékeknek megfelelően:
0 - 50 BAUD, 1 - 75 BAUD, 2 - 110 BAUD, 3 - 134,5 BAUD, 4 - 150 BAUD, 5 - 200 BAUD, 6 - 300 BAUD, 7 - 600 BAUD, 8 - 1200 BAUD, 9 - 1800 BAUD, 10 - 2400 BAUD, 11 - 3600 BAUD, 12 - 4800 BAUD, 13 - 7200 BAUD, 14 - 9600 BAUD, 15 - 9600 BAUD
Alapérték: 15.

BEGIN ( - - - - cím n )
Definícióban használjuk ciklusszervezésre:
BEGIN ... REPEAT
BEGIN ... UNTIL
BEGIN ... WHILE ... REPEAT
Futáskor a BEGIN jelzi a ciklusmag elejét, ez a visszatérési pont a megfelelő UNTIL, WHILE vagy REPEAT számára. Az UNTIL akkor tér vissza a BEGIN-re, ha a verem tetején talált jelző hamis, az WHILE és a REPEAT mindig visszatér. Fordításkor a BEGIN a visszatérési címet és a (fordításkori hibaellenőrzést szolgáló) n számot hagyja a vermen.

BIAS
Hivatkozás a 28-as EXOS változóra: A paletta felső nyolc színét állíthatjuk be vele. A lehetséges 256 szín 32 db nyolcas csoportra van osztva. Egy csoport bármely színének a kódját megadva , a csoport színei kerülnek a paletta felső részére.

BINARY
Kettes (Bináris) számrendszer használata. A BASE rendszerváltozóba 2-t tölt.

BLACK ( - - - - n )
A fekete szín (RGB 0,0,0) kódját teszi a verembe.

BLANK

BLK ( - - - - cím )
User változó, az éppen interpretált blokk számát tartalmazza. Ha 0, akkor az interpreter a parancspufferből dolgozik.

BLOCK ( n - - - - cím )
Az n-edik blokkot tartalmazó diszkpuffer címét adja. Ha a blokk nincs a memóriában, akkor beolvasódik, mégpedig abba a pufferbe, amelyre a legrégebben hivatkoztunk utoljára. Ha a blokk beolvasására kiszemelt pufferben módosított blokk volt, akkor ez előbb kikerül a lemezre.

BLUE ( - - - - n )
A kék szín (RGB 0,0,1) kódját teszi a verembe.

BORDER ( - - - - n )
Használata: keretszín BORDER E!
Hivatkozás a 27-es EXOS változóra: keret színe.

BRANCH
A feltétel nélküli elágazást megvalósító futó szó. Az utána jövő mezőbeli paraméterrel növeli azt a címet, ahol a címinterpreter a munkáját folytatja (a paraméter negatív is lehet, ez mutatja a visszafelé ugrást). Az ELSE, az WHILE és a REPEAT fordítja.

BUFFER ( n - - - - cím )
A soron következő diszkpuffert az n-edik blokkhoz tartozóként könyveli el. Ha a puffer előző tartalma módosított volt, akkor az kiíródik a lemezre. Az n-edik blokk beolvasása nem történik meg. A kapott cím a puffer első adattárolásra szolgáló címe.

BUFFERS

C! ( b cím - - - - )
A b 8 bitjét tárolja a megadott címen.

C, ( b - - - - )
A b 8 bitjét a szótár következő szabad byte-jában tárolja, a szótármutató értékét növeli.

C@ (cím - - - - b )
A cím 8 bites tartalmát adja.

CAPTURE

CHARACTER (s1 s2 s3 s4 s5 s6 s7 s8 s9 n - - - - )
Az n ASCII kódú karakter átdefiniálása. A karakter 9sorát az s1-s9 értékek definiálják bináris alakjuknak megfelelően.

CLG

CLOSE ( ch - - - - )
Lezárja a megadott számú EXOS csatornát.

CLS
A karakteres kéoernyőt törli.

CMOVE>

CODE

COLOR

COLORS

COLOUR
Hivatkozás a 23-as EXOS változóra: A színüzemmódot állíthatjuk be az ezután megnyitandó videolapokra. A következő módokat érhetjük el:
Mód 0 - 2 szín
Mód 1 - 4 szín
Mód 2 - 16 szín
Mód 3 - 256 szín

COLOURS

COMPILE]

CONCAT (cím1 cím2 - - - - cím3 )
Összekapcsolja (összeadja) cím1 illetve cím2 címen kezdődő stringeket, majd a kapott string kezdőcímét teszi a verembe.

CONSTANT ( n - - - - )
Definiáló szó, így használjuk:
n CONSTANT cccc
Az így létrehozott cccc nevű szó paramezőjében az n szám van. Ha ezek után a cccc szó végrehajtódik, az n értéket a veremre teszi.

CONTEXT ( - - - - cím )
User változó, egy mutatót tartalmaz a kereső szótárra.

CONVERT

COPY

COUNT (cím1 - - - - cím2)
Az adott kezdőcímű string hosszát adja meg, ahol cím2=cím1+1.

CREATE

CREATE-BUFFERS

CSP ( - - - - cím )
User változó, a veremmutató értékének átmeneti tárolására.

CURRENT

CYAN ( - - - - n )
A világoskék szín kódját teszi a verembe.

D- ( d1 d2 - - - - d )
Duplaszavak (duplaszavas) különbségét adja.

D* ( d1 d2 - - - - d)
Duplaszavak (duplaszavas) szorzatát adja.

D. ( d - - - - )
Kiírja a vermen talált duplaszót, utána szóközt.

D.R ( d n - - - - )
Kiírja a vermen talált duplaszót, egy n szélességű mezőben.

D+ ( d1 d2 - - - - d-összeg )
A két duplaszavas érték (d1 d2) duplaszavas összegét adja.

D<

D=

D0=

D2/

DABS ( d - - - - ud )
A d duplaszó ud abszolút értékét adja.

DATE!

DATE@

DECIMAL
Tízes (decimális) számrendszer beállítása. A BASE rendszerváltozóba 10-et tölt.

DEFINITIONS
Így használjuk:
cccc DEFINITIONS
A láncoló szótárat hozzáigazítja a kereső szóhoz. A cccc szótárnév végrehajtása a cccc-t teszi kereső sorozattá, a DEFINITIONS után pedig a láncoló szótár is a cccc lesz.

DELETE

DEPTH

DESTROY-BUFFERS

DEVICE

DISPLAY

DMAX ( d1 d2 - - - - d-max )
A két duplaszó közül a nagyobbat teszi a veremre.

DMIN ( d1 d2 - - - - min )
A két duplaszó közül a kisebbet teszi a veremre.

DNEGATE ( d - - - -  -d)
Duplaszót negál.

DOES>

DPL ( - - - - cím )
User változó, a NUMBER által utoljára olvasott szám tizedespont utáni jegyeinek számát tartalmazza. Ha nem volt tizedespont, az értéke -1.

DRAW ( x y - - - - )
A rajzolósugár aktuális pozíciójából vonalat húz x y pozícióba. A rajzolósugár x y pozícióban marad.
Példa: 500 100 PLOT

DROP ( n - - - - )
Eltávolítja a verem legfelső elemét.

DU.

DU<

DUP ( n - - - - n n )
Megkettőzi a verem legfelső elemét.

DURATION

E! ( n e - - - - )
Eltárolja n értéket az e EXOS változóba.

E@ ( e - - - - n )
A verembe teszi e EXOS változó értékét. (Ugyanaz mint az ASK szó)

EDIT ( n - - - - )
A megadott számú kernyő sterkesztése. Belép az IS-FORTH editorába. (Kilépés: ESC)

EFFECTS

ELLIPSE ( r1 r2 - - - - )
r1 r2 sugarú ellipszis (vagy kör, ha r1 = r2) rajzolása megnyitott grafikus lapra. A z ellipszis (kör) középpontja a rajzolósugár aktuális pozíciója.

ELSE ( cím1 n1 cím2 n2 ) (fordításkor)
Kettőspontos definícióban használjuk: IF ... ELSE ... THEN. Futáskor az ELSE az IF-et követő igaz ág végét jelzi. Az igaz ág végéről a THEN utánra ugrik. Veremhatása nincs. Fordításkor a BRANCH szót fordítja, helyet foglal az ugrási cím számára, a hamis ág cím2 címét és a fordításkori hibaellenőrzést szolgáló n2 számot hagyja a vermen. Az IF fordította ugrás címét a cím1 és HERE értékekből számítja, és a kapott relatív címet címl -en tárolja .

EMIT ( c - - - - )
A c kódú karaktert kiírja a ki-készülékre.

EMPTY

EMPTY-BUFFERS
Valamennyi blokkpuffert üresnek könyveli el, esetleg anélkül, hogy tartalmát megváltoztatná. A módosított blokkok nem íródnak ki.

ENVELOPE

ERASE ( cím n - - - - )
A cím-től kezdve n byte-ot nulláz.

ERROR

EXECUTE ( cím - - - - )
Végrehajtja a szót, amelynek kódmezőcíme a vermen van.

EXIT
Végtelen (BEGIN ... REPEAT) ciklusból lép ki.

EXPECT ( cím karakterszám - - - - )
Karaktereket olvas be a terminálról a cím-re a kocsivisszáig vagy a megadott karakterszám eléréséig. A szöveg végére egy vagy több bináris 0 kerül.

EXT (cím - - - - )
Az adott címen levő parancs-sztringet (az első byte a név hossza) az EXOS kapja meg, s elindítja azt, amennyiben lehetséges. (EXOS rendszerbővítő indítása.)

FALSE ( - - - - f)
HAMIS értékű jelzőt tesz a verembe.

FAST ( - - - - )
A Forth üzzemódját FAST-ra állítja. A FAST "üzemmód" már a kész programok futtatására szolgál, ekkor a hibafigyelés kikapcsolt állapotú (szemben a SLOW üzemmóddal), s ez jelentősen gyorsítja a programok futását.

FENCE ( - - - - cím )
User változó. Azt a címet tartalmazza, amelynél alacsonyabb címről a FORGET nem törölhet (a szótár védett).

FILL ( cím hossz b - - - -)
A memóriát a cím-től hossz darab b értékű byte-tal tölti fel.

FIND

FKEY

FLD

FLUSH

FONT
A karakterkészlet alapállapotba állítása. Törli a CHARACTER szóval átdefiniált karaktereket.

FORGET
FORGET cccc
Törli a cccc nevű szótárelemet az összes felette lévővel együtt.

FORMAT

FORTH
Kilépés Forth-assembler üzemmódból.

FORTH-83

FORWARD

FREE ( - - - - n )
A szabad memória nagyságát adja meg bájtban (ez a terület szolgál a stack-nak és a szótárnak).

GET ( ch - - - - n )
A ch EXOS-csatornárol olvas be.

GRAPHICS
A beállított videofeltételeknek megfelelő videólapot nyit.
Pl.: 4 HIRES GRAPHICS

GREEN
A zöld szín (RGB 0,1,0) kódját teszi a verembe.

HERE ( - - - - cím )
A szótár feletti első szabad byte címét adja.

HEX
16-os (hexadecimális) számrendszer használata. A BASE rendszerváltozóba 16-ot tölt.

HIRES
A GRAPHICS paranccsal megnyitandó videolaot nagyfelbontásúra állítja.

HLD ( - - - - cím )
User változó. Számok karaktersorozattá konvertálásakor az utoljára konvertált karakter címét tartalmazza.

HOLD ( c - - - - )
Számok karaktersorozattá konvertálásakor, a <# és #> szó között használjuk. Az output karaktersorozatba beírja a c kódú karaktert; pl.
2E HOLD
egy tizedespontot tesz ki

I ( - - - - n )
DO ... LOOP ciklusban használjuk; a cindex értékét a veremre teszi.

IF
( f - - - - ) (futáskor)
( - - - - cím n ) (fordításkor)
Kettőspontos definícióban használjuk: IF (igaz rész) ... THEN, IF (igaz rész) ... ELSE (hamis rész) THEN
Futáskor az IF a kapott jelző alapján eldönti, hogy az igaz rész vagy a hamis rész hajtódjék végre. Ha a kapott jelző igaz, az igaz rész fut le, ha nem, az ELSE utáni hamis rész (ha van). Mindkét esetben a THEN után folytatódik a program. Ha az ELSE rész hiányzik és a kapott jelző hamis, az IF-től egyenesen a THEN utánra kerül a vezérlés.

IMMEDIATE
Azonnalivá teszi az utoljára definiált szót (beállítja a precedenciabitjét). Ez azt jelenti, hogy ha az azonnali szót definícióban használjuk, akkor fordításkor fog végrehajtódni, és nem fordítódik bele az új szóba. Azonnali szavakat a [COMPILE] szóval fordíthatunk le.

INDEX ( tól ig - - - - )
A két határ között kiírja a kernyők első sorait (amelyek a konvenció szerint a kernyő tartalmára utaló kommentek).

INFO
Az aktuális memória foglaltságát jelzi ki.

INK ( n - - - - )
A tinta színét a n értékre állítja be. (Alapértelmezett csatorna a 101-es grafikus csatorna.)

INTERPRET

INTERRUPT

J ( - - - - n )
A külső cindexet (a virem harmadik elemét) teszi a verembe.

JOY ( n1 - - - - n2 )
A botkormány állapotát olvassa le.
n1 = 0 - belső,
n1 = 1 - EXT1,
n1 = 2 - EXT2
A beolvasott bájt bitjei (b4 ... b0) tartalmazzák az irányra és a tűzgombra vonatkozó adatokat. A bitek növekvő sorrendben a bal, jobb, fel, le irányt és a tűzgomb lenyomását jelentik.

KEY ( - - - - c )
A terminálon a következőnek leütött billentyű kódját teszi a verembe.

LAST

LEAVE
Egy DO ... LOOP ciklust bármikor félbeszakítja - a ciklusváltozó értékétől függetlenül.

LEFT

LIST ( n - - - - )
Kiírja a ki-készülékre az n-edik kernyő szövegét. Az SCR változó a LIST után a kilistázott kernyő számát fogja tartalmazni.

LITERAL
( n - - - - ) (fordításkor)
( n - - - - n ) (végrehajtási állapotban)
Fordítási állapotban a vermen talált értéket 16 bites Literálnak fordítja. (A szó azonnali, így fordításkor hajtódik végre.) Tipikus használata a következő.
: xxxx [ számítások ] LITERAL ... ;
(A fordítás a számítások idejére felfüggesztődik.) Végrehajtási állapotban nincs hatása.

LOAD (n - - - - )
Az n-edik kernyőt kezdi el interpretálni. Az interpretálás (a kernyő betöltése) a kernyő végén, vagy az ;S szó hatására ér véget.

LOAD-BUFFERS
Beolvassa szalagról / lemezről a kimentett blokkokat.

LOOP ( cím n - - - - ) (fordításkor)
Kettőspontos definícióban használjuk: DO ... LOOP
Futáskor a LOOP a cindex és a ciklushatár értékéből eldönti, hogy visszamenjen-e a vezérlés a DO-ra. A cindex-et 1-gyel növeli és összehasonlítja a ciklushatárral. Addig megy vissza a DO-ra, amíg a cindex el nem éri vagy meg nem haladja a ciklushatárt. Ha elérte, a cindexet és a ciklushatárt eldobja, a programot továbbengedi.
Fordításkor a (LOOP) szót fordítja, a címet a DO-ra való visszaugrás címének kiszámítására használja. Az n a fordításkori hibaellenőrzést szolgálja.

LORES
A GRAPHICS paranccsal megnyitandó videolaot nagyfelbontásúra állítja.

MAGENTA ( - - - - n )
A bíborvörös szín (RGB 1,0,1) kódját teszi a verembe.

MAX ( n1 n2 - - - - max )
A két szám közül a nagyobbikat adja.

MIN ( n1 n2 - - - - min )
A két szám közül a kisebbiket adja.

MOD ( n1 n2 - - - - mod )
Az n1/n2 osztás maradékát adja n1 előjelével.

MODE

MOVE (cím1 cím2 n - - - - )
n darab 16 bites értéket mozgat cím1-en kezdődő területről cím2-n kezdődőre. A cím1-en lévő értéket mozgatja először.

NAME (cím - - - - )
A kazettára / lemezre mentéshez beállított file-nevet tartalmazza.

NAND

NEGATE ( n - - - - n1 )
A kapott szám -1-szeresét adja.

NOOP
Nincs műveletvégzés, azaz nem csinál semmit.

NOR

NOT (f1 - - - - f )
A veremben lévő feltételen logikai tagadást hajt végre. (IGAZ-ból NEM-et, NEM-ből IGAZ-at csinál.)

NUMBER ( cím - - - - d )
A cím-en kezdődő FORTH-fűzért egy előjeles, duplaszavas értékké konvertálja (a BASE értékének megfelelően). Ha a szöveg tartalmazott tizedespontot, akkor ennek pozíciója megőrződik a DPL változóban, de a tizedespontnak más hatása nincsen. Ha a konverzió nem lehetséges, hibajelzést kapunk.

OCTAL
Nyolcas (oktális) számrendszer használata. A BASE rendszerváltozóba 8-at tölt.

OFF
Kétállapotú EXOS változó KI állapotba kapcsolása.
Példa: STATUS OFF (a státus sort kikapcsolja).

ok
A FORTRH "ok" üzenete is szóként van tárolva.

ON
Kétállapotú EXOS változó BE állapotba kapcsolása.
Példa: STATUS ON (a státus sort bekapcsolja).

OPENIN

OPENOUT

OR ( n1 n2 - - - - or )
Bitenkénti megengedő VAGY művelet a verem tetején lévő két számon.

OUT

OVER (n1 n2 - - - - n1 n2 n1 )
A verem második elejét a verem tetejére másolja.

P!

P@

PAD (- - - - cím )
A szövegtárolásra használt puffer címét adja; ez a puffer a HERE-től állandó távolságra van.

PAINT

PALETTE ( n1 n2 n3 n4 n5 n6 n7 n8 - - - - )
A videólap színpalettáját állíthatjuk be. Az n1-n8 értékek a színek kódjai. Bármilyen színüzemmódot állítunk be, a szó mindig 8 kódot vár a veremből.

PAPER

PHASE

PICK (n1 - - - - n2)
A verem tetejére másolja a verem n1-edik elemét. A 2 PICK ugyanúgy működik, mint az OVER, az 1 PICK úgy, mint a DUP.

PITCH

PLOT ( x y - - - - )
Az aktuális tintaszínnel pontot rajzolunk a videólap x y pozíciójába. A rajzolósugár x y pozícióban marad.
Példa: 10 10 PLOT

PLOTTING

PREV ( - - - - cím )
Változó, az utoljára hivatkozott blokkpuffer számát tartalmazza. Az UPDATE parancs ezt a puffert fogja módosítottnak jelölni.

PUT ( n ch - - - - )
n értéket küldi a ch EXOS-csatornára.

QUIT
Kiüríti a virmet, leállítja a fordítást és visszaadja a vezérlést a terminálra.

R# ( - - - - cím )
User változó, az editor használja a kurzorpozíció tárolására.

R@

R> ( - - - - n )
A virem legfelső elemét í veremre teszi.

R0 ( - - - - cím )
User változó, a viremmutató kezdeti értékét tartalmazza.

RECURSE

RED
A piros szín (RGB 1,0,0) kódja.

REDIRECT

RELEASE

REM1
Használata: REM1 ON, REM1 OFF, REM1 TOGGLE
Hivatkozás a 36-os EXOS változóra: 1-es magnó-vezérlő relé ki-bekapcsolása.

REM2
Használata: REM2 ON, REM2 OFF, REM2 TOGGLE
Hivatkozás a 37-os EXOS változóra: 1-es magnó-vezérlő relé ki-bekapcsolása.

REPEAT ( cím n - - - - ) (fordításkor)
Kettőspont definícióban használjuk: BEGIN …. WHILE … REPEAT
Futáskor a REPEAT feltétel nélkül visszaadja a vezérlést a BEGIN utánra.

RGB ( n1 n2 n3 - - - - )
Szín beállítására használhatjuk a színkódok használata helyett. A piros, a zöld, és a kék színekből keverhetünk ki egy újat, az egyes összetevők arányát megadva a maximumhoz (255) képest.
Például: 255 255 255 RGB = fehér.

RIGHT

RND (n1 - - - - n2)
n2 véletlenszám előállítása. n2 0 és n1-1 közé eső egész szám.

ROLL ( n - - - - )
Kiszedi a verem n-edik elemét és a verem tetejére teszi. A 3 ROLL a ROT, a 2 ROLL a SWAP szóval egyenlő hatású. A veremhatás szokásos jelölésével a ROLL működését csak pontatlanul írhatjuk le.

ROT ( n1 n2 n3 - - - - n2 n3 n1 )
A verem harmadikelemét felülre teszi.

RP!
A viremmutatót inicializálja az R0 változóban töltött értékkel.

S!

S@

S->D ( - - - - cím )
Az n előjeles szám duplaszavas megfelelőjét adja.

S0 ( - - - - cím )
User változó, a veremmutató kezdeti értékét tartalmazza.

SAVE-BUFFERS
Adott néven szalagra / lemezre menti az aktuális blokkokat.

SCR ( - - - - cím )
User változó, az aktuális (a LIST-e legutoljára listázott) kernyő számát tartalmazza.

SET
Exos-változókba tölthetünk új értéket.
Példa: 255 BORDER SET

SIGN

SLICE

SLOW ( - - - - )
A Forth üzzemódját SLOW-ra állítja. SLOW üzemmódban a hibakövetés állandó jelleggel megtörténik. Ez csökkenti a program futásának sebességét.

SMUDGE

SOUND

SOURCE

SP!
A veremmutatót inicializálja az S0-ban tárolt értékkel.

SPACE
Egy szóközt ír ki a ki-készülékre.

SPACES ( n - - - - )
n darab szóközt ír ki a ki-készülékre.

SPAN ( - - - - cím )
Az EXPECT utasítás után használandó: megadja azt a címet ahol a FORTH a begépelt szöveg hosszát eltárolta.

SPEAKER
Használata: SPEAKER OFF, SPEAKER ON, SPEAKER TOGGLE
Hivatkozás a 14-es EXOS változóra: beépített hangszóró ki-bekapcsolása.

SPFUNC

STATE

STATUS ( - - - - n )
Hivatkozás a 26-os EXOS változóra: a státus sor kijelzése.
Használata: STATUS ON, STATUS OFF, STATUS TOGGLE

STOP

STYLE ( n - - - - )
A grafikus képernyőre rajzolt vonal típusa. Az 1-es típus a sima vonal, a 2-24 típus alkalmazása szaggatott vonalat eredményeznek.

SWAP ( n1 n2 - - - - n2 n1 )
Megcseréli a verem két felső elemét.

SYNC

SYSLOAD

TEXT ( - - - - )
A 102-es csatornán megnyit egy "szabványos" karakteres képernyőt.

THEN ( cím n ) (fordításkor)
Kettőspontos definícióban használjuk: IF ... THEN, IF .... ELSE .... THEN.
Futáskor a THEN az IF-től vagy az ELSE-től való ugrás helyét jelöli ki. A THEN a szabványos Forth-ból ismert ENDIF szinonimája. Fordításkor a THEN kiszámítja a cím-től a HERE-re való előreugrás relatív címét és a cím-en tárolja. Az n szám a fordításkori hibaellenőrzést szolgálja.

THRU

TIB ( - - - - cím )
User változó, a parancspuffer címét tartalmazza.

TIME!

TIME@

TIMER

TOGGLE
Kétállapotú EXOS változó átkapcsolása.
Példa: STATUS TOGGLE (a státus sort ki-bekapcsolja).

TRUE ( - - - - f)
HAMIS értékű jelzőt tesz a verembe.

TYPE ( cím karakterszám - - - - )
A cím-től kezdve a megadott számú karaktert kiírja a ki-készülékre.

U.

U< ( u1 u2 - - - - ud )
Előjel nélküli értékek összehasonlítása. f igaz, ha u1<u2.

UM*

UM/MOD

UNTIL
( f - - - - ) (futáskor)
( cím n - - - - ) (fordításkor)
Kettőspontos definícióban használjuk: BEGIN ... UNTIL
Futáskor az UNTIL feltételesen (a kapott jelző hamis értékénél) visszaadja a vezérlést a BEGIN utánra; ha a kapott jelző igaz, továbbmegy.

UPDATE
Az utoljára hivatkozott blokkot (amelynek száma a PREV változóban van) módosítottnak jelöli meg. Ha a blokkot tartalmazó puffer ezután másik blokk tárolására fog kelleni, akkor a blokk kiíródik a lemezre.

USES

VADDR

VARIABLE ( n - - - - )
Definiáló szó, így használjuk: n VARIABLE cccc
A VARIABLE egy cccc szót hoz létre, amelynek paramzőjét n-re inicializálja. Ha ezek után cccc végrehajtódik, a paramzőcíme kerül a veremre. Így kiolvashatjuk vagy megváltoztathatjuk a változó értékét.

VERSION ( - - - - n )
Az IS-FORTH verziószámát teszi a verembe. (Az 1.1-es verzió 11-et.)

VLIST
Kiírja a kereső szótár neveit. A STOP billentyű megnyomására a listázás félbeszakad.

VOCABULARY
Definiáló szó, így használjuk:
VOCABULARY cccc
Ezzel egy cccc szótárat hozunk létre. cccc végrehajtása őt magát teszi kereső szótárrá, a
cccc DEFINITIONS
sorozat cccc-t láncoló szótárrá is teszi. A cccc tartalmazza annak a szótárnak a szavait, amelyben cccc-t létrehoztuk. Így valamennyi szótár tartalmazza a FORTH szótár szavait. A szótárneveket azonnalinak szokás definiálni.

VOC-LINK (- - - - cím )
User változó, az utoljára definiált szótárra tartalmaz mutatót. A szótárnevek össze vannak láncolva.

WHILE
( f - - - - ) (futáskor)
( cím1 n1 - - - - cím1 n1 cím2 n2 ) (fordításkor)
Kettőspontos definícióban használjuk.
BEGIN ... WHILE (igaz rész) ... REPEAT
Futáskor a WHILE cselekménye a kapott jelzőtől függ. Ha a jelző igaz, továbbengedi a programot az igaz részre, amely a REPEAT-ig tart. A REPEAT visszaadja a vezérlést a BEGIN utánra. Ha a jelző hamis, a vezérlés a REPEAT utánra adódik.

WHITE ( - - - - n )
A fehér szín (RGB 1,1,1) kódját teszi a verembe.

WIPE

WORD ( c - - - - )
Beolvassa az interpretálandó karaktersorozat (befolyam) következő részletét a c határolókarakterig. A beolvasott részt FORTH-füzér formájában a HERE címre teszi. A szöveg végére egy vagy több szóközt fűz. A beolvasandó szöveg előtti c karaktereket nem veszi figyelembe. Ha a BLK értéke 0, a szöveget a parancspufferből, ha nem, a BLK-ban tárolt számú blokkból veszi.

X ( - - - - n )
Hivatkozás a 24-es EXOS változóra: Az ezután megnyitandó videolapok szélességét adja meg. A méretet (2-42) karakterekben kell számolni.

XOR ( n1 n2 - - - - xor )
A két érték közötti bitenkénti kizáró VAGY művelet eredményét adja.

Y ( - - - - n )
Hivatkozás a 25-es EXOS változóra: Az ezután megnyitandó videolapok magasságát adja meg. A méretet (1-255) karakterekben kell számolni.

YELLOW ( - - - - n )
A sárga szín (RGB 1,1,0) kódját teszi a verembe.