version 1.138, 2003/08/18 19:29:14
|
version 1.141, 2003/08/22 08:08:45
|
Line 141 undefine(`index')
|
Line 141 undefine(`index')
|
undefine(`shift') |
undefine(`shift') |
undefine(`symbols') |
undefine(`symbols') |
|
|
|
\F 0 [if] |
|
|
|
\ run-time routines for non-primitives. They are defined as |
|
\ primitives, because that simplifies things. |
|
|
|
(docol) ( -- R:a_retaddr ) gforth-internal paren_docol |
|
""run-time routine for colon definitions"" |
|
a_retaddr = (Cell *)IP; |
|
SET_IP((Xt *)PFA(CFA)); |
|
|
|
(docon) ( -- w ) gforth-internal paren_docon |
|
""run-time routine for constants"" |
|
w = *(Cell *)PFA(CFA); |
|
|
|
(dovar) ( -- a_body ) gforth-internal paren_dovar |
|
""run-time routine for variables and CREATEd words"" |
|
a_body = PFA(CFA); |
|
|
|
(douser) ( -- a_user ) gforth-internal paren_douser |
|
""run-time routine for constants"" |
|
a_user = (Cell *)(up+*(Cell *)PFA(CFA)); |
|
|
|
(dodefer) ( -- ) gforth-internal paren_dodefer |
|
""run-time routine for deferred words"" |
|
ip=IP; /* undo any ip updating that may have been performed by NEXT_P0 */ |
|
SUPER_END; /* !! probably unnecessary and may lead to measurement errors */ |
|
EXEC(*(Xt *)PFA(CFA)); |
|
|
|
(dofield) ( n1 -- n2 ) gforth-internal paren_field |
|
""run-time routine for fields"" |
|
n2 = n1 + *(Cell *)PFA(CFA); |
|
|
|
(dodoes) ( -- a_body R:a_retaddr ) gforth-internal paren_dodoes |
|
""run-time routine for @code{does>}-defined words"" |
|
a_retaddr = (Cell *)IP; |
|
a_body = PFA(CFA); |
|
SET_IP(DOES_CODE1(CFA)); |
|
|
|
(does-handler) ( -- ) gforth-internal paren_does_handler |
|
""just a slot to have an encoding for the DOESJUMP, |
|
which is no longer used anyway (!! eliminate this)"" |
|
|
|
\F [endif] |
|
|
\g control |
\g control |
|
|
noop ( -- ) gforth |
noop ( -- ) gforth |