Mail Archives: djgpp/1997/02/11/12:36:53
On Tue, 11 Feb 1997, Klaus Fricke wrote:
> Using FlashTek's X-32VM DOS Extender I have been trying to call
> INT13h / Function 02h and 03h to read and write to a disk sector.
> However, aparently I do not address the register es:bx (or es:ebx)
> properly with the buffer address.
>
> How do I pass on the address of my buffer to es:bx ?
> FP_SEG and FP_OFF, as used under 16-bit DOS, seem to fail.
Every DOS extender has a memory buffer in the low 1 MByte range of your
memory, called the transfer buffer. It is used to pass data from your
protected-mode programs to DOS or BIOS. Since real-mode DOS cannot
access addresses above 1MB mark, you must do that for every service that
requires a pointer to a buffer. You will have to dust out your reference
for FlashTek and look it up for the way to do that there. It should
provide a way to move data to and from the transfer buffer and the way to
get the real-mode address of that buffer, which you then pass in ES:BX.
- Raw text -