|
|
researchv10 Norman
#
/* op codes */
#define OK 128
#define DEFINE 129
#define REDEFINE 130
#define DELETE 131
#define EOM 133
#define XMT 135
#define POP 137
#define CDIR 138
#define CMODE 139
#define OPEN 140
#define CLOSE 141
#define SEEK 142
#define READ 143
#define WRITE 144
#define TRUNCATE 145
#define LOGIN 146
#define QUIT 147
#define LIST 148
#define STATUS 149
#define TIME 150
#define UNIQUE 151
#define APPEND 152
#define ASSIGN 154
#define FCREATE 155
#define IF 156
#define FI 157
#define SKIP 158
#define DCREATE 159
#define UNLESS 161
# define OPNUM 34 /* number of legal op codes */
struct dentry{
char d_val; /*ms byte of value*/
char d_type; /*type see below*/
int d_val1; /*ls word of value*/
char d_name[12]; /*file name filled with zero*/
}
entry;
#define NTYPE 1 /*name - variable length ending in zero*/
#define WTYPE 2 /*wstore - 1 word*/
#define ETYPE 4 /*error - 2 words*/
#define RTYPE 5 /*file reference - 1 word*/
#define XTYPE 6 /*default argument*/
#define STYPE 7 /*status 69 bytes*/
#define DTYPE 8 /*directory ID - 2 words*/
#define FTYPE 9 /*file ID - 2 words*/
#define IITYPE 10 /*integer - 2 words*/
#define ITYPE 11 /*integer - 1 word*/
#define LTYPE 14 /*label - 1 char*/
#define ATYPE 15 /*account - 2 words*/
#define MAXTYPE 16
#define ACCDEV 03000 /*device code for accounts*/
/* error codes */
#define ESIG 100 /*illegal signal code*/
#define EEOM 101 /*fell off end of message*/
#define EOP 102 /*illegal op code*/
#define EARGT 103 /*illegal arg type*/
#define EWADDR 104 /*illegal w-store addr*/
#define EEXIST 105 /*already exists*/
#define EUNDEF 106 /*does not exist*/
#define EFREF 107 /*fref on non-open file*/
#define EPWD 108 /*unknown user*/
#define EFAIL 109 /*failed for unspecified reason*/
#define EISACC 110 /*illegal use of account*/
#define EUNAV 111 /*file store not available*/
#define ELOG 112 /*user not logged in*/
struct sentry{
int s_val;
int s_val1;
int s_type;
}
stack[32];
#define VARNO 32 /*number of items in wstore*/
struct sentry wstore[VARNO];
struct link{
int *l_link; /*label for return from macro*/
char *l_mp; /*current position in message*/
char *l_ms; /*start position of message*/
}
mlink[4];
struct utmp{
char u_name[8];
char u_tty;
char u_ifill;
int u_time[2];
int u_ufill;
}
utmp;
struct {
int word[1];
};
struct {
char byte[1];
};
#define OPENS 15
#define NSIZ 128
int buf[256];
char nbuf[NSIZ];
char mbuf[514];
char uniqb[128];
char *up;
int statbuf[50];
struct {
char even, odd;
};
char resp[100];
char openf[OPENS];
char argspec[OPNUM][3];
char nodef[MAXTYPE];
char unixid[128];
int fn; /*tiu file*/
int chan; /*tiu channel number*/
char *rp; /*current position in response*/
char *mp; /*current position in message*/
char *mlast; /*end of message*/
struct sentry *sp; /*top of stack*/
struct sentry *asp; /*misc. stack pointer*/
struct link *lp; /*top of link list*/
int ig; /*label for SKIP, -1 for IF*/
int sum; /*sumcheck of last file transfer*/
int length; /*length of last file transfer*/
int login; /*set when logged in*/
int msiz; /*maximum size of message to user*/
int panic; /*nz after xmt timeout*/
int trace; /*non-zero if trace print*/
struct { /*info returned from wait()*/
char w_pno; /*process number*/
char w_stat; /*return status*/
}
pstat;
int uid;
char *tiu;
struct{
char lobyte;
char hibyte;
};
#define DELAY 60
#define ROOTUSR 0
#define EGOOD 0
#define EBAD 1
int status;
struct ustat{
int mode;
int type;
int ftype;
int uid;
int gid;
long size;
long modtime;
long acctime;
}us;
/* File Access permissions */
#define R 04
#define W 02
#define X 01
/* Types of files */
#define FFILE 0
#define CHR 1
#define DIR 2
#define BLK 3
#define REC 4
char *netpwd;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.