Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

comp.os.msdos.programmer FAQ part 4/5
Section - - How can I access a specific address in the PC's memory?

( Part1 - Part2 - Part3 - Part4 - Part5 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Airports ]


Top Document: comp.os.msdos.programmer FAQ part 4/5
Previous Document: - How can I find the Microsoft mouse position and button status?
Next Document: - How can I read or write my PC's CMOS memory?
See reader questions & answers on this topic! - Help others by sharing your knowledge
Date: 7 Feb 2002 14:50:10 -0400

 First check the library that came with your compiler. Many vendors have
 some variant of peek and poke functions. For example:

 * In Turbo Pascal, use the pseudo-arrays Mem, MemW, and MemL. Be sure
   you use the correct array for the size of data you want to access:
   byte, word, or double word. Alternatively, use pointers.

 * In Turbo C/Borland C, and in recent versions of Microsoft C, use
   MK_FP; in older versions of Microsoft C, use FP_OFF and FP_SEG.
   (Caution: Turbo C and Turbo C++ also have FP_OFF and FP_SEG macros,
   but they can't be used to construct a pointer.) Be sure to pick the
   right data type: probably "unsigned char far *" if you're planning to
   access bytes and "unsigned short far *" for words. (The "far" isn't
   needed if your memory model uses 32-bit data pointers, but including
   it does no harm.)

 By the way, it's not useful to talk about "portable" ways to do this.
 Any operation that is tied to a specific memory address is not likely to
 work on another kind of machine.

User Contributions:

1
Ben in Seattle
Jun 2, 2026 @ 4:16 pm
Another solution is to use a parallel port loopback plug. It makes the PC think there is a printer attached. The benefit of this is it doesn't require anticipating the problem with ANSI.SYS escape sequences nor does it make you wait half an hour for the "Abort, Retry, Ignore?" prompt, as some versions of DOS do.

Comment about this article, ask questions, or add new information about this topic:




Top Document: comp.os.msdos.programmer FAQ part 4/5
Previous Document: - How can I find the Microsoft mouse position and button status?
Next Document: - How can I read or write my PC's CMOS memory?

Part1 - Part2 - Part3 - Part4 - Part5 - Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
jeffrey@carlyle.org (Jeffrey Carlyle)





Last Update March 27 2014 @ 02:11 PM