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
