ATAPICDD - ATAPI CD Driver for DOS Written by Kenneth J. Davis , 2001-2003 Released to public domain [ U.S. Definition ] Current version is 0.2.0 ALPHA Version # = major.minor.developement (0 for dev == released version) ATAPI code based on public domain C code from Hale Landis' ATADRVR Use at own risk, author assumes no liability nor responsibility for use, misuse, lack of use, or anything else as a result of this program. No warranty or other implied nor given. While use and distribution (even by commercial entities) is encouraged, I (KJD) will not assume any responsibility for this driver's use. Should your local laws not permit this disclaimer, or would otherwise still allow me to be held responsible, then you may not use this driver. Other persons or entities may provide a warranty or other if so desired and stated or implied by method of recieving this driver; I am not affiliated with them. Please send bug reports to me so that they may hopefully be fixed. If possible please include your contact information (email address) so I may ask you further details or to verify it as fixed. Fixes will be supplied as my time permits. USAGE: Load device driver from CONFIG.SYS (or dynamic device loader such as DEVLOAD) device=[drive][path]ATAPICDD.SYS device= standard method of loading a device in CONFIG.SYS [drive][path] drive and/or path to device driver file ATAPICDD.SYS the driver itself, if renamed use appropriate filename supported command line options, /D, /N, /K, and /C Options are processed left to right, with rightmost one overriding any before it invalid options will be silently ignored (and may screw up rest of processing) Only /D and /N are specified by CDEX document, the remaining are extensions and subject to change in future revisions (to avoid conflicts with existing practice) /D: - will set the device name field (DOS device) to - default is 'FDCD0000' - if is less than 8 characters then space ' ' padded on right to 8 bytes - if is more than 8 characters, the rest are ignored /N:# - specifies to look for # devices - default is 1 (as per spec) - maximum value is 8 (up to MAX_CONTROLLERS*2 are supported), higher values are ok - a value of 0 indicates search for maximum devices - # is a single HEX digit, remaining characters are ignored /K:# - specifies to ignore controller # - # is the index into the controller table, which normally refers to IDE 0,1,2,3 - # is a single HEX digit, remaining characters are ignored - if # refers to a value < 0 or >= MAX_CONTROLLERS it is ignored /C:#, [ TODO ] - overrides default value of base I/O address of controller # - # see /K for description of # (controller index) - , is required separator, as future revisions may expand # to larger than nibble - is HEX base I/O port address, e.g. 1F0 - Default locations to look for ATA/ATAPI devices: controller(#) baseI/Oaddress primary (0) 0x1F0 secondary (1) 0x170 tertiary (2) 0x1E8 quaternary(3) 0x168 /I [ reserved for future change interrupt # ] EXAMPLES: Load driver with all default values, look on all 4 standard controller locations for devices, stop search after finding 1 device, and use device name of FDCD0000 device=ATAPICDD.SYS Load driver but only check 2 primary controller locations device=ATAPICDD.SYS /K:2 /K:3 Load driver specifying device name of ATAPICDD and search for all available (and supported) devices device=ATAPICDD.SYS /D:ATAPICDD /N:0 Load driver looking for 2 devices, but one of the devices is on the primary controller and the other is on a secondary controller with a different base I/O port address of 0xABC (note: we can use 1,2,or 3 as # to /C since there is no device on any of them, but using 1 prevents unnecessary searching) device=ATAPICDD.SYS /C:1,ABC /N:2 Load driver but search on secondary controller before primary device=ATAPICDD.SYS /C:0,170 /C:1,1F0 Load driver with options that result in default behaviour, notice how rightmost option overrides earlier one device=ATAPICDD.SYS /C:0,170 /C:0,1F0 Load driver, explicitly setting same options as default device=ATAPICDD.SYS /D:FDCD0000 /N:1 /C:0,1F0 /C:1,170 /C2:1E8 /C3:168 NOTES: This is an early release, not intended for public distribution. It may contain debug or experimental code. Note the link specified below is intended to be the permanent home (i.e. where you can link and tell others to find it). Requires at least a 80186, though only tested on a 486 and higher. Presently only works in PIO mode, though future work will add DMA modes. Also only implements minimal functions necessary for data transfers. Future releases will add audio play/stop support. Should support up to 8 drives, but primarily tested with only 1 CD-ROM drive and occasionally on a system with 2 CD-ROM drives. Personally works for me on a 486/CD-ROM, 586/DVD-ROM, and a PentiumII/DVD-ROM system. Latest version of driver may be found at: http://www.darklogic.org/fdos/projects/atapicdd/ This document also public domain. 20030621