--- gforth/engine/engine.c 2001/02/27 21:17:11 1.28 +++ gforth/engine/engine.c 2001/12/24 14:09:08 1.34 @@ -20,6 +20,7 @@ */ #include "config.h" +#include "forth.h" #include #include #include @@ -27,7 +28,6 @@ #include #include #include -#include "forth.h" #include "io.h" #include "threaded.h" #ifndef STANDALONE @@ -196,6 +196,7 @@ DCell timeval2us(struct timeval *tvp) #ifdef HAS_FILE static char* fileattr[6]={"rb","rb","r+b","r+b","wb","wb"}; +static char* pfileattr[6]={"r","r","r+","r+","w","w"}; #ifndef O_BINARY #define O_BINARY 0 @@ -244,6 +245,8 @@ static int ufileattr[6]= { #define vm_longname2Cell(x) ((Cell)(x)) #define vm_r2Float(x) (x) +#define vm_Cell2Cell(x) (x) + /* if machine.h has not defined explicit registers, define them as implicit */ #ifndef IPREG #define IPREG @@ -306,7 +309,23 @@ Xt *ip; Cell *rp; #endif -Label *engine(Xt *ip0, Cell *sp0, Cell *rp0, Float *fp0, Address lp0) +Xt *primtable(Label symbols[], Cell size) +{ +#ifdef DIRECT_THREADED + return symbols; +#else /* !defined(DIRECT_THREADED) */ + Xt *xts = (Xt *)malloc(size*sizeof(Xt)); + Cell i; + + for (i=0; i