# Constants
-defConst("VERSION", 1)
defConst("DOCOL", DOCOL)
defConst("DOCON", DOCON)
defConst("DOVAR", DOVAR)
+
defConst("DICT", DICT)
+
F_IMMED = defConst("F_IMMED", 128)
F_HIDDEN = defConst("F_HIDDEN", 256)
F_LENMASK = defConst("F_LENMASK", 127)
# Compilation
-CREATE = defPrimWord("CREATE", () -> begin
+HEADER = defPrimWord("HEADER", () -> begin
wordLen = popPS()
wordAddr = popPS()
COLON = defWord(":",
[WORD,
- CREATE,
+ HEADER,
LIT, DOCOL, COMMA,
LATEST_CFA, FETCH, HIDDEN,
RBRAC,
( CONSTANTS AND VARIABLES ------------------------------------------------------ )
: CONSTANT
- WORD ( get the name (the name follows CONSTANT) )
- CREATE ( make the dictionary entry )
+ WORD HEADER ( make dictionary entry (the name follows CONSTANT) )
DOCOL , ( append DOCOL (the codeword field of this word) )
['] LIT , ( append the codeword LIT )
, ( append the value on the top of the stack )
: VARIABLE
1 CELLS ALLOT ( allocate 1 cell of memory, push the pointer to this memory )
- WORD CREATE ( make the dictionary entry (the name follows VARIABLE) )
+ WORD HEADER ( make the dictionary entry (the name follows VARIABLE) )
DOCOL , ( append DOCOL (the codeword field of this word) )
['] LIT , ( append the codeword LIT )
, ( append the pointer to the new memory )
: VALUE ( n -- )
- WORD CREATE ( make the dictionary entry (the name follows VALUE) )
+ WORD HEADER ( make the dictionary entry (the name follows VALUE) )
DOCOL , ( append DOCOL )
['] LIT , ( append the codeword LIT )
, ( append the initial value )