Hi,

On Sun, Sep 30, 2018 at 10:22 AM Jim Hall <jh...@freedos.org> wrote:
> On Sun, Sep 30, 2018 at 12:13 AM, Random Liegh wrote:
>> On 9/29/2018 3:09 PM, Rugxulo wrote:
>
> Yes, we removed the Arrowsoft Assembler [2.00c] because it appeared to be a 
> copy of Microsoft's MASM.

"Appeared" to be an (almost) exact "copy" of MASM itself. Not a
compatible clone but indeed the actual MASM.EXE (barely modified,
hacked/disguised). Specifically, version four (before 386 support),
circa late 1984 or 1985.

> We wrote a technical note about this in 2011. The technote is offline, but 
> the summary is:
>
> Luchezar Georgiev (Lucho) identified the following:
>
> The code of ArrowAsm 1.00D and MASM 3.00 is identical, and the changes are 
> only the some strings.
> This means that there is no restriction in the size of the source files it 
> can process, contrary to what's
> written in the documentation, which I proved with a simple test. There is 
> also 462 bytes of unused garbage
> appended to the executable of the ArrowAsm, which is not present in MASM 3.00.

IIRC, the Arrowsoft "doc" was fake, thus fake names, fake city, and
nobody ever knew. At least I didn't find anything with a Google
search. (I know that's not exhaustive, but it didn't find *anything*!)

IIRC, ASM.EXE (the original, 1.00d?) wasn't compressed at all.

> Things are much more complex in the ArrowAsm 2.00c. First, the file is 
> compressed. When I uncompressed it using IUP by Frank Zago,
> the uncompressed file size turned out to be exactly the same as the size of 
> MASM 4.00! But the code is "only" about 99.9% same.
> The .ERR* directives (.ERR, .ERRNB, ERRNDEF, .ERRNZ, .ERR1, .ERR2, .ERRB, 
> .ERRE, .ERRDEF, .ERRDIF, .ERRIDN) have been
> removed from the strings, and a small piece of code (their processing?!) was 
> patched over with some other code - maybe a code that
> limits the size of the source file to 64 KB and issues an error message if 
> it's longer, albeit I was unable to trigger that message. Unlike
> the code, the strings are significantly patched, obviously to hide the 
> similarity with the original product.

Granted, this sounds bad, but that alone doesn't prove that it's
copyright infringement. Highly likely, yes, but it doesn't mean it
wasn't an authorized fork or redistribution. But that would depend on
many factors, and I'm not aware of any of the details (or even whom to
ask). The weirdest part, to me, is the fact that nobody noticed
before, not even MS. Or, if they did notice, they never publicly
mentioned it or legally went after anyone hosting it online. Maybe it
was some legal gray area or something slipped through the cracks
(legally).

Or maybe it was just too old to care. After all, 16-bit 286 code
wasn't worth much to most people once the 386 came out. I know that's
a naive thing to say, but truly the 386 was much much more popular. So
no, I don't think anybody pined after ancient 16-bit MASMs once v5 and
v6 came out. Almost all of the code I ever saw (late '90s and beyond)
relied on one of those two major versions, not earlier ones. Or used
other assemblers entirely, obviously. (PSR Invaders from 1995, for
instance, was written in TASM v4 for MASM v5 syntax. I know I
converted its source to various assemblers because it didn't work, by
default, in various one-pass assemblers, which I think Arrowsoft is,
unlike later MASM versions. Ironically, TASM could assemble it
one-pass but slightly inefficient, bloated encodings. 9356 versus 9194
bytes. Yeah, one-pass assemblers are quite weird.)

> And in a followup:
>
> As to version 2.00c, I understood that they've zeroed the string "LZ91" at 
> offset 1Ch-1Fh in ASM.EXE. If you restore it,
> UNLZEXE is then able to unpack the file to the same size as MASM 4.00. Now 
> both files can be compared visually
> with the excellent FCB utility by Uwe Sieber. (Restoring the "LZ91" string 
> can also be done with it, by the way :) There
> are much more different bytes than in the first version, but still only 5565 
> (6-7% of the total file size. Excluding the EXE
> file header, the bodies of both files have just 3502 different bytes (4% of 
> the body size). There is no way this can be a
> mere coincidence!

Yes, so 2.00d was compressed (but marker removed so you couldn't
decompress it!). Also, they changed the C runtime copyright string.
IIRC, it (falsely) claimed to have been compiled by Borland tools!
They (whoever, hackers?) went out of their way to mask this.

> Another method used Linux cmp to show MASM and Arrowsoft's Assembler were 
> essentially the same.

It was pretty obvious at that point.

> Dave from DDS provided a similar comparison using a different method; he used 
> CUP386 to unpack ASM.EXE,
> then wrote a small program to sift through the two, looking for matching 
> sections.

Well, he was one of the few who actually still had a copy of MASM.EXE
(v4) at all! None of us could verify it because we didn't have it and
never used it. It was very strange.

> This provided overwhelming suggestion that Arrowsoft was a modified copy of 
> MASM. We felt it was best
> to drop Arrowsoft from FreeDOS. And effective 2011-08-03, Arrow was removed 
> from our archives at ibiblio,
> and deleted from our software list.

"Better safe than sorry." (We didn't really need it anyways. I don't
recall exactly, but I think we were all aware of JWasm by that point,
which is "better".)

Then again, we couldn't really confirm what the official status was
either, so it was just blind guesswork on our part. It looks bad, but
we never heard from (nor contacted) MS because we didn't know what to
do. Honestly, then and now, it feels almost silly except out of morbid
curiosity (or if MS cares at all). We don't want to be lax, of course,
but this is some seriously obscure (trivial) stuff. Ancient!

P.S. I think originally MASM (v1) was written in Pascal. But later
versions were written in C (which falsely attributed big speedup to
that). The 8086 turned 40 this year, BTW.


_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to