version 1.109, 2002/12/27 16:22:03
|
version 1.111, 2002/12/30 22:41:07
|
Line 818 lshift ( u1 n -- u2 ) core l_shift
|
Line 818 lshift ( u1 n -- u2 ) core l_shift
|
: |
: |
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 |
Line 939 f = FLAG(u1-u2 < u3-u2);
|
Line 941 f = FLAG(u1-u2 < u3-u2);
|
: |
: |
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; |
|
|
Line 1091 w = sp[u+1];
|
Line 1091 w = sp[u+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; |
Line 1212 c_addr2 = c_addr1+1;
|
Line 1214 c_addr2 = c_addr1+1;
|
: |
: |
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 && |
Line 2023 df_addr = (DFloat *)((((Cell)c_addr)+(si
|
Line 2027 df_addr = (DFloat *)((((Cell)c_addr)+(si
|
\+ |
\+ |
\+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); |
|
|
Line 2094 r = fp[u+1]; /* +1, because update of fp
|
Line 2100 r = fp[u+1]; /* +1, because update of fp
|
|
|
\+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', |
Line 2529 SUPER_CONTINUE;
|
Line 2537 SUPER_CONTINUE;
|
acondbranch(a?branch,f --,f83 aquestion_branch, |
acondbranch(a?branch,f --,f83 aquestion_branch, |
,if (f==0) { |
,if (f==0) { |
,: |
,: |
0= dup \ !f !f \ !! still uses relative addresses |
0= dup 0= \ !f f |
r> dup @ \ !f !f IP branchoffset |
r> tuck cell+ \ !f branchoffset f IP+ |
rot and + \ !f IP|IP+branchoffset |
and -rot @ and or \ f&IP+|!f&branch |
swap 0= cell and + \ IP'' |
|
>r ;) |
>r ;) |
|
|
\ we don't need an lp_plus_store version of the ?dup-stuff, because it |
\ we don't need an lp_plus_store version of the ?dup-stuff, because it |
Line 2783 a_prim = decompile_code(a_code);
|
Line 2790 a_prim = decompile_code(a_code);
|
|
|
include(peeprules.vmg) |
include(peeprules.vmg) |
|
|
|
\g end |
|
|
\+ |
\+ |