Resent-Date: Fri, 2 Oct 1998 16:06:22 +0200 (MET DST)
From: Kars de Jong <jongk@cs.utwente.nl>
To: Linux/m68k mailing list <linux-m68k@lists.linux-m68k.org>
Subject: Patch for 2.1.120
Date: Fri, 2 Oct 1998 15:42:43 +0200
Resent-From: linux-m68k@phil.uni-sb.de

Hi all,

Here's a patch for the Amiga interrupt handler system. It makes sure the CIA
interrupt register is cleared before enabling it, so you don't immediately get
an interrupt that was posted when interrupts were disabled. I need this for the
PLIP driver. If this is not the right way to do it, I can call cia_set_irq()
myself, but that would require exporting the symbol, together with ciaa_base.

There's also a patch for the standard Amiga usa1 keyboard as compiled into the
kernel. It maps the Del key to Remove (like on the PC). The ctrl-alt-del
combination is now mapped to the normal Del key as well (instead of just the
one in the numeric keypad). It also makes ctrl-alt-pgup send Scroll_Backward
and ctrl-alt-pgdn send Scroll_Forward. On the PC it is done with Shift-pgup
and Shift-pgdn, but I'm not sure how to do that here since the PC has seperate
keys for that. It doesn't work on the standard Amiga console though, not even
with a virtual vertical screen. Geert?

Frank, the keyboard and console HOWTO at
http://sunsite.unc.edu/LDP/HOWTO/Keyboard-and-Console-HOWTO.html should help
explain why the backspace key sends Delete and the Delete key (should) send
Remove ;)

This should make the work for the Debian and RedHat people a little easier. It
generally makes the keyboard act very much like the PC version. This is the
keymap I used to generate the code below:

# Default kernel keymap. This uses 7 modifier combinations.
keymaps 0-2,4-5,8,12
# Change the above line into
#	keymaps 0-2,4-6,8,12
# in case you want the entries
#	altgr   control keycode  60 = Boot            
#	altgr   control keycode  70 = Boot            
# below.
#
# In fact AltGr is used very little, and one more keymap can
# be saved by mapping AltGr to Alt (and adapting a few entries):
# keycode 101 = Alt
#
keycode   0 = grave            asciitilde      
	control keycode   0 = nul             
	alt     keycode   0 = Meta_grave      
keycode   1 = one              exclam          
	alt     keycode   1 = Meta_one        
keycode   2 = two              at               at              
	control	keycode   2 = nul             
	shift	control	keycode   2 = nul             
	alt	keycode   2 = Meta_two        
keycode   3 = three            numbersign      
	control keycode   3 = Escape          
	alt     keycode   3 = Meta_three      
keycode   4 = four             dollar           dollar          
	control keycode   4 = Control_backslash
	alt     keycode   4 = Meta_four       
keycode   5 = five             percent         
	control keycode   5 = Control_bracketright
	alt     keycode   5 = Meta_five       
keycode   6 = six              asciicircum     
	control keycode   6 = Control_asciicircum
	alt     keycode   6 = Meta_six        
keycode   7 = seven            ampersand        braceleft       
	control keycode   7 = Control_underscore
	alt     keycode   7 = Meta_seven      
keycode   8 = eight            asterisk         bracketleft     
	control keycode   8 = Delete          
	alt     keycode   8 = Meta_eight      
keycode   9 = nine             parenleft        bracketright    
	alt     keycode   9 = Meta_nine       
keycode  10 = zero             parenright       braceright      
	alt     keycode  10 = Meta_zero       
keycode  11 = minus            underscore       backslash       
	control	keycode  11 = Control_underscore
	shift	control	keycode  11 = Control_underscore
	alt	keycode  11 = Meta_minus      
keycode  12 = equal            plus            
	alt     keycode  12 = Meta_equal      
keycode  13 = backslash        bar             
	control keycode  13 = Control_backslash
	alt     keycode  13 = Meta_backslash  
keycode  14 =
keycode  15 = KP_0            
	alt     keycode  15 = Ascii_0         
	altgr   keycode  15 = Hex_0         
keycode  16 = q               
keycode  17 = w               
keycode  18 = e
	altgr   keycode  18 = Hex_E   
keycode  19 = r               
keycode  20 = t               
keycode  21 = y               
keycode  22 = u               
keycode  23 = i               
keycode  24 = o               
keycode  25 = p               
keycode  26 = bracketleft      braceleft       
	control keycode  26 = Escape          
	alt     keycode  26 = Meta_bracketleft
keycode  27 = bracketright     braceright       asciitilde      
	control keycode  27 = Control_bracketright
	alt     keycode  27 = Meta_bracketright
keycode  28 =
keycode  29 = KP_1            
	alt     keycode  29 = Ascii_1         
	altgr   keycode  29 = Hex_1         
keycode  30 = KP_2            
	alt     keycode  30 = Ascii_2         
	altgr   keycode  30 = Hex_2         
keycode  31 = KP_3            
	alt     keycode  31 = Ascii_3         
	altgr   keycode  31 = Hex_3         
	control	alt     keycode  31 = Scroll_Forward
keycode  32 = a
	altgr   keycode  32 = Hex_A
keycode  33 = s               
keycode  34 = d
	altgr   keycode  34 = Hex_D   
keycode  35 = f
	altgr   keycode  35 = Hex_F               
keycode  36 = g               
keycode  37 = h               
keycode  38 = j               
keycode  39 = k               
keycode  40 = l               
keycode  41 = semicolon        colon           
	alt     keycode  41 = Meta_semicolon  
keycode  42 = apostrophe       quotedbl        
	control keycode  42 = Control_g       
	alt     keycode  42 = Meta_apostrophe 
keycode  43 =
keycode  44 =
keycode  45 = KP_4            
	alt     keycode  45 = Ascii_4         
	altgr   keycode  45 = Hex_4         
keycode  46 = KP_5            
	alt     keycode  46 = Ascii_5         
	altgr   keycode  46 = Hex_5         
keycode  47 = KP_6            
	alt     keycode  47 = Ascii_6         
	altgr   keycode  47 = Hex_6         
keycode  48 = Compose
keycode  49 = z               
keycode  50 = x               
keycode  51 = c
	altgr   keycode  51 = Hex_C   
keycode  52 = v               
keycode  53 = b
	altgr   keycode  53 = Hex_B
keycode  54 = n               
keycode  55 = m               
keycode  56 = comma            less            
	alt     keycode  56 = Meta_comma      
keycode  57 = period           greater         
	control keycode  57 = Compose         
	alt     keycode  57 = Meta_period     
keycode  58 = slash            question        
	control keycode  58 = Delete          
	alt     keycode  58 = Meta_slash      
keycode  59 =
keycode  60 = KP_Period       
#	altgr   control keycode  60 = Boot            
	control alt     keycode  60 = Boot            
keycode  61 = KP_7            
	alt     keycode  61 = Ascii_7         
	altgr   keycode  61 = Hex_7         
keycode  62 = KP_8            
	alt     keycode  62 = Ascii_8         
	altgr   keycode  62 = Hex_8         
keycode  63 = KP_9            
	alt     keycode  63 = Ascii_9         
	altgr   keycode  63 = Hex_9         
	control	alt     keycode  63 = Scroll_Backward
keycode  64 = space            space           
	control keycode  64 = nul             
	alt     keycode  64 = Meta_space      
keycode  65 = Delete           Delete          
	control keycode  65 = BackSpace
	alt     keycode  65 = Meta_Delete     
keycode  66 = Tab              Tab             
	alt     keycode  66 = Meta_Tab        
keycode  67 = KP_Enter        
keycode  68 = Return          
	alt     keycode  68 = Meta_Control_m  
keycode  69 = Escape           Escape          
	alt     keycode  69 = Meta_Escape     
keycode  70 = Remove          
#	altgr   control keycode  70 = Boot            
	control alt     keycode  70 = Boot            
keycode  71 =
keycode  72 =
keycode  73 =
keycode  74 = KP_Subtract     
keycode  75 =
keycode  76 = Up              
keycode  77 = Down            
keycode  78 = Right           
	alt     keycode  78 = Incr_Console
keycode  79 = Left            
	alt     keycode  79 = Decr_Console
keycode  80 = F1               F11              Console_11      
	control keycode  80 = F1              
	alt     keycode  80 = Console_1       
	control alt     keycode  80 = Console_1       
keycode  81 = F2               F12              Console_12      
	control keycode  81 = F2              
	alt     keycode  81 = Console_2       
	control alt     keycode  81 = Console_2       
keycode  82 = F3               F13              Console_13      
	control keycode  82 = F3              
	alt     keycode  82 = Console_3       
	control alt     keycode  82 = Console_3       
keycode  83 = F4               F14              Console_14      
	control keycode  83 = F4              
	alt     keycode  83 = Console_4       
	control alt     keycode  83 = Console_4       
keycode  84 = F5               F15              Console_15      
	control keycode  84 = F5              
	alt     keycode  84 = Console_5       
	control alt     keycode  84 = Console_5       
keycode  85 = F6               F16              Console_16      
	control keycode  85 = F6              
	alt     keycode  85 = Console_6       
	control alt     keycode  85 = Console_6       
keycode  86 = F7               F17              Console_17      
	control keycode  86 = F7              
	alt     keycode  86 = Console_7       
	control alt     keycode  86 = Console_7       
keycode  87 = F8               F18              Console_18      
	control keycode  87 = F8              
	alt     keycode  87 = Console_8       
	control alt     keycode  87 = Console_8       
keycode  88 = F9               F19              Console_19      
	control keycode  88 = F9              
	alt     keycode  88 = Console_9       
	control alt     keycode  88 = Console_9       
keycode  89 = F10              F20              Console_20      
	control keycode  89 = F10             
	alt     keycode  89 = Console_10      
	control alt     keycode  89 = Console_10      
keycode  90 = Num_Lock
	shift   keycode  90 = Bare_Num_Lock
keycode  91 = Scroll_Lock      Show_Memory      Show_Registers  
	control keycode  91 = Show_State      
	alt     keycode  91 = Scroll_Lock     
keycode  92 = KP_Divide       
keycode  93 = KP_Multiply     
keycode  94 = KP_Add          
keycode  95 = Help             Show_Memory      Show_Registers
	control keycode  95 = Show_State      
	alt     keycode  95 = Show_State     
keycode  96 = Shift           
keycode  97 = Shift           
keycode  98 = Caps_Lock       
keycode  99 = Control         
keycode 100 = Alt             
keycode 101 = AltGr           
keycode 102 =
keycode 103 =
keycode 104 =
keycode 105 =
keycode 106 =
keycode 107 =
keycode 108 =
keycode 109 =
keycode 110 =
keycode 111 =
keycode 112 =
keycode 113 =
keycode 114 =
keycode 115 =
keycode 116 =
keycode 117 =
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =

And here's the diff:

--- linux/arch/m68k/amiga/amiints.c	1998/09/26 09:41:34	1.1
+++ linux/arch/m68k/amiga/amiints.c	1998/09/26 09:45:23
@@ -288,12 +288,14 @@
 	}
 
 	if (irq >= IRQ_AMIGA_CIAB) {
+		cia_set_irq(&ciab_base, (1 << (irq - IRQ_AMIGA_CIAB)));
 		cia_able_irq(&ciab_base, CIA_ICR_SETCLR |
 		             (1 << (irq - IRQ_AMIGA_CIAB)));
 		return;
 	}
 
 	if (irq >= IRQ_AMIGA_CIAA) {
+		cia_set_irq(&ciaa_base, (1 << (irq - IRQ_AMIGA_CIAA)));
 		cia_able_irq(&ciaa_base, CIA_ICR_SETCLR |
 		             (1 << (irq - IRQ_AMIGA_CIAA)));
 		return;
--- linux/drivers/char/amikeyb.c	1998/09/30 11:34:40	1.1
+++ linux/drivers/char/amikeyb.c	1998/09/30 21:44:54
@@ -34,136 +34,136 @@
 #define RESET_WARNING	(0xf0)	/* before rotation */
 
 static u_short amiplain_map[NR_KEYS] __initdata = {
-	0xf060, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036, 0xf037,
-	0xf038, 0xf039, 0xf030, 0xf02d, 0xf03d, 0xf05c, 0xf200, 0xf300,
-	0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
-	0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xfb61, 0xfb73, 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b,
-	0xfb6c, 0xf03b, 0xf027, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xfb7a, 0xfb78, 0xfb63, 0xfb76, 0xfb62, 0xfb6e, 0xfb6d,
-	0xf02c, 0xf02e, 0xf02f, 0xf200, 0xf310, 0xf307, 0xf308, 0xf309,
-	0xf020, 0xf07f, 0xf009, 0xf30e, 0xf201, 0xf01b, 0xf07f, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106, 0xf107,
-	0xf108, 0xf109, 0xf312, 0xf313, 0xf30d, 0xf30c, 0xf30a, 0xf11b,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf060,	0xf031,	0xf032,	0xf033,	0xf034,	0xf035,	0xf036,	0xf037,
+	0xf038,	0xf039,	0xf030,	0xf02d,	0xf03d,	0xf05c,	0xf200,	0xf300,
+	0xfb71,	0xfb77,	0xfb65,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
+	0xfb6f,	0xfb70,	0xf05b,	0xf05d,	0xf200,	0xf301,	0xf302,	0xf303,
+	0xfb61,	0xfb73,	0xfb64,	0xfb66,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,
+	0xfb6c,	0xf03b,	0xf027,	0xf200,	0xf200,	0xf304,	0xf305,	0xf306,
+	0xf20e,	0xfb7a,	0xfb78,	0xfb63,	0xfb76,	0xfb62,	0xfb6e,	0xfb6d,
+	0xf02c,	0xf02e,	0xf02f,	0xf200,	0xf310,	0xf307,	0xf308,	0xf309,
+	0xf020,	0xf07f,	0xf009,	0xf30e,	0xf201,	0xf01b,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,	0xf107,
+	0xf108,	0xf109,	0xf208,	0xf209,	0xf30d,	0xf30c,	0xf30a,	0xf11b,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amishift_map[NR_KEYS] __initdata = {
-	0xf07e, 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e, 0xf026,
-	0xf02a, 0xf028, 0xf029, 0xf05f, 0xf02b, 0xf07c, 0xf200, 0xf300,
-	0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
-	0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xfb41, 0xfb53, 0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b,
-	0xfb4c, 0xf03a, 0xf022, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xfb5a, 0xfb58, 0xfb43, 0xfb56, 0xfb42, 0xfb4e, 0xfb4d,
-	0xf03c, 0xf03e, 0xf03f, 0xf200, 0xf310, 0xf307, 0xf308, 0xf309,
-	0xf020, 0xf07f, 0xf009, 0xf30e, 0xf201, 0xf01b, 0xf07f, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e, 0xf10f, 0xf110, 0xf111,
-	0xf112, 0xf113, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf203,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf07e,	0xf021,	0xf040,	0xf023,	0xf024,	0xf025,	0xf05e,	0xf026,
+	0xf02a,	0xf028,	0xf029,	0xf05f,	0xf02b,	0xf07c,	0xf200,	0xf300,
+	0xfb51,	0xfb57,	0xfb45,	0xfb52,	0xfb54,	0xfb59,	0xfb55,	0xfb49,
+	0xfb4f,	0xfb50,	0xf07b,	0xf07d,	0xf200,	0xf301,	0xf302,	0xf303,
+	0xfb41,	0xfb53,	0xfb44,	0xfb46,	0xfb47,	0xfb48,	0xfb4a,	0xfb4b,
+	0xfb4c,	0xf03a,	0xf022,	0xf200,	0xf200,	0xf304,	0xf305,	0xf306,
+	0xf20e,	0xfb5a,	0xfb58,	0xfb43,	0xfb56,	0xfb42,	0xfb4e,	0xfb4d,
+	0xf03c,	0xf03e,	0xf03f,	0xf200,	0xf310,	0xf307,	0xf308,	0xf309,
+	0xf020,	0xf07f,	0xf009,	0xf30e,	0xf201,	0xf01b,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf10a,	0xf10b,	0xf10c,	0xf10d,	0xf10e,	0xf10f,	0xf110,	0xf111,
+	0xf112,	0xf113,	0xf213,	0xf203,	0xf30d,	0xf30c,	0xf30a,	0xf203,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amialtgr_map[NR_KEYS] __initdata = {
-	0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200, 0xf07b,
-	0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf200, 0xf200, 0xf200, 0xf300,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf07e, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf310, 0xf307, 0xf308, 0xf309,
-	0xf200, 0xf07f, 0xf200, 0xf30e, 0xf201, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510, 0xf511, 0xf512, 0xf513,
-	0xf514, 0xf515, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf204,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf200,	0xf200,	0xf040,	0xf200,	0xf024,	0xf200,	0xf200,	0xf07b,
+	0xf05b,	0xf05d,	0xf07d,	0xf05c,	0xf200,	0xf200,	0xf200,	0xf90a,
+	0xfb71,	0xfb77,	0xf918,	0xfb72,	0xfb74,	0xfb79,	0xfb75,	0xfb69,
+	0xfb6f,	0xfb70,	0xf200,	0xf07e,	0xf200,	0xf90b,	0xf90c,	0xf90d,
+	0xf914,	0xfb73,	0xf917,	0xf919,	0xfb67,	0xfb68,	0xfb6a,	0xfb6b,
+	0xfb6c,	0xf200,	0xf200,	0xf200,	0xf200,	0xf90e,	0xf90f,	0xf910,
+	0xf20e,	0xfb7a,	0xfb78,	0xf916,	0xfb76,	0xf915,	0xfb6e,	0xfb6d,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf310,	0xf911,	0xf912,	0xf913,
+	0xf200,	0xf200,	0xf200,	0xf30e,	0xf201,	0xf200,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf50a,	0xf50b,	0xf50c,	0xf50d,	0xf50e,	0xf50f,	0xf510,	0xf511,
+	0xf512,	0xf513,	0xf208,	0xf202,	0xf30d,	0xf30c,	0xf30a,	0xf202,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amictrl_map[NR_KEYS] __initdata = {
-	0xf000, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01d, 0xf01e, 0xf01f,
-	0xf07f, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf01c, 0xf200, 0xf300,
-	0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
-	0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xf001, 0xf013, 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b,
-	0xf00c, 0xf200, 0xf007, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xf01a, 0xf018, 0xf003, 0xf016, 0xf002, 0xf00e, 0xf00d,
-	0xf200, 0xf200, 0xf07f, 0xf200, 0xf310, 0xf307, 0xf308, 0xf309,
-	0xf000, 0xf07f, 0xf200, 0xf30e, 0xf201, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106, 0xf107,
-	0xf108, 0xf109, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf202,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf000,	0xf200,	0xf000,	0xf01b,	0xf01c,	0xf01d,	0xf01e,	0xf01f,
+	0xf07f,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf01c,	0xf200,	0xf300,
+	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
+	0xf00f,	0xf010,	0xf01b,	0xf01d,	0xf200,	0xf301,	0xf302,	0xf303,
+	0xf001,	0xf013,	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,
+	0xf00c,	0xf200,	0xf007,	0xf200,	0xf200,	0xf304,	0xf305,	0xf306,
+	0xf20e,	0xf01a,	0xf018,	0xf003,	0xf016,	0xf002,	0xf00e,	0xf00d,
+	0xf200,	0xf20e,	0xf07f,	0xf200,	0xf310,	0xf307,	0xf308,	0xf309,
+	0xf000,	0xf008,	0xf200,	0xf30e,	0xf201,	0xf200,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf100,	0xf101,	0xf102,	0xf103,	0xf104,	0xf105,	0xf106,	0xf107,
+	0xf108,	0xf109,	0xf208,	0xf204,	0xf30d,	0xf30c,	0xf30a,	0xf204,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amishift_ctrl_map[NR_KEYS] __initdata = {
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf300,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf310, 0xf307, 0xf308, 0xf309,
-	0xf200, 0xf07f, 0xf200, 0xf30e, 0xf201, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf200,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf200,	0xf200,	0xf000,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf01f,	0xf200,	0xf200,	0xf200,	0xf300,
+	0xf011,	0xf017,	0xf005,	0xf012,	0xf014,	0xf019,	0xf015,	0xf009,
+	0xf00f,	0xf010,	0xf200,	0xf200,	0xf200,	0xf301,	0xf302,	0xf303,
+	0xf001,	0xf013,	0xf004,	0xf006,	0xf007,	0xf008,	0xf00a,	0xf00b,
+	0xf00c,	0xf200,	0xf200,	0xf200,	0xf200,	0xf304,	0xf305,	0xf306,
+	0xf20e,	0xf01a,	0xf018,	0xf003,	0xf016,	0xf002,	0xf00e,	0xf00d,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf310,	0xf307,	0xf308,	0xf309,
+	0xf200,	0xf200,	0xf200,	0xf30e,	0xf201,	0xf200,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf208,	0xf200,	0xf30d,	0xf30c,	0xf30a,	0xf200,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amialt_map[NR_KEYS] __initdata = {
-	0xf860, 0xf831, 0xf832, 0xf833, 0xf834, 0xf835, 0xf836, 0xf837,
-	0xf838, 0xf839, 0xf830, 0xf82d, 0xf83d, 0xf85c, 0xf200, 0xf900,
-	0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
-	0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf200, 0xf901, 0xf902, 0xf903,
-	0xf861, 0xf873, 0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b,
-	0xf86c, 0xf83b, 0xf827, 0xf200, 0xf200, 0xf904, 0xf905, 0xf906,
-	0xf200, 0xf87a, 0xf878, 0xf863, 0xf876, 0xf862, 0xf86e, 0xf86d,
-	0xf82c, 0xf82e, 0xf82f, 0xf200, 0xf310, 0xf907, 0xf908, 0xf909,
-	0xf820, 0xf87f, 0xf809, 0xf30e, 0xf80d, 0xf81b, 0xf87f, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf500, 0xf501, 0xf502, 0xf503, 0xf504, 0xf505, 0xf506, 0xf507,
-	0xf508, 0xf509, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf204,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf860,	0xf831,	0xf832,	0xf833,	0xf834,	0xf835,	0xf836,	0xf837,
+	0xf838,	0xf839,	0xf830,	0xf82d,	0xf83d,	0xf85c,	0xf200,	0xf900,
+	0xf871,	0xf877,	0xf865,	0xf872,	0xf874,	0xf879,	0xf875,	0xf869,
+	0xf86f,	0xf870,	0xf85b,	0xf85d,	0xf200,	0xf901,	0xf902,	0xf903,
+	0xf861,	0xf873,	0xf864,	0xf866,	0xf867,	0xf868,	0xf86a,	0xf86b,
+	0xf86c,	0xf83b,	0xf827,	0xf200,	0xf200,	0xf904,	0xf905,	0xf906,
+	0xf20e,	0xf87a,	0xf878,	0xf863,	0xf876,	0xf862,	0xf86e,	0xf86d,
+	0xf82c,	0xf82e,	0xf82f,	0xf200,	0xf310,	0xf907,	0xf908,	0xf909,
+	0xf820,	0xf87f,	0xf809,	0xf30e,	0xf80d,	0xf81b,	0xf116,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf211,	0xf210,
+	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,	0xf505,	0xf506,	0xf507,
+	0xf508,	0xf509,	0xf208,	0xf209,	0xf30d,	0xf30c,	0xf30a,	0xf204,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 static u_short amictrl_alt_map[NR_KEYS] __initdata = {
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf300,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf301, 0xf302, 0xf303,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf304, 0xf305, 0xf306,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf20c, 0xf307, 0xf308, 0xf309,
-	0xf200, 0xf07f, 0xf200, 0xf30e, 0xf201, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf30b, 0xf200, 0xf603, 0xf600, 0xf602, 0xf601,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf208, 0xf209, 0xf30d, 0xf30c, 0xf30a, 0xf200,
-	0xf700, 0xf700, 0xf207, 0xf702, 0xf703, 0xf701, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-	0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf300,
+	0xf811,	0xf817,	0xf805,	0xf812,	0xf814,	0xf819,	0xf815,	0xf809,
+	0xf80f,	0xf810,	0xf200,	0xf200,	0xf200,	0xf301,	0xf302,	0xf20a,
+	0xf801,	0xf813,	0xf804,	0xf806,	0xf807,	0xf808,	0xf80a,	0xf80b,
+	0xf80c,	0xf200,	0xf200,	0xf200,	0xf200,	0xf304,	0xf305,	0xf306,
+	0xf20e,	0xf81a,	0xf818,	0xf803,	0xf816,	0xf802,	0xf80e,	0xf80d,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf20c,	0xf307,	0xf308,	0xf20b,
+	0xf200,	0xf200,	0xf200,	0xf30e,	0xf201,	0xf200,	0xf20c,	0xf200,
+	0xf200,	0xf200,	0xf30b,	0xf200,	0xf603,	0xf600,	0xf602,	0xf601,
+	0xf500,	0xf501,	0xf502,	0xf503,	0xf504,	0xf505,	0xf506,	0xf507,
+	0xf508,	0xf509,	0xf208,	0xf200,	0xf30d,	0xf30c,	0xf30a,	0xf200,
+	0xf700,	0xf700,	0xf207,	0xf702,	0xf703,	0xf701,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
+	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
 };
 
 #define	DEFAULT_KEYB_REP_DELAY	(HZ/4)

--
------------------------------------------------------------------------------
Kars de Jong             Signaalkamp rules the waves!       Turrican@Discworld
--------======]**-----|      jongk@cs.utwente.nl      |-----**[======---------

