My "belated" reply to an FD-User post by Bill Haught, dated 2014-07-18
12:36:17 and answered below by Tom Ehlert. I planned to stay silent,
but all of the following "BEGS to be addressed!" --
>> As I mentioned earlier, Freedos requires a ATA legacy mode in BIOS,
>> which I don't have.
Tom is correct to say "Wrong". All DOS variants merely issue Int 13h
I-O requests for BIOS disks/diskettes and could not care what "mode" a
BIOS uses to do a request. Any hard-disk controller, from old IDE to
new AHCI, is supposed to have a "legacy" mode that can handle such I-O
so a PC can at-least "boot" from its BIOS units via "common" commands.
>> Found this in the archives
>> "UIDE/UIDEJR can run AHCI drives on mainboards that have a "legacy"
>> or "native IDE" setting for AHCI controllers, i.e. the drives can be
>> addressed using standard SATA/IDE I-O logic."
Obsolete. Since 2012, to handle MISERABLE "Virtual Box" which FAILS
to emulate all SATA/IDE commands, UIDE and UHDD have had a /E switch,
which tells them to "call the BIOS" for hard-disk I-O. /E helps for
pre-1994 systems with no PCI BIOS (needed to get UltraDMA addresses),
and it should handle disk I-O on AHCI systems which offer NO "legacy"
controller settings for a mainboard. AHCI controllers are supposed
to use boot-up "legacy" mode, until an operating-system driver ORDERS
them into "Native AHCI" mode. UIDE/UHDD never issue that order, so
"legacy" AHCI mode should remain active and should work fine for DOS!
> right. UIDE doesn't work on AHCI controllers ...
Tom is WRONG! UIDE/UHDD will run AHCI controllers in "legacy" mode
and/or with their /E switch as noted above. What I REFUSE to do is
add all the GARBAGE needed for Native AHCI in my drivers! Any AHCI
system is supposed to offer some form of "legacy" mode, specifically
for old drivers that cannot (or WILL NOT, in my case!) get upgraded.
"El Cheapo" mainboards from Taiwan which lack any such "legacy" AHCI
mode settings are in my opinion ABSOLUTELY NOT worth anybody's time!
> ... and isn't required for FreeDOS. FreeDOS is perfectly happy
> without UIDE. (UIDE might even get in the way of updating your
> HD firmware.)
Technically correct. But Tom is totally IRRESPONSIBLE to emphasize
"[UIDE] isn't required for FreeDOS"! DOS was designed in 1981, and
it still does single sector I-O for its "FAT" and directory sectors,
let-alone using "normal" IDE (NO UltraDMA) for its Int 13h disk I-O,
also let-alone ancient CD drivers like VIDE-CDD, OAKCDROM, etc., all
of which use NO UltraDMA and do NO "calls" to a caching driver!
Does our phrase "Grizzling SLOW" mean anything to all of you??
Hard disks, and especially CDs/DVDs, at-least need caching for their
directories, which makes them twice as fast. Hard disks and CD/DVD
drives also need UltraDMA, which makes them run twice-as-fast AGAIN!
Most new BIOS chips have disk UltraDMA, but many still omit "Virtual
DMA" logic, meaning that in protected-mode (JEMM386, etc.), the BIOS
CANNOT do UltraDMA! "VDS" calls are the only way to get the 32-bit
address of a "mapped" I-O buffer, when running protected-mode, since
only JEMM386/EMM386 can say how they mapped memory! FOOLISH, for a
BIOS to have UltraDMA without "VDS". But THAT is what Taiwan DOES!
I wrote my original UDMA driver in 2003, added caching for directory
sectors in 2006, full caching of ALL disk data later in 2006, and CD
directory/data caching in 2007 (UDVD "calling" UDMA for CD caching),
ALL of which improved system speed! In 2008, I asked my old friend
Luchezar Georgiev how UIDE compared to the I-O speed of his Windows,
and Lucho replied, "You beat THEM, 3 MONTHS ago"! Along with that,
in 1989 I added "XMS only" caching, which permits caches up to 4-GB!
And with my latest 26-Jan-2014 drivers, UIDE/UIDE can set 4 separate
caches (2 in UHDD, re-assembly gives all 4), for CD/DVD "gamers" and
others who want their data retained and not "discarded" due to other
device I-O into only one cache! My drivers do not use "Write Back"
(delayed writes, faster in some cases). But this keeps them SMALL,
versus the 40K+ of SMARTDRV, or 80K+ of Norton NCACHE2. UIDE/UHDD
do 70% of disk I-O directly to/from their XMS memory buffers, saving
unneeded moves; they will cache diskettes and can be called to cache
data for other device drivers; etc.
In summary, I did ALL I COULD, using only 5K bytes of run-time logic
(NO gazillion bytes of "C", and only 1K or upper/DOS memory, as most
of my logic can go in the HMA!), so my drivers would be a "help" for
any and all DOS variants!
Granted, UIDE/UHDD may not be appropriate for "diagnostic" or "test"
work, to "re-flash" hard-disk EEPROMs (quite RISKY, in my opinion!),
or for other unusual cases.
But, if you want FreeDOS (or other DOS variants) to run REALLY SLOW,
try omitting any-or-all of my drivers and "see what happens" to your
I AM NOT trying to "sell" my drivers nor "feather my own nest" as we
say. But I do hope the above, "Once and for all", ANSWERS any such
irresponsible comments like "[UIDE] isn't required for FreeDOS"!!!
Freedos-user mailing list