Free Software for DOS
Programming: Languages and Tools

9 Dec 2005

Global Menu:
Go back to Front Page Menus

This page:


C / C++






 Also see 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.


Get the latest info and files from the new NASM development group's Home Page and Project Page at SourceForge.

Also see Robert Anderton's NASM-IDE.

ALINK — Linker for the DOS/Win32 environment.


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

" 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-08]

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, 2005-12-08]

ANSI C compiler with text-based GUI development environment. 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 the Pacific C page for pacific.exe (970K) 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++

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

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


Free Pascal (FPK Pascal) — 32-bit compiler for Linux, DOS, Win32, OS/2 on various CPUs.


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

FPK Pascal "is available for different processors (i386+ and 680x0) and operating systems (Linux, DOS, AmigaOS, OS/2, Win32, FreeBSD)..."

Author: Free Pascal Development Team (2005).

2005-05-05: v2.0.0 (stable) and development versions are available 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 these 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 2005-08-03]

"...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.


Unicode support and other enhancements




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


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

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, the REstructured eXtended eXecutor, is a syntactically comprehensible but powerful procedural language. 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 here. Another version is part of IBM's commercial PC DOS 7 and PC DOS 2000.

Get more info & other files from:
IBM's DOS & REXX info.
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 2005-05-07]

External dynamic libraries (which greatly extend the functionality of REXX) exist for the Win32 version but are lacking in the DOS versions. Sample scripts included.

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

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. DOS version available as 32-bit DJGPP (recommended) and DOS/VCPI packages. All PC versions require 80386+.

2004-04-09: v3.3.

Download (844K).

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).



See documentation at the BREXX Page.

Get versions for Windows, Linux, most Unix, MacOS, Windows CE, and docs at the Rexx Language Links ftp site.


There are many freeware hex editors floating around – only a few listed here.

Also see: VBX – Character mode box drawing / text editing / hex editing rolled into one program.

BIEW (Binary VIEW) — Hex editor for power users, in 16- & 32-bit variants.


[added 2000-07-11, updated 2005-06-18]

Brief remarks: Biew presents a Norton-like interface. Unlike QVIEW and HIEW, BIEW remains both free (GPL) and in active development. Includes binary, hexadecimal and disassembler (Pentium4/K7 Athlon/Cyrix-M2) modes, with editing capability. Text mode allows viewing only. Real and protected mode DOS versions are available. Uniquely, Linux, Win32 console, BeOS, OS/2 versions of BIEW are also available. GPL freeware.

Author: Nick Kurshev, Russia (2004).

2004-09-19: v5.6.2.

"Most robust"
32-bit DJGPP compilation. No LFN support. Fastest variant.
Requires Win9x/NT/2000/XP. Handles LFNs.

Biew Home Pages: EnglishRussian.

Go to the Project page at Sourceforge for latest versions for DOS and other OSes.

QVIEW — Text / Hex / ASM viewer and hex editor for programmers.

* * * * *

A slick and fast viewer that can also function as a very capable hex editor. QVIEW can insert and delete bytes – not many freeware hex editors do that. Block operations supported. Mouse support. Note: Like HIEW, QVIEW is intended for experienced users, and others should approach it with some cautions in mind: editing changes appear to be written to disk without confirmation (at least the default config appears to act this way). There is an UNDO command that works in an untraditional fashion (place cursor on altered byte(s) that you wish to undo). See extended description on Text Utils page 5.

HIEW (Hacker's View) — Hex editor for power users.

* * * * *

[added 1998-06-23, updated 1999-07-27].

This hex editor seems to be a longstanding freeware (prior to v6.15) favorite among programmers and hackers – the relatively sparse documentation assumes experience with hex editors (Use Alt-H for context sensitive help). Features from docs: Text / hex mode editor; Built-in Pentium Pro assembler; create new files; search and replace mode; Search of assembler commands using pattern; bookmarks; Block operations in HEX/DECODE modes. HIEW.EXE runs under both DOS and OS/2.

Author: Eugene Suslikov, Russia (1999).

1999-07-27: v6.11. See docs for revision history. Note: v6.15 and later are pay shareware.

Download (350K).

HexIt — Hex editor with macros; can insert and delete bytes / blocks.


[added 1998-08-16, updated 2001-09-19]

Includes text, hex, code and dump modes. Easy custom keyboard configuration. Byte insertion / deletion and block cut / paste. Can manage many files at once. Macro recording and playback. File compare feature. Includes assembler/ disassembler. Package includes a Win32 console exe.

Author: Mikael Klasson, Sweden (2001).

2001-09-19: v1.57a.

Download (138K).

Zap-It — Hex and disk editor.


A general purpose disk and hex editor – see extended description on Disk Utils page 2.

Hex — Small hex editor handles big files.

* * *

[updated 2004-06-26]

Listed here because it is quite small (11K) yet very usable for simple patching tasks. Can edit ascii or binary files of any size. Dual display of hex and ascii panes. Includes a character search feature. Help bar displayed at bottom of screen. Files must be loaded from command line. Byte replacement only. Interface is in German yet easy to interpret. No mouse support.

Author: Christian Stellmach, Germany (2002).

2002-08-12: Unnumbered release.

Download (7.8K).

KZAP (KILL-O-ZAP) — Dual file hex editor/viewer with TSR option.

* * * *

[added 1998-03-16, updated 2005-12-08]

A useful and "dangerous" hex editor/viewer. Useful because it can display two files simultaneously enabling you to scroll and compare both in a synchronous manner. If two files are loaded KZAP can also compare the data in the two windows. Potentially dangerous because any editing changes will be written to disk – whether you like it or not. KZAP can also function as a RAM or disk viewer/editor. Byte replacement only. Option to load as a TSR (w/ unload). No mouse support.

Author: Doug Bagley (1991).

1991-11-03: v2.2C.

Download (30K).


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 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.1/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-08]

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.
This Edition ©2004-2005, Richard L. Green and Short.Stop.