DOS Utilities

The following programs were all written in WASM, the Wolfware Assember, by Eric Tauck. It's a now-free assembler few people know about, and it works well... More on it, and other assemblers, below.

BIOS Reporter Screen Shot

BIOS Reporter

Actively reports much of the extensive system information available in the BIOS data area; can be run as a pop-up TSR to report changes to BIOS values while a second program is running. Allows printing. Freeware.

The source code neatly shows how BIOS Reporter probes the BIOS data area for the wealth of system information contained within, and nicely models DOS TSR programming. Note that it is copyrighted - feel free to examine it and play with it, but please do not lift portions of this code directly into a program of your own.

ScanCode Show

Reports scan and ASCII codes as well as keyboard BIOS values for any keystroke, in scrolling display. ScanCode Show really shows off the beauty of assembler - other shareware and freeware that attempt the same are at least twice the size, with far less functionality. One, a 45 KB Visual Basic program, returns only the scan code for either the letter or number pressed, then promptly exits. Doesn't identify other keystrokes, or multiple-key combinations, or identify the ASCII or BIOS codes, or allow printing, etc. In 3 KB, this program identifies such codes as Left Shift-Alt-F12, as scan, ASCII and BIOS code, in a clean, printable, scrolling display. Freeware.

Even if you don't program in assembler, I think you'll find the source code interesting for the insight it offers into the interaction between programs, BIOS, and keyboard.


TSR used to monitor keyboard activity for security reasons, or for measuring productivity. Hotkey combination is used to present the number of key-presses made after program activation; program may be activated by hotkey combination or from the command line or batch file. For DOS or may be loaded before Windows; not recommended for Windows 95. Freeware. Due to lack of interest, source code not yet made available.

About WASM, and other assemblers ...

I paid $10 for the registered version of WASM a few years ago: a bargain-basement price for an excellent assembler. In it, Tauck ignored Borland's and Microsoft's insistence that models be declared, that files be LINKed, and the "ptr", "assume", and various other unnecessary complexities one shouldn't be bothered with: assembler's hard enough without them. Even better, WASM version 2.23 is now available for free, courtesy of DOSOnly.Net.

The official spiel: "Wolfware Assembler (WASM) is a free assembler for the 8086 and compatible microprocessors. WASM is best suited for writing system utilities, TSR's, and other small programs. The minimum system requirements are an IBM pC or compatible, 100K of free memory, and DOS 2.0 or up. The assembler package consists of the assembler program, the user's manual, a list of version changes, and sample programs. All of the documentation (*.TXT) files are standard text files that can be displayed on the screen or printed. Unmodified copies of WASM may be shared and distributed. WASM may be used without obligation to the author."

Wolfware Assembler (WASM) Copyright 1985-2001 Eric Tauck. All rights reserved.

On the downside, WASM doesn't handle commands specific to the 386-or-higher. I don't know if that's changed, and don't care: good DOS programs can be produced using 8088 code alone - NeoBook and Neopaint, both by NeoSoft, are two very capable software programs that come to mind. NeoBook EXE files can be megabytes in size and run on an XT! With that in mind, I've made it a point of pride that my DOS programs all run on the slowest IBM pC or compatible.

If, however, you're shopping for a more complex assembler, one that'll do 386+ code, protected mode, Windows, MMX, SIMD and AMD's 3DNow instructions, consider Eric Isaacson's A86. More pricey, manual more voluminous, tightest and cleanest code, and this man also disdains the hoops Borland and Microsoft would have you jump through. IMHO the best assembler around, and I say that even though my loyalties lie with WASM...

The most interesting and versatile, is the NASM or now well-known Netwide Assembler - an open-source (i.e, free) 80x86 assembler designed for portability and modularity. It supports DOS, Linux and NetBSD/FreeBSD, a.out, ELF, COFF, Microsoft 16-bit OBJ and Win32, MMX, 3DNow!, SSE and SSE2 instructions, and has macro capability. For an assembler, it's relatively simple. It is continually being improved - currently undergoing intensive development - so be advised that it is a work in progress. Still, if I were actively programming assembler at present, it is the one I'd choose.

As to the rest:Intel's MASM is often cryptic, convoluted, bloated, internally self-contradictory, and strange, and runs only under DOS. Borland's Turbo Assembler TASM isn't as bad, but MASM compatibility makes for many of the same problems, and it's pricey. gas is free, but horrible. as86 is Minix- and Linux-specific, and poorly-documented. Programmer beware.

Return to Paul Postuma's Freeware Index page

site maintenance by Ars Informatica