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