Thread overview
Compiling DOS program
Feb 02, 2003
Hans Wennborg
Feb 02, 2003
Hans Wennborg
Feb 02, 2003
Walter
February 02, 2003
Hi!

I've worked with Borland C++ 5.02 until now but I've been looking for a new compiler for a long time since Borland's old compiler doesen't follow the standard very well..

So I found Digital Mars and it seems like it will also compile DOS executables wich is exactly what I need (that's why I used Borland's compiler in the first place).

I've downloaded and installed the Compiler (v. 8.32) and DOS 16 libraries.

This is the program I'm trying to compile:

int main () {
	unsigned char* video_buffer = (unsigned char*)0xB8000000;
	video_buffer[0] = 'x';

        return 0;
}

My question is simply, how do I tell the compiler that I wan't to make this a 16-bit DOS executable?

If I type "dmc" withouy any arguments I get the following:
-m[tsmclvfnrpxz][do][w][u] set memory model
    s: small code and data              m: large code, small data
    c: small code, large data           l: large code and data
    v: VCM                              r: Rational 16 bit DOS Extender
    p: Pharlap 32 bit DOS Extender      x: DOSX 32 bit DOS Extender
    z: ZPM 16 bit DOS Extender          f: OS/2 2.0 32 bit
    t: .COM file                        n: Windows 32s/95/98/NT/2000/ME/XP
    d: DOS 16 bit                       o: OS/2 16 bit
    w: SS != DS                         u: reload DS

so I figured I should just type

dmc test.cpp -md
but it doesen't work? Have I gotten anything wrong? I would be really glad if someone could help me with this.

And thanks for a great compiler so far!

February 02, 2003
Well, apparently the answer was in the documentations so I guess I should apologize for my dumb question.

Everything is working perfectly now thanks to this great compiler, I'm thinking strongly about buying the CD-ROM so I get the IDDE and all the other great stuff!

Thanks for a great compiler!

Hans Wennborg wrote:
> Hi!
> 
> I've worked with Borland C++ 5.02 until now but I've been looking for a new compiler for a long time since Borland's old compiler doesen't follow the standard very well..
> 
> So I found Digital Mars and it seems like it will also compile DOS executables wich is exactly what I need (that's why I used Borland's compiler in the first place).
> 
> I've downloaded and installed the Compiler (v. 8.32) and DOS 16 libraries.
> 
> This is the program I'm trying to compile:
> 
> int main () {
>     unsigned char* video_buffer = (unsigned char*)0xB8000000;
>     video_buffer[0] = 'x';
> 
>         return 0;
> }
> 
> My question is simply, how do I tell the compiler that I wan't to make this a 16-bit DOS executable?
> 
> If I type "dmc" withouy any arguments I get the following:
> -m[tsmclvfnrpxz][do][w][u] set memory model
>     s: small code and data              m: large code, small data
>     c: small code, large data           l: large code and data
>     v: VCM                              r: Rational 16 bit DOS Extender
>     p: Pharlap 32 bit DOS Extender      x: DOSX 32 bit DOS Extender
>     z: ZPM 16 bit DOS Extender          f: OS/2 2.0 32 bit
>     t: .COM file                        n: Windows 32s/95/98/NT/2000/ME/XP
>     d: DOS 16 bit                       o: OS/2 16 bit
>     w: SS != DS                         u: reload DS
> 
> so I figured I should just type
> 
> dmc test.cpp -md
> but it doesen't work? Have I gotten anything wrong? I would be really glad if someone could help me with this.
> 
> And thanks for a great compiler so far!
> 

February 02, 2003
"Hans Wennborg" <hans@hanshq.net> wrote in message news:b1jjeb$13t6$1@digitaldaemon.com...
> Everything is working perfectly now thanks to this great compiler, I'm thinking strongly about buying the CD-ROM so I get the IDDE and all the other great stuff!
>
> Thanks for a great compiler!
>
> Hans Wennborg wrote:

You're welcome!