divinci
divinci

Reputation: 23119

MSDOS "Hello World" EXE

I want to compile a "Hello World" MS-DOS exe.

Not a program that runs in XP 16bit mode, or in MS-DOS mode on top of Windows OSs.

A HELOWRLD.EXE that I can run on my MS-DOS box.

Upvotes: 5

Views: 14614

Answers (8)

Marco van de Voort
Marco van de Voort

Reputation: 26358

For Pascal you will want Free Pascal. It generates 32-bit Go32v2 binaries like DJGPP, and can compile old TP code.

Work is also being done on a Windows->16-bit Dos compiler (can generate .COM), but while working, that is not in a released branch yet.

Upvotes: 0

Niels Castle
Niels Castle

Reputation: 8069

I think DEBUG.EXE still ships with windows (at least it does with XP). Run debug and enter something along the lines of the following transcript:

c:\src> debug
-a 100
1373:0100 mov ah,9
1373:0102 mov dx,108
1373:0105 int 21
1373:0107 ret
1373:0108 db "Hello world!$"
1373:0115
-n c:\hi.com
-r bx
BX 0000
:0
-r cx
CX 0000
:15
-w
Writing 00015 bytes
-q

c:\src> c:\hi.com
Hello world!

c:\src> _

Read more on DEBUG.EXE at: http://en.wikipedia.org/wiki/Debug_(command)

And the INT 21 display string http at: http://www.uv.tietgen.dk/staff/mlha/PC/Prog/asm/int/21/09.htm

Upvotes: 30

Pablo Santa Cruz
Pablo Santa Cruz

Reputation: 181270

Follow these steps:

  1. Get and install Turbo C 2.0 from here, legally.
  2. Copy this code (*)
  3. Compile it.
  4. Your hello.exe is ready to run.

This is code you should copy (*):

int main(int argc, char **argv)
{
   printf("Hello, world.\n");
   return 0;
}

Upvotes: 9

Parth Desai
Parth Desai

Reputation: 1839

Install Turbo C/C++ 16-bit compiler. Then create new noname00.c file.
Write this code in it.

//Include necessary files stdio.h and conio.h for function prototypes.
//The "int agrc , char *argv[]" are optional parameters to main program.If you don't want to use //it you can just write "int main()"
int main(int argc,char *argv[])  
{  
     printf("Hello World !!!!");  
     getch();  
     return 0;  
}

the .exe file generated by this compiler can be found in source directory.
Try to run it in your own MS-DOS Box.
It should run.

Upvotes: 0

ktharsis
ktharsis

Reputation: 3190

This will do it straight in the command line debugger in DOS. http://www2.latech.edu/~acm/helloworld/dosdebug.html

It does write a COM file and not an EXE (there is a difference) but should be a good start for you.

Upvotes: 3

Josh Kelley
Josh Kelley

Reputation: 58342

For C and C++ development, use one of these free and open source compilers:

  • DJGPP - a DOS port of GCC. It builds 32-bit protected mode DOS applications.
  • Open Watcom - I'm not as familiar with this one, but it's actively developed and can target 16- and 32-bit DOS, Windows, and OS/2.

Upvotes: 2

Simone Margaritelli
Simone Margaritelli

Reputation: 4733

DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of many GNU development utilities. The development tools require a 80386 or newer computer to run, as do the programs they produce. In most cases, the programs it produces can be sold commercially without license or royalties.

http://www.delorie.com/djgpp/

Upvotes: 4

Daren Thomas
Daren Thomas

Reputation: 70314

You want a MS-DOS C compiler. Is there still an old version of Borland C floating around? Also, you might find a port of the GNU C compiler for DOS.

Upvotes: 0

Related Questions