[net.micro.pc] Keyboard interupts.

dean@scgvaxd.UUCP (Dean Stephan) (08/30/85)

Patrick Curran writes:
>I assume that keyboard enhancers function only with application software
>which reads the keyboard via INT 16, and that they take over this
>interrupt so that they can perform macro expansions on the raw key-stroke
>data retrieved from the hardware.

maybe, but see below

>It seems that there's no way I can provide compatibility with RAM-
>resident software (such as ProKey or Sidekick) if that software takes
>over the keyboard interupt vector; we can't both service those
>interrupts.  (I could provide alternative mechanisms of reading the
>keyboard, and allow the user to configure the system appropriately, but
>this sounds like more trouble than it's worth.)

I'm not sure about this, you could have your application be installed
after ProKey or Sidekick...

>On the other hand I could probably make our stuff more compatible with
>software which uses INT 16 to read the keyboard, if we coded our keyboard
>routine in the form of a replacement for that interrupt, and ensured that
>it returned all the "legal" values in addition to the "invisible" values
>which the BIOS refuses to return.  Presumably the RAM-resident software
>would then call my INT 16, and never know the difference.

Int 16 is used to read the keyboard buffer to see if there are any
characters in it, it can be used to read the next character typed on
the keyboard, or it will return the shift register status.  However,
when a key is pressed on the key board, it uses a different interupt
vector, hardware interupt 9.  This is the vector which actually
translates the character into the ASCII, scan code pair.  I would
suggest getting your Technical Reference Manual out for more info.
I would guess that PROKEY takes over interupt 9 if it allows you to
define keypad key 5.