home *** CD-ROM | disk | FTP | other *** search
- /* c-version of tp?.s
- *
- * M. Ferentz
- * August 1976
- *
- * revised July 1977 BTL
- */
-
- #define MDIRENT 496 /* must be zero mod 8 */
- #define DIRSZ sizeof(struct dent)
- #define MAPSIZE 4096
- #define MAPMASK 07777
- #define NAMELEN 32
- #define BSIZE 512
- #define TCSIZ 578
- #define TCDIRS 192
- #define MTSIZ 32767
- #define TPB (BSIZE/sizeof(struct tent))
- #define OK 0100000
- #define BRKINCR 512
-
- #define tapeblk &tpentry[0]
- #define tapeb &tpentry[0]
-
- struct tent { /* Structure of a tape directory block */
- char pathnam[NAMELEN];
- short mode;
- char uid;
- char gid;
- char spare;
- char size0;
- unsigned short size1;
- long time;
- unsigned short tapea; /* tape address */
- short unused[8];
- short cksum;
- } tpentry[TPB];
-
- struct dent { /* in core version of tent with "unused" removed
- * and pathname replaced by pointer to same in a
- * packed area (nameblock).
- */
- char *d_namep;
- int d_mode;
- int d_uid;
- int d_gid;
- long d_size;
- long d_time;
- int d_tapea;
- } dir[MDIRENT];
-
- char map[MAPSIZE];
- char name[NAMELEN];
- char name1[NAMELEN];
- extern char mt[];
- extern char tc[];
- char *tname;
- extern char mheader[];
- extern char theader[];
-
- int narg, rnarg;
- char **parg;
- int wseeka,rseeka;
- int tapsiz;
- int fio;
- short ndirent, ndentb;
- struct dent *edir;
- struct dent *lastd; /* for improvement */
- char *sbrk();
- char *strcpy();
- long lseek();
- int (*command)();
-
- char *nameblk;
- char *top;
- char *nptr;
-
- extern int flags;
- #define flc 0001
- #define fli 0004
- #define flm 0010
- #define flu 0020
- #define flv 0040
- #define flw 0100
- #define fls 0200
-