[I see Garth has posted while I was typing. I'll post this anyway, as there's additional detail.]
In FIG Forth, a definition in the dictionary has a Name Field, Link Field, Code Field and Parameter Field, in that order. The addresses at which those fields are found are the NFA, LFA, CFA and PFA (abbreviated). There are some handy (but perhaps suboptimally named) words available, such as
CFA which takes from the stack the PFA of a definition and in its place leaves the definition's CFA. And
NFA takes a PFA and leaves an NFA. I'm just illustrating how these terms are accepted and well-known as FIG jargon.
In a colon definition, the Code Field (found at the CFA) is the address of DOCOL. The Code Field gets loaded into the Program Counter, which is to say the CPU will jump to DOCOL (and will find machine code there). Other common addresses used as the Code Field are those of DOCON DOVAR and DODOES, among others.
In a primitive's definition, the Code Field (found at the CFA) is the PFA of the primitive (!). The CPU will load the Code Field into its PC, just as with any other definition. And in this case the machine code isn't found "somewhere else" (such as at DOCOL or DOCON); it is found very close by indeed, in the Parameter Field.
(If you're getting cognitive dissonance from that, you can rationalize by considering the code as being a form of parameter. Or, you can consider primitives a special case where no parameter exists, but they decided to stick the code there instead!
)
Quote:
Then how about BFA? Body Field Address. I think the body of a definition is understood by everyone.
Not by me -- or at least not with any clear and unambiguous meaning. Certainly FIG doesn't mention any BFAs. NFA, LFA, CFA and PFA are sufficient.
HTH,
Jeff
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html