mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 17:04:19 +00:00
86 lines
1.5 KiB
C
86 lines
1.5 KiB
C
/* 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
|