anchor.diff:      (:b2        . 350) 
       (:c1        . 351) 
       (:c3        . 352)
  -    (:btab      . 353) 
  +    (:btab      . 353) ; Shift + TAB = #\LATIN_SMALL_LETTER_S_WITH_CARON = sch
       (:beg       . 354) 
       (:cancel    . 355) 
       (:close     . 356) 
       (:command   . 357)
       (:copy      . 358) 
       (:create    . 359) 
  -    (:end       . 360) 
  +    (:end       . 360) ; Ende
       (:exit      . 361) 
       (:find      . 362)
       (:help      . 363) 
  
positive.code:     (:mouse     . #o631)
      (:resize    . #o632)
      (:event     . #o633)
      (:max       . #o777)))
  
  #define KEY_CODE_YES    0400            /* A wchar_t contains a key code */
  #define KEY_MIN         0401            /* Minimum curses key */
  #define KEY_BREAK       0401            /* Break key (unreliable) */
  #define KEY_DOWN        0402            /* down-arrow key */
  #define KEY_UP          0403            /* up-arrow key */
  
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.
  