version 1.2, 1994/05/05 15:46:44
|
version 1.9, 1994/09/05 17:36:17
|
Line 13 typedef void *Label;
|
Line 13 typedef void *Label;
|
#define DOCON 1 |
#define DOCON 1 |
#define DOVAR 2 |
#define DOVAR 2 |
#define DOUSER 3 |
#define DOUSER 3 |
#define DODOES 4 |
#define DODEFER 4 |
#define DOESJUMP 5 |
#define DODOES 5 |
|
#define DOESJUMP 6 |
|
|
|
/* Some versions of some unices (Linux) have the symbol BIG_ENDIAN defined |
|
in their standard headers. Make sure it's undefined -- Lennart */ |
|
#ifdef BIG_ENDIAN |
|
#undef BIG_ENDIAN |
|
#endif |
|
|
#include "machine.h" |
#include "machine.h" |
|
|
/* Forth data types */ |
/* Forth data types */ |
typedef int Bool; |
typedef int Bool; |
#define FLAG(b) (-(b)) |
#define FLAG(b) (-(b)) |
|
#define FILEIO(error) (FLAG(error) & -37) |
|
#define FILEEXIST(error) (FLAG(error) & -38) |
|
|
#define F_TRUE (FLAG(0==0)) |
#define F_TRUE (FLAG(0==0)) |
#define F_FALSE (FLAG(0!=0)) |
#define F_FALSE (FLAG(0!=0)) |
Line 35 typedef Label Xt;
|
Line 44 typedef Label Xt;
|
typedef Label *Xt; |
typedef Label *Xt; |
#endif |
#endif |
|
|
Label *engine(Xt *ip, Cell *sp, Cell *rp, Float *fp); |
Label *engine(Xt *ip, Cell *sp, Cell *rp, Float *fp, Address lp); |
|
|
#ifndef DIRECT_THREADED |
#ifndef DIRECT_THREADED |
/* i.e. indirect threaded */ |
/* i.e. indirect threaded */ |
Line 62 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
Line 71 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
#endif |
#endif |
|
|
#ifdef DEBUG |
#ifdef DEBUG |
# define NAME(string) printf("%08x: %s\n",(int)ip,string); |
# define NAME(string) printf("%08x: "string"\n",(int)ip); |
#else |
#else |
# define NAME(string) |
# define NAME(string) |
#endif |
#endif |
Line 70 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
Line 79 Label *engine(Xt *ip, Cell *sp, Cell *rp
|
#define CF(const) (-const-2) |
#define CF(const) (-const-2) |
|
|
#define CF_NIL -1 |
#define CF_NIL -1 |
|
|
|
#ifndef CACHE_FLUSH |
|
# define CACHE_FLUSH(addr,size) |
|
#endif |