delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/08/08:01:05

From: ps AT ocisgi7 DOT unizh DOT ch (Serge Pachkovsky)
Subject: Re: _bios_disk() inefficiency
Newsgroups: comp.os.msdos.djgpp
References: <Pine DOT SUN DOT 3 DOT 91 DOT 980308133407 DOT 22686H-100000 AT is>
NNTP-Posting-Host: ocisgi7.unizh.ch
Message-ID: <35029541.0@rzunews1.unizh.ch>
Date: 8 Mar 98 12:55:29 GMT
Lines: 26
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) wrote:

: advice.  Theoretically, you could make a DJGPP version 1000 times
: slower if you, for example, called the BIOS for every byte you needed
: to read.  Calling BIOS requires a mode switch which is slow, so you
: should make as few calls as you can.  In particular, reading more of
: the disk at a time and then working on data in memory should speed
: your program a lot.  In DJGPP, you could even read an entire diskette
: into memory in one swell whoop.

No Eli, you can't - most floppy disk BIOSes do not support reading more
that one cylinder's worth of data in a single call. Even if your particular
BIOS can do it (something you shouldn't rely upon), 8-bit DMA channel
used by floppy drives won't allow you to transfer more than 64Kb worth
of data without re-initialization. Even if your BIOS can miraculously
circumvent this limitation, you won't have enough low memory to buffer
the data coming from a single HD floppy anyway. Don't I love PCs...

Regards,

/Serge.P

--

Russian guy from the Zurich university...

- Raw text -


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