Date: Tue, 11 Feb 1997 19:25:33 +0200 (IST) From: Eli Zaretskii To: Klaus Fricke <106123 DOT 2617 AT compuserve DOT com> cc: djgpp AT delorie DOT com Subject: Re: FlashTek's x-32vm Library In-Reply-To: <330115E2.585D@compuserve.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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.