Category : Assembly Language Source Code
Archive   : PROTEC.ZIP
Filename : EDMOD.DOC

Output of file : EDMOD.DOC contained in archive : PROTEC.ZIP
Edit/Modify 1024K Mem and Kiss Disassembler copyright 1977-1993
(c) R. Richardson 0123456789ABCDEF Pentium alpha 1.0
BEGIN º 0000000000000000000000000000000000000000000000000000000000000 º DSseg
0000 º 0000000000000000000000000000000000000000000000000000000000000 º 9000
º 0000000000000000000000000000000000000000000000000000000000000 º
MEMORY º 0000000000000000000 do not use mouse if 0000000000000000000 º CSseg
0000 º 0000000000000000000 from protected mode 0000000000000000000 º 9000
º 0000000000000000000000000000000000000000000000000000000000000 º
VALUE º 0000000000000000000 each page displays 0000000000000000000 º ESseg
0000 º 0000000000000000000 1024 bytes of memory 0000000000000000000 º B800
º 0000000000000000000 in ASCII & extended 0000000000000000000 º
EDIT º 0000000000000000000 ASCII 0000000000000000000 º SSseg
MODE º 0000000000000000000000000000000000000000000000000000000000000 º 9000
º 0000000000000000000 zero values are 0000000000000000000 º
DISAS- º 0000000000000000000 displayed as ASCII 0 0000000000000000000 º SP
SEMBLY º 0000000000000000000000000000000000000000000000000000000000000 º FCF6
º 0000000000000000000000000000000000000000000000000000000000000 º
HEX º 0000000000000000000000000000000000000000000000000000000000000 º END
º : Up 1024 bytes º : Move cursor º
ADD º : Down 1024 bytes º : <- ^ v -> º F1
[Bx+Si]º : Toggle modify mode º : Change Seg 0 - F º Help
AL º : Hex modify º : Disassemble Memoryº

by: R. Richardson, PO Box 1065, Chautauqua, NY 14722

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 from DOS or Windows 3.0,
Windows 3.1, or Windows NT.

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 programs are assembled using the world's finest and fastest assembler,
A386.COM from: Eric Isaacson Software, 416 East University Avenue, Blooming-
ton, Indiana 47401, phone: (812) 339-1811. A386.COM is 10 times faster than
either Borland's or Microsoft's assemblers. He was the author of Intel's
first ASM86 assembler in 1980 and the author of his PBS 'Trophy' and PBS 'Best
Seller' award-winning A86 Macro Assembler in 1987 (for 8088 & 80286).

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 may be on any drive in any directory so
long as they are all in the same directory that runs GOEDMOD.COM (unless you
are running EN.EXE, the protected mode demo program which requires that all
EDMOD files be located in C:\PROTECT).

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

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

DO NOT count on the above feature IF running the protected mode demo, as EDMOD
is not aware of the protected mode DS and CS segments.

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

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.

If the user wishes to access EDMOD.OBJ from his/her own program:

1. User program loads EDMOD.OBJ's 28000+ bytes to 9000H:8000H.
2. User program loads its code segment to 0000H:0300H and hex 4FH
to 0000H:0382H.
3. User program goes to EDMOD.OBJ via far jump JMP 9000H:8011H.
4. User program's first 15 bytes should be NOPs for EDMOD's return.
5. This allows the user to go to EMOD.OBJ and then return to his/
her program by pressing the shift F1 keys in EDMOD.
6. Most all our programs incorporate this feature.

We write assembly language IBM touchscreen information systems for hospitals,
medical centers such as Kaiser, and industrial sites such as the Ford Research
Center, throughout the U.S. and Canada. EDMOD is our must useful tool and is
often used 10 to 20 times a day during programming.

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

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

º EDIT MODE (green) º
º Esc key DOS> prompt or Windows º
º Shift F1 ret ur pgm if 0000:0300 set º
º F6 key display any directory º
º D key decimal to hex converter º
º H key hex to decimal converter º
º S key global search ASCII/hex º
º F8 key using the KISS disassembler º
º F9 key zeros out entire segment º
º F10 key zeros out displayed page º
º note: will not zero BIOS or EDMOD º
º MODIFY MODE (yellow) º
º ASCII key modifies mem beneath cursor º
º F2 key toggles back to EDIT MODE º
º F3 key input hex beneath cursor º
º keypad directions keys active º
º MODIFY MODE (red) if in BIOS or EDMOD º
º press F7 to display this EDMOD.DOC º

