[comp.os.msdos.misc] DVORAK keyboard layout for 101-key AT keyboards

craig@med.unc.edu (Ron Craig) (06/08/91)

Somebody in comp.misc asked for the DVORAK keyboard layout.  A good 
article on the topic was posted to comp.misc, and a request was made for
ways to implement the layout.  I posted a note in comp.misc directing 
folks here since this is specific to ms-dos.  I looked on simtel, but didn't
find anything more than hints and a couple of programs I couldn't get to 
work.  Here are the fruits of my labor, free for the taking.

I happened to have a spare 101-key AT keyboard, so I rearranged the keycaps
as shown at the end of this posting, and wrote the following 2 batch files 
(DVORAK.BAT and SHOLES.BAT) to do the "poor-man's kludge."  That is, I 
use ANSI.SYS to redefine the keys.  Doesn't work for programs that go 
straight to the hardware to get keystrokes, but it's better than nothing.

------cut here--------DVORAK.BAT-----------------------------------------
@REM This batch file uses ANSI.SYS to redefine a 101-key AT to Dvorak layout.
@REM Note that you may need to expand your DOS environment with the /E:size
@REM parameter of the SHELL= directive in your config.sys file
@REM Released into the Public Domain by Ron Craig 1991 -- craig@med.unc.edu --
@set pmp=%prompt%

