Where to get 16-bit (DOS) assembler / compiler?

Started by TedPride, December 31, 2004, 10:49:25 PM

Previous topic - Next topic

TedPride

I'm completely new to Assembly programming, and the course I'm taking seems fixated on programming assembly in DOS, not Windows. I tried the latest version of MASM, but it seems to be only for 32-bit programming (gives me the usual errors for interrupts and so on), and I tried Arrowsoft Assembler, but it only makes .OBJ files and won't actually compile my code. It also doesn't support segment directives.

My question is, what software package(s) should I be using for turning my raw .ASM into .EXE? Preferably something that works in DOS, and is as simple to use as possible, while at the same time being as compatible as possible with MASM. A version of MASM for DOS would be ideal, except I haven't been able to figure out where to get one.

I'm beginning to think that learning the language is the easy part.  :'(

MichaelW

You can use recent versions of MASM, but you need a 16-bit linker, like the one available here:

http://spiff.tripnet.se/~iczelion/download.html

As a minimum you could assemble and link from the command line or from a batch file with:

ML /c filename.asm
LINK16 filename.obj;
eschew obfuscation

TedPride


Apakekdah

:'( i know i late, but i realy need 16 bit compiler for .com/.exe files...

thx

MichaelW

If by compiler you mean assembler, you can use the version of ML from the MASM32 package or any other 6.x version, or AFAIK any 7.x version. You can get the 16-bit Microsoft linker here:

http://website.masm32.com/microsft.htm
eschew obfuscation



jcarlock

16-bit linker from Microsoft
http://download.microsoft.com/download/vc15/Update/1/WIN98/EN-US/Lnk563.exe

A 16 bit linker and compiler also comes with the Win2003 DDK, last time I checked (Early 2006)...
http://www.microsoft.com/whdc/devtools/ddk/

NOTE: The DDK is a big file. There is also a KMDF (Kernel Mode Driver Framework) available, but it it 100% 32-bit/64-bit (no 16-bit support).

Hope this helps.

ridgerunner

If your development platform is running 16-bit DOS, you can only run MASM versions 6.11 or 6.11D (or earlier). The later versions of MASM (6.12, 6.13, 6.14, 6.15) will simply not run under 16-bit DOS. Although these later versions will happily assemble 16-bit code when run from a 32-bit Windows platform, they blow up if you try to run them from DOS - i.e. If you type in: "ML MYPROG.ASM" from a 16-bit DOS command prompt, all you will see is...

This program cannot be run in DOS mode

As far as a C compiler, the last MS version that runs under 16-bit DOS was VC 1.52.

I am not sure of where you can obtain these 16-bit versions legally for free however.