+++ /dev/null
-#include "stdlib.h"\r
-#include "ctype.h"\r
-#include "limits.h"\r
-\r
-#include "string.h"\r
-#include "math.h"\r
-#include "float.h"\r
-#include "unistd.h"\r
-#include "fcntl.h"\r
-\r
-\r
-#include "eic.h"\r
-\r
-\r
-#include "xalloc.h"\r
-#include "assert.h"\r
-#include "signal.h"\r
-\r
-#include "sys/types.h"\r
-#include "unistd.h"\r
-\r
-#define getptrarg(x,y) y = arg(x,getargs(),ptr_t)\r
-\r
-#define _READ 0x1 /* file open for reading */\r
-#define _WRITE 0x2 /* file open for writing */\r
-#define _UNBUF 0x4 /* file is unbuffered */\r
-#define _LNBUF 0x8 /* file is line buffered */\r
-#define _FLBUF 0x10 /* file is fully buffered */\r
-#define _UPDATE 0x20 /* file opened for updating */\r
-#define _EOF 0x40 /* end of file has occured */\r
-#define _ERR 0x80 /* error has occured */\r
-\r
-#define _RDP 0x100 /* read has occured since last file-positioning */\r
-#define _WRP 0x200 /* write has occured since last file-positioning */\r
-#define _EXTBUF 0x400 /* external buffer assigned to file */\r
-\r
-#define _UNFIL 0x800 /* file buffer not freed on close */\r
-#define EOF (-1) /* end of file indicator */\r
-\r
-\r
-char *ppcgets(char *str);\r
-void puts(char *str);\r
-void outbyte(int ch);\r
-int inbyte(void);\r
-int getchq(void);\r
-void byteout(unsigned char val, unsigned long addr);\r
-int bytein(unsigned long addr);\r
-\r
-\r
-extern char *startstr;\r
-extern int _stsptr,persist;\r
-\r
-val_t eic_gets(void)\r
-{\r
- val_t v;\r
- getptrarg(0,v.p);\r
- v.p.p = ppcgets(v.p.p);\r
- return v;\r
-} \r
-\r
-val_t eic_puts(void)\r
-{\r
- val_t v;\r
- arg_list ap = getargs();\r
- puts(arg(0,ap,ptr_t).p);\r
- return(v); \r
-}\r
-\r
-val_t eic_putch(void)\r
-{\r
- val_t v;\r
- arg_list ap = getargs();\r
- outbyte(arg(0,ap,int));\r
- v.ival=0;\r
- return v;\r
-}\r
-val_t eic_getch(void)\r
-{\r
- val_t v;\r
- v.ival = inbyte();\r
- return v;\r
-}\r
-\r
-val_t eic_getchq(void)\r
-{\r
- val_t v;\r
- v.ival = getchq();\r
- return v;\r
-}\r
-\r
-val_t eic_out(void)\r
-{\r
- val_t v;\r
- arg_list ap = getargs();\r
- byteout(arg(0,ap,int),arg(1,ap,int));\r
- return v;\r
-}\r
-\r
-val_t eic_in(void)\r
-{\r
- val_t v;\r
- v.ival = bytein(nextarg(getargs(),int));\r
- return v;\r
-}\r
-\r
-val_t eic_load(void)\r
-{\r
- val_t v;\r
- getptrarg(0,v.p);\r
- _stsptr=0;\r
- persist=0;\r
- startstr=v.p.p;\r
- return v;\r
-}\r
-\r
-\r
-int charin_(char **buf)\r
-{\r
- int ch;\r
- ch = **buf;\r
- *buf += 1;\r
- if(!ch)\r
- ch = EOF;\r
- return ch;\r
-}\r
-\r
-int charback_(int ch, char **buf)\r
-{\r
- *buf -= 1;\r
- return ch;\r
-}\r
-\r
-int charout_(int c, char **buf)\r
-{\r
- char *s;\r
- s = *buf;\r
- *s++ = c;\r
- *s = 0;\r
- *buf = s;\r
- return 1;\r
-}\r
-\r