TOPS-10 Interchange Backup Tapes
utzoo!decvax!ucbvax!unix-wizards
utzoo!decvax!ucbvax!unix-wizards
Tue Oct 6 16:28:27 AEST 1981
>From sdcarl!rusty at Berkeley Tue Oct 6 16:17:08 1981
This was written by Julius Smith last summer
to read a DUMP format tape written on Stanford's
Sail system. It is a quick-and-dirty but worked.
# include <stdio.h>
# define NIN 512*5
# define NOUT 512*5
char mt[] = "/dev/nrmt0";
main(argc, argv)
char **argv;
{
char t[NOUT],c[NIN];
register char *pt, *pc;
register int fid;
register int i, j;
if ((fid = open(mt, 0)) == -1) {
perror(mt);
exit(1);
}
while (read(fid, &c[0], NIN) > 0) {
for(j = 0; j < 512; j++) {
pt = &t[5*j];
pc = &c[5*j];
# ifdef DEBUG
for (i = 0; i < 5; i++)
printf(" byte %d is %o\n", i, *(pc+i));
# endif DEBUG
for (i = 0; i < 5; i++) {
# ifdef DEBUG
printf("byte %d is %o", i, *pc);
# endif DEBUG
*pt = (*pc >> (i+1)) & (0177 >> i);
# ifdef DEBUG
printf(" -> %o\n", *pt);
# endif DEBUG
*pt++ |= (*(pc++ -1) << (7-i)) & 0177;
}
*(pt-1) |= ((*(pc-1) >> 1) & 07);
}
*pt = '\n';
printf("%s", t);
}
}
More information about the Comp.unix.wizards
mailing list