-WORD: DOES>
------------
+// compile.asm: WORD p_does,'DOES>',fasm,IMMEDIATE
+
anchor:p_does[]
-----
-compile.asm: WORD p_does,'DOES>',fasm,IMMEDIATE
-----
+=== WORD: DOES>
+
+....
Data stack: ( -- )
+....
"DOES>" is a function that in execution mode does nothing but in
compilation mode it changes the execution semantics assignments for
-the most recent word to use the "dodoes" sematics with adjustment
+the most recent word to use the +dodoes+ sematics with adjustment
offset to the current heap address. I.e., the word being defined will
have its execution start at whatever comes after "DOES>".
-.Execution semantics expressed in RRQFORTH
====
+.Defintion concept for DOES>
+****
: DOES> IMMEDIATE
STATE @ != IF ( only for compilation mode )
CURRENT-WORDLIST @ @ TFA>CFA ( cfa of current word )
doDOES OVER ! ( set up doer )
HERE @ OVER 8 + - SWAP 8 - ! ( set up offset
-THEN
+ THEN
;
+****
====
+See also
+<<p_put,!>>,
+<<p_unequal,!=>>,
+<<p_plus,+>>,
+<<p_minus,->>,
+<<p_semicolon,;>>,
+<<p_get,@>>,
+<<p_current_wordlist,CURRENT-WORDLIST>>,
+<<p_here,HERE>>,
+<<p_if,IF>>,
+<<p_immediate,IMMEDIATE>>,
+<<p_over,OVER>>,
+<<p_state,STATE>>,
+<<p_swap,SWAP>>,
+<<p_tfa2cfa,TFA>CFA>>,
+<<p_then,THEN>>,
+<<p_dodoes,doDOES>>,
+as well as <<p_execute,EXECUTE>>
+about the range of "doer" assignments and their meanings.
+