Hex Artifact Content
Not logged in

Artifact c0f86443320d6cc6833f7dc615bc3d9fd6ea969a:


0000: 0a 0a 28 64 65 66 69 6e 65 20 28 73 63 61 6e 63  ..(define (scanc
0010: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 73 29 0a  ode->keycode s).
0020: 20 20 28 6c 6f 67 6f 72 20 28 73 64 6c 2d 73 63    (logor (sdl-sc
0030: 61 6e 63 6f 64 65 20 73 29 20 28 62 69 74 77 69  ancode s) (bitwi
0040: 73 65 2d 61 72 69 74 68 6d 65 74 69 63 2d 73 68  se-arithmetic-sh
0050: 69 66 74 2d 6c 65 66 74 20 31 20 33 30 29 29 29  ift-left 1 30)))
0060: 0a 0a 28 64 65 66 69 6e 65 2d 66 6c 61 67 73 20  ..(define-flags 
0070: 73 64 6c 2d 6b 65 79 63 6f 64 65 0a 20 20 20 20  sdl-keycode.    
0080: 28 75 6e 6b 6e 6f 77 6e 20 20 20 30 29 0a 20 20  (unknown   0).  
0090: 20 20 28 72 65 74 75 72 6e 20 20 20 20 28 63 68    (return    (ch
00a0: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 72 65  ar->integer #\re
00b0: 74 75 72 6e 29 29 0a 20 20 20 20 28 65 73 63 61  turn)).    (esca
00c0: 70 65 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74  pe    (char->int
00d0: 65 67 65 72 20 23 5c 65 73 63 29 29 0a 20 20 20  eger #\esc)).   
00e0: 20 28 62 61 63 6b 73 70 61 63 65 20 20 20 20 28   (backspace    (
00f0: 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c  char->integer #\
0100: 62 61 63 6b 73 70 61 63 65 29 29 0a 20 20 20 20  backspace)).    
0110: 28 74 61 62 20 20 20 20 28 63 68 61 72 2d 3e 69  (tab    (char->i
0120: 6e 74 65 67 65 72 20 23 5c 74 61 62 29 29 0a 20  nteger #\tab)). 
0130: 20 20 20 28 73 70 61 63 65 20 20 20 20 28 63 68     (space    (ch
0140: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 73 70  ar->integer #\sp
0150: 61 63 65 29 29 0a 20 20 20 20 28 65 78 63 6c 61  ace)).    (excla
0160: 69 6d 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65  im (char->intege
0170: 72 20 23 5c 21 29 29 0a 20 20 20 20 28 71 75 6f  r #\!)).    (quo
0180: 74 65 64 62 6c 20 20 20 20 28 63 68 61 72 2d 3e  tedbl    (char->
0190: 69 6e 74 65 67 65 72 20 23 5c 22 29 29 0a 20 20  integer #\")).  
01a0: 20 20 28 68 61 73 68 20 20 20 20 28 63 68 61 72    (hash    (char
01b0: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 23 29 29 0a  ->integer #\#)).
01c0: 20 20 20 20 28 70 65 72 63 65 6e 74 20 20 20 20      (percent    
01d0: 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23  (char->integer #
01e0: 5c 25 29 29 0a 20 20 20 20 28 64 6f 6c 6c 61 72  \%)).    (dollar
01f0: 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67      (char->integ
0200: 65 72 20 23 5c 24 29 29 0a 20 20 20 20 28 61 6d  er #\$)).    (am
0210: 70 65 72 73 61 6e 64 20 20 20 20 28 63 68 61 72  persand    (char
0220: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 26 29 29 0a  ->integer #\&)).
0230: 20 20 20 20 28 71 75 6f 74 65 20 20 20 20 28 63      (quote    (c
0240: 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 27  har->integer #\'
0250: 29 29 0a 20 20 20 20 28 6c 65 66 74 70 61 72 65  )).    (leftpare
0260: 6e 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65  n    (char->inte
0270: 67 65 72 20 23 5c 28 29 29 0a 20 20 20 20 28 72  ger #\()).    (r
0280: 69 67 68 74 70 61 72 65 6e 20 20 20 20 28 63 68  ightparen    (ch
0290: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 29 29  ar->integer #\))
02a0: 29 0a 20 20 20 20 28 61 73 74 65 72 69 73 6b 20  ).    (asterisk 
02b0: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
02c0: 72 20 23 5c 2a 29 29 0a 20 20 20 20 28 70 6c 75  r #\*)).    (plu
02d0: 73 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65  s    (char->inte
02e0: 67 65 72 20 23 5c 2b 29 29 0a 20 20 20 20 28 63  ger #\+)).    (c
02f0: 6f 6d 6d 61 20 20 20 20 28 63 68 61 72 2d 3e 69  omma    (char->i
0300: 6e 74 65 67 65 72 20 23 5c 2c 29 29 0a 20 20 20  nteger #\,)).   
0310: 20 28 6d 69 6e 75 73 20 20 20 20 28 63 68 61 72   (minus    (char
0320: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 2d 29 29 0a  ->integer #\-)).
0330: 20 20 20 20 28 70 65 72 69 6f 64 20 20 20 20 28      (period    (
0340: 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c  char->integer #\
0350: 2e 29 29 0a 20 20 20 20 28 73 6c 61 73 68 20 20  .)).    (slash  
0360: 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72    (char->integer
0370: 20 23 5c 2f 29 29 0a 20 20 20 20 28 30 20 20 20   #\/)).    (0   
0380: 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20   (char->integer 
0390: 23 5c 30 29 29 0a 20 20 20 20 28 31 20 20 20 20  #\0)).    (1    
03a0: 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23  (char->integer #
03b0: 5c 31 29 29 0a 20 20 20 20 28 32 20 20 20 20 28  \1)).    (2    (
03c0: 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c  char->integer #\
03d0: 32 29 29 0a 20 20 20 20 28 33 20 20 20 20 28 63  2)).    (3    (c
03e0: 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 33  har->integer #\3
03f0: 29 29 0a 20 20 20 20 28 34 20 20 20 20 28 63 68  )).    (4    (ch
0400: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 34 29  ar->integer #\4)
0410: 29 0a 20 20 20 20 28 35 20 20 20 20 28 63 68 61  ).    (5    (cha
0420: 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 35 29 29  r->integer #\5))
0430: 0a 20 20 20 20 28 36 20 20 20 20 28 63 68 61 72  .    (6    (char
0440: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 36 29 29 0a  ->integer #\6)).
0450: 20 20 20 20 28 37 20 20 20 20 28 63 68 61 72 2d      (7    (char-
0460: 3e 69 6e 74 65 67 65 72 20 23 5c 37 29 29 0a 20  >integer #\7)). 
0470: 20 20 20 28 38 20 20 20 20 28 63 68 61 72 2d 3e     (8    (char->
0480: 69 6e 74 65 67 65 72 20 23 5c 38 29 29 0a 20 20  integer #\8)).  
0490: 20 20 28 39 20 20 20 20 28 63 68 61 72 2d 3e 69    (9    (char->i
04a0: 6e 74 65 67 65 72 20 23 5c 39 29 29 0a 20 20 20  nteger #\9)).   
04b0: 20 28 63 6f 6c 6f 6e 20 20 20 20 28 63 68 61 72   (colon    (char
04c0: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 3a 29 29 0a  ->integer #\:)).
04d0: 20 20 20 20 28 73 65 6d 69 63 6f 6c 6f 6e 20 20      (semicolon  
04e0: 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72    (char->integer
04f0: 20 23 5c 3b 29 29 0a 20 20 20 20 28 6c 65 73 73   #\;)).    (less
0500: 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67      (char->integ
0510: 65 72 20 23 5c 3c 29 29 0a 20 20 20 20 28 65 71  er #\<)).    (eq
0520: 75 61 6c 73 20 20 20 20 28 63 68 61 72 2d 3e 69  uals    (char->i
0530: 6e 74 65 67 65 72 20 23 5c 3d 29 29 0a 20 20 20  nteger #\=)).   
0540: 20 28 67 72 65 61 74 65 72 20 20 20 20 28 63 68   (greater    (ch
0550: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 3e 29  ar->integer #\>)
0560: 29 0a 20 20 20 20 28 71 75 65 73 74 69 6f 6e 20  ).    (question 
0570: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
0580: 72 20 23 5c 3f 29 29 0a 20 20 20 20 28 61 74 20  r #\?)).    (at 
0590: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
05a0: 72 20 23 5c 40 29 29 0a 20 20 20 20 3b 3b 20 2f  r #\@)).    ;; /
05b0: 2a 0a 20 20 20 20 3b 3b 20 20 20 20 73 6b 69 70  *.    ;;    skip
05c0: 20 75 70 70 65 72 63 61 73 65 20 6c 65 74 74 65   uppercase lette
05d0: 72 73 0a 20 20 20 20 3b 3b 20 20 2a 2f 0a 20 20  rs.    ;;  */.  
05e0: 20 20 28 6c 65 66 74 62 72 61 63 6b 65 74 20 20    (leftbracket  
05f0: 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72    (char->integer
0600: 20 23 5c 5b 29 29 0a 20 20 20 20 28 62 61 63 6b   #\[)).    (back
0610: 73 6c 61 73 68 20 20 20 20 28 63 68 61 72 2d 3e  slash    (char->
0620: 69 6e 74 65 67 65 72 20 23 5c 5c 29 29 0a 20 20  integer #\\)).  
0630: 20 20 28 72 69 67 68 74 62 72 61 63 6b 65 74 20    (rightbracket 
0640: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
0650: 72 20 23 5c 5d 29 29 0a 20 20 20 20 28 63 61 72  r #\])).    (car
0660: 65 74 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74  et    (char->int
0670: 65 67 65 72 20 23 5c 5e 29 29 0a 20 20 20 20 28  eger #\^)).    (
0680: 75 6e 64 65 72 73 63 6f 72 65 20 20 20 20 28 63  underscore    (c
0690: 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 5f  har->integer #\_
06a0: 29 29 0a 20 20 20 20 28 62 61 63 6b 71 75 6f 74  )).    (backquot
06b0: 65 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65  e    (char->inte
06c0: 67 65 72 20 23 5c 60 29 29 0a 20 20 20 20 28 61  ger #\`)).    (a
06d0: 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67      (char->integ
06e0: 65 72 20 23 5c 61 29 29 0a 20 20 20 20 28 62 20  er #\a)).    (b 
06f0: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
0700: 72 20 23 5c 62 29 29 0a 20 20 20 20 28 63 20 20  r #\b)).    (c  
0710: 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72    (char->integer
0720: 20 23 5c 63 29 29 0a 20 20 20 20 28 64 20 20 20   #\c)).    (d   
0730: 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20   (char->integer 
0740: 23 5c 64 29 29 0a 20 20 20 20 28 65 20 20 20 20  #\d)).    (e    
0750: 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23  (char->integer #
0760: 5c 65 29 29 0a 20 20 20 20 28 66 20 20 20 20 28  \e)).    (f    (
0770: 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c  char->integer #\
0780: 66 29 29 0a 20 20 20 20 28 67 20 20 20 20 28 63  f)).    (g    (c
0790: 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 67  har->integer #\g
07a0: 29 29 0a 20 20 20 20 28 68 20 20 20 20 28 63 68  )).    (h    (ch
07b0: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 68 29  ar->integer #\h)
07c0: 29 0a 20 20 20 20 28 69 20 20 20 20 28 63 68 61  ).    (i    (cha
07d0: 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 69 29 29  r->integer #\i))
07e0: 0a 20 20 20 20 28 6a 20 20 20 20 28 63 68 61 72  .    (j    (char
07f0: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 6a 29 29 0a  ->integer #\j)).
0800: 20 20 20 20 28 6b 20 20 20 20 28 63 68 61 72 2d      (k    (char-
0810: 3e 69 6e 74 65 67 65 72 20 23 5c 6b 29 29 0a 20  >integer #\k)). 
0820: 20 20 20 28 6c 20 20 20 20 28 63 68 61 72 2d 3e     (l    (char->
0830: 69 6e 74 65 67 65 72 20 23 5c 6c 29 29 0a 20 20  integer #\l)).  
0840: 20 20 28 6d 20 20 20 20 28 63 68 61 72 2d 3e 69    (m    (char->i
0850: 6e 74 65 67 65 72 20 23 5c 6d 29 29 0a 20 20 20  nteger #\m)).   
0860: 20 28 6e 20 20 20 20 28 63 68 61 72 2d 3e 69 6e   (n    (char->in
0870: 74 65 67 65 72 20 23 5c 6e 29 29 0a 20 20 20 20  teger #\n)).    
0880: 28 6f 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74  (o    (char->int
0890: 65 67 65 72 20 23 5c 6f 29 29 0a 20 20 20 20 28  eger #\o)).    (
08a0: 70 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65  p    (char->inte
08b0: 67 65 72 20 23 5c 70 29 29 0a 20 20 20 20 28 71  ger #\p)).    (q
08c0: 20 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67      (char->integ
08d0: 65 72 20 23 5c 71 29 29 0a 20 20 20 20 28 72 20  er #\q)).    (r 
08e0: 20 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65     (char->intege
08f0: 72 20 23 5c 72 29 29 0a 20 20 20 20 28 73 20 20  r #\r)).    (s  
0900: 20 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72    (char->integer
0910: 20 23 5c 73 29 29 0a 20 20 20 20 28 74 20 20 20   #\s)).    (t   
0920: 20 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20   (char->integer 
0930: 23 5c 74 29 29 0a 20 20 20 20 28 75 20 20 20 20  #\t)).    (u    
0940: 28 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23  (char->integer #
0950: 5c 75 29 29 0a 20 20 20 20 28 76 20 20 20 20 28  \u)).    (v    (
0960: 63 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c  char->integer #\
0970: 76 29 29 0a 20 20 20 20 28 77 20 20 20 20 28 63  v)).    (w    (c
0980: 68 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 77  har->integer #\w
0990: 29 29 0a 20 20 20 20 28 78 20 20 20 20 28 63 68  )).    (x    (ch
09a0: 61 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 78 29  ar->integer #\x)
09b0: 29 0a 20 20 20 20 28 79 20 20 20 20 28 63 68 61  ).    (y    (cha
09c0: 72 2d 3e 69 6e 74 65 67 65 72 20 23 5c 79 29 29  r->integer #\y))
09d0: 0a 20 20 20 20 28 7a 20 20 20 20 28 63 68 61 72  .    (z    (char
09e0: 2d 3e 69 6e 74 65 67 65 72 20 23 5c 7a 29 29 0a  ->integer #\z)).
09f0: 0a 20 20 20 20 28 63 61 70 73 6c 6f 63 6b 20 20  .    (capslock  
0a00: 20 20 28 73 64 6c 2d 73 63 61 6e 63 6f 64 65 20    (sdl-scancode 
0a10: 27 63 61 70 73 6c 6f 63 6b 29 29 0a 0a 20 20 20  'capslock))..   
0a20: 20 28 66 31 20 20 20 20 28 73 63 61 6e 63 6f 64   (f1    (scancod
0a30: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 31 29 29  e->keycode 'f1))
0a40: 0a 20 20 20 20 28 66 32 20 20 20 20 28 73 63 61  .    (f2    (sca
0a50: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
0a60: 66 32 29 29 0a 20 20 20 20 28 66 33 20 20 20 20  f2)).    (f3    
0a70: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
0a80: 64 65 20 27 66 33 29 29 0a 20 20 20 20 28 66 34  de 'f3)).    (f4
0a90: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
0aa0: 65 79 63 6f 64 65 20 27 66 34 29 29 0a 20 20 20  eycode 'f4)).   
0ab0: 20 28 66 35 20 20 20 20 28 73 63 61 6e 63 6f 64   (f5    (scancod
0ac0: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 35 29 29  e->keycode 'f5))
0ad0: 0a 20 20 20 20 28 66 36 20 20 20 20 28 73 63 61  .    (f6    (sca
0ae0: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
0af0: 66 36 29 29 0a 20 20 20 20 28 66 37 20 20 20 20  f6)).    (f7    
0b00: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
0b10: 64 65 20 27 66 37 29 29 0a 20 20 20 20 28 66 38  de 'f7)).    (f8
0b20: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
0b30: 65 79 63 6f 64 65 20 27 66 38 29 29 0a 20 20 20  eycode 'f8)).   
0b40: 20 28 66 39 20 20 20 20 28 73 63 61 6e 63 6f 64   (f9    (scancod
0b50: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 39 29 29  e->keycode 'f9))
0b60: 0a 20 20 20 20 28 66 31 30 20 20 20 20 28 73 63  .    (f10    (sc
0b70: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
0b80: 27 66 31 30 29 29 0a 20 20 20 20 28 66 31 31 20  'f10)).    (f11 
0b90: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
0ba0: 79 63 6f 64 65 20 27 66 31 31 29 29 0a 20 20 20  ycode 'f11)).   
0bb0: 20 28 66 31 32 20 20 20 20 28 73 63 61 6e 63 6f   (f12    (scanco
0bc0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 31 32  de->keycode 'f12
0bd0: 29 29 0a 0a 20 20 20 20 28 70 72 69 6e 74 73 63  ))..    (printsc
0be0: 72 65 65 6e 20 20 20 20 28 73 63 61 6e 63 6f 64  reen    (scancod
0bf0: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 70 72 69 6e  e->keycode 'prin
0c00: 74 73 63 72 65 65 6e 29 29 0a 20 20 20 20 28 73  tscreen)).    (s
0c10: 63 72 6f 6c 6c 6c 6f 63 6b 20 20 20 20 28 73 63  crolllock    (sc
0c20: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
0c30: 27 73 63 72 6f 6c 6c 6c 6f 63 6b 29 29 0a 20 20  'scrolllock)).  
0c40: 20 20 28 70 61 75 73 65 20 20 20 20 28 73 63 61    (pause    (sca
0c50: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
0c60: 70 61 75 73 65 29 29 0a 20 20 20 20 28 69 6e 73  pause)).    (ins
0c70: 65 72 74 20 20 20 20 28 73 63 61 6e 63 6f 64 65  ert    (scancode
0c80: 2d 3e 6b 65 79 63 6f 64 65 20 27 69 6e 73 65 72  ->keycode 'inser
0c90: 74 29 29 0a 20 20 20 20 28 68 6f 6d 65 20 20 20  t)).    (home   
0ca0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
0cb0: 6f 64 65 20 27 68 6f 6d 65 29 29 0a 20 20 20 20  ode 'home)).    
0cc0: 28 70 61 67 65 75 70 20 20 20 20 28 73 63 61 6e  (pageup    (scan
0cd0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 70  code->keycode 'p
0ce0: 61 67 65 75 70 29 29 0a 20 20 20 20 28 64 65 6c  ageup)).    (del
0cf0: 65 74 65 20 20 20 20 28 63 68 61 72 2d 3e 69 6e  ete    (char->in
0d00: 74 65 67 65 72 20 23 5c 64 65 6c 65 74 65 29 29  teger #\delete))
0d10: 0a 20 20 20 20 28 65 6e 64 20 20 20 20 28 73 63  .    (end    (sc
0d20: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
0d30: 27 65 6e 64 29 29 0a 20 20 20 20 28 70 61 67 65  'end)).    (page
0d40: 64 6f 77 6e 20 20 20 20 28 73 63 61 6e 63 6f 64  down    (scancod
0d50: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 70 61 67 65  e->keycode 'page
0d60: 64 6f 77 6e 29 29 0a 20 20 20 20 28 72 69 67 68  down)).    (righ
0d70: 74 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  t    (scancode->
0d80: 6b 65 79 63 6f 64 65 20 27 72 69 67 68 74 29 29  keycode 'right))
0d90: 0a 20 20 20 20 28 6c 65 66 74 20 20 20 20 28 73  .    (left    (s
0da0: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
0db0: 20 27 6c 65 66 74 29 29 0a 20 20 20 20 28 64 6f   'left)).    (do
0dc0: 77 6e 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d  wn    (scancode-
0dd0: 3e 6b 65 79 63 6f 64 65 20 27 64 6f 77 6e 29 29  >keycode 'down))
0de0: 0a 20 20 20 20 28 75 70 20 20 20 20 28 73 63 61  .    (up    (sca
0df0: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
0e00: 75 70 29 29 0a 0a 20 20 20 20 28 6e 75 6d 6c 6f  up))..    (numlo
0e10: 63 6b 63 6c 65 61 72 20 20 20 20 28 73 63 61 6e  ckclear    (scan
0e20: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6e  code->keycode 'n
0e30: 75 6d 6c 6f 63 6b 63 6c 65 61 72 29 29 0a 20 20  umlockclear)).  
0e40: 20 20 28 6b 70 2d 64 69 76 69 64 65 20 20 20 20    (kp-divide    
0e50: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
0e60: 64 65 20 27 6b 70 2d 64 69 76 69 64 65 29 29 0a  de 'kp-divide)).
0e70: 20 20 20 20 28 6b 70 2d 6d 75 6c 74 69 70 6c 79      (kp-multiply
0e80: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
0e90: 65 79 63 6f 64 65 20 27 6b 70 2d 6d 75 6c 74 69  eycode 'kp-multi
0ea0: 70 6c 79 29 29 0a 20 20 20 20 28 6b 70 2d 6d 69  ply)).    (kp-mi
0eb0: 6e 75 73 20 20 20 20 28 73 63 61 6e 63 6f 64 65  nus    (scancode
0ec0: 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 6d 69  ->keycode 'kp-mi
0ed0: 6e 75 73 29 29 0a 20 20 20 20 28 6b 70 2d 70 6c  nus)).    (kp-pl
0ee0: 75 73 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d  us    (scancode-
0ef0: 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 70 6c 75  >keycode 'kp-plu
0f00: 73 29 29 0a 20 20 20 20 28 6b 70 2d 65 6e 74 65  s)).    (kp-ente
0f10: 72 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  r    (scancode->
0f20: 6b 65 79 63 6f 64 65 20 27 6b 70 2d 65 6e 74 65  keycode 'kp-ente
0f30: 72 29 29 0a 20 20 20 20 28 6b 70 2d 31 20 20 20  r)).    (kp-1   
0f40: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
0f50: 6f 64 65 20 27 6b 70 2d 31 29 29 0a 20 20 20 20  ode 'kp-1)).    
0f60: 28 6b 70 2d 32 20 20 20 20 28 73 63 61 6e 63 6f  (kp-2    (scanco
0f70: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
0f80: 32 29 29 0a 20 20 20 20 28 6b 70 2d 33 20 20 20  2)).    (kp-3   
0f90: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
0fa0: 6f 64 65 20 27 6b 70 2d 33 29 29 0a 20 20 20 20  ode 'kp-3)).    
0fb0: 28 6b 70 2d 34 20 20 20 20 28 73 63 61 6e 63 6f  (kp-4    (scanco
0fc0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
0fd0: 34 29 29 0a 20 20 20 20 28 6b 70 2d 35 20 20 20  4)).    (kp-5   
0fe0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
0ff0: 6f 64 65 20 27 6b 70 2d 35 29 29 0a 20 20 20 20  ode 'kp-5)).    
1000: 28 6b 70 2d 36 20 20 20 20 28 73 63 61 6e 63 6f  (kp-6    (scanco
1010: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
1020: 36 29 29 0a 20 20 20 20 28 6b 70 2d 37 20 20 20  6)).    (kp-7   
1030: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1040: 6f 64 65 20 27 6b 70 2d 37 29 29 0a 20 20 20 20  ode 'kp-7)).    
1050: 28 6b 70 2d 38 20 20 20 20 28 73 63 61 6e 63 6f  (kp-8    (scanco
1060: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
1070: 38 29 29 0a 20 20 20 20 28 6b 70 2d 39 20 20 20  8)).    (kp-9   
1080: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1090: 6f 64 65 20 27 6b 70 2d 39 29 29 0a 20 20 20 20  ode 'kp-9)).    
10a0: 28 6b 70 2d 30 20 20 20 20 28 73 63 61 6e 63 6f  (kp-0    (scanco
10b0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
10c0: 30 29 29 0a 20 20 20 20 28 6b 70 2d 70 65 72 69  0)).    (kp-peri
10d0: 6f 64 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d  od    (scancode-
10e0: 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 70 65 72  >keycode 'kp-per
10f0: 69 6f 64 29 29 0a 0a 20 20 20 20 28 61 70 70 6c  iod))..    (appl
1100: 69 63 61 74 69 6f 6e 20 20 20 20 28 73 63 61 6e  ication    (scan
1110: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61  code->keycode 'a
1120: 70 70 6c 69 63 61 74 69 6f 6e 29 29 0a 20 20 20  pplication)).   
1130: 20 28 70 6f 77 65 72 20 20 20 20 28 73 63 61 6e   (power    (scan
1140: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 70  code->keycode 'p
1150: 6f 77 65 72 29 29 0a 20 20 20 20 28 6b 70 2d 65  ower)).    (kp-e
1160: 71 75 61 6c 73 20 20 20 20 28 73 63 61 6e 63 6f  quals    (scanco
1170: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
1180: 65 71 75 61 6c 73 29 29 0a 20 20 20 20 28 66 31  equals)).    (f1
1190: 33 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  3    (scancode->
11a0: 6b 65 79 63 6f 64 65 20 27 66 31 33 29 29 0a 20  keycode 'f13)). 
11b0: 20 20 20 28 66 31 34 20 20 20 20 28 73 63 61 6e     (f14    (scan
11c0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66  code->keycode 'f
11d0: 31 34 29 29 0a 20 20 20 20 28 66 31 35 20 20 20  14)).    (f15   
11e0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
11f0: 6f 64 65 20 27 66 31 35 29 29 0a 20 20 20 20 28  ode 'f15)).    (
1200: 66 31 36 20 20 20 20 28 73 63 61 6e 63 6f 64 65  f16    (scancode
1210: 2d 3e 6b 65 79 63 6f 64 65 20 27 66 31 36 29 29  ->keycode 'f16))
1220: 0a 20 20 20 20 28 66 31 37 20 20 20 20 28 73 63  .    (f17    (sc
1230: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
1240: 27 66 31 37 29 29 0a 20 20 20 20 28 66 31 38 20  'f17)).    (f18 
1250: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
1260: 79 63 6f 64 65 20 27 66 31 38 29 29 0a 20 20 20  ycode 'f18)).   
1270: 20 28 66 31 39 20 20 20 20 28 73 63 61 6e 63 6f   (f19    (scanco
1280: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 31 39  de->keycode 'f19
1290: 29 29 0a 20 20 20 20 28 66 32 30 20 20 20 20 28  )).    (f20    (
12a0: 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64  scancode->keycod
12b0: 65 20 27 66 32 30 29 29 0a 20 20 20 20 28 66 32  e 'f20)).    (f2
12c0: 31 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  1    (scancode->
12d0: 6b 65 79 63 6f 64 65 20 27 66 32 31 29 29 0a 20  keycode 'f21)). 
12e0: 20 20 20 28 66 32 32 20 20 20 20 28 73 63 61 6e     (f22    (scan
12f0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66  code->keycode 'f
1300: 32 32 29 29 0a 20 20 20 20 28 66 32 33 20 20 20  22)).    (f23   
1310: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1320: 6f 64 65 20 27 66 32 33 29 29 0a 20 20 20 20 28  ode 'f23)).    (
1330: 66 32 34 20 20 20 20 28 73 63 61 6e 63 6f 64 65  f24    (scancode
1340: 2d 3e 6b 65 79 63 6f 64 65 20 27 66 32 34 29 29  ->keycode 'f24))
1350: 0a 20 20 20 20 28 65 78 65 63 75 74 65 20 20 20  .    (execute   
1360: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1370: 6f 64 65 20 27 65 78 65 63 75 74 65 29 29 0a 20  ode 'execute)). 
1380: 20 20 20 28 68 65 6c 70 20 20 20 20 28 73 63 61     (help    (sca
1390: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
13a0: 68 65 6c 70 29 29 0a 20 20 20 20 28 6d 65 6e 75  help)).    (menu
13b0: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
13c0: 65 79 63 6f 64 65 20 27 6d 65 6e 75 29 29 0a 20  eycode 'menu)). 
13d0: 20 20 20 28 73 65 6c 65 63 74 20 20 20 20 28 73     (select    (s
13e0: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
13f0: 20 27 73 65 6c 65 63 74 29 29 0a 20 20 20 20 28   'select)).    (
1400: 73 74 6f 70 20 20 20 20 28 73 63 61 6e 63 6f 64  stop    (scancod
1410: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 73 74 6f 70  e->keycode 'stop
1420: 29 29 0a 20 20 20 20 28 61 67 61 69 6e 20 20 20  )).    (again   
1430: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1440: 6f 64 65 20 27 61 67 61 69 6e 29 29 0a 20 20 20  ode 'again)).   
1450: 20 28 75 6e 64 6f 20 20 20 20 28 73 63 61 6e 63   (undo    (scanc
1460: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 75 6e  ode->keycode 'un
1470: 64 6f 29 29 0a 20 20 20 20 28 63 75 74 20 20 20  do)).    (cut   
1480: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1490: 6f 64 65 20 27 63 75 74 29 29 0a 20 20 20 20 28  ode 'cut)).    (
14a0: 63 6f 70 79 20 20 20 20 28 73 63 61 6e 63 6f 64  copy    (scancod
14b0: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 63 6f 70 79  e->keycode 'copy
14c0: 29 29 0a 20 20 20 20 28 70 61 73 74 65 20 20 20  )).    (paste   
14d0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
14e0: 6f 64 65 20 27 70 61 73 74 65 29 29 0a 20 20 20  ode 'paste)).   
14f0: 20 28 66 69 6e 64 20 20 20 20 28 73 63 61 6e 63   (find    (scanc
1500: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 66 69  ode->keycode 'fi
1510: 6e 64 29 29 0a 20 20 20 20 28 6d 75 74 65 20 20  nd)).    (mute  
1520: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
1530: 63 6f 64 65 20 27 6d 75 74 65 29 29 0a 20 20 20  code 'mute)).   
1540: 20 28 76 6f 6c 75 6d 65 75 70 20 20 20 20 28 73   (volumeup    (s
1550: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
1560: 20 27 76 6f 6c 75 6d 65 75 70 29 29 0a 20 20 20   'volumeup)).   
1570: 20 28 76 6f 6c 75 6d 65 64 6f 77 6e 20 20 20 20   (volumedown    
1580: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1590: 64 65 20 27 76 6f 6c 75 6d 65 64 6f 77 6e 29 29  de 'volumedown))
15a0: 0a 20 20 20 20 28 6b 70 2d 63 6f 6d 6d 61 20 20  .    (kp-comma  
15b0: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
15c0: 63 6f 64 65 20 27 6b 70 2d 63 6f 6d 6d 61 29 29  code 'kp-comma))
15d0: 0a 20 20 20 20 28 6b 70 2d 65 71 75 61 6c 73 61  .    (kp-equalsa
15e0: 73 34 30 30 20 20 20 20 20 28 73 63 61 6e 63 6f  s400     (scanco
15f0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
1600: 65 71 75 61 6c 73 61 73 34 30 30 29 29 0a 0a 20  equalsas400)).. 
1610: 20 20 20 28 61 6c 74 65 72 61 73 65 20 20 20 20     (alterase    
1620: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1630: 64 65 20 27 61 6c 74 65 72 61 73 65 29 29 0a 20  de 'alterase)). 
1640: 20 20 20 28 73 79 73 72 65 71 20 20 20 20 28 73     (sysreq    (s
1650: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
1660: 20 27 73 79 73 72 65 71 29 29 0a 20 20 20 20 28   'sysreq)).    (
1670: 63 61 6e 63 65 6c 20 20 20 20 28 73 63 61 6e 63  cancel    (scanc
1680: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 63 61  ode->keycode 'ca
1690: 6e 63 65 6c 29 29 0a 20 20 20 20 28 63 6c 65 61  ncel)).    (clea
16a0: 72 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  r    (scancode->
16b0: 6b 65 79 63 6f 64 65 20 27 63 6c 65 61 72 29 29  keycode 'clear))
16c0: 0a 20 20 20 20 28 70 72 69 6f 72 20 20 20 20 28  .    (prior    (
16d0: 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64  scancode->keycod
16e0: 65 20 27 70 72 69 6f 72 29 29 0a 20 20 20 20 28  e 'prior)).    (
16f0: 72 65 74 75 72 6e 32 20 20 20 20 28 73 63 61 6e  return2    (scan
1700: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 72  code->keycode 'r
1710: 65 74 75 72 6e 32 29 29 0a 20 20 20 20 28 73 65  eturn2)).    (se
1720: 70 61 72 61 74 6f 72 20 20 20 20 28 73 63 61 6e  parator    (scan
1730: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 73  code->keycode 's
1740: 65 70 61 72 61 74 6f 72 29 29 0a 20 20 20 20 28  eparator)).    (
1750: 6f 75 74 20 20 20 20 28 73 63 61 6e 63 6f 64 65  out    (scancode
1760: 2d 3e 6b 65 79 63 6f 64 65 20 27 6f 75 74 29 29  ->keycode 'out))
1770: 0a 20 20 20 20 28 6f 70 65 72 20 20 20 20 28 73  .    (oper    (s
1780: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
1790: 20 27 6f 70 65 72 29 29 0a 20 20 20 20 28 63 6c   'oper)).    (cl
17a0: 65 61 72 61 67 61 69 6e 20 20 20 20 28 73 63 61  earagain    (sca
17b0: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
17c0: 63 6c 65 61 72 61 67 61 69 6e 29 29 0a 20 20 20  clearagain)).   
17d0: 20 28 63 72 73 65 6c 20 20 20 20 28 73 63 61 6e   (crsel    (scan
17e0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 63  code->keycode 'c
17f0: 72 73 65 6c 29 29 0a 20 20 20 20 28 65 78 73 65  rsel)).    (exse
1800: 6c 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  l    (scancode->
1810: 6b 65 79 63 6f 64 65 20 27 65 78 73 65 6c 29 29  keycode 'exsel))
1820: 0a 0a 20 20 20 20 28 6b 70 2d 30 30 20 20 20 20  ..    (kp-00    
1830: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1840: 64 65 20 27 6b 70 2d 30 30 29 29 0a 20 20 20 20  de 'kp-00)).    
1850: 28 6b 70 2d 30 30 30 20 20 20 20 28 73 63 61 6e  (kp-000    (scan
1860: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b  code->keycode 'k
1870: 70 2d 30 30 30 29 29 0a 20 20 20 20 28 74 68 6f  p-000)).    (tho
1880: 75 73 61 6e 64 73 73 65 70 61 72 61 74 6f 72 20  usandsseparator 
1890: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
18a0: 64 65 20 27 74 68 6f 75 73 61 6e 64 73 73 65 70  de 'thousandssep
18b0: 61 72 61 74 6f 72 29 29 0a 20 20 20 20 28 64 65  arator)).    (de
18c0: 63 69 6d 61 6c 73 65 70 61 72 61 74 6f 72 20 20  cimalseparator  
18d0: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
18e0: 64 65 20 27 64 65 63 69 6d 61 6c 73 65 70 61 72  de 'decimalsepar
18f0: 61 74 6f 72 29 29 0a 20 20 20 20 28 63 75 72 72  ator)).    (curr
1900: 65 6e 63 79 75 6e 69 74 20 20 20 20 28 73 63 61  encyunit    (sca
1910: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
1920: 63 75 72 72 65 6e 63 79 75 6e 69 74 29 29 0a 20  currencyunit)). 
1930: 20 20 20 28 63 75 72 72 65 6e 63 79 73 75 62 75     (currencysubu
1940: 6e 69 74 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  nit  (scancode->
1950: 6b 65 79 63 6f 64 65 20 27 63 75 72 72 65 6e 63  keycode 'currenc
1960: 79 73 75 62 75 6e 69 74 29 29 0a 20 20 20 20 28  ysubunit)).    (
1970: 6b 70 2d 6c 65 66 74 70 61 72 65 6e 20 20 20 20  kp-leftparen    
1980: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1990: 64 65 20 27 6b 70 2d 6c 65 66 74 70 61 72 65 6e  de 'kp-leftparen
19a0: 29 29 0a 20 20 20 20 28 6b 70 2d 72 69 67 68 74  )).    (kp-right
19b0: 70 61 72 65 6e 20 20 20 20 28 73 63 61 6e 63 6f  paren    (scanco
19c0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
19d0: 72 69 67 68 74 70 61 72 65 6e 29 29 0a 20 20 20  rightparen)).   
19e0: 20 28 6b 70 2d 6c 65 66 74 62 72 61 63 65 20 20   (kp-leftbrace  
19f0: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
1a00: 63 6f 64 65 20 27 6b 70 2d 6c 65 66 74 62 72 61  code 'kp-leftbra
1a10: 63 65 29 29 0a 20 20 20 20 28 6b 70 2d 72 69 67  ce)).    (kp-rig
1a20: 68 74 62 72 61 63 65 20 20 20 20 28 73 63 61 6e  htbrace    (scan
1a30: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b  code->keycode 'k
1a40: 70 2d 72 69 67 68 74 62 72 61 63 65 29 29 0a 20  p-rightbrace)). 
1a50: 20 20 20 28 6b 70 2d 74 61 62 20 20 20 20 28 73     (kp-tab    (s
1a60: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
1a70: 20 27 6b 70 2d 74 61 62 29 29 0a 20 20 20 20 28   'kp-tab)).    (
1a80: 6b 70 2d 62 61 63 6b 73 70 61 63 65 20 20 20 20  kp-backspace    
1a90: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1aa0: 64 65 20 27 6b 70 2d 62 61 63 6b 73 70 61 63 65  de 'kp-backspace
1ab0: 29 29 0a 20 20 20 20 28 6b 70 2d 61 20 20 20 20  )).    (kp-a    
1ac0: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1ad0: 64 65 20 27 6b 70 2d 61 29 29 0a 20 20 20 20 28  de 'kp-a)).    (
1ae0: 6b 70 2d 62 20 20 20 20 28 73 63 61 6e 63 6f 64  kp-b    (scancod
1af0: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 62  e->keycode 'kp-b
1b00: 29 29 0a 20 20 20 20 28 6b 70 2d 63 20 20 20 20  )).    (kp-c    
1b10: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1b20: 64 65 20 27 6b 70 2d 63 29 29 0a 20 20 20 20 28  de 'kp-c)).    (
1b30: 6b 70 2d 64 20 20 20 20 28 73 63 61 6e 63 6f 64  kp-d    (scancod
1b40: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 64  e->keycode 'kp-d
1b50: 29 29 0a 20 20 20 20 28 6b 70 2d 65 20 20 20 20  )).    (kp-e    
1b60: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1b70: 64 65 20 27 6b 70 2d 65 29 29 0a 20 20 20 20 28  de 'kp-e)).    (
1b80: 6b 70 2d 66 20 20 20 20 28 73 63 61 6e 63 6f 64  kp-f    (scancod
1b90: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 66  e->keycode 'kp-f
1ba0: 29 29 0a 20 20 20 20 28 6b 70 2d 78 6f 72 20 20  )).    (kp-xor  
1bb0: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
1bc0: 63 6f 64 65 20 27 6b 70 2d 78 6f 72 29 29 0a 20  code 'kp-xor)). 
1bd0: 20 20 20 28 6b 70 2d 70 6f 77 65 72 20 20 20 20     (kp-power    
1be0: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1bf0: 64 65 20 27 6b 70 2d 70 6f 77 65 72 29 29 0a 20  de 'kp-power)). 
1c00: 20 20 20 28 6b 70 2d 70 65 72 63 65 6e 74 20 20     (kp-percent  
1c10: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
1c20: 63 6f 64 65 20 27 6b 70 2d 70 65 72 63 65 6e 74  code 'kp-percent
1c30: 29 29 0a 20 20 20 20 28 6b 70 2d 6c 65 73 73 20  )).    (kp-less 
1c40: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
1c50: 79 63 6f 64 65 20 27 6b 70 2d 6c 65 73 73 29 29  ycode 'kp-less))
1c60: 0a 20 20 20 20 28 6b 70 2d 67 72 65 61 74 65 72  .    (kp-greater
1c70: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
1c80: 65 79 63 6f 64 65 20 27 6b 70 2d 67 72 65 61 74  eycode 'kp-great
1c90: 65 72 29 29 0a 20 20 20 20 28 6b 70 2d 61 6d 70  er)).    (kp-amp
1ca0: 65 72 73 61 6e 64 20 20 20 20 28 73 63 61 6e 63  ersand    (scanc
1cb0: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70  ode->keycode 'kp
1cc0: 2d 61 6d 70 65 72 73 61 6e 64 29 29 0a 20 20 20  -ampersand)).   
1cd0: 20 28 6b 70 2d 64 62 6c 61 6d 70 65 72 73 61 6e   (kp-dblampersan
1ce0: 64 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65  d  (scancode->ke
1cf0: 79 63 6f 64 65 20 27 6b 70 2d 64 62 6c 61 6d 70  ycode 'kp-dblamp
1d00: 65 72 73 61 6e 64 29 29 0a 20 20 20 20 28 6b 70  ersand)).    (kp
1d10: 2d 76 65 72 74 69 63 61 6c 62 61 72 20 28 73 63  -verticalbar (sc
1d20: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
1d30: 27 6b 70 2d 76 65 72 74 69 63 61 6c 62 61 72 29  'kp-verticalbar)
1d40: 29 0a 20 20 20 20 28 6b 70 2d 64 62 6c 76 65 72  ).    (kp-dblver
1d50: 74 69 63 61 6c 62 61 72 20 28 73 63 61 6e 63 6f  ticalbar (scanco
1d60: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d  de->keycode 'kp-
1d70: 64 62 6c 76 65 72 74 69 63 61 6c 62 61 72 29 29  dblverticalbar))
1d80: 0a 20 20 20 20 28 6b 70 2d 63 6f 6c 6f 6e 20 20  .    (kp-colon  
1d90: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
1da0: 63 6f 64 65 20 27 6b 70 2d 63 6f 6c 6f 6e 29 29  code 'kp-colon))
1db0: 0a 20 20 20 20 28 6b 70 2d 68 61 73 68 20 20 20  .    (kp-hash   
1dc0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1dd0: 6f 64 65 20 27 6b 70 2d 68 61 73 68 29 29 0a 20  ode 'kp-hash)). 
1de0: 20 20 20 28 6b 70 2d 73 70 61 63 65 20 20 20 20     (kp-space    
1df0: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
1e00: 64 65 20 27 6b 70 2d 73 70 61 63 65 29 29 0a 20  de 'kp-space)). 
1e10: 20 20 20 28 6b 70 2d 61 74 20 20 20 20 28 73 63     (kp-at    (sc
1e20: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
1e30: 27 6b 70 2d 61 74 29 29 0a 20 20 20 20 28 6b 70  'kp-at)).    (kp
1e40: 2d 65 78 63 6c 61 6d 20 20 20 20 28 73 63 61 6e  -exclam    (scan
1e50: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b  code->keycode 'k
1e60: 70 2d 65 78 63 6c 61 6d 29 29 0a 20 20 20 20 28  p-exclam)).    (
1e70: 6b 70 2d 6d 65 6d 73 74 6f 72 65 20 20 20 20 28  kp-memstore    (
1e80: 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64  scancode->keycod
1e90: 65 20 27 6b 70 2d 6d 65 6d 73 74 6f 72 65 29 29  e 'kp-memstore))
1ea0: 0a 20 20 20 20 28 6b 70 2d 6d 65 6d 72 65 63 61  .    (kp-memreca
1eb0: 6c 6c 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d  ll    (scancode-
1ec0: 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 6d 65 6d  >keycode 'kp-mem
1ed0: 72 65 63 61 6c 6c 29 29 0a 20 20 20 20 28 6b 70  recall)).    (kp
1ee0: 2d 6d 65 6d 63 6c 65 61 72 20 20 20 20 28 73 63  -memclear    (sc
1ef0: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
1f00: 27 6b 70 2d 6d 65 6d 63 6c 65 61 72 29 29 0a 20  'kp-memclear)). 
1f10: 20 20 20 28 6b 70 2d 6d 65 6d 61 64 64 20 20 20     (kp-memadd   
1f20: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1f30: 6f 64 65 20 27 6b 70 2d 6d 65 6d 61 64 64 29 29  ode 'kp-memadd))
1f40: 0a 20 20 20 20 28 6b 70 2d 6d 65 6d 73 75 62 74  .    (kp-memsubt
1f50: 72 61 63 74 20 20 28 73 63 61 6e 63 6f 64 65 2d  ract  (scancode-
1f60: 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 6d 65 6d  >keycode 'kp-mem
1f70: 73 75 62 74 72 61 63 74 29 29 0a 20 20 20 20 28  subtract)).    (
1f80: 6b 70 2d 6d 65 6d 6d 75 6c 74 69 70 6c 79 20 20  kp-memmultiply  
1f90: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
1fa0: 6f 64 65 20 27 6b 70 2d 6d 65 6d 6d 75 6c 74 69  ode 'kp-memmulti
1fb0: 70 6c 79 29 29 0a 20 20 20 20 28 6b 70 2d 6d 65  ply)).    (kp-me
1fc0: 6d 64 69 76 69 64 65 20 20 20 20 28 73 63 61 6e  mdivide    (scan
1fd0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b  code->keycode 'k
1fe0: 70 2d 6d 65 6d 64 69 76 69 64 65 29 29 0a 20 20  p-memdivide)).  
1ff0: 20 20 28 6b 70 2d 70 6c 75 73 6d 69 6e 75 73 20    (kp-plusminus 
2000: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
2010: 79 63 6f 64 65 20 27 6b 70 2d 70 6c 75 73 6d 69  ycode 'kp-plusmi
2020: 6e 75 73 29 29 0a 20 20 20 20 28 6b 70 2d 63 6c  nus)).    (kp-cl
2030: 65 61 72 20 20 20 20 28 73 63 61 6e 63 6f 64 65  ear    (scancode
2040: 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70 2d 63 6c  ->keycode 'kp-cl
2050: 65 61 72 29 29 0a 20 20 20 20 28 6b 70 2d 63 6c  ear)).    (kp-cl
2060: 65 61 72 65 6e 74 72 79 20 20 20 20 28 73 63 61  earentry    (sca
2070: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
2080: 6b 70 2d 63 6c 65 61 72 65 6e 74 72 79 29 29 0a  kp-clearentry)).
2090: 20 20 20 20 28 6b 70 2d 62 69 6e 61 72 79 20 20      (kp-binary  
20a0: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
20b0: 63 6f 64 65 20 27 6b 70 2d 62 69 6e 61 72 79 29  code 'kp-binary)
20c0: 29 0a 20 20 20 20 28 6b 70 2d 6f 63 74 61 6c 20  ).    (kp-octal 
20d0: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
20e0: 79 63 6f 64 65 20 27 6b 70 2d 6f 63 74 61 6c 29  ycode 'kp-octal)
20f0: 29 0a 20 20 20 20 28 6b 70 2d 64 65 63 69 6d 61  ).    (kp-decima
2100: 6c 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e  l    (scancode->
2110: 6b 65 79 63 6f 64 65 20 27 6b 70 2d 64 65 63 69  keycode 'kp-deci
2120: 6d 61 6c 29 29 0a 20 20 20 20 28 6b 70 2d 68 65  mal)).    (kp-he
2130: 78 61 64 65 63 69 6d 61 6c 20 28 73 63 61 6e 63  xadecimal (scanc
2140: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6b 70  ode->keycode 'kp
2150: 2d 68 65 78 61 64 65 63 69 6d 61 6c 29 29 0a 0a  -hexadecimal))..
2160: 20 20 20 20 28 6c 63 74 72 6c 20 20 20 20 28 73      (lctrl    (s
2170: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
2180: 20 27 6c 63 74 72 6c 29 29 0a 20 20 20 20 28 6c   'lctrl)).    (l
2190: 73 68 69 66 74 20 20 20 20 28 73 63 61 6e 63 6f  shift    (scanco
21a0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6c 73 68  de->keycode 'lsh
21b0: 69 66 74 29 29 0a 20 20 20 20 28 6c 61 6c 74 20  ift)).    (lalt 
21c0: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
21d0: 79 63 6f 64 65 20 27 6c 61 6c 74 29 29 0a 20 20  ycode 'lalt)).  
21e0: 20 20 28 6c 67 75 69 20 20 20 20 28 73 63 61 6e    (lgui    (scan
21f0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6c  code->keycode 'l
2200: 67 75 69 29 29 0a 20 20 20 20 28 72 63 74 72 6c  gui)).    (rctrl
2210: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
2220: 65 79 63 6f 64 65 20 27 72 63 74 72 6c 29 29 0a  eycode 'rctrl)).
2230: 20 20 20 20 28 72 73 68 69 66 74 20 20 20 20 28      (rshift    (
2240: 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64  scancode->keycod
2250: 65 20 27 72 73 68 69 66 74 29 29 0a 20 20 20 20  e 'rshift)).    
2260: 28 72 61 6c 74 20 20 20 20 28 73 63 61 6e 63 6f  (ralt    (scanco
2270: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 72 61 6c  de->keycode 'ral
2280: 74 29 29 0a 20 20 20 20 28 72 67 75 69 20 20 20  t)).    (rgui   
2290: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
22a0: 6f 64 65 20 27 72 67 75 69 29 29 0a 0a 20 20 20  ode 'rgui))..   
22b0: 20 28 6d 6f 64 65 20 20 20 20 28 73 63 61 6e 63   (mode    (scanc
22c0: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6d 6f  ode->keycode 'mo
22d0: 64 65 29 29 0a 0a 20 20 20 20 28 61 75 64 69 6f  de))..    (audio
22e0: 6e 65 78 74 20 20 20 20 28 73 63 61 6e 63 6f 64  next    (scancod
22f0: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 75 64 69  e->keycode 'audi
2300: 6f 6e 65 78 74 29 29 0a 20 20 20 20 28 61 75 64  onext)).    (aud
2310: 69 6f 70 72 65 76 20 20 20 20 28 73 63 61 6e 63  ioprev    (scanc
2320: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 75  ode->keycode 'au
2330: 64 69 6f 70 72 65 76 29 29 0a 20 20 20 20 28 61  dioprev)).    (a
2340: 75 64 69 6f 73 74 6f 70 20 20 20 20 28 73 63 61  udiostop    (sca
2350: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
2360: 61 75 64 69 6f 73 74 6f 70 29 29 0a 20 20 20 20  audiostop)).    
2370: 28 61 75 64 69 6f 70 6c 61 79 20 20 20 20 28 73  (audioplay    (s
2380: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
2390: 20 27 61 75 64 69 6f 70 6c 61 79 29 29 0a 20 20   'audioplay)).  
23a0: 20 20 28 61 75 64 69 6f 6d 75 74 65 20 20 20 20    (audiomute    
23b0: 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f  (scancode->keyco
23c0: 64 65 20 27 61 75 64 69 6f 6d 75 74 65 29 29 0a  de 'audiomute)).
23d0: 20 20 20 20 28 6d 65 64 69 61 73 65 6c 65 63 74      (mediaselect
23e0: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
23f0: 65 79 63 6f 64 65 20 27 6d 65 64 69 61 73 65 6c  eycode 'mediasel
2400: 65 63 74 29 29 0a 20 20 20 20 28 77 77 77 20 20  ect)).    (www  
2410: 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79    (scancode->key
2420: 63 6f 64 65 20 27 77 77 77 29 29 0a 20 20 20 20  code 'www)).    
2430: 28 6d 61 69 6c 20 20 20 20 28 73 63 61 6e 63 6f  (mail    (scanco
2440: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 6d 61 69  de->keycode 'mai
2450: 6c 29 29 0a 20 20 20 20 28 63 61 6c 63 75 6c 61  l)).    (calcula
2460: 74 6f 72 20 20 20 20 28 73 63 61 6e 63 6f 64 65  tor    (scancode
2470: 2d 3e 6b 65 79 63 6f 64 65 20 27 63 61 6c 63 75  ->keycode 'calcu
2480: 6c 61 74 6f 72 29 29 0a 20 20 20 20 28 63 6f 6d  lator)).    (com
2490: 70 75 74 65 72 20 20 20 20 28 73 63 61 6e 63 6f  puter    (scanco
24a0: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 63 6f 6d  de->keycode 'com
24b0: 70 75 74 65 72 29 29 0a 20 20 20 20 28 61 63 2d  puter)).    (ac-
24c0: 73 65 61 72 63 68 20 20 20 20 28 73 63 61 6e 63  search    (scanc
24d0: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 63  ode->keycode 'ac
24e0: 2d 73 65 61 72 63 68 29 29 0a 20 20 20 20 28 61  -search)).    (a
24f0: 63 2d 68 6f 6d 65 20 20 20 20 28 73 63 61 6e 63  c-home    (scanc
2500: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 63  ode->keycode 'ac
2510: 2d 68 6f 6d 65 29 29 0a 20 20 20 20 28 61 63 2d  -home)).    (ac-
2520: 62 61 63 6b 20 20 20 20 28 73 63 61 6e 63 6f 64  back    (scancod
2530: 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 63 2d 62  e->keycode 'ac-b
2540: 61 63 6b 29 29 0a 20 20 20 20 28 61 63 2d 66 6f  ack)).    (ac-fo
2550: 72 77 61 72 64 20 20 20 20 28 73 63 61 6e 63 6f  rward    (scanco
2560: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 63 2d  de->keycode 'ac-
2570: 66 6f 72 77 61 72 64 29 29 0a 20 20 20 20 28 61  forward)).    (a
2580: 63 2d 73 74 6f 70 20 20 20 20 28 73 63 61 6e 63  c-stop    (scanc
2590: 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61 63  ode->keycode 'ac
25a0: 2d 73 74 6f 70 29 29 0a 20 20 20 20 28 61 63 2d  -stop)).    (ac-
25b0: 72 65 66 72 65 73 68 20 20 20 20 28 73 63 61 6e  refresh    (scan
25c0: 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 61  code->keycode 'a
25d0: 63 2d 72 65 66 72 65 73 68 29 29 0a 20 20 20 20  c-refresh)).    
25e0: 28 61 63 2d 62 6f 6f 6b 6d 61 72 6b 73 20 20 20  (ac-bookmarks   
25f0: 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63   (scancode->keyc
2600: 6f 64 65 20 27 61 63 2d 62 6f 6f 6b 6d 61 72 6b  ode 'ac-bookmark
2610: 73 29 29 0a 0a 20 20 20 20 28 62 72 69 67 68 74  s))..    (bright
2620: 6e 65 73 73 64 6f 77 6e 20 28 73 63 61 6e 63 6f  nessdown (scanco
2630: 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27 62 72 69  de->keycode 'bri
2640: 67 68 74 6e 65 73 73 64 6f 77 6e 29 29 0a 20 20  ghtnessdown)).  
2650: 20 20 28 62 72 69 67 68 74 6e 65 73 73 75 70 20    (brightnessup 
2660: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
2670: 79 63 6f 64 65 20 27 62 72 69 67 68 74 6e 65 73  ycode 'brightnes
2680: 73 75 70 29 29 0a 20 20 20 20 28 64 69 73 70 6c  sup)).    (displ
2690: 61 79 73 77 69 74 63 68 20 20 20 20 28 73 63 61  ayswitch    (sca
26a0: 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20 27  ncode->keycode '
26b0: 64 69 73 70 6c 61 79 73 77 69 74 63 68 29 29 0a  displayswitch)).
26c0: 20 20 20 20 28 6b 62 64 69 6c 6c 75 6d 74 6f 67      (kbdillumtog
26d0: 67 6c 65 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b  gle (scancode->k
26e0: 65 79 63 6f 64 65 20 27 6b 62 64 69 6c 6c 75 6d  eycode 'kbdillum
26f0: 74 6f 67 67 6c 65 29 29 0a 20 20 20 20 28 6b 62  toggle)).    (kb
2700: 64 69 6c 6c 75 6d 64 6f 77 6e 20 20 20 20 28 73  dillumdown    (s
2710: 63 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65  cancode->keycode
2720: 20 27 6b 62 64 69 6c 6c 75 6d 64 6f 77 6e 29 29   'kbdillumdown))
2730: 0a 20 20 20 20 28 6b 62 64 69 6c 6c 75 6d 75 70  .    (kbdillumup
2740: 20 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b      (scancode->k
2750: 65 79 63 6f 64 65 20 27 6b 62 64 69 6c 6c 75 6d  eycode 'kbdillum
2760: 75 70 29 29 0a 20 20 20 20 28 65 6a 65 63 74 20  up)).    (eject 
2770: 20 20 20 28 73 63 61 6e 63 6f 64 65 2d 3e 6b 65     (scancode->ke
2780: 79 63 6f 64 65 20 27 65 6a 65 63 74 29 29 0a 20  ycode 'eject)). 
2790: 20 20 20 28 73 6c 65 65 70 20 20 20 20 28 73 63     (sleep    (sc
27a0: 61 6e 63 6f 64 65 2d 3e 6b 65 79 63 6f 64 65 20  ancode->keycode 
27b0: 27 73 6c 65 65 70 29 29 0a 20 20 20 20 29 3b 3b  'sleep)).    );;
27c0: 20 66 6c 61 67 73 20 73 64 6c 2d 6b 65 79 63 6f   flags sdl-keyco
27d0: 64 65 20 20 20 0a 0a 28 64 65 66 69 6e 65 2d 66  de   ..(define-f
27e0: 6c 61 67 73 20 73 64 6c 2d 6b 65 79 6d 6f 64 0a  lags sdl-keymod.
27f0: 20 20 20 20 28 6e 6f 6e 65 20 20 20 20 23 78 30      (none    #x0
2800: 30 30 30 29 0a 20 20 20 20 28 6c 73 68 69 66 74  000).    (lshift
2810: 20 20 20 20 23 78 30 30 30 31 29 0a 20 20 20 20      #x0001).    
2820: 28 72 73 68 69 66 74 20 20 20 20 23 78 30 30 30  (rshift    #x000
2830: 32 29 0a 20 20 20 20 28 6c 63 74 72 6c 20 20 20  2).    (lctrl   
2840: 20 23 78 30 30 34 30 29 0a 20 20 20 20 28 72 63   #x0040).    (rc
2850: 74 72 6c 20 20 20 20 23 78 30 30 38 30 29 0a 20  trl    #x0080). 
2860: 20 20 20 28 6c 61 6c 74 20 20 20 20 23 78 30 31     (lalt    #x01
2870: 30 30 29 0a 20 20 20 20 28 72 61 6c 74 20 20 20  00).    (ralt   
2880: 20 23 78 30 32 30 30 29 0a 20 20 20 20 28 6c 67   #x0200).    (lg
2890: 75 69 20 20 20 20 23 78 30 34 30 30 29 0a 20 20  ui    #x0400).  
28a0: 20 20 28 72 67 75 69 20 20 20 20 23 78 30 38 30    (rgui    #x080
28b0: 30 29 0a 20 20 20 20 28 6e 75 6d 20 20 20 20 23  0).    (num    #
28c0: 78 31 30 30 30 29 0a 20 20 20 20 28 63 61 70 73  x1000).    (caps
28d0: 20 20 20 20 23 78 32 30 30 30 29 0a 20 20 20 20      #x2000).    
28e0: 28 6d 6f 64 65 20 20 20 20 23 78 34 30 30 30 29  (mode    #x4000)
28f0: 0a 20 20 20 20 28 72 65 73 65 72 76 65 64 20 20  .    (reserved  
2900: 20 20 23 78 38 30 30 30 29 0a 20 20 20 20 28 63    #x8000).    (c
2910: 74 72 6c 20 20 20 20 20 23 78 30 30 43 30 29 0a  trl     #x00C0).
2920: 20 20 20 20 28 73 68 69 66 74 20 20 20 20 33 29      (shift    3)
2930: 0a 20 20 20 20 28 61 6c 74 20 20 20 20 23 78 30  .    (alt    #x0
2940: 33 30 30 29 0a 20 20 20 20 28 67 75 69 20 20 20  300).    (gui   
2950: 20 23 78 30 63 30 30 29 29 0a 0a                  #x0c00))..