1. About XCDROM32 XCDROM32 is a JLM based on Jack R. Ellis' XCDROM Ultra-DMA CD-ROM driver. It supports PCI IDE controllers running in "legacy" or "native" mode. To load it, add the following line to your CONFIG.SYS: DEVICE=JLOAD.EXE XCDROM32.DLL [options] Options are: /32 use 32bit-IO in "PIO mode". This might not work with all devices, but if it does, it usually gives a speed boost for that mode. /AX disable "audio" functions. /D:name set device name. If this option is missing, the default device name is "XCDROM$$" /F "fast", uses DMA "scatter/gather" lists to allow transfers which cross a physical 64 kB address boundary. Might not work with all controllers. /L limits DMA to "low memory" below 640 kB. /Mn set/restrict UDMA mode to n (0 <= n <= 7). /P:VVVVDDDD set PCI vendor and device ID for IDE Busmaster controller to search for. This option might be useful if the PCI Bios doesn't support to find a PCI class code (Int 1Ah, AX=B103h). /Q quiet mode. /UX disables UltraDMA for all drives and uses "PIO mode" generally. /W handle (non-UDMA) drives which are capable of Multiword-DMA. XCDROM32 has 3 modes of operation: 1. "direct" mode: the target address is used for DMA input. This usually is the fastest way and is used whenever possible. 2. "buffered" mode: the VDS DMA buffer is used for DMA input, then the content is copied to the target address. This mode is used if "direct mode" can't be used because target address is not aligned properly or - if option /F isn't set - because the target region crosses a 64 kB boundary. On modern CPUs the additional time needed for the memory copy should be negligible. 3. "PIO" mode: input is done without DMA. This mode should work with any IDE controller and CDROM/DVD. It is used if - /UX option is set. - the IDE controller doesn't support PCI Busmaster DMA. - the CD-ROM/DVD device is not in UDMA mode or /W option is set, but CD-ROM/DVD device has no valid Multiword-DMA mode set. - "buffered mode" cannot be used because VDS DMA buffer isn't accessible or is too small. 2. Hints - the best speed is achieved by setting both /F and /32. - if the driver is used in a Qemu (v0.8x or v0.9) VM, add option /P:80867010 to make it find Qemu's IDE controller. - if the driver is used in a VirtualPC VM, set option /W to increase speed. 3. History 06/20/2012: v1.4 - function "get q-channel info" did return track number in binary. - function "get q-channel info" did return value of ADR as CONTROL and vice versa. - function "get audio status" did return start and end address as LBA sector numbers. 05/21/2012: v1.3 - scan for native (=SATA) controllers didn't succeed usually. 12/28/2007: v1.2 - /P, /W and /32 options added, /UF option changed to /F - Jemm's VDS DMA buffer used if user buffer cannot be used. - IDE/DMA ports are now displayed for each unit. 12/03/2007: v1.1 - now both "legacy" and "native" IDE controllers are supported. - some bugfixes. 05/24/2007: v1.0 - initial. Ported from XCDROM v1.9. 4. License XCDROM32 is released under the GNU GPL v2. See GNU_GPL.TXT for details.