From: [email-masked] (Michael Pereckas)

This patch for linux/kernel/chr_drv/keyboard.S does two things: it
causes the ./del key on the keypad to produce a period, instead of a
comma, and it adds a Dvorak keyboard.

The first change will probably appeal to US users.  Others may prefer
the comma.  If there is a lot of difference of opinion on this, maybe 
num_table should be moved into the national keyboard definitions.  The
second change is great if you, like me, like the Dvorak keyboard
layout.  Unfortunatly, the only way to change keyboards is to reboot
with a different kernel, so the Dvorak keyboard is a problem is more
than one person use the machine and they don't all know Dvorak.  (this
only effects the console, serial port connections are uneffected.)  

I post this on the off chance that someone is interested.  If you
choose to use this, remember that although it seems to work fine for
me, this is an example of "programming by meta-w", that is, I copied
the US keyboard definition (using the emacs command meta-w) and
modified it, without really understanding it.

This patch is for linux/kernel/chr_drv/keyboard.S
It works for all the 0.95* versions, I think (!)
********** CUT HERE **********
*** keyboard.S.ori      Wed Apr  8 16:57:58 1992
--- keyboard.S  Wed Apr  8 17:03:10 1992
***************
*** 18,23 ****
--- 18,24 ----
   * KBD_FR for Frech keyboard
   * KBD_UK for British extended keyboard
   * KBD_DK for Danish keyboard
+  * KBD_DVORAK for Dvorak (US) keyboard
   */
  
  .text
***************
*** 251,257 ****
        .ascii "789-456+1230."
  #else
  num_table:
!       .ascii "789-456+1230,"
  #endif
  cur_table:
        .ascii "HA5-DGC+YB623"
--- 252,258 ----
        .ascii "789-456+1230."
  #else
  num_table:
!       .ascii "789-456+1230."
  #endif
  cur_table:
        .ascii "HA5-DGC+YB623"
***************
*** 611,616 ****
--- 612,667 ----
        .byte 0,0,0,0,0         /* 4A-4E */
        .byte 0,0,0,0,0,0,0     /* 4F-55 */
        .ascii "\\"
+       .fill 10,1,0
+ 
+ #elif defined(KBD_DVORAK)
+ 
+ key_map:
+       .byte 0,27
+       .ascii "1234567890\\="
+       .byte 127,9
+       .ascii "',.pyfgcrl/]"
+       .byte 13,0
+       .ascii "aoeuidhtns-"
+       .byte '`,0
+       .ascii "[;qjkxbmwvz"
+       .byte 0,'*,0,32         /* 36-39 */
+       .fill 16,1,0            /* 3A-49 */
+       .byte '-,0,0,0,'+       /* 4A-4E */
+       .byte 0,0,0,0,0,0,0     /* 4F-55 */
+       .byte '<
+       .fill 10,1,0
+ 
+ shift_map:
+       .byte 0,27
+       .ascii "!@#$%^&*()|+"
+       .byte 127,9
+       .ascii "\"<>PYFGCRL?}"
+       .byte 13,0
+       .ascii "AOEUIDHTNS_"
+       .byte '~,0
+       .ascii "{:QJKXBMWVZ"
+       .byte 0,'*,0,32         /* 36-39 */
+       .fill 16,1,0            /* 3A-49 */
+       .byte '-,0,0,0,'+       /* 4A-4E */
+       .byte 0,0,0,0,0,0,0     /* 4F-55 */
+       .byte '>
+       .fill 10,1,0
+ 
+ alt_map:
+       .byte 0,0
+       .ascii "\0@\0$\0\0{[]}\\\0"
+       .byte 0,0
+       .byte 0,0,0,0,0,0,0,0,0,0,0
+       .byte '~,13,0
+       .byte 0,0,0,0,0,0,0,0,0,0,0
+       .byte 0,0
+       .byte 0,0,0,0,0,0,0,0,0,0,0
+       .byte 0,0,0,0           /* 36-39 */
+       .fill 16,1,0            /* 3A-49 */
+       .byte 0,0,0,0,0         /* 4A-4E */
+       .byte 0,0,0,0,0,0,0     /* 4F-55 */
+       .byte '|
        .fill 10,1,0
  
  #else