ts.c and rm.c bugs
utzoo!decvax!pur-ee!pur-phy!mad
utzoo!decvax!pur-ee!pur-phy!mad
Tue Jan 5 11:48:54 AEST 1982
There are a couple of problems with the ts-11 driver distributed
with 2.8.
First, a minor typo exists in tsclose, the constant 200 (to check
for the no-rewind flag) should be 0200. This doesn't cause too
many problems since 200 has the 0200 bit on.
The second problem screws up raw i/o. It appears on both the source,
and also, in the ts driver in the distributed xpunix. In tsphys, the
assignment: ts_nxrec[unit] = dbtofsb(a+1);
should be: ts_nxrec[unit] = dbtofsb(a)+1;
(or replace '9' in the preceding shift with BSHIFT and get rid of the
dbtofsb stuff in tsphys)
Another problem with this driver is that TCC 6 errors seem to hang
the system. (Try reading a 800 bpi tape.) I've got fixes, but they
haven't been tested enough to distribute. Contact me directly if
interested.
There also seems to be a problem with the rm driver's handling of the
missing current cylinder register. This is simulated by having an
array rmcc[] that contains the current cylinder for each unit. This
is initialized to -1, and only assigned to in rmintr at the completion
of a disk transfer. The problem is that the assignment is conditional
on rmcc's current value being >= 0. It appears that rmcc can never
be set. I've got a relatively untested driver with a fix for this
plus ecc code. Contact me directly if interested.
Mike DeMoney
More information about the Comp.bugs.2bsd
mailing list