8.1.26. Definice konstant

Definicemi konstant začíná část kódu jenž je psána jako odkazy na již existující slova. Tedy tuto část je již možno definovat ve FORTHu bez použití strojového kódu.

Některé z konstant jsou implementačně závislé. Odráží charakteristiky daného sytému a umožňují nám psát přenositelné programy. Například blok na disku. Na různých systémech může mít různou velikost ale nám je známa jeho velikost definovaná konstantou B/BUF.

Ve slovníku jsou definovány následující konstanty.

0

Slovo 0 uloží na záspobník parametrů číslo 0. Definice ve FORTHu s pomocí slova CONSTANT vypadá takto:

CONSTANT 0

A vytvořený záznam ve slovníku zase takto:

        DW 081B0h       ; 0
        DW CR-5         ; link to previous definition 
ZERO:   DW CONST
        DW 00000h
1

Definice konstanty 1.

Záznam ve slovníku.

        DW 081B1h       ; 1
        DW 0-4       ; link to previous definition in dictionary
ONE:    DW CONST
        DW 00001h
2

Definice konstanty 2.

Záznam ve slovníku.

        DW 081B2h       ; 2
        DW ONE-4        ; link to previous record in dictionary
TWO:    DW CONST
        DW 00002h
BL

Konstanta BL je prázdný znak (mezera, space).

32 CONSTANT BL

        DB 082h,042h,0CCh  ; BL
        DW TWO-4         ; CONSTANT ASCII BLANK
BL:     DW CONST
        DW 00020h
C/L

Tato konstanta určuje počet znaků na řádku terminálu.

64 CONSTANT C/L

        DB 083h,043h,02Fh,0CCh ; C/L
                                ; CHARACTERS PER LINE
        DW BL-5
CL:     DW CONST
        DW 00040h          ; 64 (DECIMAL)
FIRST

FIXME:

16384 CONSTANT FIRST

        DB 085h,"FIRS",0D4h ; FIRST
        DW CL-6
FIRST:  DW CONST
        DW FIRSTB       ; 04000h adresa prvního diskového bufferu
LIMIT

FIXME:

27692 CONSTANT LIMIT

        DB 085h,"LIMI",0D4h ; LIMIT
        DW FIRST-8
LIMIT:  DW CONST
        DW LIMITB       ; 6C2Ch — konec oblasti diskových bufferů
B/BUF

Velikost diskového bloku. Data na disku jsou ukládána v blocích stejné délky. Tato konstanta definuje jak veliký je tento blok v bytech.

1024 CONSTANT B/BUF

        DB 085h,"B/BU",0C6h ; B/BUF
	                       ; BYTES PER BUFFER
        DW LIMIT-8
BBUF:   DW CONST
        DW 00400h          ; 1024 BYTES/BUFFER
B/SCR

Počet dakových bloků jenž je potřeba na uložení jedné obrazovky..

CONSTANT B/SCR

        DB 085h,"B/SC",0D2h ; B/SCR
	                       ; BUFFERS/SCREEN
        DW BBUF-8
BSCR:   DW CONST
        DW 00001h
ORIGIN

FIXME:

94 CONSTANT ORIGIN

        DB 086h,"ORIGI",0CEh ; ORIGIN
        DW BSCR-8
ORGN:   DW CONST
        DW 0005Eh