Free Software for DOS
Programming Languages and Tools

21 Aug 2006

Global Menu:
Go back to Front Page Menus

This page:


C / C++





 Also see: Hex Tools and Advanced Text Editors and Text Viewers for Programmers.



NASM — Netwide Assembler.

* * * *

[added 1999-08-15, updated 2005-03-31]

From the docs: 80x86 assembler designed for portability and modularity. It supports a range of object file formats, including Linux and 'NetBSD/FreeBSD' 'a.out', 'ELF', 'COFF', Microsoft 16-bit 'OBJ' and 'Win32'. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel's but less complex. It supports 'Pentium', 'P6', 'MMX', '3DNow!', 'SSE' and 'SSE2' opcodes, and has macro capability.

Original authors: Simon Tatham and Julian Hall, UK.


Also available for Windows and Linux. Get the latest info and files from the new NASM development group's Project Page at SourceForge.

See Robert Anderton's NASM-IDE, a source code editor.

ALINK — ASM linker for the DOS/Win32 environment.


[added 1999-08-15, updated 2005-12-09]

" all the NASM output formats into any one of a number of possible executable formats." Two variants: DOS/Windows console, and native Win32.

Author: Anthony A.J. Williams (1999).

1999-04-07: v1.6.

Get more info and components at the Alink page.

C / C++

DJGPP — 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS.

* * * * *

[added 1999-08-15, updated 2004-08-22]

This is the compiler and development environment that are used to build the Free Software Foundation's ports from GNU & Unix to DOS. Those and other DJGPP programs run in 80386 protected mode, and require a DOS Protected Mode Interface (DPMI), usually supplied either by CWSDPMI with plain DOS, or by Windows 3.x/9x. Other suppliers of DPMI services are: the memory manager QEMM; a DPMI util that is part of DR-DOS and OpenDOS distribution packages; and the PC emulator DOSEMU.

Author: D.J. Delorie (2000).

2000-01-26: v2.03.

Go to the djgpp page for downloads and info.

And go to any of the DJGPP / GNU mirror sites for an amazing quantity of application software.

RHIDE — Borland-like IDE for DJGPP w/ built-in debugger and editor (SETEdit).

* * * *

[added 1999-08-15, updated 2005-12-09]

From the docs:

The RHIDE package includes SETEdit, also available separately.

Author: Robert Höhne, Germany (2003).

2003-02-17: v1.5.

Get binaries & source, for DOS & other OSes, from the RHIDE Page.

Pacific C — C compiler with IDE.


[added 1999-08-17, updated 2006-03-14]

ANSI C compiler for DOS & Windows, with text-based GUI development environment. Works in a Windows DOS box, but still does not build Windows programs. Formerly shareware, now freeware. Manual (pdf) available, with or without compiler download.

Author: HI-TECH Software. Suggested by T. Gransch.

2003-04-01: v7.51.

Go to HI-TECH Software's Pacific C page for pacific.exe (1.1MB), Windows SFX, can be unzipped [Note that the listed file size of 970K is wrong] and the manual (1.9MB).

Turbo C 2.01 and Turbo C++ 1.01 — Borland's commercial compilers, now free.

* * * *

[added 1999-08-15, updated 2005-03-31]

TURBO C has been made freely available. Quoted from the Borland site:

These historical files are provided to the Borland community free of charge. They may be downloaded and used as is, no developer support is provided. Each individual product contains copyright notices that are still in force. These files may not be made available via the Internet or any hard copy media (e.g. diskette, CDROM).

Packages include editor, multi-window desktop & other tools.

Author: David Intersimone / Borland Corp. (1987-1991).

Turbo C
Turbo C++

Turbo C
Turbo C++

Get more info & other files from:
Turbo C 2.01 page
Turbo C++ 1.01 page
Borland Museum

Additional tools – get these lists: (3K) (1K) (3.7K)


 Also see Borland Pascal 7 CRT Bug Fixes.

Free Pascal (FPK Pascal) — 32-bit & 64-bit compilers for multiple OSes and CPUs.


[added 1999-08-15, updated 2006-03-14]

FPK Pascal is available for Intel 80386+, Amd64/x86 64, PowerPC and Sparc CPUs. Supported OSes are Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS. Compatible with Borland's Turbo Pascal and Delphi. Source available. Issued under GNU's General Public License and Library Public License.

Author: Free Pascal Development Team (2005).

2005-12-08: v2.0.2 (12.6MB download for DOS).

Get official releases and development versions, and lots more info, at the Free Pascal page.

Pascal Pro (PPro) — 32-bit compiler.


[added 1999-08-15]

"...produces 32-bit code for DOS flat-memory model. It also has some extensions for more effective programming...generates .ASM files in TASM/MASM and NASM formats so you must have one of those programs. You also must have TLink32 and WDOSX dos-extender or some other tools to produce executable files..." Missing inline functions and dynamic methods.

Author: Iggor Khachko (1999).

1999-03-22: v0.1.

Get the compiler, sources and tools from the Pascal Pro page.

Turbo Pascal 1 / 3.02 / 5.5 — Borland's commercial compilers, now free.


[added 1999-08-15, updated 2005-03-31]

These versions of Turbo Pascal have been made freely available. Quoted from the Borland site:
These historical files are provided to the Borland community free of charge. They may be downloaded and used as is, no developer support is provided. Each individual product contains copyright notices that are still in force. These files may not be made available via the Internet or any hard copy media (e.g. diskette, CDROM).

Author: David Intersimone / Borland Corp. (1983-1989).

1989-05-02: v5.5. Latest & best free version.

Download (28K).

Additional tools – get these lists: (28K) (1K)

Get more info & other files from:
Turbo Pascal 5.5 page
Borland Museum


