www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/01/09/08:36:06

Date: Sun, 9 Jan 2000 15:34:31 +0500 (MVT)
From: Prashant TR <prashant_tr AT yahoo DOT com>
To: djgpp AT delorie DOT com
Subject: Re: biosdisk & int 13 extensions
In-Reply-To: <jvUd4.14451$Ak.200392@news1.mia>
Message-ID: <Pine.LNX.4.10.10001091531110.570-100000@yahoo.com>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: dj-admin AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Sat, 8 Jan 2000, Angelene and Klaus Thane wrote:

> Inp.:
>  AH = 48h
>  DL = drive (80h-FFh)
>  DS:SI -> buffer for drive parameters (see #0183)
> Return: CF clear if successful
>      AH = 00h
>      DS:SI buffer filled
>  CF set on error
>      AH = error code (see #0144)

You can't use this with biosdisk, since the normal buffer for other calls
of INT 13h use ES:DI as the pointer. So, you'll have to use __dpmi_int
directly. The code will look something like this.

__dpmi_regs regs;
regs.h.ah = 0;
regs.h.dl = driveno;
regs.x.ds = __tb/0x10;
regs.x.si = __tb%0x10;
__dpmi_int(0x13, &regs);
if(regs.x.flags & 1) {
	printf("Failed\n");
}
else {
	// Your parameter details are in the transfer buffer.
}


Actually, I remember this as being some other function (not 48h). Anyway,
...

Prashant

- Raw text -


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