Shop OBEX P1 Docs P2 Docs Learn Events
Dvorak simplified keyboard (ANSI) — Parallax Forums

Dvorak simplified keyboard (ANSI)

RedNifreRedNifre Posts: 84
edited 2007-05-04 23:43 in Propeller 1
Hello there,

I tried Hydra Basic and it is fun. Unfortunately the keyboard driver is US-standard, while I'm used to US-Dvorak. So I thought the easiest thing to begin programming the Hydra might be to change the keyboard driver to a different layout and here it is, my first Hydra release. [noparse]:)[/noparse]

What is Dvorak?
In short, the Dvorak-layout is a layout were the keys are arranged in a way that makes sense if you want to type with all ten fingers. Here it is:
~ ! @ # $ % ^ & * ( ) { }
` 1 2 3 4 5 6 7 8 9 0 [noparse][[/noparse] ]

  " < > P Y F G C R L ? +
  ' , . p y f g c r l / =

  A O E U I D H T N S _ |
  a o e u i d h t n s - \

| : Q J K X B M W V Z
\ ; q j k x b m w v z




On the normal keyboard you rest your fingers on ASDF and JKL; which are letters very uncommon in both English and German. On the Dvorak layout you have AOEU HTNS under your fingers wich is optimised for the English language and works well for German, too.
Also note that the keys are labelled exactly as in the US-Layout thus you could rearrange your keys on the physical keyboard to match the software. Do you want to know more?

I tested it only with the modified Basic (oldschool font) by changing the keyboard driver in the RGW_JTC_HTBasic_support_010.spin file to my one. Everything seems to work perfect, but please report bugs if you encounter some.

Because of copyright issues I'll won't upload the full driver. Just copy the keyboard_iso and override the table with this:

' Lookup table
'                               ascii   scan    extkey  regkey  ()=keypad
'
table                   word    $0000   '00
                        word    $00D8   '01             F9
                        word    $0000   '02
                        word    $00D4   '03             F5
                        word    $00D2   '04             F3
                        word    $00D0   '05             F1
                        word    $00D1   '06             F2
                        word    $00DB   '07             F12
                        word    $0000   '08
                        word    $00D9   '09             F10
                        word    $00D7   '0A             F8
                        word    $00D5   '0B             F6
                        word    $00D3   '0C             F4
                        word    $0009   '0D             Tab
                        word    $0060   '0E             `
                        word    $0000   '0F
                        word    $0000   '10
                        word    $F5F4   '11     Alt-R   Alt-L
                        word    $00F0   '12             Shift-L
                        word    $0000   '13
                        word    $F3F2   '14     Ctrl-R  Ctrl-L
                        word    $0027   '15             q '
                        word    $0031   '16             1
                        word    $0000   '17
                        word    $0000   '18
                        word    $0000   '19
                        word    $003B   '1A             z  ;
                        word    $006F   '1B             s  o
                        word    $0061   '1C             a  a
                        word    $002C   '1D             w  ,
                        word    $0032   '1E             2
                        word    $F600   '1F     Win-L
                        word    $0000   '20
                        word    $006A   '21             c  j
                        word    $0071   '22             x  q
                        word    $0065   '23             d  e
                        word    $002E   '24             e  .
                        word    $0034   '25             4
                        word    $0033   '26             3
                        word    $F700   '27     Win-R
                        word    $0000   '28
                        word    $0020   '29             Space
                        word    $006B   '2A             v  k
                        word    $0075   '2B             f  u
                        word    $0079   '2C             t  y
                        word    $0070   '2D             r  p
                        word    $0035   '2E             5
                        word    $CC00   '2F     Apps
                        word    $0000   '30
                        word    $0062   '31             n  b
                        word    $0078   '32             b  x
                        word    $0064   '33             h  d
                        word    $0069   '34             g  i
                        word    $0066   '35             y  f
                        word    $0036   '36             6
                        word    $CD00   '37     Power
                        word    $0000   '38
                        word    $0000   '39
                        word    $006D   '3A             m  m
                        word    $0068   '3B             j  h
                        word    $0067   '3C             u  g
                        word    $0037   '3D             7
                        word    $0038   '3E             8
                        word    $CE00   '3F     Sleep
                        word    $0000   '40
                        word    $0077   '41             ,  w
                        word    $0074   '42             k  t
                        word    $0063   '43             i  c
                        word    $0072   '44             o  r
                        word    $0030   '45             0
                        word    $0039   '46             9
                        word    $0000   '47
                        word    $0000   '48
                        word    $0076   '49             .  v
                        word    $007A   '4A     (/)     /  z
                        word    $006E   '4B             l  n
                        word    $0073   '4C             ;  s
                        word    $006C   '4D             p  l
                        word    $005B   '4E             -  [noparse][[/noparse]
                        word    $0000   '4F
                        word    $0000   '50
                        word    $0000   '51
                        word    $002D   '52             '  -
                        word    $0000   '53
                        word    $EF2F   '54             [noparse][[/noparse]  /
                        word    $005D   '55             =  ]
                        word    $0000   '56
                        word    $0000   '57
                        word    $00DE   '58             CapsLock
                        word    $00F1   '59             Shift-R
                        word    $EB0D   '5A     (Enter) Enter
                        word    $003D   '5B             ]  =
                        word    $0000   '5C
                        word    $005C   '5D             \
                        word    $CF00   '5E     WakeUp
                        word    $0000   '5F
                        word    $0000   '60
                        word    $0000   '61
                        word    $0000   '62
                        word    $0000   '63
                        word    $0000   '64
                        word    $0000   '65
                        word    $00C8   '66             BackSpace
                        word    $0000   '67
                        word    $0000   '68
                        word    $C5E1   '69     End     (1)
                        word    $0000   '6A
                        word    $C0E4   '6B     Left    (4)
                        word    $C4E7   '6C     Home    (7)
                        word    $0000   '6D
                        word    $0000   '6E
                        word    $0000   '6F
                        word    $CAE0   '70     Insert  (0)
                        word    $C9EA   '71     Delete  (.)
                        word    $C3E2   '72     Down    (2)
                        word    $00E5   '73             (5)
                        word    $C1E6   '74     Right   (6)
                        word    $C2E8   '75     Up      (8)
                        word    $00CB   '76             Esc
                        word    $00DF   '77             NumLock
                        word    $00DA   '78             F11
                        word    $00EC   '79             (+)
                        word    $C7E3   '7A     PageDn  (3)
                        word    $00ED   '7B             (-)
                        word    $DCEE   '7C     PrScr   (*)
                        word    $C6E9   '7D     PageUp  (9)
                        word    $00DD   '7E             ScrLock
                        word    $0000   '7F
                        word    $0000   '80
                        word    $0000   '81
                        word    $0000   '82
                        word    $00D6   '83             F7

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2007-05-04 20:04
    Just as a side note ... The same table is used in (I think) all of the keyboard drivers for the Propeller. You could make the same substitution in other Propeller software that uses a PS/2 keyboard. The keyboard driver in the Propeller Object Exchange can generally be substituted for the Demo Board / Protoboard or the Hydra driver as long as you use the right pin numbers for the "start" call.
  • AndreLAndreL Posts: 1,004
    edited 2007-05-04 23:43
    I have played with this setup before, but couldn't put the time in to learn. I pretty much can only type with MS ergonomic keyboards, I do about 130 words a minute when I am in the groove and writing a book. But, with a normal keyboard or a latop I am retarded, maybe 20-30 words a minute if that.

    I have always wondered if the dvorak would be worth the time, I just doubt I could retrain 30 years of muscle memory. Plus I am already getting 130 a min, so I dont know if it would even be worth exploring???

    Andre'
Sign In or Register to comment.