text: #define MAXSIZE	500		/* max size in blocks of dumped files */
  #define NILIST	100		/* max files extracted at once */
  #define BFACT	20		/* tape blocking factor */
  
  int tden 1600;			/* tape density */
  int tlen 2200;			/* tape length (feet) */
  
  char *dump_cmd[] = {		/* default args for dump */
  	"dump",
  	"i",
  	"/dev/rp0",
  	0
  };
  
  char *rest_cmd[] = {		/* defaults for restor */
  	"restor",
  	"t",
  	0
  };
  
  char	*tape	"/dev/rmt1";
  char	dfile[]	"/dev/dtab";
  char	tfile[]	"/tmp/dtmp";
  char	name[100];
  
  #define NDTAB	10
  struct {
  	char	dt_name[16];
  	time_t	dt_date;
  } dtab[NDTAB];
  
  struct thdr {
  	ino_t	isize;
  	ino_t	maxi;
  	daddr_t	fsize;
  	time_t	cdate;
  	time_t	ddate;
  	long	tsize;
  	short	nflg;
  };
  
  struct fhdr {
  	short	xmagic;
  	ino_t	xino;
  	short	xmode;
  	short	xnlink;
  	short	xuid;
  	short	xgid;
  	daddr_t	xaddr;
  	off_t	xsize;
  	time_t	xatime;
  	time_t	xmtime;
  	time_t	xctime;
  };
  #define	FMAGIC	012345
  #define	SMAGIC	031415
  
  #define DAPTB	127	/* (BSIZE-2*sizeof(short))/sizeof(daddr_t)) */
  
  FILE	*tmpf;
  
  long
  getsize()
  {
  	register c;
  	long j;
  
  	c = getc(tmpf);
  	if(c == EOF)
  		return((long)-1);
  	if(c <= 253)
  		return((long)c);
  	if(c == 255)
  		return((long)-1);
  	j = 0;
  	for(c=0;c<3;c++)
  		j = (j<<8) + (getc(tmpf)&0377);
  	return(j);
  }
  
  putsize(s)
  long	s;
  {
  	if(s <= 253) {
  		putc((char)s, tmpf);
  		return;
  	}
  	putc(254, tmpf);
  	putc((char)(s>>16), tmpf);
  	putc((char)(s>>8), tmpf);
  	putc((char)s, tmpf);
  }
  