Back to Top Last Update : Thursday, 31-May-2007 09:29:14 中國標準時間

QCDROM V4.2 - DOS UltraDMA CDROM Driver QCDROM42.ZIP (8.6 Kb)
With many thanks to Jack, he email me about the latest bug found on the Q-drivers:

With regret, there are problems with the QHIMEM, QCACHE/QDMA, and QCDROM drivers.

QHIMEM returns a zero error-code in the BL-reg. on successful XMS requests. It is NOT clear in the V3.0 XMS Specs that one cannot do this. The de-facto standard expected by a few programs is to handle this as Gates & Co. did in HIMEM.SYS and AVOID setting the BL-reg. for no XMS error. If using such programs, e.g. I_CACHE, QHIMEM may cause failures.

QCACHE/QDMA/QCDROM all use XMS memory to handle I-O requests that have user buffers "misaligned" for UltraDMA. But, they must use an XMS data "move", which requires giving the XMS manager the I-O buffer address in segment:offset form. Most XMS managers merely convert the address to a 20-bit value, which does NOT work if the segment denotes memory "mapped" by EMM386 and other EMS managers, e.g. a buffer address of D000:0000h may NOT represent memory at a 32-bit address of 000D0000h!

You're warned NOT TO USE the Q-drivers on daily operation until you make sure your own configurations was tested and they worked without any problem.

What is QCDROM?

QCDROM is a DOS driver for ATAPI-standard CD-ROM and DVD drives attached to normal PC system IDE channels. It does NOT run SCSI units, serial-ATA, nor "add-on" cards.


Because most DOS CD-ROM driver programs were never updated to use UltraDMA! They still do only "PIO mode" input. This limits CD-ROM drives to between 2 and 10 MB/sec data transfers.

QCDROM can run up to three CD-ROM or DVD drives. It handles both data and "audio" disks. With new UltraDMA drives, QCDROM does data input at speeds up to 66 MB/sec.! QCDROM can also be used on older systems with a regular IDE controller (no UltraDMA). It also runs non-UltraDMA ATAPI drives using "PIO mode" data input.

If the V3.2+ QDMA hard-disk driver is used, QCDROM will "share" QDMA's XMS buffers. This avoids "PIO mode" on CD/DVD input requests that cannot use UltraDMA. QCDROM can now set its own XMS buffers if QDMA is not present. XMS also allows QCDROM to be loaded and run in UMBPCI upper-memory! This saves low-memory space for user programs!

QCDROM has advanced features such as a local-stack, load-time 80386+ check, and user switch options. It requires 2304 bytes of memory and has a 4K object-file size. V2.9+ QCDROM is revised to "match" the simplified V3.2+ QDMA driver and avoid much unneeded logic.

See the README.TXT file for full information, configuration examples, and optimization tips.

** Notes **

Due to incessant, unfavorable posts on FreeDOS forums, this driver is PROHIBITED from use with FreeDOS and will now ABORT if loaded in that system. Using this driver in all other DOS systems (MS-DOS, EDR-DOS etc.) is still supported and is unaffected.

Due to unrepentant "hacking" of these drivers by Czech and Russian users, and unauthorized distribution by German and other users, their source files have been erased and there will be NO further upgrades to QHIMEM, QCACHE, nor QCDROM.

The author regrets having to take this action but WILL NOT condone these drivers being stolen by DISHONORABLE people!

Revision History
End of development19-Apr-07 Quote from his email:

"I deleted all files for V5.7 QCACHE, V3.8 QHIMEM, and V4.2 QCDROM. My CD-RW masters were updated without them, and I did a full 7-pattern "DoD erase" of all partitions on my hard disk.

The QCACHE/QCDROM/QHIMEM binaries are now "orphans" without any source files. In my opinion, the THIEVES made this necessary."
V4.214-Jan-07 QCDROM updated to work with V3.8+ QHIMEM.
V4.110-Jan-07 V4.1 10-Jan-07 QCDROM corrected to post "no disk in drive" status.
V4.029-Dec-06 QCDROM works again in VMWare! Many Thanks to Erwin Veermans for his help!
V3.98-Dec-06 Corrected a load-time ERROR in QCDROM.
V3.86-Dec-06 Using this driver with FreeDOS is now PROHIBITED! See the README for details.
V3.712-Nov-06 QCDROM "A20 line" handling corrected.
V3.69-Nov-06 QCDROM stack increased.
V3.52-Nov-06 QCDROM /I switch added, to avoid "odd" BIOS problems if QDMA is not also used. Many Thanks to Japheth "The MASTER" who found and solved this problem!
V3.424-Oct-06 QCDROM updated to support the coming QXHIMEM driver. DELETED all V3.7 QDMA and V3.3 QCDROM changes!
V3.315-Oct-06 QCDROM no longer requires XMS memory with UMBPCI!
*** Please roll back to QCDROM v3.2 since v3.3 may have potential problem ***
V3.211-Oct-06 QCDROM now has a /X switch and can omit its stack if used with SHCDX33A, saving 320 bytes of memory!
V3.11-Oct-06 Added QCDROM /A switch for alternate EIDE addresses.
V3.021-Sep-06 QCDROM now handles the Intel 82801EB chipset! Many Thanks to Japheth "The MASTER" for his help!
V2.98-Sep-06 QCDROM revised for the no-overlap V3.2+ QDMA/QDBOOT.
V2.815-Aug-06 QCDROM now reserves its own XMS memory and will load and run in UMBPCI upper-memory, if QDMA is unused.
V2.77-Aug-06 QCDROM updated to support V3.0 QHIMEM and QHIMEM2.
V2.611-Jul-06 QCDROM upgraded for fast V2.8+ QHIMEM XMS moves.
V2.58-Jul-06 QCDROM now loads in UMBPCI upper-memory and uses "PIO mode" input when needed, if QDMA reserves only one XMS buffer.
V2.430-Jun-06 QCDROM now uses an "Int 13h" to find QDMA, which avoids temporary-memory problems. QCDROM is now V2.4 to match QDMA. XMS buffers are now assigned one per driver, not per I-O channel.

[V2.2 and V2.3 were never used by QCDROM].
V2.123-Jun-06QCDROM updated to work with V2.3+ QDBOOT.
V2.030-Mar-06 QCDROM/QDMA "linkage" revised to support EMM386 (Microsoft EMM386 v4.49 and v4.95).
V1.216-Mar-06 QCDROM can now load in UMBPCI upper-memory, when V1.4+ QDMA and "shared" XMS memory is present.
V1.108-Mar-06 QCDROM now "shares" V1.4+ QDMA's XMS buffers, to avoid "PIO mode" and gain more speed! Added support for up to 3 CD/DVD drives.
V1.020-Feb-06Original release.