version 1.209, 2007/03/31 19:43:54
|
version 1.212, 2007/05/09 07:12:59
|
Line 209 goto *next_code;
|
Line 209 goto *next_code;
|
a_retaddr = next_code; |
a_retaddr = next_code; |
a_body = PFA(CFA); |
a_body = PFA(CFA); |
INST_TAIL; |
INST_TAIL; |
|
#ifdef DEBUG |
|
fprintf(stderr, "dodoes to %x, push %x\n", a_retaddr, a_body); |
|
#endif |
goto **(Label *)DOES_CODE1(CFA); |
goto **(Label *)DOES_CODE1(CFA); |
#else /* !defined(NO_IP) */ |
#else /* !defined(NO_IP) */ |
a_retaddr = (Cell *)IP; |
a_retaddr = (Cell *)IP; |
a_body = PFA(CFA); |
a_body = PFA(CFA); |
|
#ifdef DEBUG |
|
fprintf(stderr, "dodoes to %x, push %x\n", a_retaddr, a_body); |
|
#endif |
SET_IP(DOES_CODE1(CFA)); |
SET_IP(DOES_CODE1(CFA)); |
#endif /* !defined(NO_IP) */ |
#endif /* !defined(NO_IP) */ |
|
|
Line 248 SET_IP((Xt *)a_callee);
|
Line 254 SET_IP((Xt *)a_callee);
|
|
|
execute ( xt -- ) core |
execute ( xt -- ) core |
""Perform the semantics represented by the execution token, @i{xt}."" |
""Perform the semantics represented by the execution token, @i{xt}."" |
|
#ifdef DEBUG |
|
fprintf(stderr, "execute %08x\n", xt); |
|
#endif |
#ifndef NO_IP |
#ifndef NO_IP |
ip=IP; |
ip=IP; |
#endif |
#endif |
Line 748 n = n1+n2;
|
Line 757 n = n1+n2;
|
\ lit+ / lit_plus = lit + |
\ lit+ / lit_plus = lit + |
|
|
lit+ ( n1 #n2 -- n ) new lit_plus |
lit+ ( n1 #n2 -- n ) new lit_plus |
|
#ifdef DEBUG |
|
fprintf(stderr, "lit+ %08x\n", n2); |
|
#endif |
n=n1+n2; |
n=n1+n2; |
|
|
\ PFE-0.9.14 has it differently, but the next release will have it as follows |
\ PFE-0.9.14 has it differently, but the next release will have it as follows |
Line 1487 for (; f83name1 != NULL; f83name1 = (str
|
Line 1499 for (; f83name1 != NULL; f83name1 = (str
|
memcasecmp(c_addr, f83name1->name, u)== 0 /* or inline? */) |
memcasecmp(c_addr, f83name1->name, u)== 0 /* or inline? */) |
break; |
break; |
f83name2=f83name1; |
f83name2=f83name1; |
|
#ifdef DEBUG |
|
fprintf(stderr, "F83find "); |
|
fwrite(c_addr, u, 1, stderr); |
|
fprintf(stderr, " found %08x\n", f83name2); |
|
#endif |
: |
: |
BEGIN dup WHILE (find-samelen) dup WHILE |
BEGIN dup WHILE (find-samelen) dup WHILE |
>r 2dup r@ cell+ char+ capscomp 0= |
>r 2dup r@ cell+ char+ capscomp 0= |
Line 1734 nhour =ltime->tm_hour;
|
Line 1751 nhour =ltime->tm_hour;
|
nmin =ltime->tm_min; |
nmin =ltime->tm_min; |
nsec =ltime->tm_sec; |
nsec =ltime->tm_sec; |
|
|
ms ( n -- ) facility-ext |
ms ( u -- ) facility-ext |
""Wait at least @i{n} milli-second."" |
""Wait at least @i{n} milli-second."" |
struct timeval timeout; |
gforth_ms(u); |
timeout.tv_sec=n/1000; |
|
timeout.tv_usec=1000*(n%1000); |
|
(void)select(0,0,0,0,&timeout); |
|
|
|
allocate ( u -- a_addr wior ) memory |
allocate ( u -- a_addr wior ) memory |
""Allocate @i{u} address units of contiguous data space. The initial |
""Allocate @i{u} address units of contiguous data space. The initial |