anchor.diff:      (setf (sys.int::memref-unsigned-byte-32 array (+ offset 0)) (ldb (byte 32 0) base)
             (sys.int::memref-unsigned-byte-32 array (+ offset 1)) (ldb (byte 32 32) base)
             (sys.int::memref-unsigned-byte-32 array (+ offset 2)) length
  -          (sys.int::memref-unsigned-byte-32 array (+ offset 3)) 0)))
  +          ;; IOC
  +          (sys.int::memref-unsigned-byte-32 array (+ offset 3)) 1)))
   
   (defun read-bdl (hda entry)
     (let ((array (hda-corb/rirb/dmap hda))
  
positive.code:     (setf sound-position buf-len)
      (multiple-value-bind (converter mixer)
          (output-path output-pin)
        (test hda buffer (cad output-pin) (nid converter) (nid output-pin) (and mixer (nid mixer))))
      (unwind-protect
           (loop
              ;; Wait for the dma position to move from the
  
negative.code:   ;; FIXME: Flush old cards first.
    (let* ((bar0 (mezzano.supervisor:pci-io-region device 0 #x3000))
           (hda (make-hda :pci-device device :register-set bar0)))
      (setf (hda-interrupt-latch hda) (mezzano.supervisor:make-latch "HDA IRQ latch"))
      (setf (hda-interrupt-handler hda) (mezzano.supervisor:make-simple-irq (mezzano.supervisor:pci-intr-line device) (hda-interrupt-latch hda)))
      (format t "Found Intel HDA controller at ~S.~%" device)
      (setf (mezzano.supervisor:pci-bus-master-enabled device) t)
      ;; Perform a controller reset by pulsing crst to 0.
  