diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /systems/knuth/local/h00vars.h |
Initial commit
Diffstat (limited to 'systems/knuth/local/h00vars.h')
-rw-r--r-- | systems/knuth/local/h00vars.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/systems/knuth/local/h00vars.h b/systems/knuth/local/h00vars.h new file mode 100644 index 0000000000..288205b459 --- /dev/null +++ b/systems/knuth/local/h00vars.h @@ -0,0 +1,143 @@ +/* Header file for C programs that supplement the Pascal code */ +/* Copyright (c) 1979 Regents of the University of California */ + +/* sccsid[] = "@(#)h00vars.h 1.11 5/8/84"; */ +/* THIS VERSION COMES BACK FROM SUN AND ALLEGEDLY MATCHES OUR CURRENT + COMPILER 8/4/84 */ + +#include <stdio.h> +/* #include "whoami.h" --- no, don't bother; it's empty --- don (8/7/89) */ + +#define PXPFILE "pmon.out" +#define BITSPERBYTE 8 +#define BITSPERLONG (BITSPERBYTE * sizeof(long)) +#define LG2BITSBYTE 03 +#define MSKBITSBYTE 07 +#define LG2BITSLONG 05 +#define MSKBITSLONG 037 +#define HZ 60 +#define MAXLVL 20 +#define MAXERRS 75 +#define NAMSIZ 76 +#define MAXFILES 32 +#define PREDEF 2 +#ifdef ADDR32 +#define STDLVL ((struct iorec *)(0x7ffffff1)) +#define GLVL ((struct iorec *)(0x7ffffff0)) +#endif ADDR32 +#ifdef ADDR16 +#define STDLVL ((struct iorec *)(0xfff1)) +#define GLVL ((struct iorec *)(0xfff0)) +#endif ADDR16 +#define FILNIL ((struct iorec *)(0)) +#define INPUT ((struct iorec *)(&input)) +#define OUTPUT ((struct iorec *)(&output)) +#define ERR ((struct iorec *)(&_err)) +typedef enum {FALSE, TRUE} bool; +#define MAXINT 2147483647 +#define MININT -2147483648 + + +/* + * runtime display structure + */ +struct display { + char *ap; + char *fp; +}; + +/* + * formal routine structure + */ +struct formalrtn { + long (*fentryaddr)(); /* formal entry point */ + long fbn; /* block number of function */ + struct display fdisp[ MAXLVL ]; /* saved at first passing */ +}; + +/* + * program variables + */ +extern struct display _disply[MAXLVL];/* runtime display */ +extern int _argc; /* number of passed args */ +extern char **_argv; /* values of passed args */ +extern long _stlim; /* statement limit */ +extern long _stcnt; /* statement count */ +extern long _seed; /* random number seed */ +extern char *_maxptr; /* maximum valid pointer */ +extern char *_minptr; /* minimum valid pointer */ +extern long _pcpcount[]; /* pxp buffer */ + +/* + * file structures + */ +struct iorechd { + char *fileptr; /* ptr to file window */ + long lcount; /* number of lines printed */ + long llimit; /* maximum number of text lines */ + FILE *fbuf; /* FILE ptr */ + struct iorec *fchain; /* chain to next file */ + struct iorec *flev; /* ptr to associated file variable */ + char *pfname; /* ptr to name of file */ + short funit; /* file status flags */ + unsigned short fblk; /* index into active file table */ + long fsize; /* size of elements in the file */ + char fname[NAMSIZ]; /* name of associated UNIX file */ +}; + +struct iorec { + char *fileptr; /* ptr to file window */ + long lcount; /* number of lines printed */ + long llimit; /* maximum number of text lines */ + FILE *fbuf; /* FILE ptr */ + struct iorec *fchain; /* chain to next file */ + struct iorec *flev; /* ptr to associated file variable */ + char *pfname; /* ptr to name of file */ + short funit; /* file status flags */ + unsigned short fblk; /* index into active file table */ + long fsize; /* size of elements in the file */ + char fname[NAMSIZ]; /* name of associated UNIX file */ + char buf[BUFSIZ]; /* I/O buffer */ + char window[1]; /* file window element */ +}; + +/* + * unit flags + */ +#define SPEOLN 0x100 /* 1 => pseudo EOLN char read at EOF */ +#define FDEF 0x080 /* 1 => reserved file name */ +#define FTEXT 0x040 /* 1 => text file, process EOLN */ +#define FWRITE 0x020 /* 1 => open for writing */ +#define FREAD 0x010 /* 1 => open for reading */ +#define TEMP 0x008 /* 1 => temporary file */ +#define SYNC 0x004 /* 1 => window is out of sync */ +#define EOLN 0x002 /* 1 => at end of line */ +#define EOFF 0x001 /* 1 => at end of file */ + +/* + * file routines + */ +extern struct iorec *GETNAME(); +extern char *MKTEMP(); +extern char *PALLOC(); + +/* + * file record variables + */ +extern struct iorechd _fchain; /* head of active file chain */ +extern struct iorec *_actfile[]; /* table of active files */ +extern long _filefre; /* last used entry in _actfile */ + +/* + * standard files + */ +extern struct iorechd input; +extern struct iorechd output; +extern struct iorechd _err; + +/* + * seek pointer struct for TELL, SEEK extensions + */ +struct seekptr { + long cnt; +}; |