anchor.diff:           for addr = lba then (+ addr sectors-per-4k)
            for base-offset = offset then (+ base-offset 4096)
            repeat full-transfers
  -         do
  -           (multiple-value-bind (success-p error-reason)
  -               (sup:disk-read disk addr sectors-per-4K wired-buffer)
  -             (when (not success-p)
  -               (error "Disk read error: ~A" error-reason)))
  -           (replace buffer wired-buffer :start1 base-offset)
  +         do (read-sector disk addr sectors-per-4K wired-buffer buffer base-offset)
            finally
  -           (when (/= partial-transfer 0)
  -             (multiple-value-bind (success-p error)
  -                 (sup:disk-read disk addr partial-transfer wired-buffer)
  -               (when (not success-p)
  -                 (error "Disk read error: ~A" error)))
  -             (replace buffer wired-buffer :start1 base-offset))))))
  +         (when (/= partial-transfer 0)
  +           (read-sector disk addr partial-transfer wired-buffer buffer base-offset))))))
   
   (defgeneric block-device-write (device lba n-sectors buffer &key offset))
   
  -(defmethod block-device-write
  -    ((disk sup:disk) lba n-sectors buffer &key (offset 0))
  +(defun write-sector (disk addr n-sectors wired-buffer buffer base-offset)
  +  (replace wired-buffer buffer :start2 base-offset)
  +  (multiple-value-bind (success-p error-reason)
  +      (sup:disk-write disk addr n-sectors wired-buffer)
  +    (unless success-p
  +      (error "Disk write error: ~A" error-reason))))
  +
  +(defmethod block-device-write ((disk sup:disk) lba n-sectors buffer &key (offset 0))
     (let* ((sector-size (sup:disk-sector-size disk))
            (sectors-per-4K (/ 4096 sector-size))
            (n-bytes (* sector-size n-sectors))
  
positive.code:          for addr = lba then (+ addr sectors-per-4k)
           for base-offset = offset then (+ base-offset 4096)
           repeat full-transfers
           do
             (replace wired-buffer buffer :start2 base-offset)
             (multiple-value-bind (success-p error-reason)
                 (sup:disk-write disk addr sectors-per-4K wired-buffer)
               (when (not success-p)
                 (error "Disk write error: ~A" error-reason)))
           finally
             (when (/= partial-transfer 0)
               (replace wired-buffer buffer :start2 base-offset)
               (multiple-value-bind (success-p error-reason)
                   (sup:disk-write disk addr partial-transfer wired-buffer)
                 (when (not success-p)
                   (error "Disk write error: ~A" error-reason))))))))
  
  (defgeneric block-device-flush (device))
  
  
negative.code: 
  (defgeneric block-device-read (device lba n-sectors buffer &key offset))
  
  (defun read-sector (disk addr n-sectors wired-buffer buffer base-offset)
    (multiple-value-bind (success-p error-reason)
        (sup:disk-read disk addr n-sectors wired-buffer)
      (unless success-p
        (error "Disk read error: ~A" error-reason)))
    (replace buffer wired-buffer :start1 base-offset))
  
  (defmethod block-device-read ((disk sup:disk) lba n-sectors buffer &key (offset 0))
    (let* ((sector-size (sup:disk-sector-size disk))
           (sectors-per-4K (/ 4096 sector-size))
           (n-bytes (* sector-size n-sectors))
  