anchor.diff:    (ps/2-read-fifo (ecase port
                       (:key *ps/2-key-fifo*)
                       (:aux *ps/2-aux-fifo*))
  -                  (if (eql timeout t) 10000 timeout)))
  +                  timeout))
   
   (defun ps/2-flush-input (port)
     (ecase port
  
positive.code:       (warn "PS/2 identify failed: ~2,'0X~%" reason)
        (return-from ps/2-identify nil)))
    ;; Read up to two bytes.
    (let ((byte-one (ps/2-read port t)))
      (case byte-one
        (#x00 :standard-mouse)
        (#x03 :scroll-mouse)
        (#x04 :5-button-mouse)
        (#xAB (let ((byte-two (ps/2-read port t)))
                (case byte-two
                  ((#x41 #xC1) :mf2-keyboard-translated)
                  ((#x83) :mf2-keyboard)
  
negative.code:   #+nil(progn
    (ps/2-flush-input port)
    (ps/2-write port +ps/2-reset+)
    (unless (eql (ps/2-read port) +ps/2-ack+)
      (warn "PS/2 mouse reset change failed (1).~%")))
    #+nil(unless (eql (ps/2-read port) #xAA)
      (warn "PS/2 mouse reset change failed (2).~%"))
    #+nil(unless (eql (ps/2-read port) 0)
      (warn "PS/2 mouse reset change failed (3).~%"))
    (ps/2-flush-input port)
    (format t "Detected ~S on PS/2 ~S port.~%" (ps/2-identify port) port)
  