ATAINF Version 1.3 - This is the fifth public release of ATAINF. (c) Computall Services 1996 http://web.ncf.ca/aa571 ATAINF - What is it? ------------------ ATAINF is a program I wrote to find the parameters and capabilities of ATA, ATAPI and SCSI drives. ATA drives are more commonly known as IDE or EIDE hard drives, and ATAPI are more commonly known as IDE versions of CDROM drives. There were only a couple of programs out there that would dump some of the paramters of IDE hard drives, but they had no support for CDROM and most of the time they did not follow the ATA specs. ATAINF now supports SCSI drives through the ASPI drivers, ATAPI drives through the ASPI drivers in Windows 95, ATAPI drivers through the ATASPI drivers, and most other drives through the native ATA/ATAPI interface. A number of people were asking when I would support Windows 95. As of version (1.1), it now supports '95 when run in a DOS box. There will not be a GUI version of the program any time soon. I have also added support for SCSI CDROM drives. One note for Windows 95 users: At the moment there is no way to get the information on your ATA drives when running in a DOS box. I'm looking into the problem, and will release a new version if I can get it working. Microsoft seems to have made CDROM drives appear as if they are SCSI drives, even if they are ATAPI drives when running '95. The result of this is that the drive is no longer referred to by IO address, IRQ and device #, but is accessed by Adapter #, SCSI ID, and LUN. I have included a second program called SCSIPING in this distribution which will scan all the ASPI devices on your machine and should show the Adapter #, ID and LUN of any drives. Once I got part of ATAINF running I tried it on a number of machines to make sure that it would run. What I found was VERY interesting. I tried running it on the new Creative Labs HexSpeed drive, and I found that the drive thinks it is a 2x drive and not a 6x drive. It displayed that the maximum throughput of the drive was 353 KB/s instead of 1059 KB/s which is what a 6x drive should display. I then tried running a performance benchmark program on the drive and found I couldn't even get 2x throughput. All I had to do was to take the dump from ATAINF with me and I had no trouble returning the drive to the store because of the crap. I spent $494 CDN for the drive and only got the performance of a $70CDN drive. If I didn't have ATAINF I would have been screwed. The following table will show you how to map the throughput numbers displayed by the program to the speed of the drive. You are going to find many drive manufacturers using different numbers to describe their drives. For example you may find someone describing a 4x drive as 600KB/s. This would be fine if there were only 2048 bytes per sector on a CD, which is the sector size of a plain data CD. In reality a sector is 2352 bytes per sector. On a data CD the extra bytes are sync marks, error checks etc. When you try and start using other modes with the drive, like XA etc, then you will be limited to the 600 KB/s instead of the actual 706 KB/s needed to read XA sectors at 4x speed. Speed Data Rate (KB/s) --------------------------------- 1x | 176 2x | 353 2.2x | 387 3x | 528 4x | 706 6x | 1059 8x | 1412 10x | 1765 16x | 2824 A significant item of information that is returned by ATAINF is whether the can read DA frames or not. The following lines are from my Sony drive which can read DA: Drive does support reading Red Book audio using the Read-CD command Drive does support reading Red Book audio with an accurate stream This means that another of my programs CDDA will indeed work with this drive. I hear from a lot of people who are trying to use CDDA and blame my program for the fact that it doesn't work. By using ATAINF, anyone with an ATAPI drive can tell if is the fault of the drive, the fault of the driver or my fault that it doesn't work. For those of you that are interested CDDA is a program which allows digitally perfect samples from audio CDs. There is a pointer to the most recent version of CDDA on my home page: http://web.ncf.ca/aa571 At this moment the most recent version is 1.6, but may take a while to trickle down through the new Simtel system. Another thing that you can tell with ATAINF is which mode your IDE hard drive thinks it is running, as opposed to the maximum mode it is capable. I found that on my machine my drive could handle up to mode 4, but it was stuck in mode 1. It is just a problem with my drivers, but I would have never known that I wasn't getting the most out of my drive. When running under a DOS window under Win95, some machines may support using ATAPI drives through the ASPI interface. However, bugs in Microsoft's drivers prevent this from working on some machines. I have worked a long time to get this working on a lot of machines, but I can't guarantee it will work on all machines. It has taken a significant amount of effort to get around many of the problems in the device drivers written by Microsoft. It appears to be worth the trouble so that you can have much more control over the drives. To use the ASPI interface to the ATAPI drives in a DOS window under Windows 95, you have to use the /95ATAPI option. As of version 1.3, you can also use ATAINF with ATAPI drives through the ATASPI drivers. These drivers are for DOS and Win95 and usually come as part of "PowerIDE" from Future Domain when you buy their IDE controller. However, as far as I can tell, the drivers will work on any IDE controller, not just the ones from Future Domain. Using the ATASPI drivers is probably the best way to use ATAINF and ATAPI drives. It means that I have the most control over the drive and can bypass all the normal device drivers. In this way I can be sure that the device drivers are not at fault when ATAINF doesn't work. If you have a Future Domain IDE controller and PowerIDE, you are all set. You just have to add the device drivers in config.sys and autoexec.bat. (see below my example) If you don't have a Future Domain product, you will have to find the ATASPI drivers elsewhere. You might want to have a look at Mediavision's FTP site (ftp.mediavis.com), or their web site (www.mediavis.com), where they keep update driver files for many of their products. You might find update drivers for your MV600, which runs on a Future Domain controller. The two lines needed in my config.sys file are: device=c:\ataspi\ataspi16.sys /c:170,15,376h /v device=c:\ataspi\fdatacd.sys /d:mscd000 The line needed in my autoexec.bat file is: c:\ataspi\mscdex /d:mscd000 /v /e How do I use this program? -------------------------- To run ATAINF, you can just run it from the command line and it will do the searching for drives in your system. Because of the tendancy of the industry to rarely follow standards exactly, the search routines in ATAINF may not necessarily find or identify the drives in a machine. I have also added command line options to manually enter IO addresses, IRQ values and device numbers. The IO addresses can be 1f0, 170, 168, 1e0, or 1e8. The IRQ values can be 10, 11, 12, 13, 14, or 15. The device number can be either 0 or 1. When using the ASPI/ATASPI/95ATAPI options you can optionally enter the Adapter number, SCSI ID number and the Logical Unit Number (LUN). The following is a dump of the usage screen that is displayed by the program. ----------------------------------------------------------------------- Usage: ATAINF options /ASPI - Use ASPI drivers to talk to SCSI drive /ATASPI - Use ATASPI drivers to talk to ATAPI drive /95ATAPI - Use Win 95 ASPI drivers to talk to ATAPI drive /ATAPI - Use native mode ATA/ATAPI drivers Options: IRQ - Specify the IRQ of the IDE controller DEVICE - Specify the Device number of the IDE drive IO - Specify the IO address of the IDE controller ADAPTER- Specify the ASPI/ATASPI adapter number ID - Specify the ASPI/ATASPI device ID number LUN - Specify the ASPI device logical unit number Examples: DOS only ATA/ATAPI drive at IO=170, IRQ=15, Device#=0 atainf /io 170 /irq 15 /device 0 DOS only ATA/ATAPI drive at IO=170, IRQ=15 atainf /io 170 /irq 15 DOS only ATA/ATAPI drive at IO=170 atainf /io 170 DOS or Windows SCSI drive at Adapter=0, ID=2, LUN=0 atainf /aspi /adapter 0 /id 2 /lun 0 DOS or Windows SCSI drive: search all Adapters, all IDs, all LUNs atainf /aspi Windows '95 ATAPI drive at Adapter=0, ID=0 atainf /95atapi /adapter 0 /id 0 DOS ATASPI drivers with ATAPI drive at Adapter=0, ID=0 atainf /ataspi /adapter 0 /id 0 ----------------------------------------------------------------------- eg: ATAINF /io 1f0 /irq 14 /device 0 (looks only at drive 0 at IO 1f0 and IRQ 14) or ATAINF /io 170 /irq 15 (looks at both drive 0 and 1 at IO 170 and IRQ 15) The following is a dump from my machine which has a Conner 1.2GB hard drive and a Toshiba 5302 4x CDROM drive: ------------------------------------ ATA_INF 1.3 Copyright (c) 1995/1996 - Computall Services. Running DOS version 6.22 Will scan IO ports for drives Will use default IRQs for IO ports for drives Will scan device numbers for drives Checking for controller at 0x1f0 ... Found controller at 0x1f0 Checking for ATA drive at device 0 ... Found ATA drive at device 0 BIOS Reports Number of Cylinders : 619 Number of Heads : 64 Number of Sectors per Track : 63 ATA Identify Device parameters Model Number : Conner Peripherals 1275MB - CFS1275A Serial Number : EVB8CT2 Hard Disk Reports Number of Cylinders (Fixed) : 2477 Number of Heads : 16 Number of Sectors per Track : 63 Controller Revision Number : 0.28 Able to do Double Word Transfer : No Controller type : a dual ported multi-sector buffer capable of simultaneous with a read caching capability. Controller buffer size (bytes) : 0 Number of ECC bytes transferred : 4 Peripheral Device Type Information: Rotational speed tolerance is > 0.5% Disk Transfer rate > 10MBps Fixed Drive Head switch time >15 usec Not MFM encoded Hard sectored # of secs/interrupt : 16 Current setting 16 Able to do Double Word Transfer : No LBA support : Yes 1219.2MB of LBA addressable 1219.1MB in CHS mode DMA support : Yes IORDY supported : Yes IORDY can be disabled : Yes PIO data txfer cycle timing mode : 1 SW DMA txfer cycle timing modes : none, Active: none MW DMA txfer cycle timing modes : none, Active: 0 ATA-2 features Advanced PIO txfer modes supported : 4 3 Min MW DMA txfer cycle time/word : 120 ns 16.7MB/s Mfg Recommended MW DMA txfer Cycle Time : 120 ns 16.7MB/s Min PIO txfer Cycle Time w/o Flow Control : 270 ns 7.4MB/s Min PIO txfer Cycle Time w IORDY Flow Control: 120 ns 16.7MB/s Checking for ATA drive at device 1 ... No ATA drive found at device: 1 No Data Request: timeout Checking for ATAPI drive at device 1 ... No ATAPI drive found at device 1 No Data Request: timeout ata_status = 0x00 ata_error = 0x00 irq_source = 0x00 Checking for controller at 0x170 ... Found controller at 0x170 Checking for ATA drive at device 0 ... No ATA drive found at device: 0 No Data Request: timeout Checking for ATAPI drive at device 0 ... Found ATAPI drive at device 0 ATAPI Identify Device parameters Device Type : CD-ROM Device Removable : Yes CMD DRQ Type : Interrupt DRQ Command Packet Size : 12 bytes Serial Number : 1100302955 Firmware Revision Number : 1095 Model Number : TOSHIBA CD-ROM XM-5302TA DMA support : No LBA support : Yes IORDY supported : Yes IORDY can be disabled : No Overlap Operation support : No Proxy Interrupt support : No Interleaved DMA support : Yes PIO data xfer cycle timing mode : 0 SW DMA txfer cycle timing modes : none, Active: none MW DMA txfer cycle timing modes : none, Active: none Typical release time after command: 0ns Typical release time after service: 0ns Major version number : Not supported ATAPI Drive Capabilities and Mechanical Status parameters (4a)Warning: No Interrupt Timeout: will continue anyway ATA buffer count returning: 56 bytes Error recovery parameters: 0 Error retry count: 5 Drive Inactivity timer: 32 seconds Number of MSF-S Units per MSF-M Unit: 60 Number of MSF-F Units per MSF-S Unit: 75 Logical Block Per Second of Audio Playback: 0 CDDA Output Port 0 Channel Selection: Channel 0, Volume: 0xff CDDA Output Port 1 Channel Selection: Channel 1, Volume: 0xff CDDA Output Port 2 Channel Selection: Muted, Volume: 0x00 CDDA Output Port 3 Channel Selection: Muted, Volume: 0x00 Maximum Speed (kB/s): 706 Number of Volume Levels Supported: 255 Buffer size supported by drive (kB): 256 Current selected speed (kB/s): 706 Drive does support Audio Play Drive does not support delivering a composite Audio/Video stream Drive does not support digital output (IEC958) on port 1 Drive does not support digital output (IEC958) on port 2 Drive does support reading sectors in Mode 2 Form 1 (XA) format Drive does support reading sectors in Mode 2 Form 2 format Drive does support reading multiple session or Photo-CD discs Drive does support reading Red Book audio using the Read-CD command Drive does not support reading Red Book audio with an accurate stream Drive does support commands that return sub-channel data Drive does not support de-interleaving R-W sub-channel data Drive does not support C2 error pointers Drive does support returning the ISRC information Drive does support returning the UPC information Drive does support locking media in drive Drive is in allow lock state Drive's prevent jumper is present Drive does support the eject command Drive loading mechanism is Tray type loading mechanism Drive does support separate audio level controls Drive does support separate audio mute controls Drive does not support Disk Is Present information Checking for ATA drive at device 1 ... No ATA drive found at device: 1 No Data Request: timeout Checking for ATAPI drive at device 1 ... No ATAPI drive found at device 1 No Data Request: timeout Checking for controller at 0x1e0 ... No controller found at 0x1e0 Checking for controller at 0x1e8 ... No controller found at 0x1e8 Checking for controller at 0x168 ... No controller found at 0x168 Copying and Registration (does this mean it costs $$$?) ------------------------------------------------------- We are allowing full freedom to copy this program. It IS a fully functional version. It is NOT Crippleware! There is NOT a pro version available for an unreasonable sum of money. There is no registration fee. There will never be an another update. The zip file may be freely redistributed, only as long as all the files are kept together and unchanged in the archive and no additional files are placed in the archive. How to get hold of us for help. ------------------------------- Computall is no longer in business. Do not bother sending messages to any of our old email addresses you may find on the internet. None of the addresses still work and your message will likely be lost without you receiving a bounce message. We may occasionally check messages that are sent via the support web page: http://web.ncf.ca/aa571/support.htm Changes in version 1.3 from 1.0a --------------------------------- - added full support for ATAPI drives through either ASPI under Win95 or ATASPI under DOS - cleaned up the drive search routines - cleaned up the displayed info - removed the dumps from all the cdrom and hard drives - there is a much better repository at the Tardis UK web site - there are pointers to it on my web site - check it out. Changes in version 1.1a from 1.0a --------------------------------- - made significant changes to the command line options to add ASPI and SCSI - added support for SCSI drives through the ASPI interface - added support for ATAPI drives through the ASPI interface on machines running Windows 95 - added more detail and information in the reports generated - fixed a problem that caused a couple of different drives (ones that weren't very ATAPI compliant) to only send half of the data to the computer and then hang Changes in version 1.0a from 0.9a --------------------------------- - added a check to see if the program is running is a DOS box under Windows this was done because bad things sometimes happen when you run ATAINF and you are not in DOS - the most recent version of ATAINF can be found by looking at my new homepage for pointers: http://web.ncf.ca/aa571 this page contains pointers to the most recent drivers for most every cdrom drive made - a number of bugs have been fixed - ATAINF will display even more information about your cdrom drive than before - there is a work around for the problem in that many drives say they use interrupts, but none are ever generated - included dumps from many cdrom and hard drives - please send me the dumps so I can build a complete list - many people will find this information useful when trying to decide on a new drive - added the IO address of 0x1E0 and the interrupts 12 and 13 Known bugs ---------- - there are no known bugs at this time - the inability to get ATA drive information when running '95 is not a bug, but is something that only seems to run in plain DOS, and not in a DOS box. I'm working on it.