F8 key pressed pops up:

º This Pentium alpha 1.0 version of EDMOD º
º displays most real mode 80386, 80486 andº
º Pentium instructions. The auto cursor º
º advance and reg/mem is wrong on a few. º
º These will be corrected in version 1.1 º
º In MODIFY MODE the lower left corner of º
º of video displays the disassembled º
º instruction beneath the large cursor. º
º To disassemble correctly you must start º
º with the cursor over the 1st byte of theº
º instruction and then press the keypad + º
º key to advance to the next instruction. º
º If you do not know where the instructionº
º begins, backup or go forward a byte at º
º time using the left or right arrow keys º
º until you find a series of PUSH or POPs º
º or a RET. Starting disassembly from º
º there will most likely be correct. º

All disassmbled 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:

º Input up to 8 digits 0-9 and press Enter º
º º
º Decimal: º
º º
º Hexadecimal: º
º º
º Press Enter to restart decimal conversionº
º º
º Please press Esc to return to EDMOD º

In Edit Mode pressing the H key pops up:

º Input up to 8 numbers 0-F and then Enter º
º º
º Hexadecimal: º
º º
º Decimal: º
º º
º Press Enter to restart hex conversion º
º º
º Please press Esc to return to EDMOD º

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 the gigabyte magnitude.

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.

EDMOD.OBJ is not a terminate-and-stay-resident program. As such, if you are
accessing it from your own program after it has once been loaded, test
9000H:8000H for an E9H byte (jump instruction), and if not there, re-load it
before jumping to 9000H:8011H. From a hard disk it loads in less than a


On drive C's root directory (C:\) type MD EDMOD (make directory) and press
Enter. GO to the C:\EDMOD subdirectory. Assuming that the uzipped 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.


If for some weird reason you wish to have MODIFY MODE be able to modify the BIOS/operating system, your program IF it loaded EDMOD.OBJ, and the EDMOD region of memory, then here is how to override this protection feature.
1. In EDIT MODE, press S for the global search function.
2. Do a global search for: 26H 80H 3EH 21H 08H 0CH (use F3 key for hex).
3. These bytes = ES CMP [0821] 0C = test MODIFY MODE red.
4. Write down the segment found (9000H) and location ______H. Go to it.
5. Switch to MODIFY MODE with the F3 key.
6. The next instruction is 75H E9H = JNZ +0005 = ignore if NOT red.
7. Change the above 75H = JNZ short to EBH = JMP short. You may now bugger
up the operating system if you wish. The worst you can do is lock it up,
forcing you to do a cold reboot. It should not harm your computer.


Gurus who read the above paragraph will have noted that the F3 key (hex
input) in MODIFY MODE red, is not locked out. We (editorial we) have not
locked it out intentionally. Yes, a novice can bugger up the operating
system via the F3 key, but it takes considerable effort.


Feel free to upload the zipped EDMOD.OBJ, EDMOD.DOC, EDMOD.ICO and GOEDMOD.COM
to your BBS. Our only condition/request is that you not modify or change
these programs in any way or fashion.


This Pentium version 1.0 of EDMOD disassembles and displays the correct Real
Mode instruction for most 80386, 80486 & Pentium instructions but incorrectly
disassembles a few register/memory references and cursor advance values.
Floating point instructions (math coprocessor installed on 80386 or using an
80486 or Pentium), display 'Floating Point Instruction' rather than the
arithmetic instruction to follow the KISS guidelines.

The next upgrade to EDMOD.OBJ will include correct register/memory disassembly
of all of the Real Mode Intel 'Pentium' (tm) instructions.


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

EDMOD.COM is assembled using Eric Isaacson Software's A386.COM assembler as
mentioned earlier. It will not assemble correctly using Microsoft's or
Borland's assemblers. No warranties, no guarantees, no suitability or fitness
for purpose are made.

  3 Responses to “Category : Assembly Language Source Code
Archive   : PROTEC.ZIP
Filename : EDMOD.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: