Hex Artifact Content
Not logged in

Artifact a6b683d0bc258db9dc0a53b783ed9cb7888f279a:


0000: 3b 3b 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20  ;;.;; Copyright 
0010: 32 30 31 36 20 41 6c 64 6f 20 4e 69 63 6f 6c 61  2016 Aldo Nicola
0020: 73 20 42 72 75 6e 6f 0a 3b 3b 0a 3b 3b 20 4c 69  s Bruno.;;.;; Li
0030: 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 65  censed under the
0040: 20 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 2c   Apache License,
0050: 20 56 65 72 73 69 6f 6e 20 32 2e 30 20 28 74 68   Version 2.0 (th
0060: 65 20 22 4c 69 63 65 6e 73 65 22 29 3b 0a 3b 3b  e "License");.;;
0070: 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 75 73 65   you may not use
0080: 20 74 68 69 73 20 66 69 6c 65 20 65 78 63 65 70   this file excep
0090: 74 20 69 6e 20 63 6f 6d 70 6c 69 61 6e 63 65 20  t in compliance 
00a0: 77 69 74 68 20 74 68 65 20 4c 69 63 65 6e 73 65  with the License
00b0: 2e 0a 3b 3b 20 59 6f 75 20 6d 61 79 20 6f 62 74  ..;; You may obt
00c0: 61 69 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68  ain a copy of th
00d0: 65 20 4c 69 63 65 6e 73 65 20 61 74 0a 3b 3b 0a  e License at.;;.
00e0: 3b 3b 20 20 20 20 20 68 74 74 70 3a 2f 2f 77 77  ;;     http://ww
00f0: 77 2e 61 70 61 63 68 65 2e 6f 72 67 2f 6c 69 63  w.apache.org/lic
0100: 65 6e 73 65 73 2f 4c 49 43 45 4e 53 45 2d 32 2e  enses/LICENSE-2.
0110: 30 0a 3b 3b 0a 3b 3b 20 55 6e 6c 65 73 73 20 72  0.;;.;; Unless r
0120: 65 71 75 69 72 65 64 20 62 79 20 61 70 70 6c 69  equired by appli
0130: 63 61 62 6c 65 20 6c 61 77 20 6f 72 20 61 67 72  cable law or agr
0140: 65 65 64 20 74 6f 20 69 6e 20 77 72 69 74 69 6e  eed to in writin
0150: 67 2c 20 73 6f 66 74 77 61 72 65 0a 3b 3b 20 64  g, software.;; d
0160: 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72  istributed under
0170: 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 73 20   the License is 
0180: 64 69 73 74 72 69 62 75 74 65 64 20 6f 6e 20 61  distributed on a
0190: 6e 20 22 41 53 20 49 53 22 20 42 41 53 49 53 2c  n "AS IS" BASIS,
01a0: 0a 3b 3b 20 57 49 54 48 4f 55 54 20 57 41 52 52  .;; WITHOUT WARR
01b0: 41 4e 54 49 45 53 20 4f 52 20 43 4f 4e 44 49 54  ANTIES OR CONDIT
01c0: 49 4f 4e 53 20 4f 46 20 41 4e 59 20 4b 49 4e 44  IONS OF ANY KIND
01d0: 2c 20 65 69 74 68 65 72 20 65 78 70 72 65 73 73  , either express
01e0: 20 6f 72 20 69 6d 70 6c 69 65 64 2e 0a 3b 3b 20   or implied..;; 
01f0: 53 65 65 20 74 68 65 20 4c 69 63 65 6e 73 65 20  See the License 
0200: 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 63  for the specific
0210: 20 6c 61 6e 67 75 61 67 65 20 67 6f 76 65 72 6e   language govern
0220: 69 6e 67 20 70 65 72 6d 69 73 73 69 6f 6e 73 20  ing permissions 
0230: 61 6e 64 0a 3b 3b 20 6c 69 6d 69 74 61 74 69 6f  and.;; limitatio
0240: 6e 73 20 75 6e 64 65 72 20 74 68 65 20 4c 69 63  ns under the Lic
0250: 65 6e 73 65 2e 0a 0a 28 64 65 66 69 6e 65 2d 66  ense...(define-f
0260: 6c 61 67 73 20 73 64 6c 2d 73 63 61 6e 63 6f 64  lags sdl-scancod
0270: 65 0a 20 20 20 20 28 75 6e 6b 6e 6f 77 6e 20 20  e.    (unknown  
0280: 20 30 29 0a 0a 20 20 20 20 3b 3b 20 2f 2a 2a 0a   0)..    ;; /**.
0290: 20 20 20 20 3b 3b 20 20 2a 20 20 5c 6e 61 6d 65      ;;  *  \name
02a0: 20 75 73 61 67 65 20 70 61 67 65 20 30 78 30 37   usage page 0x07
02b0: 0a 20 20 20 20 3b 3b 20 20 2a 0a 20 20 20 20 3b  .    ;;  *.    ;
02c0: 3b 20 20 2a 20 20 74 68 65 73 65 20 76 61 6c 75  ;  *  these valu
02d0: 65 73 20 61 72 65 20 66 72 6f 6d 20 75 73 61 67  es are from usag
02e0: 65 20 70 61 67 65 20 30 78 30 37 20 28 75 73 62  e page 0x07 (usb
02f0: 20 6b 65 79 62 6f 61 72 64 20 70 61 67 65 29 2e   keyboard page).
0300: 0a 20 20 20 20 3b 3b 20 20 2a 2f 0a 20 20 20 20  .    ;;  */.    
0310: 3b 3b 20 2f 2a 20 40 7b 20 2a 2f 0a 0a 20 20 20  ;; /* @{ */..   
0320: 20 28 61 20 20 20 34 29 0a 20 20 20 20 28 62 20   (a   4).    (b 
0330: 20 20 35 29 0a 20 20 20 20 28 63 20 20 20 36 29    5).    (c   6)
0340: 0a 20 20 20 20 28 64 20 20 20 37 29 0a 20 20 20  .    (d   7).   
0350: 20 28 65 20 20 20 38 29 0a 20 20 20 20 28 66 20   (e   8).    (f 
0360: 20 20 39 29 0a 20 20 20 20 28 67 20 20 20 31 30    9).    (g   10
0370: 29 0a 20 20 20 20 28 68 20 20 20 31 31 29 0a 20  ).    (h   11). 
0380: 20 20 20 28 69 20 20 20 31 32 29 0a 20 20 20 20     (i   12).    
0390: 28 6a 20 20 20 31 33 29 0a 20 20 20 20 28 6b 20  (j   13).    (k 
03a0: 20 20 31 34 29 0a 20 20 20 20 28 6c 20 20 20 31    14).    (l   1
03b0: 35 29 0a 20 20 20 20 28 6d 20 20 20 31 36 29 0a  5).    (m   16).
03c0: 20 20 20 20 28 6e 20 20 20 31 37 29 0a 20 20 20      (n   17).   
03d0: 20 28 6f 20 20 20 31 38 29 0a 20 20 20 20 28 70   (o   18).    (p
03e0: 20 20 20 31 39 29 0a 20 20 20 20 28 71 20 20 20     19).    (q   
03f0: 32 30 29 0a 20 20 20 20 28 72 20 20 20 32 31 29  20).    (r   21)
0400: 0a 20 20 20 20 28 73 20 20 20 32 32 29 0a 20 20  .    (s   22).  
0410: 20 20 28 74 20 20 20 32 33 29 0a 20 20 20 20 28    (t   23).    (
0420: 75 20 20 20 32 34 29 0a 20 20 20 20 28 76 20 20  u   24).    (v  
0430: 20 32 35 29 0a 20 20 20 20 28 77 20 20 20 32 36   25).    (w   26
0440: 29 0a 20 20 20 20 28 78 20 20 20 32 37 29 0a 20  ).    (x   27). 
0450: 20 20 20 28 79 20 20 20 32 38 29 0a 20 20 20 20     (y   28).    
0460: 28 7a 20 20 20 32 39 29 0a 0a 20 20 20 20 28 31  (z   29)..    (1
0470: 20 20 20 33 30 29 0a 20 20 20 20 28 32 20 20 20     30).    (2   
0480: 33 31 29 0a 20 20 20 20 28 33 20 20 20 33 32 29  31).    (3   32)
0490: 0a 20 20 20 20 28 34 20 20 20 33 33 29 0a 20 20  .    (4   33).  
04a0: 20 20 28 35 20 20 20 33 34 29 0a 20 20 20 20 28    (5   34).    (
04b0: 36 20 20 20 33 35 29 0a 20 20 20 20 28 37 20 20  6   35).    (7  
04c0: 20 33 36 29 0a 20 20 20 20 28 38 20 20 20 33 37   36).    (8   37
04d0: 29 0a 20 20 20 20 28 39 20 20 20 33 38 29 0a 20  ).    (9   38). 
04e0: 20 20 20 28 30 20 20 20 33 39 29 0a 0a 20 20 20     (0   39)..   
04f0: 20 28 72 65 74 75 72 6e 20 20 20 34 30 29 0a 20   (return   40). 
0500: 20 20 20 28 65 73 63 61 70 65 20 20 20 34 31 29     (escape   41)
0510: 0a 20 20 20 20 28 62 61 63 6b 73 70 61 63 65 20  .    (backspace 
0520: 20 20 34 32 29 0a 20 20 20 20 28 74 61 62 20 20    42).    (tab  
0530: 20 34 33 29 0a 20 20 20 20 28 73 70 61 63 65 20   43).    (space 
0540: 20 20 34 34 29 0a 0a 20 20 20 20 28 6d 69 6e 75    44)..    (minu
0550: 73 20 20 20 34 35 29 0a 20 20 20 20 28 65 71 75  s   45).    (equ
0560: 61 6c 73 20 20 20 34 36 29 0a 20 20 20 20 28 6c  als   46).    (l
0570: 65 66 74 62 72 61 63 6b 65 74 20 20 20 34 37 29  eftbracket   47)
0580: 0a 20 20 20 20 28 72 69 67 68 74 62 72 61 63 6b  .    (rightbrack
0590: 65 74 20 20 20 34 38 29 0a 20 20 20 20 28 62 61  et   48).    (ba
05a0: 63 6b 73 6c 61 73 68 20 20 20 34 39 29 20 3b 3b  ckslash   49) ;;
05b0: 20 2f 2a 2a 3c 20 6c 6f 63 61 74 65 64 20 61 74   /**< located at
05c0: 20 74 68 65 20 6c 6f 77 65 72 20 6c 65 66 74 20   the lower left 
05d0: 6f 66 20 74 68 65 20 72 65 74 75 72 6e 0a 20 20  of the return.  
05e0: 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20    ;;            
05f0: 20 20 20 20 20 20 2a 20 20 20 6b 65 79 20 6f 6e        *   key on
0600: 20 69 73 6f 20 6b 65 79 62 6f 61 72 64 73 20 61   iso keyboards a
0610: 6e 64 20 61 74 20 74 68 65 20 72 69 67 68 74 20  nd at the right 
0620: 65 6e 64 0a 20 20 20 20 3b 3b 20 20 20 20 20 20  end.    ;;      
0630: 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20              *   
0640: 6f 66 20 74 68 65 20 71 77 65 72 74 79 20 72 6f  of the qwerty ro
0650: 77 20 6f 6e 20 61 6e 73 69 20 6b 65 79 62 6f 61  w on ansi keyboa
0660: 72 64 73 2e 0a 20 20 20 20 3b 3b 20 20 20 20 20  rds..    ;;     
0670: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20               *  
0680: 20 70 72 6f 64 75 63 65 73 20 72 65 76 65 72 73   produces revers
0690: 65 20 73 6f 6c 69 64 75 73 20 28 62 61 63 6b 73  e solidus (backs
06a0: 6c 61 73 68 29 20 61 6e 64 0a 20 20 20 20 3b 3b  lash) and.    ;;
06b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06c0: 20 20 2a 20 20 20 76 65 72 74 69 63 61 6c 20 6c    *   vertical l
06d0: 69 6e 65 20 69 6e 20 61 20 75 73 20 6c 61 79 6f  ine in a us layo
06e0: 75 74 2c 20 72 65 76 65 72 73 65 0a 20 20 20 20  ut, reverse.    
06f0: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
0700: 20 20 20 20 2a 20 20 20 73 6f 6c 69 64 75 73 20      *   solidus 
0710: 61 6e 64 20 76 65 72 74 69 63 61 6c 20 6c 69 6e  and vertical lin
0720: 65 20 69 6e 20 61 20 75 6b 20 6d 61 63 0a 20 20  e in a uk mac.  
0730: 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20    ;;            
0740: 20 20 20 20 20 20 2a 20 20 20 6c 61 79 6f 75 74        *   layout
0750: 2c 20 6e 75 6d 62 65 72 20 73 69 67 6e 20 61 6e  , number sign an
0760: 64 20 74 69 6c 64 65 20 69 6e 20 61 20 75 6b 0a  d tilde in a uk.
0770: 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20      ;;          
0780: 20 20 20 20 20 20 20 20 2a 20 20 20 77 69 6e 64          *   wind
0790: 6f 77 73 20 6c 61 79 6f 75 74 2c 20 64 6f 6c 6c  ows layout, doll
07a0: 61 72 20 73 69 67 6e 20 61 6e 64 20 70 6f 75 6e  ar sign and poun
07b0: 64 20 73 69 67 6e 0a 20 20 20 20 3b 3b 20 20 20  d sign.    ;;   
07c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
07d0: 20 20 20 69 6e 20 61 20 73 77 69 73 73 20 67 65     in a swiss ge
07e0: 72 6d 61 6e 20 6c 61 79 6f 75 74 2c 20 6e 75 6d  rman layout, num
07f0: 62 65 72 20 73 69 67 6e 20 61 6e 64 0a 20 20 20  ber sign and.   
0800: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ;;             
0810: 20 20 20 20 20 2a 20 20 20 61 70 6f 73 74 72 6f       *   apostro
0820: 70 68 65 20 69 6e 20 61 20 67 65 72 6d 61 6e 20  phe in a german 
0830: 6c 61 79 6f 75 74 2c 20 67 72 61 76 65 0a 20 20  layout, grave.  
0840: 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20    ;;            
0850: 20 20 20 20 20 20 2a 20 20 20 61 63 63 65 6e 74        *   accent
0860: 20 61 6e 64 20 70 6f 75 6e 64 20 73 69 67 6e 20   and pound sign 
0870: 69 6e 20 61 20 66 72 65 6e 63 68 20 6d 61 63 0a  in a french mac.
0880: 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20      ;;          
0890: 20 20 20 20 20 20 20 20 2a 20 20 20 6c 61 79 6f          *   layo
08a0: 75 74 2c 20 61 6e 64 20 61 73 74 65 72 69 73 6b  ut, and asterisk
08b0: 20 61 6e 64 20 6d 69 63 72 6f 20 73 69 67 6e 20   and micro sign 
08c0: 69 6e 20 61 0a 20 20 20 20 3b 3b 20 20 20 20 20  in a.    ;;     
08d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20               *  
08e0: 20 66 72 65 6e 63 68 20 77 69 6e 64 6f 77 73 20   french windows 
08f0: 6c 61 79 6f 75 74 2e 0a 20 20 20 20 3b 3b 20 20  layout..    ;;  
0900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0910: 2a 2f 0a 20 20 20 20 28 6e 6f 6e 75 73 68 61 73  */.    (nonushas
0920: 68 20 20 20 35 30 29 20 3b 3b 20 2f 2a 2a 3c 20  h   50) ;; /**< 
0930: 69 73 6f 20 75 73 62 20 6b 65 79 62 6f 61 72 64  iso usb keyboard
0940: 73 20 61 63 74 75 61 6c 6c 79 20 75 73 65 20 74  s actually use t
0950: 68 69 73 20 63 6f 64 65 0a 20 20 20 20 3b 3b 20  his code.    ;; 
0960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0970: 20 2a 20 20 20 69 6e 73 74 65 61 64 20 6f 66 20   *   instead of 
0980: 34 39 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20  49 for the same 
0990: 6b 65 79 2c 20 62 75 74 20 61 6c 6c 0a 20 20 20  key, but all.   
09a0: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ;;             
09b0: 20 20 20 20 20 2a 20 20 20 6f 73 65 73 20 69 27       *   oses i'
09c0: 76 65 20 73 65 65 6e 20 74 72 65 61 74 20 74 68  ve seen treat th
09d0: 65 20 74 77 6f 20 63 6f 64 65 73 0a 20 20 20 20  e two codes.    
09e0: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
09f0: 20 20 20 20 2a 20 20 20 69 64 65 6e 74 69 63 61      *   identica
0a00: 6c 6c 79 2e 20 73 6f 2c 20 61 73 20 61 6e 20 69  lly. so, as an i
0a10: 6d 70 6c 65 6d 65 6e 74 6f 72 2c 20 75 6e 6c 65  mplementor, unle
0a20: 73 73 0a 20 20 20 20 3b 3b 20 20 20 20 20 20 20  ss.    ;;       
0a30: 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 79             *   y
0a40: 6f 75 72 20 6b 65 79 62 6f 61 72 64 20 67 65 6e  our keyboard gen
0a50: 65 72 61 74 65 73 20 62 6f 74 68 20 6f 66 20 74  erates both of t
0a60: 68 6f 73 65 0a 20 20 20 20 3b 3b 20 20 20 20 20  hose.    ;;     
0a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20               *  
0a80: 20 63 6f 64 65 73 20 61 6e 64 20 79 6f 75 72 20   codes and your 
0a90: 6f 73 20 74 72 65 61 74 73 20 74 68 65 6d 20 64  os treats them d
0aa0: 69 66 66 65 72 65 6e 74 6c 79 2c 0a 20 20 20 20  ifferently,.    
0ab0: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
0ac0: 20 20 20 20 2a 20 20 20 79 6f 75 20 73 68 6f 75      *   you shou
0ad0: 6c 64 20 67 65 6e 65 72 61 74 65 20 73 64 6c 2d  ld generate sdl-
0ae0: 73 63 61 6e 63 6f 64 65 2d 62 61 63 6b 73 6c 61  scancode-backsla
0af0: 73 68 0a 20 20 20 20 3b 3b 20 20 20 20 20 20 20  sh.    ;;       
0b00: 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 69             *   i
0b10: 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 63  nstead of this c
0b20: 6f 64 65 2e 20 61 73 20 61 20 75 73 65 72 2c 20  ode. as a user, 
0b30: 79 6f 75 0a 20 20 20 20 3b 3b 20 20 20 20 20 20  you.    ;;      
0b40: 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20              *   
0b50: 73 68 6f 75 6c 64 20 6e 6f 74 20 72 65 6c 79 20  should not rely 
0b60: 6f 6e 20 74 68 69 73 20 63 6f 64 65 20 62 65 63  on this code bec
0b70: 61 75 73 65 20 73 64 6c 0a 20 20 20 20 3b 3b 20  ause sdl.    ;; 
0b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b90: 20 2a 20 20 20 77 69 6c 6c 20 6e 65 76 65 72 20   *   will never 
0ba0: 67 65 6e 65 72 61 74 65 20 69 74 20 77 69 74 68  generate it with
0bb0: 20 6d 6f 73 74 20 28 61 6c 6c 3f 29 0a 20 20 20   most (all?).   
0bc0: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ;;             
0bd0: 20 20 20 20 20 2a 20 20 20 6b 65 79 62 6f 61 72       *   keyboar
0be0: 64 73 2e 0a 20 20 20 20 3b 3b 20 20 20 20 20 20  ds..    ;;      
0bf0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 20              */. 
0c00: 20 20 20 28 73 65 6d 69 63 6f 6c 6f 6e 20 20 20     (semicolon   
0c10: 35 31 29 0a 20 20 20 20 28 61 70 6f 73 74 72 6f  51).    (apostro
0c20: 70 68 65 20 20 20 35 32 29 0a 20 20 20 20 28 67  phe   52).    (g
0c30: 72 61 76 65 20 20 20 35 33 29 20 3b 3b 20 2f 2a  rave   53) ;; /*
0c40: 2a 3c 20 6c 6f 63 61 74 65 64 20 69 6e 20 74 68  *< located in th
0c50: 65 20 74 6f 70 20 6c 65 66 74 20 63 6f 72 6e 65  e top left corne
0c60: 72 20 28 6f 6e 20 62 6f 74 68 20 61 6e 73 69 0a  r (on both ansi.
0c70: 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20 20 20      ;;          
0c80: 20 20 20 20 20 20 20 20 2a 20 20 20 61 6e 64 20          *   and 
0c90: 69 73 6f 20 6b 65 79 62 6f 61 72 64 73 29 2e 20  iso keyboards). 
0ca0: 70 72 6f 64 75 63 65 73 20 67 72 61 76 65 20 61  produces grave a
0cb0: 63 63 65 6e 74 20 61 6e 64 0a 20 20 20 20 3b 3b  ccent and.    ;;
0cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cd0: 20 20 2a 20 20 20 74 69 6c 64 65 20 69 6e 20 61    *   tilde in a
0ce0: 20 75 73 20 77 69 6e 64 6f 77 73 20 6c 61 79 6f   us windows layo
0cf0: 75 74 20 61 6e 64 20 69 6e 20 75 73 20 61 6e 64  ut and in us and
0d00: 20 75 6b 0a 20 20 20 20 3b 3b 20 20 20 20 20 20   uk.    ;;      
0d10: 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20              *   
0d20: 6d 61 63 20 6c 61 79 6f 75 74 73 20 6f 6e 20 61  mac layouts on a
0d30: 6e 73 69 20 6b 65 79 62 6f 61 72 64 73 2c 20 67  nsi keyboards, g
0d40: 72 61 76 65 20 61 63 63 65 6e 74 0a 20 20 20 20  rave accent.    
0d50: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
0d60: 20 20 20 20 2a 20 20 20 61 6e 64 20 6e 6f 74 20      *   and not 
0d70: 73 69 67 6e 20 69 6e 20 61 20 75 6b 20 77 69 6e  sign in a uk win
0d80: 64 6f 77 73 20 6c 61 79 6f 75 74 2c 20 73 65 63  dows layout, sec
0d90: 74 69 6f 6e 0a 20 20 20 20 3b 3b 20 20 20 20 20  tion.    ;;     
0da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20               *  
0db0: 20 73 69 67 6e 20 61 6e 64 20 70 6c 75 73 2d 6d   sign and plus-m
0dc0: 69 6e 75 73 20 73 69 67 6e 20 69 6e 20 75 73 20  inus sign in us 
0dd0: 61 6e 64 20 75 6b 20 6d 61 63 0a 20 20 20 20 3b  and uk mac.    ;
0de0: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;               
0df0: 20 20 20 2a 20 20 20 6c 61 79 6f 75 74 73 20 6f     *   layouts o
0e00: 6e 20 69 73 6f 20 6b 65 79 62 6f 61 72 64 73 2c  n iso keyboards,
0e10: 20 73 65 63 74 69 6f 6e 20 73 69 67 6e 20 61 6e   section sign an
0e20: 64 0a 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20  d.    ;;        
0e30: 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 64 65            *   de
0e40: 67 72 65 65 20 73 69 67 6e 20 69 6e 20 61 20 73  gree sign in a s
0e50: 77 69 73 73 20 67 65 72 6d 61 6e 20 6c 61 79 6f  wiss german layo
0e60: 75 74 20 28 6d 61 63 3a 0a 20 20 20 20 3b 3b 20  ut (mac:.    ;; 
0e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e80: 20 2a 20 20 20 6f 6e 6c 79 20 6f 6e 20 69 73 6f   *   only on iso
0e90: 20 6b 65 79 62 6f 61 72 64 73 29 2c 20 63 69 72   keyboards), cir
0ea0: 63 75 6d 66 6c 65 78 20 61 63 63 65 6e 74 20 61  cumflex accent a
0eb0: 6e 64 0a 20 20 20 20 3b 3b 20 20 20 20 20 20 20  nd.    ;;       
0ec0: 20 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 64             *   d
0ed0: 65 67 72 65 65 20 73 69 67 6e 20 69 6e 20 61 20  egree sign in a 
0ee0: 67 65 72 6d 61 6e 20 6c 61 79 6f 75 74 20 28 6d  german layout (m
0ef0: 61 63 3a 20 6f 6e 6c 79 20 6f 6e 0a 20 20 20 20  ac: only on.    
0f00: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
0f10: 20 20 20 20 2a 20 20 20 69 73 6f 20 6b 65 79 62      *   iso keyb
0f20: 6f 61 72 64 73 29 2c 20 73 75 70 65 72 73 63 72  oards), superscr
0f30: 69 70 74 20 74 77 6f 20 61 6e 64 20 74 69 6c 64  ipt two and tild
0f40: 65 20 69 6e 20 61 0a 20 20 20 20 3b 3b 20 20 20  e in a.    ;;   
0f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
0f60: 20 20 20 66 72 65 6e 63 68 20 77 69 6e 64 6f 77     french window
0f70: 73 20 6c 61 79 6f 75 74 2c 20 63 6f 6d 6d 65 72  s layout, commer
0f80: 63 69 61 6c 20 61 74 20 61 6e 64 0a 20 20 20 20  cial at and.    
0f90: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
0fa0: 20 20 20 20 2a 20 20 20 6e 75 6d 62 65 72 20 73      *   number s
0fb0: 69 67 6e 20 69 6e 20 61 20 66 72 65 6e 63 68 20  ign in a french 
0fc0: 6d 61 63 20 6c 61 79 6f 75 74 20 6f 6e 20 69 73  mac layout on is
0fd0: 6f 0a 20 20 20 20 3b 3b 20 20 20 20 20 20 20 20  o.    ;;        
0fe0: 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 6b 65            *   ke
0ff0: 79 62 6f 61 72 64 73 2c 20 61 6e 64 20 6c 65 73  yboards, and les
1000: 73 2d 74 68 61 6e 20 73 69 67 6e 20 61 6e 64 20  s-than sign and 
1010: 67 72 65 61 74 65 72 2d 74 68 61 6e 0a 20 20 20  greater-than.   
1020: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ;;             
1030: 20 20 20 20 20 2a 20 20 20 73 69 67 6e 20 69 6e       *   sign in
1040: 20 61 20 73 77 69 73 73 20 67 65 72 6d 61 6e 2c   a swiss german,
1050: 20 67 65 72 6d 61 6e 2c 20 6f 72 20 66 72 65 6e   german, or fren
1060: 63 68 20 6d 61 63 0a 20 20 20 20 3b 3b 20 20 20  ch mac.    ;;   
1070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
1080: 20 20 20 6c 61 79 6f 75 74 20 6f 6e 20 61 6e 73     layout on ans
1090: 69 20 6b 65 79 62 6f 61 72 64 73 2e 0a 20 20 20  i keyboards..   
10a0: 20 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20   ;;             
10b0: 20 20 20 20 20 2a 2f 0a 20 20 20 20 28 63 6f 6d       */.    (com
10c0: 6d 61 20 20 20 35 34 29 0a 20 20 20 20 28 70 65  ma   54).    (pe
10d0: 72 69 6f 64 20 20 20 35 35 29 0a 20 20 20 20 28  riod   55).    (
10e0: 73 6c 61 73 68 20 20 20 35 36 29 0a 0a 20 20 20  slash   56)..   
10f0: 20 28 63 61 70 73 6c 6f 63 6b 20 20 20 35 37 29   (capslock   57)
1100: 0a 0a 20 20 20 20 28 66 31 20 20 20 35 38 29 0a  ..    (f1   58).
1110: 20 20 20 20 28 66 32 20 20 20 35 39 29 0a 20 20      (f2   59).  
1120: 20 20 28 66 33 20 20 20 36 30 29 0a 20 20 20 20    (f3   60).    
1130: 28 66 34 20 20 20 36 31 29 0a 20 20 20 20 28 66  (f4   61).    (f
1140: 35 20 20 20 36 32 29 0a 20 20 20 20 28 66 36 20  5   62).    (f6 
1150: 20 20 36 33 29 0a 20 20 20 20 28 66 37 20 20 20    63).    (f7   
1160: 36 34 29 0a 20 20 20 20 28 66 38 20 20 20 36 35  64).    (f8   65
1170: 29 0a 20 20 20 20 28 66 39 20 20 20 36 36 29 0a  ).    (f9   66).
1180: 20 20 20 20 28 66 31 30 20 20 20 36 37 29 0a 20      (f10   67). 
1190: 20 20 20 28 66 31 31 20 20 20 36 38 29 0a 20 20     (f11   68).  
11a0: 20 20 28 66 31 32 20 20 20 36 39 29 0a 0a 20 20    (f12   69)..  
11b0: 20 20 28 70 72 69 6e 74 73 63 72 65 65 6e 20 20    (printscreen  
11c0: 20 37 30 29 0a 20 20 20 20 28 73 63 72 6f 6c 6c   70).    (scroll
11d0: 6c 6f 63 6b 20 20 20 37 31 29 0a 20 20 20 20 28  lock   71).    (
11e0: 70 61 75 73 65 20 20 20 37 32 29 0a 20 20 20 20  pause   72).    
11f0: 28 69 6e 73 65 72 74 20 20 20 37 33 29 3b 20 2f  (insert   73); /
1200: 2a 2a 3c 20 69 6e 73 65 72 74 20 6f 6e 20 70 63  **< insert on pc
1210: 2c 20 68 65 6c 70 20 6f 6e 20 73 6f 6d 65 20 6d  , help on some m
1220: 61 63 20 6b 65 79 62 6f 61 72 64 73 20 28 62 75  ac keyboards (bu
1230: 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  t.              
1240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1250: 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20            ;     
1260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1270: 20 64 6f 65 73 20 73 65 6e 64 20 63 6f 64 65 20   does send code 
1280: 37 33 2c 20 6e 6f 74 20 31 31 37 29 20 2a 2f 0a  73, not 117) */.
1290: 20 20 20 20 28 68 6f 6d 65 20 20 20 37 34 29 0a      (home   74).
12a0: 20 20 20 20 28 70 61 67 65 75 70 20 20 20 37 35      (pageup   75
12b0: 29 0a 20 20 20 20 28 64 65 6c 65 74 65 20 20 20  ).    (delete   
12c0: 37 36 29 0a 20 20 20 20 28 65 6e 64 20 20 20 37  76).    (end   7
12d0: 37 29 0a 20 20 20 20 28 70 61 67 65 64 6f 77 6e  7).    (pagedown
12e0: 20 20 20 37 38 29 0a 20 20 20 20 28 72 69 67 68     78).    (righ
12f0: 74 20 20 20 37 39 29 0a 20 20 20 20 28 6c 65 66  t   79).    (lef
1300: 74 20 20 20 38 30 29 0a 20 20 20 20 28 64 6f 77  t   80).    (dow
1310: 6e 20 20 20 38 31 29 0a 20 20 20 20 28 75 70 20  n   81).    (up 
1320: 20 20 38 32 29 0a 0a 20 20 20 20 28 6e 75 6d 6c    82)..    (numl
1330: 6f 63 6b 63 6c 65 61 72 20 20 20 38 33 29 20 3b  ockclear   83) ;
1340: 2f 2a 2a 3c 20 6e 75 6d 20 6c 6f 63 6b 20 6f 6e  /**< num lock on
1350: 20 70 63 2c 20 63 6c 65 61 72 20 6f 6e 20 6d 61   pc, clear on ma
1360: 63 20 6b 65 79 62 6f 61 72 64 73 0a 20 20 20 20  c keyboards.    
1370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1390: 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20      ;           
13a0: 20 20 20 20 2a 2f 0a 20 20 20 20 28 6b 70 2d 64      */.    (kp-d
13b0: 69 76 69 64 65 20 20 20 38 34 29 0a 20 20 20 20  ivide   84).    
13c0: 28 6b 70 2d 6d 75 6c 74 69 70 6c 79 20 20 20 38  (kp-multiply   8
13d0: 35 29 0a 20 20 20 20 28 6b 70 2d 6d 69 6e 75 73  5).    (kp-minus
13e0: 20 20 20 38 36 29 0a 20 20 20 20 28 6b 70 2d 70     86).    (kp-p
13f0: 6c 75 73 20 20 20 38 37 29 0a 20 20 20 20 28 6b  lus   87).    (k
1400: 70 2d 65 6e 74 65 72 20 20 20 38 38 29 0a 20 20  p-enter   88).  
1410: 20 20 28 6b 70 2d 31 20 20 20 38 39 29 0a 20 20    (kp-1   89).  
1420: 20 20 28 6b 70 2d 32 20 20 20 39 30 29 0a 20 20    (kp-2   90).  
1430: 20 20 28 6b 70 2d 33 20 20 20 39 31 29 0a 20 20    (kp-3   91).  
1440: 20 20 28 6b 70 2d 34 20 20 20 39 32 29 0a 20 20    (kp-4   92).  
1450: 20 20 28 6b 70 2d 35 20 20 20 39 33 29 0a 20 20    (kp-5   93).  
1460: 20 20 28 6b 70 2d 36 20 20 20 39 34 29 0a 20 20    (kp-6   94).  
1470: 20 20 28 6b 70 2d 37 20 20 20 39 35 29 0a 20 20    (kp-7   95).  
1480: 20 20 28 6b 70 2d 38 20 20 20 39 36 29 0a 20 20    (kp-8   96).  
1490: 20 20 28 6b 70 2d 39 20 20 20 39 37 29 0a 20 20    (kp-9   97).  
14a0: 20 20 28 6b 70 2d 30 20 20 20 39 38 29 0a 20 20    (kp-0   98).  
14b0: 20 20 28 6b 70 2d 70 65 72 69 6f 64 20 20 20 39    (kp-period   9
14c0: 39 29 0a 0a 20 20 20 20 28 6e 6f 6e 75 73 62 61  9)..    (nonusba
14d0: 63 6b 73 6c 61 73 68 20 20 20 31 30 30 29 20 3b  ckslash   100) ;
14e0: 2f 2a 2a 3c 20 74 68 69 73 20 69 73 20 74 68 65  /**< this is the
14f0: 20 61 64 64 69 74 69 6f 6e 61 6c 20 6b 65 79 20   additional key 
1500: 74 68 61 74 20 69 73 6f 0a 20 20 20 20 3b 3b 20  that iso.    ;; 
1510: 2a 20 20 20 6b 65 79 62 6f 61 72 64 73 20 68 61  *   keyboards ha
1520: 76 65 20 6f 76 65 72 20 61 6e 73 69 20 6f 6e 65  ve over ansi one
1530: 73 2c 0a 20 20 20 20 3b 3b 20 2a 20 20 20 6c 6f  s,.    ;; *   lo
1540: 63 61 74 65 64 20 62 65 74 77 65 65 6e 20 6c 65  cated between le
1550: 66 74 20 73 68 69 66 74 20 61 6e 64 20 79 2e 0a  ft shift and y..
1560: 20 20 20 20 3b 3b 20 2a 20 20 20 70 72 6f 64 75      ;; *   produ
1570: 63 65 73 20 67 72 61 76 65 20 61 63 63 65 6e 74  ces grave accent
1580: 20 61 6e 64 20 74 69 6c 64 65 20 69 6e 20 61 0a   and tilde in a.
1590: 20 20 20 20 3b 3b 20 2a 20 20 20 75 73 20 6f 72      ;; *   us or
15a0: 20 75 6b 20 6d 61 63 20 6c 61 79 6f 75 74 2c 20   uk mac layout, 
15b0: 72 65 76 65 72 73 65 20 73 6f 6c 69 64 75 73 0a  reverse solidus.
15c0: 20 20 20 20 3b 3b 20 2a 20 20 20 28 62 61 63 6b      ;; *   (back
15d0: 73 6c 61 73 68 29 20 61 6e 64 20 76 65 72 74 69  slash) and verti
15e0: 63 61 6c 20 6c 69 6e 65 20 69 6e 20 61 0a 20 20  cal line in a.  
15f0: 20 20 3b 3b 20 2a 20 20 20 75 73 20 6f 72 20 75    ;; *   us or u
1600: 6b 20 77 69 6e 64 6f 77 73 20 6c 61 79 6f 75 74  k windows layout
1610: 2c 20 61 6e 64 0a 20 20 20 20 3b 3b 20 2a 20 20  , and.    ;; *  
1620: 20 6c 65 73 73 2d 74 68 61 6e 20 73 69 67 6e 20   less-than sign 
1630: 61 6e 64 20 67 72 65 61 74 65 72 2d 74 68 61 6e  and greater-than
1640: 20 73 69 67 6e 0a 20 20 20 20 3b 3b 20 2a 20 20   sign.    ;; *  
1650: 20 69 6e 20 61 20 73 77 69 73 73 20 67 65 72 6d   in a swiss germ
1660: 61 6e 2c 20 67 65 72 6d 61 6e 2c 20 6f 72 20 66  an, german, or f
1670: 72 65 6e 63 68 0a 20 20 20 20 3b 3b 20 2a 20 20  rench.    ;; *  
1680: 20 6c 61 79 6f 75 74 2e 20 2a 2f 0a 20 20 20 20   layout. */.    
1690: 28 61 70 70 6c 69 63 61 74 69 6f 6e 20 20 20 31  (application   1
16a0: 30 31 29 3b 20 2f 2a 2a 3c 20 77 69 6e 64 6f 77  01); /**< window
16b0: 73 20 63 6f 6e 74 65 78 74 75 61 6c 20 6d 65 6e  s contextual men
16c0: 75 2c 20 63 6f 6d 70 6f 73 65 20 2a 2f 0a 20 20  u, compose */.  
16d0: 20 20 28 70 6f 77 65 72 20 20 20 31 30 32 29 20    (power   102) 
16e0: 3b 2f 2a 2a 3c 20 74 68 65 20 75 73 62 20 64 6f  ;/**< the usb do
16f0: 63 75 6d 65 6e 74 20 73 61 79 73 20 74 68 69 73  cument says this
1700: 20 69 73 20 61 20 73 74 61 74 75 73 20 66 6c 61   is a status fla
1710: 67 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  g,.             
1720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1730: 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20             ;    
1740: 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 20               *  
1750: 20 6e 6f 74 20 61 20 70 68 79 73 69 63 61 6c 20   not a physical 
1760: 6b 65 79 20 2d 20 62 75 74 20 73 6f 6d 65 20 6d  key - but some m
1770: 61 63 20 6b 65 79 62 6f 61 72 64 73 0a 20 20 20  ac keyboards.   
1780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a0: 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20       ;          
17b0: 20 20 20 20 20 20 20 2a 20 20 20 64 6f 20 68 61         *   do ha
17c0: 76 65 20 61 20 70 6f 77 65 72 20 6b 65 79 2e 20  ve a power key. 
17d0: 2a 2f 0a 20 20 20 20 28 6b 70 2d 65 71 75 61 6c  */.    (kp-equal
17e0: 73 20 20 20 31 30 33 29 0a 20 20 20 20 28 66 31  s   103).    (f1
17f0: 33 20 20 20 31 30 34 29 0a 20 20 20 20 28 66 31  3   104).    (f1
1800: 34 20 20 20 31 30 35 29 0a 20 20 20 20 28 66 31  4   105).    (f1
1810: 35 20 20 20 31 30 36 29 0a 20 20 20 20 28 66 31  5   106).    (f1
1820: 36 20 20 20 31 30 37 29 0a 20 20 20 20 28 66 31  6   107).    (f1
1830: 37 20 20 20 31 30 38 29 0a 20 20 20 20 28 66 31  7   108).    (f1
1840: 38 20 20 20 31 30 39 29 0a 20 20 20 20 28 66 31  8   109).    (f1
1850: 39 20 20 20 31 31 30 29 0a 20 20 20 20 28 66 32  9   110).    (f2
1860: 30 20 20 20 31 31 31 29 0a 20 20 20 20 28 66 32  0   111).    (f2
1870: 31 20 20 20 31 31 32 29 0a 20 20 20 20 28 66 32  1   112).    (f2
1880: 32 20 20 20 31 31 33 29 0a 20 20 20 20 28 66 32  2   113).    (f2
1890: 33 20 20 20 31 31 34 29 0a 20 20 20 20 28 66 32  3   114).    (f2
18a0: 34 20 20 20 31 31 35 29 0a 20 20 20 20 28 65 78  4   115).    (ex
18b0: 65 63 75 74 65 20 20 20 31 31 36 29 0a 20 20 20  ecute   116).   
18c0: 20 28 68 65 6c 70 20 20 20 31 31 37 29 0a 20 20   (help   117).  
18d0: 20 20 28 6d 65 6e 75 20 20 20 31 31 38 29 0a 20    (menu   118). 
18e0: 20 20 20 28 73 65 6c 65 63 74 20 20 20 31 31 39     (select   119
18f0: 29 0a 20 20 20 20 28 73 74 6f 70 20 20 20 31 32  ).    (stop   12
1900: 30 29 0a 20 20 20 20 28 61 67 61 69 6e 20 20 20  0).    (again   
1910: 31 32 31 29 20 20 3b 20 2f 2a 2a 3c 20 72 65 64  121)  ; /**< red
1920: 6f 20 2a 2f 0a 20 20 20 20 28 75 6e 64 6f 20 20  o */.    (undo  
1930: 20 31 32 32 29 0a 20 20 20 20 28 63 75 74 20 20   122).    (cut  
1940: 20 31 32 33 29 0a 20 20 20 20 28 63 6f 70 79 20   123).    (copy 
1950: 20 20 31 32 34 29 0a 20 20 20 20 28 70 61 73 74    124).    (past
1960: 65 20 20 20 31 32 35 29 0a 20 20 20 20 28 66 69  e   125).    (fi
1970: 6e 64 20 20 20 31 32 36 29 0a 20 20 20 20 28 6d  nd   126).    (m
1980: 75 74 65 20 20 20 31 32 37 29 0a 20 20 20 20 28  ute   127).    (
1990: 76 6f 6c 75 6d 65 75 70 20 20 20 31 32 38 29 0a  volumeup   128).
19a0: 20 20 20 20 28 76 6f 6c 75 6d 65 64 6f 77 6e 20      (volumedown 
19b0: 20 20 31 32 39 29 0a 20 20 20 20 20 20 20 20 20    129).         
19c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b                 ;
19e0: 2f 2a 20 6e 6f 74 20 73 75 72 65 20 77 68 65 74  /* not sure whet
19f0: 68 65 72 20 74 68 65 72 65 27 73 20 61 20 72 65  her there's a re
1a00: 61 73 6f 6e 20 74 6f 20 65 6e 61 62 6c 65 20 74  ason to enable t
1a10: 68 65 73 65 20 2a 2f 0a 20 20 20 20 20 20 20 20  hese */.        
1a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a40: 3b 2f 2a 20 28 6c 6f 63 6b 69 6e 67 63 61 70 73  ;/* (lockingcaps
1a50: 6c 6f 63 6b 20 20 20 31 33 30 2c 20 20 2a 2f 0a  lock   130,  */.
1a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a80: 20 20 20 20 20 20 20 20 3b 2f 2a 20 28 6c 6f 63          ;/* (loc
1a90: 6b 69 6e 67 6e 75 6d 6c 6f 63 6b 20 20 20 31 33  kingnumlock   13
1aa0: 31 2c 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20  1, */.          
1ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 2f                ;/
1ad0: 2a 20 28 6c 6f 63 6b 69 6e 67 73 63 72 6f 6c 6c  * (lockingscroll
1ae0: 6c 6f 63 6b 20 20 20 31 33 32 2c 20 2a 2f 0a 20  lock   132, */. 
1af0: 20 20 20 28 6b 70 2d 63 6f 6d 6d 61 20 20 20 31     (kp-comma   1
1b00: 33 33 29 0a 20 20 20 20 28 6b 70 2d 65 71 75 61  33).    (kp-equa
1b10: 6c 73 61 73 34 30 30 20 20 20 31 33 34 29 0a 0a  lsas400   134)..
1b20: 20 20 20 20 28 69 6e 74 65 72 6e 61 74 69 6f 6e      (internation
1b30: 61 6c 31 20 20 20 31 33 35 29 20 3b 2f 2a 2a 3c  al1   135) ;/**<
1b40: 20 75 73 65 64 20 6f 6e 20 61 73 69 61 6e 20 6b   used on asian k
1b50: 65 79 62 6f 61 72 64 73 2c 20 73 65 65 0a 20 20  eyboards, see.  
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b80: 20 20 20 20 20 20 3b 66 6f 6f 74 6e 6f 74 65 73        ;footnotes
1b90: 20 69 6e 20 75 73 62 20 64 6f 63 20 2a 2f 0a 20   in usb doc */. 
1ba0: 20 20 20 28 69 6e 74 65 72 6e 61 74 69 6f 6e 61     (internationa
1bb0: 6c 32 20 20 20 31 33 36 29 0a 20 20 20 20 28 69  l2   136).    (i
1bc0: 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 33 20 20 20  nternational3   
1bd0: 31 33 37 29 20 3b 2f 2a 2a 3c 20 79 65 6e 20 2a  137) ;/**< yen *
1be0: 2f 0a 20 20 20 20 28 69 6e 74 65 72 6e 61 74 69  /.    (internati
1bf0: 6f 6e 61 6c 34 20 20 20 31 33 38 29 0a 20 20 20  onal4   138).   
1c00: 20 28 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 35   (international5
1c10: 20 20 20 31 33 39 29 0a 20 20 20 20 28 69 6e 74     139).    (int
1c20: 65 72 6e 61 74 69 6f 6e 61 6c 36 20 20 20 31 34  ernational6   14
1c30: 30 29 0a 20 20 20 20 28 69 6e 74 65 72 6e 61 74  0).    (internat
1c40: 69 6f 6e 61 6c 37 20 20 20 31 34 31 29 0a 20 20  ional7   141).  
1c50: 20 20 28 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c    (international
1c60: 38 20 20 20 31 34 32 29 0a 20 20 20 20 28 69 6e  8   142).    (in
1c70: 74 65 72 6e 61 74 69 6f 6e 61 6c 39 20 20 20 31  ternational9   1
1c80: 34 33 29 0a 20 20 20 20 28 6c 61 6e 67 31 20 20  43).    (lang1  
1c90: 20 31 34 34 29 20 3b 2f 2a 2a 3c 20 68 61 6e 67   144) ;/**< hang
1ca0: 75 6c 2f 65 6e 67 6c 69 73 68 20 74 6f 67 67 6c  ul/english toggl
1cb0: 65 20 2a 2f 0a 20 20 20 20 28 6c 61 6e 67 32 20  e */.    (lang2 
1cc0: 20 20 31 34 35 29 20 3b 2f 2a 2a 3c 20 68 61 6e    145) ;/**< han
1cd0: 6a 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 2a 2f  ja conversion */
1ce0: 0a 20 20 20 20 28 6c 61 6e 67 33 20 20 20 31 34  .    (lang3   14
1cf0: 36 29 20 3b 2f 2a 2a 3c 20 6b 61 74 61 6b 61 6e  6) ;/**< katakan
1d00: 61 20 2a 2f 0a 20 20 20 20 28 6c 61 6e 67 34 20  a */.    (lang4 
1d10: 20 20 31 34 37 29 20 3b 2f 2a 2a 3c 20 68 69 72    147) ;/**< hir
1d20: 61 67 61 6e 61 20 2a 2f 0a 20 20 20 20 28 6c 61  agana */.    (la
1d30: 6e 67 35 20 20 20 31 34 38 29 20 3b 2f 2a 2a 3c  ng5   148) ;/**<
1d40: 20 7a 65 6e 6b 61 6b 75 2f 68 61 6e 6b 61 6b 75   zenkaku/hankaku
1d50: 20 2a 2f 0a 20 20 20 20 28 6c 61 6e 67 36 20 20   */.    (lang6  
1d60: 20 31 34 39 29 20 3b 2f 2a 2a 3c 20 72 65 73 65   149) ;/**< rese
1d70: 72 76 65 64 20 2a 2f 0a 20 20 20 20 28 6c 61 6e  rved */.    (lan
1d80: 67 37 20 20 20 31 35 30 29 20 3b 2f 2a 2a 3c 20  g7   150) ;/**< 
1d90: 72 65 73 65 72 76 65 64 20 2a 2f 0a 20 20 20 20  reserved */.    
1da0: 28 6c 61 6e 67 38 20 20 20 31 35 31 29 20 3b 2f  (lang8   151) ;/
1db0: 2a 2a 3c 20 72 65 73 65 72 76 65 64 20 2a 2f 0a  **< reserved */.
1dc0: 20 20 20 20 28 6c 61 6e 67 39 20 20 20 31 35 32      (lang9   152
1dd0: 29 20 3b 2f 2a 2a 3c 20 72 65 73 65 72 76 65 64  ) ;/**< reserved
1de0: 20 2a 2f 0a 0a 20 20 20 20 28 61 6c 74 65 72 61   */..    (altera
1df0: 73 65 20 20 20 31 35 33 29 20 3b 2f 2a 2a 3c 20  se   153) ;/**< 
1e00: 65 72 61 73 65 2d 65 61 7a 65 20 2a 2f 0a 20 20  erase-eaze */.  
1e10: 20 20 28 73 79 73 72 65 71 20 20 20 31 35 34 29    (sysreq   154)
1e20: 0a 20 20 20 20 28 63 61 6e 63 65 6c 20 20 20 31  .    (cancel   1
1e30: 35 35 29 0a 20 20 20 20 28 63 6c 65 61 72 20 20  55).    (clear  
1e40: 20 31 35 36 29 0a 20 20 20 20 28 70 72 69 6f 72   156).    (prior
1e50: 20 20 20 31 35 37 29 0a 20 20 20 20 28 72 65 74     157).    (ret
1e60: 75 72 6e 32 20 20 20 31 35 38 29 0a 20 20 20 20  urn2   158).    
1e70: 28 73 65 70 61 72 61 74 6f 72 20 20 20 31 35 39  (separator   159
1e80: 29 0a 20 20 20 20 28 6f 75 74 20 20 20 31 36 30  ).    (out   160
1e90: 29 0a 20 20 20 20 28 6f 70 65 72 20 20 20 31 36  ).    (oper   16
1ea0: 31 29 0a 20 20 20 20 28 63 6c 65 61 72 61 67 61  1).    (clearaga
1eb0: 69 6e 20 20 20 31 36 32 29 0a 20 20 20 20 28 63  in   162).    (c
1ec0: 72 73 65 6c 20 20 20 31 36 33 29 0a 20 20 20 20  rsel   163).    
1ed0: 28 65 78 73 65 6c 20 20 20 31 36 34 29 0a 0a 20  (exsel   164).. 
1ee0: 20 20 20 28 6b 70 2d 30 30 20 20 20 31 37 36 29     (kp-00   176)
1ef0: 0a 20 20 20 20 28 6b 70 2d 30 30 30 20 20 20 31  .    (kp-000   1
1f00: 37 37 29 0a 20 20 20 20 28 74 68 6f 75 73 61 6e  77).    (thousan
1f10: 64 73 73 65 70 61 72 61 74 6f 72 20 20 20 31 37  dsseparator   17
1f20: 38 29 0a 20 20 20 20 28 64 65 63 69 6d 61 6c 73  8).    (decimals
1f30: 65 70 61 72 61 74 6f 72 20 20 20 31 37 39 29 0a  eparator   179).
1f40: 20 20 20 20 28 63 75 72 72 65 6e 63 79 75 6e 69      (currencyuni
1f50: 74 20 20 20 31 38 30 29 0a 20 20 20 20 28 63 75  t   180).    (cu
1f60: 72 72 65 6e 63 79 73 75 62 75 6e 69 74 20 20 20  rrencysubunit   
1f70: 31 38 31 29 0a 20 20 20 20 28 6b 70 2d 6c 65 66  181).    (kp-lef
1f80: 74 70 61 72 65 6e 20 20 20 31 38 32 29 0a 20 20  tparen   182).  
1f90: 20 20 28 6b 70 2d 72 69 67 68 74 70 61 72 65 6e    (kp-rightparen
1fa0: 20 20 20 31 38 33 29 0a 20 20 20 20 28 6b 70 2d     183).    (kp-
1fb0: 6c 65 66 74 62 72 61 63 65 20 20 20 31 38 34 29  leftbrace   184)
1fc0: 0a 20 20 20 20 28 6b 70 2d 72 69 67 68 74 62 72  .    (kp-rightbr
1fd0: 61 63 65 20 20 20 31 38 35 29 0a 20 20 20 20 28  ace   185).    (
1fe0: 6b 70 2d 74 61 62 20 20 20 31 38 36 29 0a 20 20  kp-tab   186).  
1ff0: 20 20 28 6b 70 2d 62 61 63 6b 73 70 61 63 65 20    (kp-backspace 
2000: 20 20 31 38 37 29 0a 20 20 20 20 28 6b 70 2d 61    187).    (kp-a
2010: 20 20 20 31 38 38 29 0a 20 20 20 20 28 6b 70 2d     188).    (kp-
2020: 62 20 20 20 31 38 39 29 0a 20 20 20 20 28 6b 70  b   189).    (kp
2030: 2d 63 20 20 20 31 39 30 29 0a 20 20 20 20 28 6b  -c   190).    (k
2040: 70 2d 64 20 20 20 31 39 31 29 0a 20 20 20 20 28  p-d   191).    (
2050: 6b 70 2d 65 20 20 20 31 39 32 29 0a 20 20 20 20  kp-e   192).    
2060: 28 6b 70 2d 66 20 20 20 31 39 33 29 0a 20 20 20  (kp-f   193).   
2070: 20 28 6b 70 2d 78 6f 72 20 20 20 31 39 34 29 0a   (kp-xor   194).
2080: 20 20 20 20 28 6b 70 2d 70 6f 77 65 72 20 20 20      (kp-power   
2090: 31 39 35 29 0a 20 20 20 20 28 6b 70 2d 70 65 72  195).    (kp-per
20a0: 63 65 6e 74 20 20 20 31 39 36 29 0a 20 20 20 20  cent   196).    
20b0: 28 6b 70 2d 6c 65 73 73 20 20 20 31 39 37 29 0a  (kp-less   197).
20c0: 20 20 20 20 28 6b 70 2d 67 72 65 61 74 65 72 20      (kp-greater 
20d0: 20 20 31 39 38 29 0a 20 20 20 20 28 6b 70 2d 61    198).    (kp-a
20e0: 6d 70 65 72 73 61 6e 64 20 20 20 31 39 39 29 0a  mpersand   199).
20f0: 20 20 20 20 28 6b 70 2d 64 62 6c 61 6d 70 65 72      (kp-dblamper
2100: 73 61 6e 64 20 20 20 32 30 30 29 0a 20 20 20 20  sand   200).    
2110: 28 6b 70 2d 76 65 72 74 69 63 61 6c 62 61 72 20  (kp-verticalbar 
2120: 20 20 32 30 31 29 0a 20 20 20 20 28 6b 70 2d 64    201).    (kp-d
2130: 62 6c 76 65 72 74 69 63 61 6c 62 61 72 20 20 20  blverticalbar   
2140: 32 30 32 29 0a 20 20 20 20 28 6b 70 2d 63 6f 6c  202).    (kp-col
2150: 6f 6e 20 20 20 32 30 33 29 0a 20 20 20 20 28 6b  on   203).    (k
2160: 70 2d 68 61 73 68 20 20 20 32 30 34 29 0a 20 20  p-hash   204).  
2170: 20 20 28 6b 70 2d 73 70 61 63 65 20 20 20 32 30    (kp-space   20
2180: 35 29 0a 20 20 20 20 28 6b 70 2d 61 74 20 20 20  5).    (kp-at   
2190: 32 30 36 29 0a 20 20 20 20 28 6b 70 2d 65 78 63  206).    (kp-exc
21a0: 6c 61 6d 20 20 20 32 30 37 29 0a 20 20 20 20 28  lam   207).    (
21b0: 6b 70 2d 6d 65 6d 73 74 6f 72 65 20 20 20 32 30  kp-memstore   20
21c0: 38 29 0a 20 20 20 20 28 6b 70 2d 6d 65 6d 72 65  8).    (kp-memre
21d0: 63 61 6c 6c 20 20 20 32 30 39 29 0a 20 20 20 20  call   209).    
21e0: 28 6b 70 2d 6d 65 6d 63 6c 65 61 72 20 20 20 32  (kp-memclear   2
21f0: 31 30 29 0a 20 20 20 20 28 6b 70 2d 6d 65 6d 61  10).    (kp-mema
2200: 64 64 20 20 20 32 31 31 29 0a 20 20 20 20 28 6b  dd   211).    (k
2210: 70 2d 6d 65 6d 73 75 62 74 72 61 63 74 20 20 20  p-memsubtract   
2220: 32 31 32 29 0a 20 20 20 20 28 6b 70 2d 6d 65 6d  212).    (kp-mem
2230: 6d 75 6c 74 69 70 6c 79 20 20 20 32 31 33 29 0a  multiply   213).
2240: 20 20 20 20 28 6b 70 2d 6d 65 6d 64 69 76 69 64      (kp-memdivid
2250: 65 20 20 20 32 31 34 29 0a 20 20 20 20 28 6b 70  e   214).    (kp
2260: 2d 70 6c 75 73 6d 69 6e 75 73 20 20 20 32 31 35  -plusminus   215
2270: 29 0a 20 20 20 20 28 6b 70 2d 63 6c 65 61 72 20  ).    (kp-clear 
2280: 20 20 32 31 36 29 0a 20 20 20 20 28 6b 70 2d 63    216).    (kp-c
2290: 6c 65 61 72 65 6e 74 72 79 20 20 20 32 31 37 29  learentry   217)
22a0: 0a 20 20 20 20 28 6b 70 2d 62 69 6e 61 72 79 20  .    (kp-binary 
22b0: 20 20 32 31 38 29 0a 20 20 20 20 28 6b 70 2d 6f    218).    (kp-o
22c0: 63 74 61 6c 20 20 20 32 31 39 29 0a 20 20 20 20  ctal   219).    
22d0: 28 6b 70 2d 64 65 63 69 6d 61 6c 20 20 20 32 32  (kp-decimal   22
22e0: 30 29 0a 20 20 20 20 28 6b 70 2d 68 65 78 61 64  0).    (kp-hexad
22f0: 65 63 69 6d 61 6c 20 20 20 32 32 31 29 0a 0a 20  ecimal   221).. 
2300: 20 20 20 28 6c 63 74 72 6c 20 20 20 32 32 34 29     (lctrl   224)
2310: 0a 20 20 20 20 28 6c 73 68 69 66 74 20 20 20 32  .    (lshift   2
2320: 32 35 29 0a 20 20 20 20 28 6c 61 6c 74 20 20 20  25).    (lalt   
2330: 32 32 36 29 20 3b 20 2f 2a 2a 3c 20 61 6c 74 2c  226) ; /**< alt,
2340: 20 6f 70 74 69 6f 6e 20 2a 2f 0a 20 20 20 20 28   option */.    (
2350: 6c 67 75 69 20 20 20 32 32 37 29 20 3b 2f 2a 2a  lgui   227) ;/**
2360: 3c 20 77 69 6e 64 6f 77 73 2c 20 63 6f 6d 6d 61  < windows, comma
2370: 6e 64 20 28 61 70 70 6c 65 29 29 20 6d 65 74 61  nd (apple)) meta
2380: 20 2a 2f 0a 20 20 20 20 28 72 63 74 72 6c 20 20   */.    (rctrl  
2390: 20 32 32 38 29 0a 20 20 20 20 28 72 73 68 69 66   228).    (rshif
23a0: 74 20 20 20 32 32 39 29 0a 20 20 20 20 28 72 61  t   229).    (ra
23b0: 6c 74 20 20 20 32 33 30 29 20 3b 20 2f 2a 2a 3c  lt   230) ; /**<
23c0: 20 61 6c 74 20 67 72 2c 20 6f 70 74 69 6f 6e 20   alt gr, option 
23d0: 2a 2f 0a 20 20 20 20 28 72 67 75 69 20 20 20 32  */.    (rgui   2
23e0: 33 31 29 20 3b 20 2f 2a 2a 3c 20 77 69 6e 64 6f  31) ; /**< windo
23f0: 77 73 2c 20 63 6f 6d 6d 61 6e 64 20 28 61 70 70  ws, command (app
2400: 6c 65 29 2c 20 6d 65 74 61 20 2a 2f 0a 0a 20 20  le), meta */..  
2410: 20 20 28 6d 6f 64 65 20 20 20 32 35 37 29 20 20    (mode   257)  
2420: 3b 3b 20 20 20 2f 2a 2a 3c 20 69 27 6d 20 6e 6f  ;;   /**< i'm no
2430: 74 20 73 75 72 65 20 69 66 20 74 68 69 73 20 69  t sure if this i
2440: 73 20 72 65 61 6c 6c 79 20 6e 6f 74 20 63 6f 76  s really not cov
2450: 65 72 65 64 0a 20 20 20 20 3b 3b 20 20 20 20 20  ered.    ;;     
2460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2470: 20 20 20 20 20 20 20 20 20 2a 20 20 20 62 79 20           *   by 
2480: 61 6e 79 20 6f 66 20 74 68 65 20 61 62 6f 76 65  any of the above
2490: 2c 20 62 75 74 20 73 69 6e 63 65 20 74 68 65 72  , but since ther
24a0: 65 27 73 20 61 0a 20 20 20 20 3b 3b 20 20 20 20  e's a.    ;;    
24b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
24c0: 20 20 20 20 20 20 20 20 20 20 2a 20 20 20 73 70            *   sp
24d0: 65 63 69 61 6c 20 6b 6d 6f 64 2d 6d 6f 64 65 20  ecial kmod-mode 
24e0: 66 6f 72 20 69 74 20 69 27 6d 20 61 64 64 69 6e  for it i'm addin
24f0: 67 20 69 74 20 68 65 72 65 0a 20 20 20 20 3b 3b  g it here.    ;;
2500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f                */
2520: 0a 0a 20 20 20 20 3b 3b 20 2f 2a 20 40 7d 20 2a  ..    ;; /* @} *
2530: 2f 2f 2a 20 75 73 61 67 65 20 70 61 67 65 20 30  //* usage page 0
2540: 78 30 37 20 2a 2f 0a 0a 20 20 20 20 3b 3b 20 2f  x07 */..    ;; /
2550: 2a 2a 0a 20 20 20 20 3b 3b 20 20 2a 20 20 5c 6e  **.    ;;  *  \n
2560: 61 6d 65 20 75 73 61 67 65 20 70 61 67 65 20 30  ame usage page 0
2570: 78 30 63 0a 20 20 20 20 3b 3b 20 20 2a 0a 20 20  x0c.    ;;  *.  
2580: 20 20 3b 3b 20 20 2a 20 20 74 68 65 73 65 20 76    ;;  *  these v
2590: 61 6c 75 65 73 20 61 72 65 20 6d 61 70 70 65 64  alues are mapped
25a0: 20 66 72 6f 6d 20 75 73 61 67 65 20 70 61 67 65   from usage page
25b0: 20 30 78 30 63 20 28 75 73 62 20 63 6f 6e 73 75   0x0c (usb consu
25c0: 6d 65 72 20 70 61 67 65 29 2e 0a 20 20 20 20 3b  mer page)..    ;
25d0: 3b 20 20 2a 2f 0a 20 20 20 20 3b 3b 20 2f 2a 20  ;  */.    ;; /* 
25e0: 40 7b 20 2a 2f 0a 0a 20 20 20 20 28 61 75 64 69  @{ */..    (audi
25f0: 6f 6e 65 78 74 20 20 20 32 35 38 29 0a 20 20 20  onext   258).   
2600: 20 28 61 75 64 69 6f 70 72 65 76 20 20 20 32 35   (audioprev   25
2610: 39 29 0a 20 20 20 20 28 61 75 64 69 6f 73 74 6f  9).    (audiosto
2620: 70 20 20 20 32 36 30 29 0a 20 20 20 20 28 61 75  p   260).    (au
2630: 64 69 6f 70 6c 61 79 20 20 20 32 36 31 29 0a 20  dioplay   261). 
2640: 20 20 20 28 61 75 64 69 6f 6d 75 74 65 20 20 20     (audiomute   
2650: 32 36 32 29 0a 20 20 20 20 28 6d 65 64 69 61 73  262).    (medias
2660: 65 6c 65 63 74 20 20 20 32 36 33 29 0a 20 20 20  elect   263).   
2670: 20 28 77 77 77 20 20 20 32 36 34 29 0a 20 20 20   (www   264).   
2680: 20 28 6d 61 69 6c 20 20 20 32 36 35 29 0a 20 20   (mail   265).  
2690: 20 20 28 63 61 6c 63 75 6c 61 74 6f 72 20 20 20    (calculator   
26a0: 32 36 36 29 0a 20 20 20 20 28 63 6f 6d 70 75 74  266).    (comput
26b0: 65 72 20 20 20 32 36 37 29 0a 20 20 20 20 28 61  er   267).    (a
26c0: 63 2d 73 65 61 72 63 68 20 20 20 32 36 38 29 0a  c-search   268).
26d0: 20 20 20 20 28 61 63 2d 68 6f 6d 65 20 20 20 32      (ac-home   2
26e0: 36 39 29 0a 20 20 20 20 28 61 63 2d 62 61 63 6b  69).    (ac-back
26f0: 20 20 20 32 37 30 29 0a 20 20 20 20 28 61 63 2d     270).    (ac-
2700: 66 6f 72 77 61 72 64 20 20 20 32 37 31 29 0a 20  forward   271). 
2710: 20 20 20 28 61 63 2d 73 74 6f 70 20 20 20 32 37     (ac-stop   27
2720: 32 29 0a 20 20 20 20 28 61 63 2d 72 65 66 72 65  2).    (ac-refre
2730: 73 68 20 20 20 32 37 33 29 0a 20 20 20 20 28 61  sh   273).    (a
2740: 63 2d 62 6f 6f 6b 6d 61 72 6b 73 20 20 20 32 37  c-bookmarks   27
2750: 34 29 0a 0a 20 20 20 20 3b 3b 20 2f 2a 20 40 7d  4)..    ;; /* @}
2760: 20 2a 2f 2f 2a 20 75 73 61 67 65 20 70 61 67 65   *//* usage page
2770: 20 30 78 30 63 20 2a 2f 0a 0a 20 20 20 20 3b 3b   0x0c */..    ;;
2780: 20 2f 2a 2a 0a 20 20 20 20 3b 3b 20 20 2a 20 20   /**.    ;;  *  
2790: 5c 6e 61 6d 65 20 77 61 6c 74 68 65 72 20 6b 65  \name walther ke
27a0: 79 73 0a 20 20 20 20 3b 3b 20 20 2a 0a 20 20 20  ys.    ;;  *.   
27b0: 20 3b 3b 20 20 2a 20 20 74 68 65 73 65 20 61 72   ;;  *  these ar
27c0: 65 20 76 61 6c 75 65 73 20 74 68 61 74 20 63 68  e values that ch
27d0: 72 69 73 74 69 61 6e 20 77 61 6c 74 68 65 72 20  ristian walther 
27e0: 61 64 64 65 64 20 28 66 6f 72 20 6d 61 63 20 6b  added (for mac k
27f0: 65 79 62 6f 61 72 64 3f 29 2e 0a 20 20 20 20 3b  eyboard?)..    ;
2800: 3b 20 20 2a 2f 0a 20 20 20 20 3b 3b 20 2f 2a 20  ;  */.    ;; /* 
2810: 40 7b 20 2a 2f 0a 0a 20 20 20 20 28 62 72 69 67  @{ */..    (brig
2820: 68 74 6e 65 73 73 64 6f 77 6e 20 20 20 32 37 35  htnessdown   275
2830: 29 0a 20 20 20 20 28 62 72 69 67 68 74 6e 65 73  ).    (brightnes
2840: 73 75 70 20 20 20 32 37 36 29 0a 20 20 20 20 28  sup   276).    (
2850: 64 69 73 70 6c 61 79 73 77 69 74 63 68 20 20 20  displayswitch   
2860: 32 37 37 29 20 3b 3b 20 2f 2a 2a 3c 20 64 69 73  277) ;; /**< dis
2870: 70 6c 61 79 20 6d 69 72 72 6f 72 69 6e 67 2f 64  play mirroring/d
2880: 75 61 6c 20 64 69 73 70 6c 61 79 0a 20 20 20 20  ual display.    
2890: 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;;              
28a0: 20 20 20 20 20 20 20 20 73 77 69 74 63 68 2c 20          switch, 
28b0: 76 69 64 65 6f 20 6d 6f 64 65 20 73 77 69 74 63  video mode switc
28c0: 68 20 2a 2f 0a 20 20 20 20 28 6b 62 64 69 6c 6c  h */.    (kbdill
28d0: 75 6d 74 6f 67 67 6c 65 20 20 20 32 37 38 29 0a  umtoggle   278).
28e0: 20 20 20 20 28 6b 62 64 69 6c 6c 75 6d 64 6f 77      (kbdillumdow
28f0: 6e 20 20 20 32 37 39 29 0a 20 20 20 20 28 6b 62  n   279).    (kb
2900: 64 69 6c 6c 75 6d 75 70 20 20 20 32 38 30 29 0a  dillumup   280).
2910: 20 20 20 20 28 65 6a 65 63 74 20 20 20 32 38 31      (eject   281
2920: 29 0a 20 20 20 20 28 73 6c 65 65 70 20 20 20 32  ).    (sleep   2
2930: 38 32 29 0a 0a 20 20 20 20 28 61 70 70 31 20 20  82)..    (app1  
2940: 20 32 38 33 29 0a 20 20 20 20 28 61 70 70 32 20   283).    (app2 
2950: 20 20 32 38 34 29 0a 0a 20 20 20 20 3b 3b 20 2f    284)..    ;; /
2960: 2a 20 40 7d 20 2a 2f 2f 2a 20 77 61 6c 74 68 65  * @} *//* walthe
2970: 72 20 6b 65 79 73 20 2a 2f 0a 0a 20 20 20 20 3b  r keys */..    ;
2980: 3b 20 2f 2a 20 61 64 64 20 61 6e 79 20 6f 74 68  ; /* add any oth
2990: 65 72 20 6b 65 79 73 20 68 65 72 65 2e 20 2a 2f  er keys here. */
29a0: 0a 0a 20 20 20 20 28 73 64 6c 2d 6e 75 6d 2d 73  ..    (sdl-num-s
29b0: 63 61 6e 63 6f 64 65 73 20 20 20 35 31 32 29 20  cancodes   512) 
29c0: 3b 3b 20 2f 2a 2a 3c 20 6e 6f 74 20 61 20 6b 65  ;; /**< not a ke
29d0: 79 2c 20 6a 75 73 74 20 6d 61 72 6b 73 20 74 68  y, just marks th
29e0: 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 63 61 6e  e number of scan
29f0: 63 6f 64 65 73 0a 20 20 20 20 3b 3b 20 20 20 20  codes.    ;;    
2a00: 66 6f 72 20 61 72 72 61 79 20 62 6f 75 6e 64 73  for array bounds
2a10: 20 2a 2f 0a 0a 20 20 20 20 29 20 3b 20 73 64 6c   */..    ) ; sdl
2a20: 2d 73 63 61 6e 63 6f 64 65 0a                    -scancode.