| : |
: |
| 0 ?DO 2* LOOP ; |
0 ?DO 2* LOOP ; |
| |
|
| |
\g compare |
| |
|
| \ comparisons(prefix, args, prefix, arg1, arg2, wordsets...) |
\ comparisons(prefix, args, prefix, arg1, arg2, wordsets...) |
| define(comparisons, |
define(comparisons, |
| $1= ( $2 -- f ) $6 $3equals |
$1= ( $2 -- f ) $6 $3equals |
| : |
: |
| over - >r - r> u< ; |
over - >r - r> u< ; |
| |
|
| \g internal |
|
| |
|
| sp@ ( -- a_addr ) gforth sp_fetch |
sp@ ( -- a_addr ) gforth sp_fetch |
| a_addr = sp+1; |
a_addr = sp+1; |
| |
|
| |
|
| \ toggle is high-level: 0.11/0.42% |
\ toggle is high-level: 0.11/0.42% |
| |
|
| |
\g memory |
| |
|
| @ ( a_addr -- w ) core fetch |
@ ( a_addr -- w ) core fetch |
| ""@i{w} is the cell stored at @i{a_addr}."" |
""@i{w} is the cell stored at @i{a_addr}."" |
| w = *a_addr; |
w = *a_addr; |
| : |
: |
| dup 1+ swap c@ ; |
dup 1+ swap c@ ; |
| |
|
| |
\g compiler |
| |
|
| (f83find) ( c_addr u f83name1 -- f83name2 ) new paren_f83find |
(f83find) ( c_addr u f83name1 -- f83name2 ) new paren_f83find |
| for (; f83name1 != NULL; f83name1 = (struct F83Name *)(f83name1->next)) |
for (; f83name1 != NULL; f83name1 = (struct F83Name *)(f83name1->next)) |
| if ((UCell)F83NAME_COUNT(f83name1)==u && |
if ((UCell)F83NAME_COUNT(f83name1)==u && |
| \+ |
\+ |
| \+glocals |
\+glocals |
| |
|
| |
\g locals |
| |
|
| @local# ( #noffset -- w ) gforth fetch_local_number |
@local# ( #noffset -- w ) gforth fetch_local_number |
| w = *(Cell *)(lp+noffset); |
w = *(Cell *)(lp+noffset); |
| |
|
| |
|
| \+OS |
\+OS |
| |
|
| |
\g syslib |
| |
|
| define(`uploop', |
define(`uploop', |
| `pushdef(`$1', `$2')_uploop(`$1', `$2', `$3', `$4', `$5')`'popdef(`$1')') |
`pushdef(`$1', `$2')_uploop(`$1', `$2', `$3', `$4', `$5')`'popdef(`$1')') |
| define(`_uploop', |
define(`_uploop', |
| |
|
| include(peeprules.vmg) |
include(peeprules.vmg) |
| |
|
| |
\g end |
| |
|
| \+ |
\+ |