standardized call-out blocks
[rrq/rrqforth.git] / adoc / p_does.adoc
index 6517157c5b91501c46b67bd937056767d12dc751..b31b42b274f0f803ef9e8ec7c7a33fe12769d85b 100644 (file)
@@ -1,26 +1,49 @@
-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.
+