anchor.diff:                     ;; destination directory (already modified above)
                      ;; remove source file entry
                      (free-file-entry dest-dir source-start)
  -                   (write-file (fat-structure host) (partition host) dest-cluster (fat host) dest-dir))
  +                   (write-file fat32 disk dest-cluster fat dest-dir))
                     (T
                      ;; source and destination are different directories
                      ;; remove source file entry
                      (free-file-entry source-dir source-start)
                      ;; write both directories
  -                   (write-file (fat-structure host) (partition host) source-cluster (fat host) source-dir)
  -                   (write-file (fat-structure host) (partition host) dest-cluster (fat host) dest-dir))))))))
  +                   (write-file fat32 disk source-cluster fat source-dir)
  +                   (write-file fat32 disk dest-cluster fat dest-dir))))))))
   
   (defmethod file-write-date-using-host ((host fat32-host) path)
     (multiple-value-bind (parent-dir parent-cluster file-offset) (open-file-metadata host path)
       (declare (ignore parent-cluster))
  -    (assert file-offset (file-offset) "File not found. ~s" path)
  +    (when (null file-offset)
  +      (error 'simple-file-error
  +                             :pathname path
  +                             :format-control "File ~A does not exist. ~S"
  +                             :format-arguments (list path (file-name path))))
       (let ((time (read-write-time parent-dir file-offset))
             (date (read-write-date parent-dir file-offset)))
         (encode-universal-time (ash (ldb (byte 5 0) time) 1)
  
positive.code:                (namestring dest))
        t
        (multiple-value-bind (source-dir source-cluster source-start) (open-file-metadata host source)
          (assert source-start (source-start) "Source file not found. ~s" source)
          (multiple-value-bind (dest-dir dest-cluster dest-start) (open-file-metadata host dest)
            (assert (not dest-start) (dest-start) "Destination file alredy exist. ~s" dest)
            (let ((dest-offset))
              (multiple-value-setq (dest-offset dest-dir)
                (create-directory-entry dest-dir
                                        (pathname-name dest)
                                        (pathname-type dest)
                                        (eql (pathname-version dest) :previous)
                                        (bytes-per-cluster (fat-structure host))))
              ;; copy meta data
              (replace dest-dir source-dir
                       :start1 (+ dest-offset 11)
  
negative.code:          (fat32 (fat-structure host))
           (fat (fat host)))
      (multiple-value-bind (parent-dir parent-cluster file-offset) (open-file-metadata host path)
        (when (null file-offset)
          (error 'simple-file-error
                 :pathname path
                 :format-control "File ~A does not exist. ~S"
                 :format-arguments (list path (file-name path))))
        (when (directory-p parent-dir file-offset)
          (error 'simple-file-error
                 :pathname path
                 :format-control "~S is a directory, couldn't delete"
                 :format-arguments (list path )))
        (remove-file parent-dir file-offset disk parent-cluster fat32 fat))))
  
  (defmethod delete-directory-using-host ((host fat32-host) path &key recursive)
  