INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR AH = 00h BP = ID for driver (see #03741) DH = data type (see #03742) DL = physical device driver's index (driver ID / 6) BX,CX = data ES:0000h -> physical device's Describe Record (see #03749) ---keypress event data--- BH = keyboard state (only if bit 5 of DH set) (see #03743) 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 #03744) BP,DS destroyed ---if device is keyboard translator--- BL = translated scancode BH = new keyboard state (if DH bit 5 set) (see #03743) DH = new scancode type (see #03742) Notes: INT 6F corresponds to IRQ23 on the original HP Vectra ATIBM PC AT, which is unavailable because of its use as a BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware. The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. 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 DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. 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 #03749) to reflect the event SeeAlso: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra" (Table 03741) 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 03742) 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 IBMInternational Busiuness MachinesInternational Busiuness Machines) A hardware, software and other service technology company founded in 1911. ATIBM PC AT scancode set 09h button data 0Ah IBMInternational Busiuness MachinesInternational Busiuness Machines) A hardware, software and other service technology company founded in 1911. PCIBM 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 03743) 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) SeeAlso: #00582 (Table 03744) 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 03745) 00h WORD driver attributes (see #03746) 02h WORD string index of driver's name 04h WORD driver's default logical device vector (see #03741) 06h WORD driver's parent class (bitset) (see #03747) 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 SeeAlso: #03748,#03749 Bitfields for HP EX-BIOS driver header attributes: Bit(s) Description (Table 03746) 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(Read-Only Memory) A memory for program storage which may not be changed by the program as it runs. 1 "ATR_YIELD" reserved 0 reserved SeeAlso: #03745,#03747 Bitfields for HP EX-BIOS driver class: Bit(s) Description (Table 03747) 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 SeeAlso: #03745 Format of HP EX-BIOS global data area: Offset Size Description (Table 03748) 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 SeeAlso: #03745 Format of HP EX-BIOS Driver Describe Record: Offset Size Description (Table 03749) 00h 16 BYTEs EX-BIOS driver header data (see #03745) 10h BYTE device GID type bits 7-4: device type bits 3-0: physical device link address 11h BYTE physical device ID (see #03751) 12h WORD logical device status bits (see #03750) 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 03750) 15-5 reserved 4 event enabled 3 tracking enabled 2 clipping enabled 1 button error occurred 0 interrupt in progress SeeAlso: #03749 (Table 03751) 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)