version 1.8, 1994/06/01 16:40:01
|
version 1.11, 1994/07/13 19:21:02
|
Line 14
|
Line 14
|
#include <stdlib.h> |
#include <stdlib.h> |
#include <time.h> |
#include <time.h> |
#include <sys/time.h> |
#include <sys/time.h> |
#include <unistd.h> |
|
#include "forth.h" |
#include "forth.h" |
#include "io.h" |
#include "io.h" |
|
|
Line 81 int emitcounter;
|
Line 80 int emitcounter;
|
|
|
static char* fileattr[6]={"r","rb","r+","r+b","w+","w+b"}; |
static char* fileattr[6]={"r","rb","r+","r+b","w+","w+b"}; |
|
|
|
static Address up0=NULL; |
|
|
Label *engine(Xt *ip, Cell *sp, Cell *rp, Float *fp, Address lp) |
Label *engine(Xt *ip, Cell *sp, Cell *rp, Float *fp, Address lp) |
/* executes code at ip, if ip!=NULL |
/* executes code at ip, if ip!=NULL |
returns array of machine code labels (for use in a loader), if ip==NULL |
returns array of machine code labels (for use in a loader), if ip==NULL |
*/ |
*/ |
{ |
{ |
Xt cfa; |
Xt cfa; |
Address up=NULL; |
Address up=up0; |
static Label symbols[]= { |
static Label symbols[]= { |
&&docol, |
&&docol, |
&&docon, |
&&docon, |
Line 105 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
Line 106 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
|
|
if (ip == NULL) |
if (ip == NULL) |
return symbols; |
return symbols; |
|
|
IF_TOS(TOS = sp[0]); |
IF_TOS(TOS = sp[0]); |
IF_FTOS(FTOS = fp[0]); |
IF_FTOS(FTOS = fp[0]); |
prep_terminal(); |
prep_terminal(); |