anchor.diff:                       (sys.int::write-integer scancode))))
                (t ;; Key release.
                 (case key
  -                (:shift (setf *ps/2-keyboard-shifted* nil))))))))
  +                (:shift (setf *ps/2-keyboard-shifted* nil))
  +                (:control (setf *ps/2-keyboard-ctrled* nil))
  +                (:meta (setf *ps/2-keyboard-metaed* nil))))))))
   
   (defmethod stream-read-char ((stream ps/2-keyboard-stream))
     (ps/2-read-char *ps/2-key-fifo*))
  
positive.code:               ;; Key press.
                (cond ((eql key :shift)
                       (setf *ps/2-keyboard-shifted* t))
                      ((characterp key)
                       (return key))
                      ((null key)
                       (write-string "Unknown keycode #x")
  
negative.code: (defclass ps/2-keyboard-stream (stream-object) ())
  
  (defvar *ps/2-keyboard-shifted* nil)
  (defvar *ps/2-keyboard-ctrled* nil)
  (defvar *ps/2-keyboard-metaed* nil)
  (defun ps/2-read-char (fifo)
    (loop
       (let* ((scancode (ps/2-read-fifo fifo))
  