GNU Perl — High level programming language, popular for text/data processing & Web CGI development.


[added 1999-09-06, updated 2006-03-14]

"...quite a wonderful, if complex creature."

From the Perl FAQ:
Perl is a high-level programming language with an eclectic heritage written by Larry Wall and a cast of thousands. It derives from the ubiquitous C programming language and to a lesser extent from sed, awk, the Unix shell, and at least a dozen other tools and languages. Perl's process, file, and text manipulation facilities make it particularly well-suited for tasks involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming, networking, and world wide web programming. These strengths make it especially popular with system administrators and CGI script authors, but mathematicians, geneticists, journalists, and even managers also use Perl. Maybe you should, too.

32-bit DJGPP programs. LFN support under Win9x only.

Suggested by Howard Schwartz.

Authors: Larry Wall, et al. DOS ports, v5 by Laszlo Molnar, Hungary (1999) and v6 by Richard Dawe, UK (2003).


Unicode support and other enhancements



Get more info & other files from:
Perl Home Page
CPAN – Comprehensive Perl Archive Network


Although creative geniuses can cajole the DOS batch language into performing near-unthinkable tasks (e.g., math), mere mortals may prefer a less convoluted method of writing command scripts.

REXX — Powerful but comprehensible procedural language, supplement / alternative to DOS batch.

* * * * *

[added 1999-07-29, updated 2006-03-14]

REXX, the REstructured eXtended eXecutor, is a syntactically comprehensible but powerful procedural language, originally developed at IBM. REXX is different from most other computer languages because it can be used as a macro language for arbitrary applications. REXX can be attractive to the batch user because it explicitly supports many functions absent in DOS batch. It also can call external programs, internal operating system commands, and external REXX libraries. Another plus is that REXX interpreters are available for many platforms, e.g., Mac, Linux, OS/2 (and more). If you're not a programmer but can write a DOS batch file, learning the basics of REXX should not be a great challenge. REXX interpreters include a trace / debug mode which aids greatly in troubleshooting scripts.

Limitations: One of the obvious drawbacks of using REXX as a complement to batch is that it requires additional memory. Also note that some of the functions of Rexx's built-in library are more or less platform dependent. Different implementations of REXX will vary in their compliance to the REXX standard – and may have implementation-specific additions and enhancements (don't assume that a given script will run under any implementation of REXX). Two (unrelated) free REXX interpreters for DOS are described below. Another version is part of IBM's commercial PC DOS 7 and PC DOS 2000 packages.

Author: Michael Cowlishaw / IBM UK (1984).

More info & other files:
IBM REXX Family - Family Overview.
IBM's The design of the REXX language (pdf file, 970K).
Rexx Language Association
Jeff Glatt's REXX Page

REGINA — 32-bit REXX interpreter for DOS.


[added 1999-07-29, updated 2006-03-14]

Regina is available for DOS in DJGPP/DPMI (recommended) and DOS/VCPI (uses EMM386.SYS) compilations. Win32 console version is also available, with external dynamic libraries that greatly extend its functionality. Sample scripts are included in all packages. All PC versions require 80386+.

Notes: "Win95/98 users: Due to a bug in the Windows 9x and Me command processor; COMMAND.COM, all calls to operating system commands from within Regina will ALWAYS return a zero return code." Extensive documentation is distributed separately.

Author: Anders Christensen, Germany (2003). Maintained by Mark Hessling, Australia (2004).

2004-04-09: v3.3.


Mark Hessling's Regina Rexx page.

Get docs, source and versions for other OSes at the Files List page at SourceForge.

BREXX — REXX interpreter for DOS, 16- and 32-bit versions.


[added 1999-07-29, updated 2005-05-07]

BREXX includes some DOS specific external libraries and several sample scripts. Available in 16-bit and in 32-bit DJGPP versions. Also see an independent review of BREXX. Free for non-commercial use.

Author: Vassilis N. Vlachoudis, France (2003).


Program, sample scripts
Program, sample scripts
ANSI utils, text driven menus, lists & more

See documentation at the BREXX Page.

Get docs, more scripts, and versions for Windows, Linux, most Unix, MacOS and Windows CE at the BREXX ftp directory.


CWSDPMI — DOS Protected Mode Interface, provides services to 32-bit programs.

* * * * *

[updated 2005-08-03]

CWSDPMI provides protected mode services to 32-bit DJGPP programs running under plain 16-bit DOS. Some DJGPP program packages include it, but if you have one that doesn't, or if you want docs and other tools, get the bundle listed here. Requires 80386 or higher CPU.

Note: Protected mode services are also provided by Windows 3.1x/9x and some other environments, so CWSDPMI will not be needed by all users.

Limitation: No Win9x Long File Name support. Not always critical – many DOS32 progs also do not know LFNs.

Author: Charles W. Sandmann (2000).

2000-10-22: v5.

Download (40K).

Go to the CWSDPMI page for more progs, source code and lots more info.

386SWAT — Protected mode debugger.


[added 1999-08-17, updated 2005-12-09]

From the docs:
This protected mode debugger when used in conjunction with 386MAX or any other memory manager provides debugging services to protected mode, virtual 8086 mode programs, Windows 3.1x and Win95/98 programs, and DPMI and VCPI clients while occupying only a few kilobytes of conventional memory. It supports disassembly of the full 386, 387, 486, Pentium, Pentium Pro through the Pentium 4 MMX & SSE instruction set.

2004-03-31: v6.06.

Author: Bob Smith / Sudley Place Software (2004).

Download (417K).

386SWAT page.

Go to Top | Front Page ]

©1994-2004, Richard L. Green.
©2004-2006, Short.Stop.