anchor.diff:           when (eql char #\Space) do
              (return)
            do
  -           (setf (elt name idx) char)
  +           (setf (elt name idx) (if ext-lower-p (char-downcase char) char))
              (incf idx)))
       ;; Delete extra spaces from the right end
       (string-right-trim '(#\Space) name)))
  
positive.code: 
  (defun read-short-name (directory offset)
    ;; Handle 8.3 names
    (let ((name (make-string 12 :initial-element #\Space))
          (first (aref directory offset))
          (idx 1))
      ;; First character is special
      (setf (elt name 0) (if (= first #x05) (code-char #xE5) (code-char first)))
      ;; Copy chars for 8 part
      (loop
         for i from (1+ offset) to (+ 7 offset)
  
negative.code:        when (eql char #\Space) do
           (return)
         do
           (setf (elt name idx) (if name-lower-p (char-downcase char) char))
           (incf idx))
      ;; Copy chars for 3 part, if there is any
      (when (/= (aref directory (+ 8 offset)) (char-code #\Space))
  