home *** CD-ROM | disk | FTP | other *** search
/ Executor 2.0 / executorv2.0.iso / pc / dos / extra / docs / maillist / text / archive.96 / text3183.txt < prev    next >
Encoding:
Text File  |  1996-07-25  |  3.7 KB  |  97 lines

  1.     id m0u0nDv-0007qxa; Sun, 24 Mar 96 03:40 MST
  2. Sender: owner-executor
  3. Received: by ftp.ardi.com (Smail3.1.29.1 #3)
  4.     id m0u0n4E-0007r4C; Sun, 24 Mar 96 03:30 MST
  5. Received: from [194.143.199.225] by posta.unizar.es; (5.65v3.0/1.1.8.2/06Nov95-1208PM)
  6. Mime-version: 1.0
  7. Message-id: <9603241031.AA19331@posta.unizar.es>
  8. Cc: ctm@ardi.com
  9. Subject: HOW TO RESOLVE CAPS LOG BUG
  10. X-mailer: <Windows Eudora Version 2.0.2>
  11. To: Executor@ardi.com
  12. From: emoreno@encomix.es (Emilio Moreno)
  13. Content-type: text/plain; charset="us-ascii"
  14. X-sender: emoreno@encomix.es
  15. Date: Sun, 24 Mar 1996 11:31:36 +0100
  16. Sender: owner-executor@ardi.com
  17. Precedence: bulk
  18.  
  19. Hi!
  20. I have spend a few minutes making some asm tricks to see how Executor answer
  21. to Caps lock key and I have a solution. In fact I have done a little TSR
  22. program that allows me to use Caps lock perfect under text processors.
  23.  
  24. What follows is technical description, maybe not everyone can understand it
  25. perfectly . if anyone want this info in Spanish, please e-mail me.
  26.  
  27. The PC computers stores the state of the keys on two bytes in RAM
  28.  
  29. The byte 0040H:0017H stores the following info:
  30.  
  31. 7th bit Insert status
  32. 6th bit Caps Lock status 
  33. 5th bit Num Lock status
  34. 4th bit Scroll Lock status
  35. 3rd bit Alt Pressed
  36. 2nd bit Ctrl Pressed
  37. 1st bit Left Shift pressed
  38. 0  bit  Right Shift pressed
  39.  
  40. If you change the 6th bit you will see how the keyboard led change.
  41. This bit only informs about if the ROM routines have to generate a Cap key
  42. or not, but not about if it still is pressed, So the following info is usefull
  43.  
  44. Byte 0040H:0018H
  45. 7th bit Insert skey hold
  46. 6th bit Caps Lock hold 
  47. 5th bit Num Lock shold
  48. 4th bit Scroll Lock hold
  49. 3rd bit Pause active
  50. 2nd bit Sys Req hold
  51. 1st bit Left Alt hold
  52. 0  bit  Left ctrl hold
  53.  
  54. The solution for the problem is the following:
  55. Check the 6th bit at 0040h:0017H. If it is set, you must set the 6th bit at
  56. 0018H, and Executor will think the Caps key is pressed and phisically
  57. manteined down, just like a real MAc.
  58.  
  59. I did a little resident program wich traped the Int 09, and every time a key
  60. is pressed, my routine check the state of the 6th bit of 0017H and set the
  61. 6th bit of the 0018H byte ON or OFF, as needed. (This is a little more
  62. complicated, due to the SCAN codes and some other stuff, but this is
  63. basically how it works).
  64.  
  65. This routine only works for the Text processors, on wich the caps key is
  66. used for generate caps letters as they are pressed. (the Int 09 is generated
  67. every time a key is pressed on the keyboard)
  68.  
  69. It wont works on Maelstrom, because you dont press any key!
  70.  
  71. I try to trap the int 1Ch, for checking the state 18.2 times per second, to
  72. see how it works with Maelstrom, but the Way Executors traps int 08H (If I
  73. am right they modify directly the vector table, or at least not using int
  74. 21H) does not allow me to do it
  75.  
  76. Well, with all the info (I am sure lots of people knew that) I dont think
  77. that Mat or Cliff takes more that 10 minutes on fix that!
  78.  
  79.  
  80. Sorry for my English, but this is not my native language (as everyone can
  81. see)  8-)
  82. Emilio Moreno
  83.  
  84.  ------------------------------------------------------------------------------
  85.   ___                _                                             
  86.  / (_)           o  | | o       
  87.  \__   _  _  _      | |     __  
  88.  /    / |/ |/ |  |  |/  |  /  \_
  89.  \___/  |  |  |_/|_/|__/|_/\__/ 
  90.                                       ,__ __                               
  91.   Technical Engineering  Student     /|  |  |                              
  92.        Emoreno@encomix.es             |  |  |   __   ,_    _   _  _    __  
  93.    Emilio.Moreno@mest.unizar.es       |  |  |  /  \_/  |  |/  / |/ |  /  \_
  94.   http://www.encomix.es/~emoreno      |  |  |_/\__/    |_/|__/  |  |_/\__/ 
  95.  
  96.  
  97.