) VARIABLE


( ) 10 CONSTANT LBLMAX ( ) VARIABLE LTABLE LBLMAX 1+ 2* ALLOT 10 CONSTANT FRMAX ( ) VARIABLE FRTABLE FRMAX 2* 2* ALLOT : FRCHK ( ---> ) FRMAX 0 DO I 2* 2* FRTABLE + @ ABORT" " LOOP ; : FRCLR ( ---> ) FRTABLE FRMAX 2* 2* ERASE LTABLE LBLMAX 1+ 2* ERASE ;

: FRRES ( N: ---> ) FRMAX 0 DO I 2* 2* FRTABLE + 2DUP @ = IF HERE OVER 2+ @ +! 0! ELSE DROP THEN LOOP ; : FRADD ( N: ---> ) FRMAX 1+ 0 DO FRMAX I = ABORT" " I 2* 2* FRTABLE + DUP @ 0= IF 2DUP ! HERE 1+ SWAP 2+ ! LEAVE ELSE DROP THEN LOOP ;

( ) : !LT CREATE , DOES> @ FRRES HERE SWAP 2* LTABLE + ! ; ( ) : @LT CREATE , DOES> @ DUP 2* LTABLE + @ SWAP OVER 0= IF FRADD THEN DROP ; 1 !LT 1#: 2 !LT 2#: 3 !LT 3#: 4 !LT 4#: 5 !LT 5#: 6 !LT 6#: 7 !LT 7#: 8 !LT 8#: 9 !LT 9#: 10 !LT 10#: 1 @LT 1# 2 @LT 2# 3 @LT 3# 4 @LT 4# 5 @LT 5# 6 @LT 6# 7 @LT 7# 8 @LT 8# 9 @LT 9# 10 @LT 10# ( ) FORTH DEFINITIONS : BEG-ASM [ ASSEMBLER ] FRCLR [ FORTH ] ASSEMBLER !CSP ; : END-ASM [ ASSEMBLER ] FRCHK [ FORTH ] ?CSP;

: , , . .

, : <> <>, <> — , , <> — . 580 D E H L, D H SP PSW, HL — .