anchor.diff:      (return-from init-keyboard))
     (format t "Detected ~S on PS/2 ~S port.~%" (ps/2-identify port) port)
     ;; Switch to scancode set 1.
  -  (ps/2-write port #xF0)
  -  (unless (eql (ps/2-read port t) +ps/2-ack+)
  +  (unless (ps/2-send-command port #xF0)
       (warn "PS/2 keyboard scancode change failed (1).~%")
       (return-from init-keyboard))
  -  (ps/2-write port 1)
  -  (unless (eql (ps/2-read port t) +ps/2-ack+)
  +  (unless (ps/2-send-command port 1)
       (warn "PS/2 keyboard scancode change failed (2).~%")
  +    (return-from init-keyboard))
  +  (unless (ps/2-send-command port #xF4)
  +    (warn "PS/2 keyboard start reporting failed.~%")
       (return-from init-keyboard)))
   
   (defun ps/2-mouse-command (port command)
  -  (ps/2-write port command)
  -  (let ((result (ps/2-read port t)))
  -    (unless (eql result +ps/2-ack+)
  +  (multiple-value-bind (successp result)
  +      (ps/2-send-command port command)
  +    (unless successp
         (warn "PS/2: Error controlling mouse, expected ACK(FA) got ~2,'0X~%" result))))
   
   (defun init-mouse (port)
  
positive.code:     (:key (loop (unless (ps/2-pop-fifo *ps/2-key-fifo*) (return))))
      (:aux (loop (unless (ps/2-pop-fifo *ps/2-aux-fifo*) (return))))))
  
  (defun ps/2-identify (port)
    (ps/2-write port +ps/2-disable-scanning+)
    ;; Wait for success reply.
    (let ((response (ps/2-read port t)))
      (cond ((not response)
             (warn "No response during PS/2 identify")
             (return-from ps/2-identify nil))
            ((not (eql response +ps/2-ack+))
             (warn "PS/2 identify failed: ~2,'0X~%" response)
             (return-from ps/2-identify nil))))
    (ps/2-write port +ps/2-identify+)
    ;; Wait for success reply.
    (let ((response (ps/2-read port t)))
      (cond ((not response)
             (warn "No response during PS/2 identify")
             (return-from ps/2-identify nil))
            ((not (eql response +ps/2-ack+))
             (warn "PS/2 identify failed: ~2,'0X~%" response)
             (return-from ps/2-identify nil))))
    ;; Read up to two bytes.
    (let ((byte-one (ps/2-read port t)))
      (case byte-one
  
negative.code: (defun init-keyboard (port)
    (ps/2-flush-input port)
    ;; Expecting ACK followed by Self-Test-Passed.
    (unless (ps/2-send-command port +ps/2-reset+)
      (warn "PS/2 keyboard reset failed.~%")
      (return-from init-keyboard))
    (unless (eql (ps/2-read port t) +ps/2-self-test-passed+)
  