Date: Thu, 17 Feb 2000 10:40:08 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Kevin Conder <kconder AT interaccess DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: Need help with BIOS-level floppy commands.
In-Reply-To: <sam90ej72pd28@corp.supernews.com>
Message-ID: <Pine.SUN.3.91.1000217103948.20415T-100000@is>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
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
Precedence: bulk


On Wed, 16 Feb 2000, Kevin Conder wrote:

> 	I am trying to read a floppy diskette that has been formatted with 
> an Ensoniq EPS keyboard (think synthesizer, not typing).  This diskette is
> DS DD and uses 10 sectors/track.  Normal DOS diskettes are formatted as 
> 9 sectors/track.
> 
> 	I have written a program that reads a normal DOS diskette using 
> biosdisk() commands.  I haven't been able to use those commands to read 
> the EPS formatted diskette.

Please always make a point of describing how the problem manifests
itself.  "Unable to use" is very low on information.  What exactly
happens if you use `biosdisk' with these floppies?  Does the program
crash? print an error message? returns an error code? which code?

If you look at the source of `biosdisk', you will see that it assumes
the default 9 sectors/track format, but it depends on this format in
minor ways only, so at least some command parameters should also work
with 10 sectors/track.  I would suggest to try changing `biosdisk' so
that even that small dependency on 9 sectors/track will not fail you.
You could, for example, modify the source so that it assumes 10
sectors/track instead.

> 	I've tried using biosdisk(): cmd = 24, sectors = 10.  But this 
> returns an error, 0xC: command not supported or drive type unknown. 

Command 24 is for hard disks, so it's not surprising it fails for
floppies.  Don't use it, unless you really know what you are doing
(you could easily damage your disk).

I suggest to read the description of the relevant Int 13h functions in
Ralf Brown's Interrupt List, before playing with them.

> 	Does anyone know what else I could use?  I'm not averse to 
> using ioctl() or __dpmi_int(0x13, ...).  I just can't find a lot of 
> documentation that applies to my problem.

If all else fails, ask specific questions here.