/*->h.xext */


typedef int (*extfn)(int fp);    /* external function */

#define PVOID      0
#define PINT       1
#define PSTR       2


extern void addexternfn(extfn exf,char * name,char * params,int ftype);

extern void xstart(void);

extern void xremfile(void);
extern int  xaddfile(char * filename,int mode,int exec);


extern int  * stack;
extern char * stringptr(int s);
extern int    stringlen(int s);

extern int  xexec(char * name,char * args,int * argn,int * r0);
extern int  xexec2(char * name,int * argn,int * argm,int * r0);
extern int  xexec3(char * name,char * args,int * r0);
extern int  xexec4(char * name,int * arg0,int * arg1,int * arg2,int * arg3);
extern int  xexec5(char * name,char * arg1,char * arg2,int * r0);


extern void assignstring(int s,char * p);
extern void assignstringlen(int s,char * p,int len);
extern void appendstring(int s,char * p);

extern int  zruns;
extern int  zlevel;
extern int  scriptstop(void);


#define ZDIVZERO 0
#define ZFILEMAX 1
#define ZUSER    2
#define ZEXIT    3
#define ZMEM     4

#define MAXRUN   5

extern void   zraise(int errno, ...);


typedef void (*abendhandlerfn)(void);

extern void addabendhandler(abendhandlerfn xabend);



