anchor.diff:          ((or (>= byte-offset file-length)
                (>= cluster-n (last-cluster-value ffs)))
            (when (> file-length byte-offset)
  -           (do ((cluster-n (next-free-cluster fat 3)
  -                           (next-free-cluster fat (1+ cluster-n)))
  +           (do ((cluster-n (next-free-cluster ffs fat 3)
  +                           (next-free-cluster ffs fat (1+ cluster-n)))
                   (byte-offset byte-offset (+ byte-offset bytes-per-cluster)))
                  ((>= byte-offset file-length)
                   (setf (fat-value ffs fat last-cluster) (last-cluster-value ffs))
  
positive.code:    (%volume-label :initarg :volume-label :accessor fat-%volume-label :type string)
     (%fat-type-label :initarg :fat-type-label :accessor fat-%fat-type-label :type string)
     (%boot-code :initarg :boot-code :accessor fat-%boot-code)
     (%fat-dirty-bits :initarg :fat-dirty-bits :accessor fat-%fat-dirty-bits)))
  
  (defun check-boot-jump (boot-jump)
  
negative.code: 
  (defmethod read-fat (disk (fat32 fat32) &optional fat-array)
    (loop :with fat-offset := (fat-%n-reserved-sectors fat32)
          :with fat-sectors := (ceiling (* 4 (fat-%n-clusters fat32)) (fat-%bytes-per-sector fat32))
          :with file-allocation-table := (block-device-read-sector disk fat-offset fat-sectors)
          :with fat := (if fat-array
                           fat-array
                           (make-array (list (ash (length file-allocation-table) -2))))
  