Edit/Modify any/all memory in WINDOWS 3.1

EDMOD.OBJ requires an 80386, 80486 or Intel Pentium to run along with an EGA, VGA or XGA color video display. It may be run ONLY from DOS or Windows 3.1.

I first wrote EDMOD in 1977 for the original TRS-80 Model 1. Updated it in 1980 for the TRS-80 Model 4 with 4 each 64K banks of memory. Updated it in 1987 for the Intel 8088. Updated it in 1993 for the Intel 80386/8046 along with this Alpha version 1.0 for the new Intel Pentium running in Real Mode.

The EDMOD.OBJ program allows the user to edit/modify any/all 1024K (RAM) memory, excluding video RAM at segment A000H. GOEDMOD.COM is the command line loader for EDMOD.OBJ. EDMOD may be run from either Windows or the DOS> command line prompt. EDMOD.ICO is the icon if you wish to run it from Windows. EDMOD uses the keyboard and mouse (if a mouse driver is loaded).

From the DOS> prompt, type GOEDMOD to run the program. EDMOD.OBJ, EDMOD.DOC, EDMOD.ICO (icon), and GOEDMOD.COM 'must be in C:\EDMOD subdirectory.

When running EDMOD.OBJ these EDMOD.DOC pages may be displayed by pressing the F7 key. The Enter, PgUp, PgDn, and Up and Down arrow keys are active.

Each page displays 1024 bytes of memory in the DS segment displayed at the upper right of the screen. Displayed memory starts at BEGIN, displayed at the upper left of the the screen, and ends at END displayed on the right side of the screen. The enter keys (and + keys) move the displayed page UP 1024 bytes in memory. The minus key (hyphen key and - key on the keypad) move the displayed page down 1024 bytes in memory. The program initializes in EDIT MODE (green) displayed on the left side of the screen. If a mouse is installed, clicking the left mouse button over most commands duplicates keyboard input, (IF NOT running EN.EXE the protected mode demo).

Holding down the Enter key will display all sixty-four 1024 byte pages of a segment in about 8 seconds and cycle through all 16 segments in about 2 minutes. Next segment up or down switching is automatic.

In EDIT MODE you may switch segments by pressing the F5 key and then pressing the zero through F key to switch to segments 0000H:0000H through F000H:0000H. When F5 is pressed, four yellow blinking ???? will appear beneath DSseg on the right side of the screen. After you have pressed the zero through F, they will disappear and be replaced by the DS segment value you input. Using a mouse, you would click over the and then click over the zero to F on the second line at the top of the screen to change segments. In EDIT MODE, MEMORY on the left of the screen always displays the BEGIN location, VALUE on the left of the screen displays the hex value of the MEMORY location, the bottom left of the screen displays the disassembled instruction for the byte/bytes beginning at the displayed MEMORY location.

To switch from EDIT MODE to MODIFY MODE press the F2 key. EDIT MODE (green) then changes to MODIFY MODE (yellow = caution) if you are not in the BIOS or EDMOD memory regions. If you are in the operating system/BIOS regions, then MODIFY MODE changes to red (extreme caution).

With MODIFY MODE red, the program will NOT modify the BIOS/operating system, your program IF it loaded EDMOD, and EDMOD regions. The program simply ignores ASCII and hex input though all arrow keys plus Enter, PgUp, PgDn, etc., are active. This feature protects the novice user from inadvertently locking up the system. See OVERRIDE PROTECTION later.

The large blinking cursor now appears at the top left of the rectangle. It may be moved with any of the arrow keys on the key pad, plus Home, PgUp, PgDn, and End on the keypad. When the large blinking cursor is moved, MEMORY is updated, VALUE at the new location is updated, and the disassembled instruction at the new location is displayed on the bottom left of the screen. The large blinking cursor may also be moved by clicking the mouse over the new location desired. It will beep to tell you that it has moved the cursor. The mouse cursor is gray and the large blinking cursor is bright white.

In MODIFY MODE, the keypad's + key will change DISASSEMBLY on the left of the screen from green to yellow to let you know it is trying to disassemble the instruction beneath the cursor and then move to the next instruction. Obviously you must know where an instruction begins for it to logically disassemble correctly. If you do not know where an instruction begins keep pressing the right arrow key until you find a RET (return) instruction or a series of PUSH or POPs and it will most likely disassemble correctly thereafter.

All zero values are displayed as an ASCII 30H zero so you are not looking at a blank page as illustrated on the first page of EDMOD.DOC.

In MODIFY MODE (yellow NOT red), pressing any ASCII key will place its value beneath the large blinking cursor and advance the cursor. If you wish to input any value in hex, press the F3 key. Two blinking yellow ?? will appear next to HEX on the left of the screen and you must now type in two hex values from zero zero to FF. After the second value is typed, the blinking ?? will disappear, the hex value inserted in memory will appear beneath the cursor, and the cursor advanced one byte. Needless to say, EDMOD cannot modify ROM memory, which is often at/above segment C000H. If you are at/above segment C000H, EDMOD will tell you whether or not it is ROM memory or empty space.

EDMOD is not a replacement for Debug, but rather a different approach to editing and modifying memory.

EDMOD.OBJ contains a number of help/explanation pop-up windows that follow:

F1 help key or mouse click over F1 Help pops up:

F8 key pressed pops up:

All disassembled addresses/memory locations are in hex.

The instruction MOV DI,CS:[Bx+Si]+7000H is displayed as follows at the lower
left of the video display. The colon is a reminder that the CS is an override.


In Edit Mode pressing the D key pops up:

In Edit Mode pressing the H key pops up:

Only idiot savants can calculate FFFFFFFF hex to 4294967295 decimal.

These decimal and hex conversion options are provided since the Pentium can handle some very large numbers; i.e., well beyond a gigabyte.

GOEDMOD.COM is the tiny 200 byte or so command line loader for EDMOD.OBJ. It simply loads it to 9000H:8000H and then does a far jump to 9000H:8011H.


On drive C's root directory (C:\) type MD EDMOD (make directory) and press Enter. GO to the C:\EDMOD subdirectory. Assuming that the unzipped files GOEDMOD.COM, EDMOD.DOC, EDMOD.ICO and EDMOD.OBJ are in A:\ drive, copy them to C:\EDMOD. Now type WIN to go to Windows.

Under [FILE] click New. Click Program Item. In description type EdMod. In Command Line type GOEDMOD.COM In working directory type C:\EDMOD and click Change Icon. If EDMOD.ICO appears, click Ok and continue.

If for some reason Windows tells you it cannot find EDMOD's icon (EDMOD.ICO), click OK and then click [Browse]. Change the directory to C:\EDMOD and click [OK]. Now, click EDMOD.ICO and you are all set. Finish up and the EDMOD icon will appear in whatever group you installed it in.

Double click the EDMOD icon and presto-change-o you are in EDMOD at segment 9000H offset 0000H. Pressing the Esc key will return you to Windows.


[Bx+Si], [Bx+Di], [Bp+Si], and [Bp+Di] are displayed as: [BxSi], [BxDi], [BpSi], and [BpDi] due to space limitations.

The EDMOD.OBJ program is 'freeware.' No strings attached, no nagging screens asking for payment to register, and no Mickey Mouse deleting from memory after 30 days use. Enjoy.

This was written for Windows 3.1 long ago. Long before I retired.and misplaced the source code.

Good luck.

uggs cyber monday