Technical info for CHForth 1.2.3

-- Structure of headers:

| flags | ^forget | ^code | ^dea | count-byte | name |
                             dea

    ^------------------------<          HEAD>FLAGS      H@ gives flags
             ^---------------<          HEAD>FORGET     H@ gives forget xt
                      ^------<          HEAD>           no H@ needed, gives xt
                             ^-<        H@              gives previous dea

                        >----^         >HEAD        from xt (in FRTSEG) to dea

All words are linked to previous words by the link field (dea, dictionary
entry address). In FRTSEG nothing is compiled when making headers.

-- Structure of colon definitions:

> I write jump instead of jmp because after the near jmp I place the byte $FC
> to make addresses even. Also call is aligned by appending byte $FC.
> $FC is the instruction CLD that does nothing but set the direction bit right.

FRTSEG: cpu's DS and CS segment. Operators like @ ! , work here

| jump docol | ^data |
    ^xt         >BODY

LSTSEG: cpu's ES segment, offset in SI. Operators like @L !L COMPILE, work here

| xt1 | xt2 | .. | xtn | xt of (EXIT) |
  ^data

-- Structure of VARIABLE etc.:

FRTSEG:  | jump dovar | data..
            ^xt         >BODY

-- Structure of DEFER :

| jump dodefer | xt | link |

The xt can be changed by "xt TO name" and asked by "FROM name"
The link points to the previous DEFER word.

-- Structure of CREATE DOES> words.

Example:   : const create , does> @ ;

FRTSEG:

| jump docol | const1 | 0000 | 0000 | call dodoes | const2 |
  xt of const           fgt    link   doconst

The value in the fgt field is filled by "xt IS-FORGET CONST" and is zero by
default. When CONST is executed the value is placed in the ^forget field of
the word created by CONST The value in the link field is filled by pointers
to the dea of the METHODS defined for CONST.

LSTSEG:

: , | modify | doconst | @ | (exit) |
  const1                 const2

MODIFY modifies the jump docreate that is made by CREATE to jump docon.

        1234 const num

FRTSEG:

: jump doconst | 1234 |
