[comp.sys.ibm.pc] Software to swap ctrl and capslock on *enhanced* keybd?

jxh@cup.portal.com (Jim - Hickstein) (10/20/88)

Is there software out there somewhere that will effectively swap the
functions of the caps-lock and ctrl keys on my "enhanced" 101-key
keyboard?  This should be possible if one can usurp the INT 08H vector
(hardware keyboard interrupt) and get there before the BIOS does; or
perhaps replace parts of the BIOS entirely.  I would do this myself (I'm
sure I could: I've done worse things down there...) but I'm convinced that
someone else has already solved this problem, since I was hardly the first
kid on my block to have to wrestle with this new layout.
Does Superkey do this at a less-ancient version than the one I am running?
(Mine doesn't even handle EGA screen blank or Compaq keyboards correctly,
let alone VGA or PS/2.)

I am proficient at editing with my 84-key layout, and the 101-key layout
has cost me dearly in accuracy; I can't go back (old machine reassigned,
and too slow; no money for a replacement keyboard) so I want to do this
in software.  The physical location of the function keys is harder to
change (especially in software :-) but they don't bother me as much as the
bizarre location for (left-)control.

Email answers, and I will summarize to the net.  Thanks very much.

P.S.  I already have a program that turns OFF numlock at boot time.

-Jim Hickstein
jxh@cup.portal.com
...!sun!portal!cup.portal.com!jxh

spolsky-joel@CS.YALE.EDU (Joel Spolsky) (10/21/88)

In article <10200@cup.portal.com> jxh@cup.portal.com (Jim - Hickstein) writes:
>Is there software out there somewhere that will effectively swap the
>functions of the caps-lock and ctrl keys on my "enhanced" 101-key
>keyboard?


I have a TSR by Tom Almy that does exactly this. This has been posted
700,000 times so I won't post it again, but if anybody wants a copy
send me eMail.

+----------------+---------------------------------------------------+
|  Joel Spolsky  | bitnet: spolsky@yalecs     uucp: ...!yale!spolsky |
|                | arpa:   spolsky@yale.edu   voicenet: 203-436-1483 |
+----------------+---------------------------------------------------+
                                               #include <disclaimer.h>

toma@tekgvs.GVS.TEK.COM (Tom Almy) (10/22/88)

In article <10200@cup.portal.com> jxh@cup.portal.com (Jim - Hickstein) writes:
>Is there software out there somewhere that will effectively swap the
>functions of the caps-lock and ctrl keys on my "enhanced" 101-key
>keyboard?  

This question seems to come up about once a month, and here (again) is
an answer:

begin 666 kbdr.com
MZ0@`30(`````"@"\FO_'!@4!F/^]_O^)+@<!_.A@`+@`3,TA`````(#\3W4M
M/#IU&@8NC@9^`";V!A<$`74"L!VB?0`'^2[_+H``/+IU"Z!]``2`^2[_+H``
M^2[_+H``7EA:6QZ.V[0ES2$?_^:T-<TAB=B,P\.Z#`"X`#'-(>A]`#1#05!3
M3$]#2R`M/B!#5%),+"`@4DE'2%132$E&5"`K($-!4%-,3T-+("T^($-!4%-,
M3T-+Z%<`Z$(`"T)Y(%1O;2!!;&UYZ$4`QP9^````N!4`Z);_HR0!B1XF`;HD
M`5*Z@`!2NCP`4NA1`(S(4+J$`%*Z%0!2Z&3_Z7C_6XH',.1#4U`!PUA:4XG3
MZ2$`N`T`Z`D`N`H`Z0,``0``HA\"M$"Y`0"Z'P*+'AT"S2'#B<&)VHL>'0*T
20,TAPUM97U[C!HS8CL#SI/_C
`
end

This very small TSR (made even smaller by moving its code into its PSP)
changes the caps lock key into an additional control key.  Pressing the
right shift key simultaneously with the caps lock key gives the caps
lock function.  This program works on AT and PS/2 machines, but not on
XT class machines.

Until next month,

Tom Almy
toma@tekgvs.TEK.COM
Standard Disclaimers Apply

u366609662ea@deneb.ucdavis.edu (0040;0000009381;0;210;141;) (10/26/88)

In article <10200@cup.portal.com> jxh@cup.portal.com (Jim - Hickstein) writes:
>Is there software out there somewhere that will effectively swap the
>functions of the caps-lock and ctrl keys on my "enhanced" 101-key
>keyboard?  This should be possible if one can usurp the INT 08H vector
>in software. 
...
>The physical location of the function keys is harder to
>change (especially in software :-) but they don't bother me as much as the
>bizarre location for (left-)control.
>
>P.S.  I already have a program that turns OFF numlock at boot time.

 I started writing such a program. However, I never finsihed it. Ex code:

main() 
{
char far * p;

p = (char far *) 0x417;
*p = 0;
}
 
 I would say more but I don't have the actual code on hand. (I believe that is
right) What this does is turn off the numlock, capslock, shift etc... But, you
can all ready do that, but its the foundation to the solution.

 You can remap any key to whatever value (scancode) you want, but you are
going to have to hack up the keyboard handler. Actually you won't have to touch
the actual handler, just move it to a different location in memory, place your
own "key-substitution" procedure in it's place. When your procedure is done
call the actuall keyboard handler.
 
 The bytes following hex 417 are what you want to look at. The first byte tells
you about right shift,left shift, ctrl shift, altshift, scroll lock, num lock,
caps lock, and insert. (bit 0,1,2,3,4,5,6,7) And the second byte tells you
if the keys are depressed.

Patrick Tully
pstully@ucdavis

everett@hpcvlx.HP.COM (Everett Kaser) (10/27/88)

 slaghtrl@lafcol.UUCP (Slaght Ralph L) writes...

>When keyswap.sys is loaded on my system (AST Premium/286, running
>DOS 3.3) I can not include a copy of it in my archive using 
>SEA's arc;  I cannot create an archive including keyswap.sys using
>zoo; and I cannot change the file's attributes, making it a hidden
>file, so that I can archive the entire root directory with keyswap.sys
>bypassed.  When keyswap.sys is not loaded, I can do all of the above.
>So, in order to make an archival file of the root directory in which
>keyswap.sys resides, I must edit config.sys, deleting the loading of
>keyswap.sys, reboot, build my archive or update it, re-edit config.sys
>and reboot.  I don't mind doing that, but I am puzzled about the
>behavior of keyswap.sys when it is loaded.  Any clues?

This is caused by the fact that the filename (KEYSWAP.sys) is the same as
the device driver name (KEYSWAP).  Simply rename the file to something else
(like KEYFIX.SYS, maybe), so that the filename will be different from the
device driver name, and then everything will work just hunky-dory.

Everett Kaser
!hplabs!hp-pcd!everett