anchor.diff:           do (progn
                 (setf buffer (mezzano.fat32-file-system:read-file file (partition host)
                                                                   (fat32-structure host))
  +                    read-buffer-position (* (fat32-bytes-per-sector fat32)
  +                                            (virtual-dir-first-cluster file))
                       read-buffer-size (virtual-dir-file-size file))
                 (return))
            finally
  
positive.code: (defmethod sys.gray:stream-read-byte ((stream fat32-file-stream))
    (assert (member (direction stream) '(:input :io)))
    (let ((char (aref (read-buffer stream)
                      (+ (read-buffer-position stream)
                         (incf (read-buffer-offset stream))))))
      (if (< (read-buffer-size stream)
             (read-buffer-offset stream))
          :eof
          char)))
  
  (defmethod sys.gray:stream-read-sequence ((stream fat32-file-stream) sequence &optional (start 0) end)
    (assert (member (direction stream) '(:input :io)))
    (error "Feature not implemented: ~a" 'sys.gray:stream-read-sequence))
  
  (defmethod sys.gray:stream-write-char ((stream fat32-file-character-stream) char)
    (error "Feature not implemented: ~a" 'sys.gray:stream-write-char))
  
  (defmethod sys.gray:stream-read-sequence ((stream fat32-file-character-stream) sequence &optional (start 0) end)
    (assert (member (direction stream) '(:input :io)))
    (error "Feature not implemented: ~a" 'sys.gray:stream-read-sequence))
  
  (defmethod sys.gray:stream-read-char ((stream fat32-file-character-stream))
    (assert (member (direction stream) '(:input :io)))
    (let ((char (aref (read-buffer stream)
                      (+ (read-buffer-position stream)
                         (incf (read-buffer-offset stream))))))
      (if (< (read-buffer-size stream)
             (read-buffer-offset stream))
          :eof
          (code-char char))))
  
  
negative.code:                            (make-instance 'fat32-file-stream
                                            :direction direction
                                            :read-buffer buffer
                                            :read-buffer-position read-buffer-position
                                            :read-buffer-size read-buffer-size))
                            (t (error "Unsupported element-type ~S." element-type)))))
          stream))))
  