|
|
1.1 ! root 1: # ! 2: /* op codes */ ! 3: ! 4: #define OK 128 ! 5: #define DEFINE 129 ! 6: #define REDEFINE 130 ! 7: #define DELETE 131 ! 8: #define EOM 133 ! 9: #define XMT 135 ! 10: #define POP 137 ! 11: #define CDIR 138 ! 12: #define CMODE 139 ! 13: #define OPEN 140 ! 14: #define CLOSE 141 ! 15: #define SEEK 142 ! 16: #define READ 143 ! 17: #define WRITE 144 ! 18: #define TRUNCATE 145 ! 19: #define LOGIN 146 ! 20: #define QUIT 147 ! 21: #define LIST 148 ! 22: #define STATUS 149 ! 23: #define TIME 150 ! 24: #define UNIQUE 151 ! 25: #define APPEND 152 ! 26: #define ASSIGN 154 ! 27: #define FCREATE 155 ! 28: #define IF 156 ! 29: #define FI 157 ! 30: #define SKIP 158 ! 31: #define DCREATE 159 ! 32: #define UNLESS 161 ! 33: ! 34: # define OPNUM 34 /* number of legal op codes */ ! 35: ! 36: ! 37: struct dentry{ ! 38: char d_val; /*ms byte of value*/ ! 39: char d_type; /*type see below*/ ! 40: int d_val1; /*ls word of value*/ ! 41: char d_name[12]; /*file name filled with zero*/ ! 42: } ! 43: entry; ! 44: ! 45: #define NTYPE 1 /*name - variable length ending in zero*/ ! 46: #define WTYPE 2 /*wstore - 1 word*/ ! 47: #define ETYPE 4 /*error - 2 words*/ ! 48: #define RTYPE 5 /*file reference - 1 word*/ ! 49: #define XTYPE 6 /*default argument*/ ! 50: #define STYPE 7 /*status 69 bytes*/ ! 51: #define DTYPE 8 /*directory ID - 2 words*/ ! 52: #define FTYPE 9 /*file ID - 2 words*/ ! 53: #define IITYPE 10 /*integer - 2 words*/ ! 54: #define ITYPE 11 /*integer - 1 word*/ ! 55: #define LTYPE 14 /*label - 1 char*/ ! 56: #define ATYPE 15 /*account - 2 words*/ ! 57: #define MAXTYPE 16 ! 58: ! 59: ! 60: #define ACCDEV 03000 /*device code for accounts*/ ! 61: ! 62: ! 63: /* error codes */ ! 64: ! 65: #define ESIG 100 /*illegal signal code*/ ! 66: #define EEOM 101 /*fell off end of message*/ ! 67: #define EOP 102 /*illegal op code*/ ! 68: #define EARGT 103 /*illegal arg type*/ ! 69: #define EWADDR 104 /*illegal w-store addr*/ ! 70: #define EEXIST 105 /*already exists*/ ! 71: #define EUNDEF 106 /*does not exist*/ ! 72: #define EFREF 107 /*fref on non-open file*/ ! 73: #define EPWD 108 /*unknown user*/ ! 74: #define EFAIL 109 /*failed for unspecified reason*/ ! 75: #define EISACC 110 /*illegal use of account*/ ! 76: #define EUNAV 111 /*file store not available*/ ! 77: #define ELOG 112 /*user not logged in*/ ! 78: ! 79: ! 80: struct sentry{ ! 81: int s_val; ! 82: int s_val1; ! 83: int s_type; ! 84: } ! 85: stack[32]; ! 86: ! 87: #define VARNO 32 /*number of items in wstore*/ ! 88: struct sentry wstore[VARNO]; ! 89: ! 90: ! 91: struct link{ ! 92: int *l_link; /*label for return from macro*/ ! 93: char *l_mp; /*current position in message*/ ! 94: char *l_ms; /*start position of message*/ ! 95: } ! 96: mlink[4]; ! 97: ! 98: struct utmp{ ! 99: char u_name[8]; ! 100: char u_tty; ! 101: char u_ifill; ! 102: int u_time[2]; ! 103: int u_ufill; ! 104: } ! 105: utmp; ! 106: ! 107: struct { ! 108: int word[1]; ! 109: }; ! 110: struct { ! 111: char byte[1]; ! 112: }; ! 113: ! 114: #define OPENS 15 ! 115: #define NSIZ 128 ! 116: ! 117: int buf[256]; ! 118: char nbuf[NSIZ]; ! 119: char mbuf[514]; ! 120: char uniqb[128]; ! 121: char *up; ! 122: int statbuf[50]; ! 123: struct { ! 124: char even, odd; ! 125: }; ! 126: char resp[100]; ! 127: char openf[OPENS]; ! 128: char argspec[OPNUM][3]; ! 129: char nodef[MAXTYPE]; ! 130: char unixid[128]; ! 131: ! 132: int fn; /*tiu file*/ ! 133: int chan; /*tiu channel number*/ ! 134: char *rp; /*current position in response*/ ! 135: char *mp; /*current position in message*/ ! 136: char *mlast; /*end of message*/ ! 137: struct sentry *sp; /*top of stack*/ ! 138: struct sentry *asp; /*misc. stack pointer*/ ! 139: struct link *lp; /*top of link list*/ ! 140: int ig; /*label for SKIP, -1 for IF*/ ! 141: int sum; /*sumcheck of last file transfer*/ ! 142: int length; /*length of last file transfer*/ ! 143: int login; /*set when logged in*/ ! 144: int msiz; /*maximum size of message to user*/ ! 145: int panic; /*nz after xmt timeout*/ ! 146: int trace; /*non-zero if trace print*/ ! 147: struct { /*info returned from wait()*/ ! 148: char w_pno; /*process number*/ ! 149: char w_stat; /*return status*/ ! 150: } ! 151: pstat; ! 152: int uid; ! 153: char *tiu; ! 154: struct{ ! 155: char lobyte; ! 156: char hibyte; ! 157: }; ! 158: #define DELAY 60 ! 159: #define ROOTUSR 0 ! 160: #define EGOOD 0 ! 161: #define EBAD 1 ! 162: int status; ! 163: struct ustat{ ! 164: int mode; ! 165: int type; ! 166: int ftype; ! 167: int uid; ! 168: int gid; ! 169: long size; ! 170: long modtime; ! 171: long acctime; ! 172: }us; ! 173: /* File Access permissions */ ! 174: #define R 04 ! 175: #define W 02 ! 176: #define X 01 ! 177: /* Types of files */ ! 178: #define FFILE 0 ! 179: #define CHR 1 ! 180: #define DIR 2 ! 181: #define BLK 3 ! 182: #define REC 4 ! 183: char *netpwd;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.