From: Atlant Schmidt [atlantnospam@mindspring.com] Sent: Wednesday, May 08, 2002 8:41 AM To: Info-VAX@Mvb.Saic.Com Subject: A brief history of the DQDRIVER (ATA/ATAPI/IDE disk driver) I wrote this reply to someone in private mail and they encouraged me to post it to the newsgroup. I see no harm in doing so, so here it is... -=-=-=-=-=- Some background information you may enjoy: "512-byte mode" [in CD-ROMs] was actually a very sore point with the hardware/systems folks. High-volume CD-ROMs, in general, didn't have this mode yet the VMS SCSI driver suite required it. So every time we needed a new SCSI CD-ROM, we had to beg and plead with the vendor for 512-byte sector support. It also meant we had to pay exorbitant prices for a "special" drive. I think Digital Unix was in the same boat [and so was Sun's Solaris]. And as CD-ROMs started maturing, the product cycles got shorter and shorter. A given vendor would introduce newer, faster, cheaper CD-ROM drives every 6-12 months. And it got to the point where even "vanilla" SCSI CD-ROMs were looking too expensive compared to the ATAPI CD-ROM drives that were being installed into PCs by the millions. So VMS Engineering and Unix Engineering took a decision to support ATAPI CD-ROM drives. And a very early sub-decision was to only require ordinary CD-ROM drives; no special firmware! We wanted access to those $50 and $25 drives! I took the existing SYS$EXAMPLES DQDRIVER and added a ton of functionality to it including ATAPI support (and DMA and Zip drive support and better IDE support and...) As it turns out, making the driver independent of 512-byte sector support was pretty simple and was clearly a big win. It got a little more complex when I added Zip-drive support (an ATAPI drive where the sectors *ARE* 512 bytes) but it was still pretty straight-forward. Last I knew, the listing was still in SYS$EXAMPLES if you want to see it. ATAPI drive suport actually got pretty funny at one point. The hardware guys starting sending me several different CD-ROM drives each month, saying "So does *THIS* one work?" After the first few, the DQDRIVER got "generalized" enough that basically all the drives worked "out of the box". 6x, 12x, 24x, 32x CD-ROMS, 1x and 2x DVD-ROMs, Toshiba, LG, Sony, they all just plugged in and worked. (TEAC drives were hit- or-miss, though.) Eventually, I had this *HUGE* pile of drives and could only test new versions of my driver against the pile of drives on a "statistical sampling" sort of basis. The host adapter chips were another story. We (VMS and Digital Unix) tended to want to use them in modes that the PC guys didn't (like fancy scatter-gather DMA) and the chips often didn't work so well. In the end, we ended up only supporting DMA on the Acer chips (in the DS10 family); there were too many bugs and data corruption problems to support DMA on the other host adapter chips (e.g., the Cypress as used in the DS20 and ES40 [I think -- my memory is foggy here]). Atlant