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