home *** CD-ROM | disk | FTP | other *** search
- id m0u0nDv-0007qxa; Sun, 24 Mar 96 03:40 MST
- Sender: owner-executor
- Received: by ftp.ardi.com (Smail3.1.29.1 #3)
- id m0u0n4E-0007r4C; Sun, 24 Mar 96 03:30 MST
- Received: from [194.143.199.225] by posta.unizar.es; (5.65v3.0/1.1.8.2/06Nov95-1208PM)
- Mime-version: 1.0
- Message-id: <9603241031.AA19331@posta.unizar.es>
- Cc: ctm@ardi.com
- Subject: HOW TO RESOLVE CAPS LOG BUG
- X-mailer: <Windows Eudora Version 2.0.2>
- To: Executor@ardi.com
- From: emoreno@encomix.es (Emilio Moreno)
- Content-type: text/plain; charset="us-ascii"
- X-sender: emoreno@encomix.es
- Date: Sun, 24 Mar 1996 11:31:36 +0100
- Sender: owner-executor@ardi.com
- Precedence: bulk
-
- Hi!
- I have spend a few minutes making some asm tricks to see how Executor answer
- to Caps lock key and I have a solution. In fact I have done a little TSR
- program that allows me to use Caps lock perfect under text processors.
-
- What follows is technical description, maybe not everyone can understand it
- perfectly . if anyone want this info in Spanish, please e-mail me.
-
- The PC computers stores the state of the keys on two bytes in RAM
-
- The byte 0040H:0017H stores the following info:
-
- 7th bit Insert status
- 6th bit Caps Lock status
- 5th bit Num Lock status
- 4th bit Scroll Lock status
- 3rd bit Alt Pressed
- 2nd bit Ctrl Pressed
- 1st bit Left Shift pressed
- 0 bit Right Shift pressed
-
- If you change the 6th bit you will see how the keyboard led change.
- This bit only informs about if the ROM routines have to generate a Cap key
- or not, but not about if it still is pressed, So the following info is usefull
-
- Byte 0040H:0018H
- 7th bit Insert skey hold
- 6th bit Caps Lock hold
- 5th bit Num Lock shold
- 4th bit Scroll Lock hold
- 3rd bit Pause active
- 2nd bit Sys Req hold
- 1st bit Left Alt hold
- 0 bit Left ctrl hold
-
- The solution for the problem is the following:
- Check the 6th bit at 0040h:0017H. If it is set, you must set the 6th bit at
- 0018H, and Executor will think the Caps key is pressed and phisically
- manteined down, just like a real MAc.
-
- I did a little resident program wich traped the Int 09, and every time a key
- is pressed, my routine check the state of the 6th bit of 0017H and set the
- 6th bit of the 0018H byte ON or OFF, as needed. (This is a little more
- complicated, due to the SCAN codes and some other stuff, but this is
- basically how it works).
-
- This routine only works for the Text processors, on wich the caps key is
- used for generate caps letters as they are pressed. (the Int 09 is generated
- every time a key is pressed on the keyboard)
-
- It wont works on Maelstrom, because you dont press any key!
-
- I try to trap the int 1Ch, for checking the state 18.2 times per second, to
- see how it works with Maelstrom, but the Way Executors traps int 08H (If I
- am right they modify directly the vector table, or at least not using int
- 21H) does not allow me to do it
-
- Well, with all the info (I am sure lots of people knew that) I dont think
- that Mat or Cliff takes more that 10 minutes on fix that!
-
-
- Sorry for my English, but this is not my native language (as everyone can
- see) 8-)
- Emilio Moreno
-
- ------------------------------------------------------------------------------
- ___ _
- / (_) o | | o
- \__ _ _ _ | | __
- / / |/ |/ | | |/ | / \_
- \___/ | | |_/|_/|__/|_/\__/
- ,__ __
- Technical Engineering Student /| | |
- Emoreno@encomix.es | | | __ ,_ _ _ _ __
- Emilio.Moreno@mest.unizar.es | | | / \_/ | |/ / |/ | / \_
- http://www.encomix.es/~emoreno | | |_/\__/ |_/|__/ | |_/\__/
-
-
-