FROTH is given with complete source. You will find here a brief discussion
to help you to enter into the source.

Please note that all the sources have been edited in 132 columns.


Important files
---------------

EQU.INC         Constants, Strcutures and Macros used.
                Also, all external.
                
VARS.INC        All the internal variables used by FROTH.

DICT.INC        Create the nucleus dictionnary (definitions and
                vocabularies).

FROTH.ASM       The main program. Initialize all things

xxx.ASM         All the 386 .ASM files.
                See in the beginning of each module the list of the defined
                FROTH words.


The stack pointer
-----------------

The FROTH stack pointer is the 386 register ESI. So, 'MOV EAX, [ESI]' loads
the value on top stack, 'MOV EAX, [ESI+4]' load value under top, and so on.
In the file 'EQU.INC' are defined macros to use froth stack:
        MOV     EAX, PARAM0     ; Load top of stack
        MOV     EAX, PARAM1     ; Load under top of stack
        DISCARD 2               ; means: DROP DROP (add esi,2*4)
        DISPOSE 3               ; means: sub, esi, 3*4)
        IPUSH   ebx             ; Push an immediate value on froth stack

To understand, see the words DROP, SWAP, OVER, ... in STACK.ASM
And also: PLUS (+), MINUS (-), ... in ARITH.asm


The data pointer
----------------

EDI points to the beginning of the DDIR table (so, normally, we have
always EDI = [DDIR_START]). This is the table of memory block allocated.
Under FROTH interpret, call the word .DDIR, it will show you the current
table. Garbage collector is called explicitly with DUST, or implicitly
on a threshold (when amount of 'lost' data reachs a given threshold).
The garbage collector move data to take away hole. Because every reference
to data is made through the DDIR table, all remains OK.
(DDIR means 'Data DIRectory').


If you make improvements into FROTH, please tell them to me. I will be
happy to receive some help (I haven't a lot of time to spend on
FROTH...).

