On Sun, Sep 30, 2018 at 12:13 AM, Random Liegh wrote:

>
>
> * On 9/29/2018 3:09 PM, Rugxulo wrote: *
>>
>>
>> * Hi,*
>> On Sat, Sep 29, 2018 at 3:47 AM Random Liegh wrote:
>>
>>> I'm not sure this has any value for FreeDOS beyond experimenting (can
>>> this be built by the VAL linker? seems doubtful) and possibly getting
>>> some ideas
>>>
>>
>>
>> * Not sure why you think VAL is the main target or only 16-bit linker
>> worth using. There are probably a dozen of freely available linkers that
>> can target 16-bit OMF for DOS.*
>>
>
> Actually I was (and possibly still am) mixing up free tools. I confused
> val with the freeware arrowsoft assembler. If it's not actually a rebranded
> "masm" (as rumor at one time had it) it's probably fairly close in syntax.
> For that reason itwould be a good (if not best) candidate for being freely
> available and close in masm compatibility.
>


Yes, we removed the Arrowsoft Assembler because it appeared to be a copy of
Microsoft's MASM. 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.

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.


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!


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

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.

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.


(I really should add this to the wiki instead so I can reference it there
instead)
_______________________________________________
Freedos-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to