@REM b-x c-j d-e e-. f-u g-i h-d i-c j-h k-t l-n
prompt $e[98;"x"p
prompt $e[99;"j"p
prompt $e[100;"e"p
prompt $e[101;"."p
prompt $e[102;"u"p
prompt $e[103;"i"p
prompt $e[104;"d"p
prompt $e[105;"c"p
prompt $e[106;"h"p
prompt $e[107;"t"p
prompt $e[108;"n"p

@REM n-b o-r p-l q-' r-p s-o t-y u-g v-k w-, x-q y-f z-;
prompt $e[110;"b"p
prompt $e[111;"r"p
prompt $e[112;"l"p
prompt $e[113;39p
prompt $e[114;"p"p
prompt $e[115;"o"p
prompt $e[116;"y"p
prompt $e[117;"g"p
prompt $e[118;"k"p
prompt $e[119;44p
prompt $e[120;"q"p
prompt $e[121;"f"p
prompt $e[122;59p

@REM B-X C-J D-E E-greater-than  F-U G-I H-D I-C J-H K-T L-N
prompt $e[66;"X"p
prompt $e[67;"J"p
prompt $e[68;"E"p
prompt $e[69;62p
prompt $e[70;"U"p
prompt $e[71;"I"p
prompt $e[72;"D"p
prompt $e[73;"C"p
prompt $e[74;"H"p
prompt $e[75;"T"p
prompt $e[76;"N"p

@REM N-B O-R P-L Q-" R-P S-O T-Y U-G V-K W-less-than X-Q Y-F Z-:
prompt $e[78;"B"p
prompt $e[79;"R"p
prompt $e[80;"L"p
prompt $e[81;34p
prompt $e[82;"P"p
prompt $e[83;"O"p
prompt $e[84;"Y"p
prompt $e[85;"G"p
prompt $e[86;"K"p
prompt $e[87;60p
prompt $e[88;"Q"p
prompt $e[89;"F"p
prompt $e[90;58p

@REM :-S ;-s
prompt $e[58;"S"p
prompt $e[59;"s"p

@REM '-- "-_
prompt $e[39;45p
prompt $e[34;95p

@REM ,-w less-than-W
prompt $e[44;"w"p
prompt $e[60;"W"p

@REM .-v  greater-than-V
prompt $e[46;"v"p
prompt $e[62;"V"p

@REM /-z ?-Z
prompt $e[47;"z"p
prompt $e[63;"Z"p

@REM --\ _-broken-bar
prompt $e[45;92p
prompt $e[95;124p

@REM [-/ {-?
prompt $e[91;47p
prompt $e[123;63p

@REM \-[ broken-bar-{
prompt $e[92;91p
prompt $e[124;123p

prompt $e[37;37p

@prompt=%pmp%
@set pmp=
@echo.
@echo Your keyboard is now set up for Dvorak
------cut here----------end of DVORAK.BAT-------------------

------cut here----------SHOLES.BAT--------------------------
@REM This batch file uses ANSI.SYS to reset a 101-key AT to Sholes
@REM Note that you may need to expand your DOS environment with the /E:size
@REM parameter of the SHELL= directive in your config.sys file
@REM Released into the Public Domain by Ron Craig 1991 -- craig@med.unc.edu --
@set pmp=%prompt%

@REM reset b c d e f g h i j k l
prompt $e[98;98p
prompt $e[99;99p
prompt $e[100;100p
prompt $e[101;101p
prompt $e[102;102p
prompt $e[103;103p
prompt $e[104;104p
prompt $e[105;105p
prompt $e[106;106p
prompt $e[107;107p
prompt $e[108;108p

@REM reset n o p q r s t u v w x y z
prompt $e[110;110p
prompt $e[111;111p
prompt $e[112;112p
prompt $e[113;113p
prompt $e[114;114p
prompt $e[115;115p
prompt $e[116;116p
prompt $e[117;117p
prompt $e[118;118p
prompt $e[119;119p
prompt $e[120;120p
prompt $e[121;121p
prompt $e[122;122p

@REM reset B C D E F G H I J K L
prompt $e[66;66p
prompt $e[67;67p
prompt $e[68;68p
prompt $e[69;69p
prompt $e[70;70p
prompt $e[71;71p
prompt $e[72;72p
prompt $e[73;73p
prompt $e[74;74p
prompt $e[75;75p
prompt $e[76;76p

@REM reset N O P Q R S T U V W X Y Z
prompt $e[78;78p
prompt $e[79;79p
prompt $e[80;80p
prompt $e[81;81p
prompt $e[82;82p
prompt $e[83;83p
prompt $e[84;84p
prompt $e[85;85p
prompt $e[86;86p
prompt $e[87;87p
prompt $e[88;88p
prompt $e[89;89p
prompt $e[90;90p

@REM reset : ;
prompt $e[58;58p
prompt $e[59;59p

@REM reset ' "
prompt $e[39;39p
prompt $e[34;34p

@REM reset , less-than
prompt $e[44;44p
prompt $e[60;60p

@REM reset . greater-than
prompt $e[46;46p
prompt $e[62;62p

@REM reset / ?
prompt $e[47;47p
prompt $e[63;63p

@REM reset - _
prompt $e[45;45p
prompt $e[95;95p

@REM reset [ {
prompt $e[91;91p
prompt $e[123;123p

@REM reset \ broken-bar
prompt $e[92;92p
prompt $e[124;124p

prompt $e[37;37p

@prompt=%pmp%
@set pmp=
@echo.
@echo Your keyboard is now set up for Sholes
---------cut here----------end of SHOLES.BAT-------------------------


In article <1991May29.172841.25136@cs.utk.edu> shuford@cs.utk.edu (Richard 
Shuford) gave us the layout for a 101-key expanded keyboard:
>
>      Dvorak                 Sholes
>      ------                 ------
>  ~!@#$%^&*()|+{         ~!@#$%^&*()_+|           shifted top row
>  `1234567890\=[         `1234567890-=\         unshifted top row
>
>    "<>PYFGCRL?}           QWERTYUIOP{}
>    ',.pyfgcrl/]           qwertyuiop[]
>
>    AOEUIDHTNS_            ASDFGHJKL:"
>    aoeuidhtns-            asdfghjkl;'
>
>     :QJKXBMWVZ             ZXCVBNM<>?            shifted bottom row
>     ;qjkxbmwvz             zxcvbnm,./          unshifted bottom row
>
>Here follows a listing of a few ways to get a Dvorak layout on your
>computer's keyboard.  If anybody on the net knows of other good ways,
>you can post them to "comp.misc", where the question was asked.

Now if I can only get enough time to learn the layout. ;->  It isn't
too bad, though.  The vowels are on the left and consonants are on the
right.  I rarely have to move my hand from the home row.  Anybody got a 
good layout for writing tons of C code quickly? ;->

Or how about a way to get ELVIS (a MS-DOS vi emulation) to keep me from
reaching all over the keyboard for the hjkl movement keys?
-- 
 Ron Craig                    inet-   craig@med.unc.edu 
 CB# 8180 - UNC Chapel Hill   bitnet- URONCR@UNC.BITNET  AT&T- (919) 966-3681
 Chapel Hill NC 27599-8180  My opinions are valued by UNC, not shared by them.