The purpose for this site is to collect working programs with source illustrating how to use Flat Real Mode.

Flat Real Mode (FRM) is a technique that allows a programmer to access memory anywhere in the 0 to 4GB range.

Flat Real Mode is part of the specification for Himem.sys, which permits access to Extended (XMS) memory. Himem has been used since 1988 when Intel, Lotus and Microsoft released the specifications and source code. The BIOS uses FRM in the boot process, and utilities like Smartdrive and Ramdrive use Himem to access extended memory.

Although Flat Real Mode has proven its reliability in hundreds of millions of installations over the past decade, few programs are available for a programmer to study. One example is David Lindauer's Great Little Debugger, an excellent 32-bit replacement for the DOS Debug program.

I am interested in any Flat Real Mode software, such as statistics, numerical analysis, auto- and cross-correlation, FFT's, graphics and image processing, text editors, spreadsheets, database programs, utilities, and other examples of software that uses FRM to accomplish various tasks.

Any contributions are welcome. They can be in Pascal, Assembly, or even C if it will compile on my ancient Borland TC201!

If you have any contributions you would like to have posted, please contact me at the address below.

VX.EXE: A Flat Real Mode TSR

VX is a small tsr for the Borland Real-Mode debuggers, TD.EXE and TD286.EXE.

It uses 8 markers to store different memory locations, with the first 4 markers under software control. This allows you to verify memory references in your code using simple debug statements. You can also save the current or previous screen to a text file, mark control characters and spaces to find line terminations in text fields, and switch the Borland debugger to 32-bit mode with a single keystroke.

The documentation for VX is vx.htm. A demo program is described in vxdemo.htm

The complete package is (42.5k).

A Bug in the Beta!

VX has a bug in the beta.

Herman Dullink's FLAT distribution cannot be used with Far Calls. This means it cannot be used with overlays or procedure variables.

So far, this has stumped everyone I've asked. If anyone knows of a simple fix, please contact me. Your assistance would be very much appreciated!

Any comments or suggestions are welcome. Please send them to Michael R. Monett.