• Please review our updated Terms and Rules here

Need PC memory dump utility!

Twospruces

Veteran Member
Joined
Dec 9, 2009
Messages
787
Location
Canada
Hi,
I am in need of a DOS command line utility that can read memory from a range of addresses and write it to a binary file.

I need the utility to run from a command prompt and make minimal changes to the video.

Ideas? Thanks.
 
This smells like a small exercise in assembly (or C/Pascal) DOS programming.
 
You've already ruled out debug with redirecting a "script" from a file on standard input, and redirecting its output to a file or to nul?
 
Way back when I was working with SIMCGA, I wrote a debugger that booted itself, loaded into high memory and then reduced the amount of memory in the BIOS to compensate and then booted whatever was in the A: drive. It was necessary to figure out what was going on with some self-booters. I don't know if I kept the code.
 
Do you mean:
Specify the target address range as an option in the command line, and no screen output. Instead, screen wise, unless there is a problem, the program simply returns the DOS prompt ?
Yes. I need to inspect the video ram contents to confirm that the garbled character I see is actually in the video ram.
 
If, indeed, you are interested mainly in video memory the gwbasic commands

10 DEF SEG=&HB800
20 BSAVE"PICTURE", 0, 16384

...might fit the bill and you have to admit it is low-effort :)

Interesting you are right. I suppose I'd need to start gwbasic first or if I am lucky the error happens while gwbasic is running.
 
so I wrote a Turbo C utility; works well.
I was able to capture the data I was looking for.

In my Z-171, running a V20 processor creates a problem where the video data is actually not written correctly to the video buffer.
Example.
you might type a command at DOS prompt like:
A:\>memdump test.bin 0xB800
but you actually see
A:\>me dump test.bin 0xB800

notice the 2nd m is shown as a blank. The command itself is fine, just the rendering of the screen is wrong. You can see in the actual video buffer that the "m" is in fact " " in the video buffer.

So this is what I was trying to confirm. The V20 somehow writes improperly to video ram. Everything else is working fine.

weird.
 
Last edited:
Few questions...

Does this missing character always happen on the same position on the screen?

When the screen scrolls, does the bad character move with it and does the line that replaces where the bad one was display the correct one?

Do you see any corruption in other video modes, like games/graphics?

What kind of display are you using, the built in display and CGA compatible display adapter?

Have you tried subbing in another video card to see if that makes a difference? It has an ISA expansion slot right? Do you have an MDA card to try?

You said that the V20 causes this to happen. So it did not do this before of you had an 8088? If you did replace the existing processor, was it an 8088 or an 80C88?
 
Last edited:
Few questions...

Does this missing character always happen on the same position on the screen?
no, random
When the screen scrolls, does the bad character move with it and does the line that replaces where the bad one was display the correct one?
line feeds roll the screen up, errors and all.
Do you see any corruption in other video modes, like games/graphics?
nope.
What kind of display are you using, the built in display and CGA compatible display adapter?
built in LCD display
Have you tried subbing in another video card to see if that makes a difference? It has an ISA expansion slot right? Do you have an MDA card to try?
not really possible with the hardware I have. I do have an ISA extender board, but I don't have a video card.
You said that the V20 causes this to happen. So it did not do this before of you had an 8088? If you did replace the existing processor, was it an 8088 or an 80C88?
problem does not occur with the existing CPU.
Existing CPU is 80C88 OKI. Presumably this is rated at 5MHz.
Problem only shows up when using the V20 which is a -16 part.

My next test will be just to read/write to video ram and see if it ever registers a mismatch. it should. IE repeatedly write 0xA0 to 0x0B800:0x0000 and see if it always reads back 0xA0.
 
Back
Top