anchor.diff:  	      :element-type 'uint8
   	      :initial-element 0))
   
  -(defun decode-frame-beginning (image s buffer)
  -  (read-byte s) ; length
  -  (read-byte s)
  -  (read-byte s) ; sample precision
  -  (let ((height (read-word s))
  -        (width (read-word s))
  -        (ncomp (read-byte s)))
  +(defun decode-frame-beginning (image buffer)
  +  (read-jpeg-byte image) ; length
  +  (read-jpeg-byte image)
  +  (read-jpeg-byte image) ; sample precision
  +  (let ((height (read-word image))
  +        (width (read-word image))
  +        (ncomp (read-jpeg-byte image)))
       (if (arrayp buffer)
           (if (< (length buffer) (* (setf (descriptor-height image) height)
                                     (setf (descriptor-width image) width)
  
positive.code:                                (setf (descriptor-ncomp image) ncomp))))))
  
  ;;; Frame decoding subroutine
  (defun decode-frame (image s buffer)
    (decode-frame-beginning image s buffer)
    (loop for i fixnum from 0 below (descriptor-ncomp image)
       with hv fixnum do
         (setf (aref (descriptor-cid image) i) (read-byte s)) ; Cj
         (setf hv (read-byte s))				    ; HV
         (setf (aref (descriptor-H image) i) (ash hv -4))
         (setf (aref (descriptor-V image) i) (logand hv 7))
         (setf (aref (descriptor-qdest image) i) (read-byte s)))
  	(let* ((frl (loop for i fixnum from 0 below (descriptor-ncomp image)
  		       collecting (list (aref (descriptor-H image) i)
  					(aref (descriptor-V image) i))))
  
negative.code:              (setf (scan-x scan) 0))))))
  
  ;;; Scan decoding subroutine
  (defun decode-scan (image i)
    (let ((scan (aref (descriptor-scans image) i))
  	(zzbuf (2d-sint16-array
  			    '(0  0  0  0  0  0  0  0)
  