anchor.diff:    controller
     channel
     block-size
  -  sector-count)
  +  sector-count
  +  lba48-capable)
   
   (defun ata-alt-status (controller)
     "Read the alternate status register."
  
positive.code:     (setf (sys.int::io-port/8 (+ (ata-controller-command controller)
                                   +ata-register-command+))
            command))
    t)
  
  (defun ata-check-status (device &optional (timeout 30))
  
negative.code:     (dotimes (i 256)
        (setf (svref buf i) (sys.int::io-port/16 (+ (ata-controller-command controller)
                                                    +ata-register-data+))))
      (let* ((supported-command-sets (svref buf 83))
             (lba48-capable (logbitp 10 supported-command-sets))
             (sector-size (if (and (logbitp 14 (svref buf 106))
                                   (not (logbitp 13 (svref buf 106))))
                              ;; Data in logical sector size field valid.
                              (logior (svref buf 117)
                                      (ash (svref buf 118) 16))
                              ;; Not valid, use 512. (TODO: PACKET devices? when was this field introduced?)
                              512))
             (sector-count (if lba48-capable
                               (logior (svref buf 100)
                                       (ash (svref buf 101) 16)
                                       (ash (svref buf 102) 32)
                                       (ash (svref buf 103) 48))
                               (logior (svref buf 60)
                                       (ash (svref buf 61) 16))))
             (device (make-ata-device :controller controller
                                      :channel channel
                                      :block-size sector-size
                                      :sector-count sector-count
                                      :lba48-capable lba48-capable)))
        (debug-print-line "Features (83): " supported-command-sets)
        (debug-print-line "Sector size: " sector-size)
        (debug-print-line "Sector count: " sector-count)
        (push-wired device *ata-devices*)
        (register-disk device (ata-device-sector-count device) (ata-device-block-size device) 256 'ata-read 'ata-write))))
  
  (defun ata-issue-lba28-command (device lba count command)
  