Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

FASM can't understand OMF ".OBJ" files (Announce)

posted by Rugxulo Homepage, Usono, 30.12.2008, 20:14

> > portable, so FASM is definitely superior, IMHO.
>
> Since we are in a DOS forum here: for DOS programming , especially 16bit,
> FASM is inferior IMVHO, simply because there's no support for OMF output
> format implemented.

OMF is really only necessary for linking between HLLs and assembly, and only a few less-popular compilers support it (Digital Mars, Borland, OpenWatcom). If you don't need HLL-compiled objects, just write it all in FASM (like Tomasz does). Besides, were any of those compilers free in 1999? (Not OpenWatcom, 2003). So there would be no incentive for Tomasz (gratis) to support that which he doesn't use. Especially since all three of those compilers above supports some form of assembly (inline or external, at least).

OMF is complex, which Tomasz has lamented before. But yes, no OMF support in FASM does vaguely limit its usefulness. However, no one has volunteered to add it thus far, so they must not need it too bad ("why reinvent the wheel?" NASM, WASM, LZASM, MASM, TASM, A86/A386, Arrowsoft, SOLASM, etc. etc.). Windows and Linux don't use it, and that's 90% of the popular market right there.

FASM initially started as a DOS-only assembler with PE/COFF supported later on (1.04, apparently). Actually, it seems 1.10 only supports flat binary (.COM), MZ, and PE. So no object format support at all, initially. FASM didn't support COFF output until 1.39.

Also, as you know, some programmers prefer FLOSS or open source, hence they use whatever is available (e.g. GCC). And GCC is a GNU pet project, so any vestige of 16-bit or non-*nix-ness is heavily frowned upon. (And NASM is LGPL, which is "good enough" to license nerds.)

Besides, both FASM and OpenWatcom need a 386 to run, and there are other so-called "better" formats for that. A popular excuse is that the 386 has been around so long that it's ubiquitous. Same with FPU, everyone just assumes one is available now. Compatibility is a lost art.

Even COFF for DJGPP (which was originally a.out) is considered old hat, i.e. not as good as ELF. You could even argue that OMF is a DOS legacy format, and you know how (un)popular DOS is these days .... :-(

But Wikipedia does say NASM 0.90 (Oct. 1996) had 16-bit (only) support for .OBJ.

> > FASM ain't the only assembler to assemble itself: ...
>
> The fact that it is written in ASM and can be assembled by itself is
> probably worth to be mentioned, but not as an advantage but as a
> disadvantage.

How is it a disadvantage? Harder to debug? It's not maintained by a group, only by Tomasz. And he's more comfortable with it than HLLs, obviously. If we were talking Haskell or Erlang, I'd agree. But x86 assembly isn't that rare. (Besides, you kinda have to know assembly to write an assembler. May as well test it on itself.) But I'll admit that writing it in assembly doesn't by default make it "better", nor is JWasm "worse" due to being in C (obviously).

> And what do you mean by robust?


Etymology:
   Latin robustus oaken, strong, from robor-, robur oak, strength
Date:
   1533

1 a: having or exhibiting strength or vigorous health b: having or showing vigor, strength, or firmness <a robust debate> <a robust faith> c: strongly formed or constructed : sturdy <a robust plastic> d: capable of performing without failure under a wide range of conditions <robust software>


I meant more powerful, error-free, useful, actively maintained. Why, are there any practical reasons for me to prefer Wasm instead of JWasm? Unless I wanted to run WASMR on an old 16-bit cpu (which I don't have), I see no advantage to it. I hesitate to also mention that UPX won't pack JWasm, sniff. BLOAT! ;-) j/k

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 399 users online (0 registered, 399 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum