• Aucun résultat trouvé

r 5.33 Menu Key Interrupt (lnt 56h)

Dans le document Reference Manual (Page 164-167)

A Menu Key Interrupt is generated whenever, in HP mode, you press the (E[[[) key.

The default handler for this interrupt performs one of three functions:

• Ifthe keyboard is in Modifier mode, adds an 8Ch to the key queue.

• Ifthe softkey labels are turned on, turns them off.

• Ifthe softkey labels are turned off, turns them on.

An application can use the Menu key interrupt in two ways:

• By taking over Int 56h and pointing it at your own Menu key interrupt handler, you can perform your own Menu key processing. When the system branches into your new interrupt handler, the state of the three modifier keys (at the time the (SYStern)

key was pressed) are available in AH; AL will contain FCh, the Configuration EPROM keymap Local Function code that caused the interrupt to be issued. This interrupt is invoked by the keyboard driver responding to a keyboard hardware interrupt. All general registers are available when the interrupt branches into your handler; they need not be saved and restored (in general, however, you should always save and restore any registers that you will use in servicing an interrupt).

• Ifyou leave the Int 56h vector pointing at the default handler, you can

programmatically simulate the CBiBID key by issuing an Int 56h software interrupt.

No registers are altered by the default handler.

In Alt mode, the (E[[[) key represents function key CI[); the Menu key interrupt is never generated. Two-byte codes will be added to the key queue according to the following table (E=Extend, S=Shift, CcControI):

5

--C 00 43 00 66

-S- -SC 00 5C 00 66

E--00 70

E-C 00 70

ES-00 70

ESC 00 70

5

The Configuration EPROM keymap entry that generates a Menu key interrupt is Local Function FCh. Behavior in the various keyboard modes is summarized as follows:

Normal Mode: In UP mode, pressing (BiffiD generates a Menu key interrupt (56h); the default handler toggles the softkey labels on or off. In Alt mode, an appropriate

~

two-byte code is added to the key queue.

Scancode Mode: Pressing the

CBiiiiD

key adds its scancode, 17 decimal (llh) to the key queue. The Menu key interrupt is not generated.

Modifier Mode: In HP mode, pressing the (BiffiDkey generates a Menu key interrupt (56h); the default handler adds an 8Ch to the key queue. In Alt mode, an appropriate two-byte code is added to the key queue.

5.34 System Key Interrupt (Int 57h)

A System Key Interrupt is generated whenever, in HP mode, you press the

(User/Sys tem) key. Ifthe keyboard is in Modifier Mode, the default interrupt handler adds an 8Bh to the key queue; otherwise, it does nothing. An application can use the System key interrupt in two ways:

• By taking over Int 57h and vectoring it to your own System key interrupt handler, you can perform your own System key processing. When the system branches into your new interrupt handler, the state of the three modifier keys (at the time the System key was pressed) are available in AU; AL will contain FBh, the Configuration EPROM keymap Local Function code that caused the interrupt to be issued. This interrupt is invoked by the keyboard driver responding to a keyboard hardware interrupt. All general registers are available when the interrupt branches into your handler; they need not be saved and restored (in general, however, you should always save and restore any registers that you will use in servicing an interrupt).

• If you leave the Int 57h vector pointing at the default handler, you can

programmatically simulate the System key by issuing an Int 57h software interrupt.

No registers are altered by the default handler.

In Alt mode, the System key represents function key (J]]J;the System key interrupt is never generated. Two-byte codes will be added to the key queue according to the following table (Er:Extend, S=Shift, Cr:ControI):

00 44

The Configuration EPROM keymap entry that generates a System key interrupt is Local Function FBh. Behavior in the various keyboard modes is summarized as follows:

Normal Mode: In HP mode, pressing (User ISystem) generates a System key interrupt (57h); the default handler simply returns. In Alt mode, an appropriate two-byte code is added to the key queue.

Scancode Mode: Pressing the (UserISYS tern)key adds its scancode, 16 decimal (lDh) to the key queue. The System key interrupt is not generated.

Modifier Mode: In UP mode, pressing the (User/SYS tern) key generates a System key

interrupt (57h); the default handler adds an 8Bh to the key queue. In Alt mode, an 5 appropriate two-byte code is added to the key queue.

5.35 Break Key Interrupt (lnt 58h)

A Break Key Interrupt is generated by the keyboard driver when you hold down the (Shlft) key and press (Breakl. The default interrupt handler responds by first flushing the key queue, and then putting aAC (D3h) in it. An application can use the Break key interrupt in two ways:

• By taking over Int 58h and vectoring it to your own Break key interrupt handler, you can perform your own Break key processing. This interrupt is invoked by the keyboard driver responding to a keyboard hardware interrupt. All general registers are available when the interrupt branches into your handler; they need not be saved and restored (in general, however, you should always save and restore any registers that you will use in servicing an interrupt).

• Ifyou leave the Int 58h vector pointing at the default handler, you can programmatically simulate (Shlft )(Break) by issuing an Int 58h software interrupt. No registers are altered by the default handler.

(Shlft)(Break)functions identically in both HP and Alt modes. The Configuration EPROM keymap entry that generates a Break key interrupt is Local Function 09h.

Behavior in the various keyboard modes is summarized as follows:

Normal Mode: Pressing (Shlft )(Break)generates a Break key interrupt (58h») which

~

normally flushes the key queue and then puts a AC (03h) in it.

Scancode Mode: Pressing the (Shlft )key causes the resultant state of all three modifier keys) plus SOh) to be added to the key queue. Pressing the (Break) key adds its scancode) 71 decimal (47h) to the key queue. The Break key interrupt is not generated.

Modifier Mode: Pressing the (Shlft )key causes the resultant state of all three modifier keys) plus SOh) to be added to the key queue. Subsequently pressing the

(Break) key adds an SDh to the key queue. The Break key interrupt is not generated.

Dans le document Reference Manual (Page 164-167)