[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: accessing PCI memory in Windows 95 DOS Box
In a DOS session outside Windows (without a memory manager), memory
is mapped one-to-one linear to physical.
Inside Windows, it's not. Instead, your program needs to recognize
that it is inside Windows (use a DOS API such as INT 2Fh, AX=1600h),
and then when it is, map the physical memory you want to access to
linear memory by (among other ways) calling a DPMI API (such as INT
31h, AX=0800h). Only then can you reference the physical memory, and
then only via the linear address retunred by the DPMI API.
If you need more details, message me separately.
> We want to access PCI memory in a windows 95 DosBox.
> The PCI memory resides eg on address 0xe4000000 to 0xe40800000
> Everytime we access the memory, we get an invalid page exception.
> The program is written in turbo pascal and works great in plain DOS (so no
> DOSBOX), so I am pretty sure the code is correct .
> Do we have to reserve the memory or ..... any other suggestions?
> "There are two ways to write error-free programs; only the third one works."
> Alan J. Perlis.
Bob Smith - email@example.com - http://www.sudleyplace.com
a.k.a. firstname.lastname@example.org - http://www.qualitas.com