Text File

Apur-phy.179 net.bugs.2bsd utzoo!decvax!pur-ee!pur-phy!mad Tue Jan 5 11:48:54 1982 ts.c and rm.c bugs

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

----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen <jgoerzen@complete.org> of http://communication.ucsd.edu/A-News/

This Usenet Oldnews Archive article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.