delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/02/11/12:36:53

Date: Tue, 11 Feb 1997 19:25:33 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
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: <Pine.SUN.3.91.970211192139.5506G-100000@is>
MIME-Version: 1.0

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019