blob: 288205b459307fe256d133bf523ec1b20eb0087c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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;
};
|