mojo@netcom.UUCP (Morris Jones) (07/07/90)
This information was provided by Dan Quigley at MS, and I found it to be very useful for accessing memory in the Real Mode memory (first 1MB): --quoted-- Windows 3.0 Kernel exports several selectors for just this purpose. All of these exports are meant to cover the area below 1 mb (physical). If you need access to other areas of memory then you will have to synthesize a selector for that purpose. I will leave the discussion of selector synthesis for another time. (You should have the DDK for that). Anyway, these are the selectors that are exported by Kernel: __0000h __0040h __A000h __B000h __C000h __D000h __E000h __F000h Each of these selectors has a limit of 64k. This is how you use them. // written for your specfic case but easily modified for others extern WORD _F000h; // note the single underscore here LPSTR MySelectorOffset; // or WORD FAR * or whatever MySelectorOffset = (LPSTR) MAKELONG(0xFFFx,&_F000h); // note the & Make sure that you do not extend beyond the end of a segment or change the selector (you will GP fault). Remember that you are in protect mode and you have access to memory that Windows or its drivers assume exclusive control. Dan Quigley (MSV) -- Mojo mojo@netcom.UUCP Morris Jones Campbell, CA