anchor.diff:      (setf (sys.int::io-port/8 (+ (ata-controller-command controller)
                                    +ata-register-device+))
             (logior (ecase (ata-device-channel device)
  -                    (:master 0)
  -                    (:slave +ata-dev+))
  +                    (:device-0 0)
  +                    (:device-1 +ata-dev+))
                     +ata-lba+
                     (ldb (byte 4 24) lba)))
       ;; HI4: Write_command
  
positive.code:     (sup:debug-print-line "ATA-SELECT-DEVICE called with command in progress.")
      (return-from ata-select-device nil))
    (when (not (eql (ata-controller-current-channel controller) channel))
      (assert (or (eql channel :master) (eql channel :slave)))
      (setf (sys.int::io-port/8 (+ (ata-controller-command controller)
                                   +ata-register-device+))
            (ecase channel
              (:master 0)
              (:slave +ata-dev+)))
      ;; Again, neither BSY nor DRQ should be set.
      (when (logtest (logior +ata-bsy+ +ata-drq+)
                     (ata-alt-status controller))
  
negative.code:                     controller
                      :exclusive t)
      ;; Probe drives.
      (ata-detect-drive controller :device-0)
      (ata-detect-drive controller :device-1)
      ;; Enable controller interrupts.
      (setf (sys.int::io-port/8 (+ control-base +ata-register-device-control+)) 0)))
  
  