[micro.cpm] Distributing modifications to F80

emigh@ecsvax.UUCP (03/20/84)

<>
  Recently, I was given a set of disassemblies of some of the Microsoft
FORTRAN-80 library subroutines (the person who disassembled the routines
and I are both registered owners of F80).  During Spring Break, I rewrote
the floating point multiply and divide routines for the Z80 (resulting in
improvements of 25% and 37%, respectively, for time in floating point
intensive programs).  Considering the discussion now going on in net.general
(and net.followup), can I give the benefits of my labor to others?  I can
see three possibilities for this:

1)	Forget about the whole thing.  Use the modifications in my own
	work, but don't take the chance on distributing them.

2)	Distribute the .REL files.  This would allow others to use them,
	but would not allow others to locate and fix any bugs that might
	be present (after all, I spent only 1 day on the project).

3)	Distribute the .MAC files.  This is the most ideal from my standpoint,
	as I may have made some errors, or there may be a more efficient
	routine.  However, I would guess that about 20% of the actual code
	is still Microsoft's, and certainly the algorithm is Microsoft's--
	I only translated it into Z80 code.

Please give me your ideas as to the legal/moral solution to this problem.
Do you feel that I would be violating the copyright laws in going ahead with
options 2 or 3?  The license agreement I signed states in part:  "Party
agrees that unauthorized copying or disclosure will cause great damage..."
Will either of these options violate this license agreement?
I should add that I would distribute them without cost (e.g., through
net.sources).

I will summarize any answers I get to the net.  If you wish, I will keep
your id annonymous.
				--Thanks--
--
Ted H. Emigh     North Carolina State University     Raleigh  NC
USENET:	{akgua decvax duke ihnp4 unc}!mcnc!ecsvax!emigh
ARPA:	decvax!mcnc!ecsvax!emigh@BERKELEY.ARPA

emigh@ecsvax.UUCP (04/23/84)

< This space for rent >

  I have finally received all the comments about my distribution  of F80
routines, so here is the summary.

Original Question:
I was given the source of some disassembled routines from the Microsoft F80
runtime library.  I spent about a day to modify the code to run faster
under a Z80, and achieved improvements of 37% for floating point divide and
25% for floating point multiply.  I asked for advice as to whether or not I
could post these routines to, say, net.sources.  Microsoft tries to
copyright and license F80, the license saying that disclosure would cause
great harm to Microsoft.

Responses: {my comments in braces or paragraphs headed by a '>'}

>By far, the most numerous responses were like:

I don't know about posting the MAC code, but I sure would like to get a
copy of it myself.

>As to the legality of distributing the Source there were several
conflicting answers.  Several people offered lawyer friends to call.  The
"best" answer I could find is:

If the copyright was before Jan 1, 1977, the software fell under the old
copyright act and no one knows what that means.  If it was copyrighted
after Jan 1, 1977 but before Dec 12, 1980 things are different but still
not too clear.  If after Dec 12, 1980, then you can do whatever you want
with re-coding for yourself but not for any other use--including public
domain.

He also said that it was his belief (he is especially interested in this
area) that both copyright and trade secret protection could not be held at
the same time, but that this question has not been litigated as yet, thus
there is no confirmation or denial of his belief.

>Other legal responses from the net were:

About all you can do legally is to distribute a patch list: give the
addresses of locations that you change, and the new contents of those
locations. {This amounts to releasing the REL files}

By the way, Microsoft watches this mailing list {one of the reasons I did
it this way}, so you have just informed them that you are considering
pirating their software.  I wouldn't be surprised if you heard from them.
{Never did hear from them}

>Some practical solutions:

I suppose that if you anonymously send the sources out to this mailing
list, then it will be impossible to trace you down.  {Maybe I could get
them distributed from kgbvax or kremvax  :-)}  That's not a moral solution,
but certainly a practical one.  Anyway, one couldn't use your routines
without the rest of the fortran compiler, so why would Microsoft care?
{Who knows the workings of corporate minds}  You might even offer to give
them a copy for free!

There shouldn't be a problem if you are distributing only the REL files.
People need a Microsoft licensed linker..and so on.. to produce COM files
anyway.

It's too bad the routines were disassembled by someone who signed the
nondisclosure agreement.  Since you can distribute the COM files of any F80
program, it would not be any more difficult to disassemble it with
'appropriately chosen' F80 programs. {Of course, who would go to the
trouble if they didn't have F80.  The disassembly is much more difficult if
you do not have the REL files.  The disassembly was semi-automated, and
took approximately 2 minutes per module to disassemble, and an additional
1/2 to 3 hours to comment. There are over 100 modules in FORLIB.REL (What
some people can do with free time!). }

>The action that best strikes my fancy is (from several sources):

The obvious answer to your real problem is to write MicroSoft a letter
asking for their desires on the distribution. {As previously mentioned,
Microsoft is on USENET, and presumably reads this news group.  I was
disappointed, but not suprised, that I did not hear from anyone at
Microsoft.}

I would suggest that you attempt to get Microsoft's permission to
distribute Z80 mul and div routines for no profit.  If they are reasonable
they will not object.

>>I have now written to Microsoft to ask them what their wishes are
regarding the routines.  However, as one respondent said:

From what I've heard, they are really bad about customer response.
Personally, I think the turkeys deserve to get shafted.  But don't let that
lead you astray. {I'm not trying to shaft anyone}

>>In the mean time, I reread the license and discovered that I am to make
sure that I do not disclose any information to persons *WHO ARE NOT
REGISTERED USERS* (emphasis mine).  As such, I believe that I can
distribute the source of my modifications to any registered users of F80.
If you are a registered user of F80 and would like to receive the
modifications, please mail your net-address and registration number to me.
I am in the midst of final testing of the routines, and will release them
as soon as I am convinced that they are correct.

Thanks to all who responded.  I tried to reply to all, but the mail may
have gotten lost in the net.
--
Ted H. Emigh     North Carolina State University     Raleigh  NC
USENET:	{akgua decvax duke ihnp4 unc}!mcnc!ecsvax!emigh
ARPA:	decvax!mcnc!ecsvax!emigh@BERKELEY.ARPA