-;;; Macro WORD starts a FORTH word definition in this code
-;;;
- previous_word = 0 ; Used for chaining the words
-
- IMMEDIATE = 1 ; optional flag (symbol)
-
-macro WORD label, name, doer, flags {
+;;; Macro WORD starts a FORTH word definition in this code.
+;;; The layout of a word is as follows:
+;;; TFA: [8 bytes] pointer to previous word in the word list
+;;; [8 bytes] pointer to the word's CFA
+;;; [8 bytes] a flags field
+;;; [8 bytes] the length of the word's pname
+;;; [varying] the word's pname
+;;; [1 byte] NUL -- making an asciiz of the pname
+;;; ;;[? bytes] 0-7 bytes for address alignment to [disabled]
+;;; [8 bytes] pointer to the word's TFA
+;;; OFF: [8 bytes] the DOES offset for the word
+;;; CFA: [8 bytes] pointer to the word's "doer" code
+;;; DFA: [? bytes] the word's data field
+
+IMMEDIATE = 1 ; optional flag (symbol)
+
+macro WORD label, name, doer, flags, previous, offset {
+ local pname