"legal" advice required

Grant R. Guenther (grant@knot.torque.net)
Fri, 27 Dec 1996 16:41:08 -0500 (EST)


I've been sent a parallel port CDrom device with the request that I develop
a Linux driver for it. The device is a "Power CD" from Freecom, which I
believe to be in Berlin. Apparently it is widely available at discount
stores in Germany. I have followed my usual procedures and developed a
driver by reverse engineering the protocol transactions on the parallel
bus. As one would expect, the drive is a stock ATAPI drive combined with
a small custom component that implements an IDE over parallel bus protocol.

The Freecom driver does something unusual for devices of this sort: it
begins by pulsing, one bit at a time, a sequence of 14827 bits into the
adapter. At first glance this would appear to be the program for a
microcontroller of some sort, although it looks odd - more than 80% of the
bits are ones. I suspect it is more likely to be a table that controls
a finite state machine.

I suppose I ought to take the conservative path and consider this byte
stream to be "code", and not part of a protocol transaction. My
understanding of situations like this is that to be subject to copyright
protection, code must clearly carry - in plain text - a notice of it's
copyright status. No obvious rendering of this bit stream produces any
intelligible text.

I don't disassemble drivers - but I can report that in this case, the
precise sequence that I have obtained from my analysis of the protocol
transactions occurs verbatim in the body of the .SYS file that comes with
the drive. That driver does, of course, contain a copyright.

Now, this presents me with a problem. I can build a driver that doesn't
contain the initialisation sequence - assuming that the user will
initialise the drive with the DOS driver - and then boot into Linux.

I could also provide a small tool to extract the sequence from the
from the DOS driver and make a suitable data definition to be included in
the driver - so people who have the DOS driver can build a Linux driver
that contains the initialisation sequence.

Or, I could include the binary sequence as a data definition - since it
is unintelligible on its own, is useless without the device itself, and
carries no intrinsic copyright.

In the interest of ease of use - especially considering it will most
often be newcomers who want to use this thing - I'd prefer to take the
third option.

I know some of these issues have been discussed before, but I'd like to
hear opinions and recommendations.

--------------------------------------------------------------------------
Grant R. Guenther grant@torque.net
--------------------------------------------------------------------------