Int 6F Fn 00 - Hp Vectra Ex-bios - "f_isr" (internal) - Respond To Logic [b]
AH = 00h
BP = ID for driver (see #3412)
DH = data type (see #3413)
DL = physical device driver's index (driver ID / 6)
BX,CX = data
ES:0000h -> physical device's Describe Record (see #3420)
---keypress event data---
BH = keyboard state (only if bit 5 of DH set) (see #3414)
BL = scancode (if bit 4 of DH clear)
CX = number of scancodes in list (if bit 4 of DH set)
ES:SI -> scancode list (if bit 4 of DH set)
---motion event data---
BX = new X position (abs device) or X increment (relative device)
CX = new Y position (abs device) or Y increment (relative device)
---button event data
BL = button information
bits 15-8 reserved
bit 7: button state (0 = down, 1 = up)
bits 6-0: button number (0-7)
BH = reserved
Return: AH = status (see #3415)
BP,DS destroyed
---if device is keyboard translator---
BL = translated scancode
BH = new keyboard state (if DH bit 5 set) (see #3414)
DH = new scancode type (see #3413)
Notes: INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
unavailable because of its use as a BIOS extension software interrupt
the INT 6F handler consists of an instruction to load DS with the
driver's data segment followed by an indexed far jump using BP to
select the destination vector; since the interrupt handler is
located immediately following the dispatch table, the HP_VECTOR_TABLE
may be found by looking at offset 0000h in the INT 6F segment, and
its size is equal to the offset of the interrupt handler
each entry in the HP_VECTOR table consists of a DWORD for the driver's
entry point address and a WORD for the driver's data segment
this function is not user-callable, as it is a response to a physical
event, and assumes that the caller has already handled the physical
interrupt and updated the Describe Record (see #3420) to reflect
the event
See Also: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra"
(Table 3412)
Values for HP Vectra EX-BIOS driver ID:
0000h V_SCOPY (null driver, but DS value points at system copyright string)
0006h V_DOLITTLE (null driver)
000Ch V_PNULL (null driver)
0012h V_SYSTEM
0018h reserved
001Eh V_S8259
0024h reserved
002Ah V_SINPUT
0030h reserved
0036h V_QWERTY (keyboard translator)
003Ch V_SOFTKEY (keyboard translator)
0042h V_FUNCTION (keyboard translator)
0048h V_NUMPAD (keyboard translator)
004Eh V_CCP (keyboard translator)
0054h V_SVIDEO
005Ah V_STRACK
0060h V_EVENT_TOUCH
0066h V_EVENT_TABLET
006Ch V_EVENT_POINTER
0072h reserved
0078h reserved
007Eh reserved
0084h reserved
008Ah V_CCPCUR (keyboard translator)
0090h V_RAW (keyboard translator)
0096h V_CCPNUM (keyboard translator)
009Ch V_OFF (keyboard translator)
00A2h V_CCPGID (translator: cursor control pad keys to GID data)
00A8h V_SKEY2FKEY (keyboard translator)
00AEh V_8041
00B4h V_PGID_CCP
00BAh C_LTABLET
00C0h V_LPOINTER (pointing device: mouse, etc.)
00C6h V_LTOUCH (touch screen)
00CCh V_LHPMOUSE
00D2h ???
...
0102h ???
0108h V_LNULL
010Eh reserved
0114h V_HPHIL
011Ah-01C2h reserved
016Eh V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
01C8h-0228h available
(Table 3413)
Values for HP Vectra EX-BIOS ISR data type:
00h reserved "T_KC_R0"
01h reserved "T_KC_R1"
02h ASCII data
03h reserved "T_KC_R3"
04h HP150 keyboard (ITF) scancode
05h reserved "T_KC_R5"
06h device-definable type
07h HP Vectra keyboard set
08h IBM AT scancode set
09h button data
0Ah IBM PC scancode set
0Bh Softkey keypad (F1-F8)
0Ch function key keypad (F1-F10)
0Dh HP Cursor Control Pad keypad
0Eh Qwerty keypad
0Fh Numeric keypad
1xh bit 4 set: string of CX scancode of type 0xh at ES:SI
2xh bit 5 set: BH contains current keyboard state
40h signed 8-bit relative data
41h signed 16-bit relative data
42h unsigned 8-bit absolute data
43h unsigned 16-bit absolute data
45h specially-formed data (80x25) generated by V_LTOUCH
46h specially-formed data (640x200) generated by V_LTABLET
47h specially-formed data (640x200) generated by V_LPOINTER
Bitfields for HP Vectra EX-BIOS keyboard state:
Bit(s) Description (Table 3414)
0 Alt pressed
1 Left Shift pressed
2 Right Shift pressed
3 Ctrl pressed
4 CapsLock active
5 NumLock active
6 Right unlabeled key pressed (some international keyboards)
7 Left unlabeled key pressed (some international keyboards)
See Also: #0506
(Table 3415)
Values for HP Vectra EX-BIOS status:
00h successful
02h unsupported function
04h not serviced
06h done (no further processing should be performed on the ISR event)
F2h device is out of paper
F4h device is offline
F6h no more space for more drivers
F8h driver is busy
FAh bad parameter
FEh operation failed
Note: status codes are always even; negative values (>= 80h) indicate errors
while positive values indicate exceptional conditions
Format of HP EX-BIOS driver header data:
Offset Size Description (Table 3416)
00h WORD driver attributes (see #3417)
02h WORD string index of driver's name
04h WORD driver's default logical device vector (see #3412)
06h WORD driver's parent class (bitset) (see #3418)
08h WORD driver's child class (bitset)
0Ah WORD driver's parent vector
0Ch WORD driver's child vector
0Eh BYTE major subaddress
0Fh BYTE minor subaddress
Notes: this structure is located at offset 0 in the driver's data segment,
which in turn may be read from the HP_VECTOR_TABLE (refer to note in
main entry)
only the first WORD is required, and everything from offset 6 onward
is only required if the device wishes to perform device mapping
See Also: #3419,#3420
Bitfields for HP EX-BIOS driver header attributes:
Bit(s) Description (Table 3417)
15 this is a complete driver header
14 "ATR_DEVCFG" reserved
13 driver can be mapped with the parent vector at offset 0Ah
12 driver can be mapped with the child vector at offset 0Ch
11-9 driver type
000 reserved vector
001 free vector
010 EX-BIOS service
011 logical driver (mapped from parent to child)
100 mappable driver (cannot be last in driver chain)
101 mappable driver that is last in driver chain
110 input driver (mappable)
111 reserved
8 "ATR_STRING" reserved
7 call SF_START whenever driver is remapped
6-5 addressing requirements
00 no subaddresses required
01 requires major address be stored at offset 0Eh
10 requires minor address be stored at offset 0Fh
11 required major,minor, and mid addresses (minor in low nybble of
offset 0Fh, mid address in high nybble of 0Fh)
4 driver can be shared between several parent drivers
3 driver can be shared between several child drivers
2 this driver header is in ROM
1 "ATR_YIELD" reserved
0 reserved
See Also: #3416,#3418
Bitfields for HP EX-BIOS driver class:
Bit(s) Description (Table 3418)
15 maps F1 to F8 softkeys
14 keyboard
13 cursor pad
12 console device
11 serial output device (may be capable of limited input)
10 "CL_COMM" reserved
9 interfaces multiple resources transparent to operating system
8 serial output device filter (can be mapped between logical and physical
driver to perform translations)
7 addressed block device
6 priority boot device
5 logical graphics input device
4 physical graphics input device (can map to child of another driver)
3 "CL_GID" can map to an event
2 physical touch device
1 reserved
0 class extension bit
Note: special values: FFFFh maps to all other devices (V_PNULL), and 0000h
maps to no other driver
See Also: #3416
Format of HP EX-BIOS global data area:
Offset Size Description (Table 3419)
00h 20 BYTEs reserved
14h BYTE sound driver status
15h BYTE number of pending key clicks (max 4) (see AH=34h/BP=0012h)
16h BYTE current tick duration scaling factor
17h BYTE current key click volume
18h WORD current beep period (10 us increments) (see AH=3Ch/BP=0012h)
1Ah WORD current beep duration (10 us increments)
1Ch BYTE number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
1Dh BYTE reserved
1Eh WORD next unused string index number
20h ... reserved
See Also: #3416
Format of HP EX-BIOS Driver Describe Record:
Offset Size Description (Table 3420)
00h 16 BYTEs EX-BIOS driver header data (see #3416)
10h BYTE device GID type
bits 7-4: device type
bits 3-0: physical device link address
11h BYTE physical device ID (see #3422)
12h WORD logical device status bits (see #3421)
14h BYTE physical device vector number (driver ID / 6)
15h BYTE maximum number of axes reported (0-2)
16h BYTE device class
bits 7-4: current class
bits 3-0: default class
17h BYTE number of buttons/prompts
bits 7-4: number of prompts
bits 3-0: number of buttons
18h BYTE reserved
19h BYTE (physical devices only) maximum output burst length
1Ah BYTE (physical devices only) number of write registers
1Bh BYTE (physical devices only) number of read registers
1Ch BYTE button transition flags (bit 0 = button0, etc.)
1Dh BYTE current button states (bit 0 = button0, etc.)
1Eh WORD device resolution
20h WORD maximum x-axis count
22h WORD maximum y-axis count
24h WORD X position data for absolute devices
26h WORD Y position data for absolute devices
28h WORD X delta for relative devices
2Ah WORD Y delta for relative devices
2Ch WORD (logical devices only) X-axis scaling accumulator
(fraction of one logical unit)
2Eh WORD (logical devices only) Y-axis scaling accumulator
(fraction of one logical unit)
Bitfields for HP logical device status flags:
Bit(s) Description (Table 3421)
15-5 reserved
4 event enabled
3 tracking enabled
2 clipping enabled
1 button error occurred
0 interrupt in progress
See Also: #3420
(Table 3422)
Values for HP-HIL device ID:
00h-02h reserved
03h Swiss-French keyboard
04h-06h reserved
07h Canadian-English keyboard
08h-0Ah reserved
0Bh Italian keyboard
0Ch reserved
0Dh Dutch keyboard
0Eh Swedish keyboard
0Fh German keyboard
10h-12h reserved
13h Spanish keyboard
14h reserved
15h Belgian (Flemish) keyboard
16h Finnish keyboard
17h UK keyboard
18h French-Canadian keyboard
19h Swiss-German keyboard
1Ah Nerwegian keyboard
1Bh Frensh keyboard
1Ch Danish keyboard
1Dh Katakana keyboard
1Eh Latin American-Spanish keyboard
1Fh US-American keyboard
20h-2Bh reserved
2Ch-2Fh tone generator
30h-3Fh reserved
40h-5Bh reserved (character entry)
5Ch-5Fh barcode reader
60h-67h reserved (relative positions)
68h-6Bh mouse
6Ch-6Fh trackball
70h-7Fh reserved (relative positions)
80h-87h reserved (absolute positions)
88h-8Bh touchpad
8Ch-8Fh touch screen
90h-97h graphics tablet
98h-9Fh reserved (absolute positions)
A0h-BFh compressed keyboard (91-93 keys)
C0h-DFh extended keyboard (107-109 keys)
E0h-FFh standard keyboard (85-87 keys)