;;; referring to the doer field of the called word.
macro next {
+ call p_calltrace_DFA
lodsq ; mov rax, [rsi] + add rsi,8
jmp qword [rax] ; goto code of that FORTH word (64 bit jump)
}
;;; ========================================
;;; The DOFORTH lays out a single FORTH call
-macro DOFORTH label {
+macro DOFORTH [label] {
+common
FORTH
+forward
dq label
+common
ENDFORTH
}
end if
dq label - $ - 8
}
+
+;;; ========================================
+;;; The STREAM macro starts an in-core FORTH STREAM area. See WORD
+;;; STREAM for details.
+ macro STREAM endlabel {
+ local datastart
+ dq $+32
+ dq -1
+ dq endlabel - datastart
+ dq 0
+datastart:
+ }