anchor.diff:               (multiple-value-bind (mev y x) (get-mouse-event)
                  (values mev y x)) ; returns 3 values, see mouse.lisp
                ev)))
  -      ;; todo: unknown codes, like mose, resize and unknown function keys.
  -      (t (error "invalid value of char received from ncurses.")))))
  +      ;; todo: unknown codes, like mouse, resize and unknown function keys.
  +      (t
  +       ;;(error "invalid value of char received from ncurses.")
  +       (princ ch window)))))
   
   #|
  -    ;; we dont need them defined as octal literals, this is antique.
  +    ;; I dont want them defined as octal literals.
     '((:code_yes  . #o400)
       (:min       . #o401)
  +
       (:break     . #o401)
       (:down      . #o402)
       (:up        . #o403)
  
positive.code:     (:b2        . 350) 
      (:c1        . 351) 
      (:c3        . 352)
      (:btab      . 353) 
      (:beg       . 354) 
      (:cancel    . 355) 
      (:close     . 356) 
      (:command   . 357)
      (:copy      . 358) 
      (:create    . 359) 
      (:end       . 360) 
      (:exit      . 361) 
      (:find      . 362)
      (:help      . 363) 
  
negative.code: ;; events can be nil (no key pressed), characters #\a and function keys like :up, :down, etc.
  ;; todo: mouse, resizekey
  (defun get-event (window)
    ;; doesnt really get a "char", but a single byte, which can be a char.
    (let ((ch (get-char window)))
      (cond
        ;; -1 means no key has been pressed.
  