Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

608 lines
31 KiB

  1. page ,132
  2. ;**************************************************************************
  3. ; This file contains equates, data structures and definitions needed to
  4. ; access both the Standard BIOS (STD-BIOS) and the Extended BIOS (EX-BIOS)
  5. ; of Vectra using MASM 3.0. Depending on what part of the BIOS you are
  6. ; accessing you might not need all the equates. The equates are organized
  7. ; as follows:
  8. ;
  9. ; o Usefull macros.
  10. ; o 80286 Support Macros and Equates.
  11. ; o EX-BIOS Equates:
  12. ; 1) Generic Structures and equates used by all drivers.
  13. ; 2) Equates for Vector Addressed.
  14. ; 3) Function and SubFunction Equates common to all drivers.
  15. ; 4) Function and Subfunction Equates individual to drivers. These
  16. ; are order by vector number.
  17. ; o Industry Standard (STD-BIOS) Interrupt numbers and function equates.
  18. ; o Industry Standard (STD-BIOS) Data Area
  19. ;
  20. ; The major reason for organizing the equate file in this form is that
  21. ; the programmer can extract only those equates that he needs to create
  22. ; a tailored equate file.
  23. ;**************************************************************************
  24. ;**************************************************************************
  25. ; Useful macros.
  26. ;**************************************************************************
  27. ; none at this time
  28. ;**************************************************************************
  29. ; 80286 Support macros and equates.
  30. ;**************************************************************************
  31. ;**************************************************************************
  32. ; The following macro is used to compensate for a bug in the 80286
  33. ; hardware interrupt system. It seems that during a normal
  34. ; POPF instruction cycle interrupts are always enabled regardless
  35. ; of the state of the interrupt enable flag prior to the pop or after
  36. ; the pop.
  37. ;**************************************************************************
  38. POPPF macro
  39. jmp $+3
  40. iret
  41. push cs
  42. call $-2
  43. endm
  44. ;**************************************************************************
  45. ; EX-BIOS support macros and equates.
  46. ;**************************************************************************
  47. ; Equates for EX-BIOS interrupt number and vector address.
  48. HPENTRY equ 6FH
  49. F_HPENTRY equ HPENTRY
  50. BIOS_SEG EQU 0F000H ; Vectra BIOS ROM Segment
  51. ID_OFFSET EQU 0F8H ; Vectra ROM ID Offset
  52. ;
  53. ;**************************************************************************
  54. ; SYSCALL [vector_address]
  55. ;**************************************************************************
  56. syscall macro vector
  57. ifnb <vector>
  58. mov bp,vector
  59. endif
  60. int HPENTRY
  61. endm
  62. ifndef SYS
  63. ;
  64. ;**************************************************************************
  65. ; HP_VECTOR_TABLE Entry
  66. ;**************************************************************************
  67. HP_TABLE_ENTRY struc ;<1,2,3>
  68. HP_ENTRY_IP dw 0
  69. HP_ENTRY_CS dw 0
  70. HP_ENTRY_DS dw 0
  71. HP_TABLE_ENTRY ends
  72. ;**********************************************************************
  73. ; Structure of Data Header for HP's vectors.
  74. ;**********************************************************************
  75. HP_SHEADER STRUC ;<1,2,3,4,5,6,7,8,9,0>
  76. DH_ATR dw 0 ; Attribute
  77. DH_NAME_INDEX dw 0 ; Name index of driver.
  78. DH_V_DEFAULT dw 0 ; Driver vector position in HPtable
  79. DH_P_CLASS dw 0 ; Parent class
  80. DH_C_CLASS dw 0 ; Child class
  81. DH_V_PARENT dw 0 ; Vector used when the driver cannot handle
  82. ; an F_ISR function call
  83. DH_V_CHILD dw 0 ; Vector used when the driver cannot handle
  84. ; a regular function call
  85. DH_MAJOR db 0 ; Driver's major address if any.
  86. DH_MINOR db 0 ; Driver's minor address if any.
  87. HP_SHEADER ENDS
  88. ;**********************************************************************
  89. ; DH_ATR bit record
  90. ;**********************************************************************
  91. ATR_HP equ 1000000000000000B ; 1- The Rest of header is valid
  92. ATR_DEVCFG equ 0100000000000000B ; 1- Present in DEVCONFG
  93. ATR_ISR equ 0010000000000000B ; 1- Replace My ISR (Child)
  94. ATR_ENTRY equ 0001000000000000B ; 1- Replace My ENTRY (Parent)
  95. ATR_RSVD equ 0000000000000000B ; 0 - Available on allocation from HP
  96. ATR_FREE equ 0000001000000000B ; 1 - Available Vector
  97. ATR_SRVC equ 0000010000000000B ; 2 - Service Vector
  98. ATR_LOG equ 0000011000000000B ; 3 - Logical Device Start DEVCONFG CHA
  99. ATR_IND equ 0000100000000000B ; 4 - Filter, show driver (options)
  100. ATR_BOT equ 0000101000000000B ; 5 - End of Chain
  101. ATR_ESC equ 0000110000000000B ; 6 - Filter, Pass thru , No options
  102. ATR_TYPE7 equ 0000111000000000B ; 7 - Available
  103. ATR_TYPE_MASK equ 0000111000000000B
  104. ATR_INP equ 0000000100000000B ; 1 - Chain ISR ( to Parents )
  105. ; 0 - Chain Entry ( Child)
  106. ATR_SUBADD equ 0000000000000000B
  107. ATR_MAJOR equ 0000000000100000B
  108. ATR_MINOR equ 0000000001000000B
  109. ATR_MID equ 0000000001100000B
  110. ATR_PSHARE equ 0000000000010000B
  111. ATR_CSHARE equ 0000000000001000B
  112. ATR_ROM equ 0000000000000100B
  113. ATR_YIELD equ 0000000000000010B ;
  114. ATR_0 equ 0000000000000001B
  115. ;**********************************************************************
  116. ; DH_Class
  117. ;**********************************************************************
  118. CL_KBDFC equ 1000000000000000B ; 1 - HP Softkey Transaltor
  119. CL_KBD equ 0100000000000000B ; 1 - Keyboard
  120. CL_CCP equ 0010000000000000B ; 1 - Cursor Control pad
  121. CL_CON equ 0001000000000000B ; 1 - Console Device
  122. CL_BYTE equ 0000100000000000B ; 1 - PRN device
  123. CL_COMM equ 0000010000000000B ; 1 - COMM device
  124. CL_INTERFACE equ 0000001000000000B ; 1 - interface, HPHIL, HPIB
  125. CL_FILT equ 0000000100000000B ; 1 - charachter filter
  126. CL_BLK equ 0000000010000000B ; 1 - block device
  127. CL_BOOT equ 0000000001000000B ; 1 - boot block device
  128. CL_LGID equ 0000000000100000B ; 1 - logical physical gid
  129. ; e.g. ccp to gid translator
  130. CL_PGID equ 0000000000010000B ; 1 - physical gid
  131. CL_GID equ 0000000000001000B ; 1 - any graphics input device
  132. CL_PTS equ 0000000000000100B ; 1 - physical touch screen
  133. CL_ASCII equ 0000000000000010B ; 1 - ascii input device
  134. CL_EXTEND equ 0000000000000001B ; 0 - set of classes above
  135. ; 1 - alternate class set
  136. CL_ALL equ 1111111111111111B ; Member of all classes
  137. CL_NULL equ 0000000000000000B ; Member No Classes
  138. ;***************************************************************************
  139. ; Vector Addresses
  140. ;***************************************************************************
  141. V_SCOPY equ 0000H ; Copyright Notice
  142. V_DOLITTLE equ 0006H ; Nop Routine
  143. V_PNULL equ 000CH ; No Device
  144. V_SYSTEM equ 0012H ; System Intrinsics
  145. V_SINPUT equ 002AH ; Input Inquire routines
  146. V_SQWERTY equ 0036H ; Qwerty KBD Translator
  147. V_PSOFTKEY equ 003CH ; HP f1-f8 Translator
  148. V_PFUNCTION equ 0042H ; IBM F1-F10 Translator
  149. V_PNUM_PAD equ 0048H ; Numeric Pad Translator
  150. V_SPCCP equ 004EH ; CCP Translator Driver
  151. V_PVIDEO equ 0054H ; Video Intrinsics
  152. V_STRACK equ 005AH ; Common cursor control funcs.
  153. V_EVENT_TOUCH equ 0060H ; Touch Event Intercept
  154. V_EVENT_TABLET equ 0066H ; Tablet Event Intercept
  155. V_EVENT_POINTER equ 006CH ; Pointer Event Intercept
  156. V_LCCP_CURSOR equ 008AH ; CCP to Cursor Always Filter (Default)
  157. V_RAW equ 0090H ; CCP+Softkey RAW Mode Filter
  158. V_LCCP_NUMPAD equ 0096H ; CCP to Numeric Pad Filter
  159. V_OFF equ 009CH ; CCP+Softkey Off Filter
  160. V_LCCP_GID equ 00A2H ; CCP to GID Filter ( Not Implemented)
  161. V_LFUNCTION equ 00A8H ; Softkey (f1-f8) to Function
  162. ; key (F1-F8) Filter (Default)
  163. V_L8041 equ 00AEH ; 8041 Interface
  164. V_PGID_CCP equ 00B4H ; Graphic to CCP Filter
  165. V_LTABLET equ 00BAH ; Tablet driver
  166. V_LPOINTER equ 00C0H ; Pointer driver
  167. V_LTOUCH equ 00C6H ; Touch driver
  168. V_LHPMOUSE equ 00CCH ; Microsoft/Mouse System's
  169. ; Compatible Driver
  170. V_LNULL equ 0108H ; No Driver
  171. endif ; SYS
  172. V_HPHIL equ 0114H ; HPHIL Driver
  173. ;
  174. V_WINDOWS equ 168H ; HP Windows protocol driver
  175. V_SCANDOOR equ 016EH ; Scan Door driver
  176. ;
  177. ;~~tqn 060887
  178. ;
  179. ;*********************************************************************
  180. ; Extended Keyboard functions (int 16h)
  181. ;*********************************************************************
  182. INT_KBD equ 16H ; Int 16h vetor
  183. F16_INQUIRE equ 6F00H ; EX-BIOS presence
  184. F16_GET_INT_NUMBER equ 6F0DH ; Get HPentry vector
  185. F16_SET_INT_NUMBER equ 6F0EH ; Set HPentry vector
  186. ;
  187. ;~~
  188. ;*********************************************************************
  189. ; Common Function Codes for HP Routines.
  190. ;*********************************************************************
  191. F_ISR equ 00H*2 ; Interrupt service call
  192. F_SYSTEM equ 01H*2 ; System func. call,
  193. ; Subfunction required
  194. F_IO_CONTROL equ 02H*2 ; Device/Driver Dependent
  195. ; Functions
  196. F_ITF_TO_ENVOY equ F_IO_CONTROL ; Translation function for
  197. ; SITF_ENVOY service.
  198. F_PUT_BYTE equ 03H*2 ; Write one byte of data:
  199. ; Byte is in AL
  200. F_GET_BYTE equ 04H*2 ; Read a byte of data:
  201. ; Byte returned in AL
  202. F_PUT_BUFFER equ 05H*2 ; Write a buffer of data,
  203. ; ES,DI pointer, CX count
  204. F_GET_BUFFER equ 06H*2 ; Read a buffer if data,
  205. ; ES,DI pointer, CX count
  206. F_PUT_WORD equ 07H*2 ; Write word of data, BX data
  207. F_GET_WORD equ 08H*2 ; Read word of data, BX data
  208. F_GETTRM_BUFFER equ 009H*2 ; Reads buffer of data,
  209. ; ES,DI pointer, CX count
  210. ; BH upper bound, BL lower bound
  211. F_PUT_BLOCK equ F_PUT_BUFFER ;used for disk applications
  212. F_GET_BLOCK equ F_GET_BUFFER
  213. ;*********************************************************************
  214. ; Common Subfunction codes of the F_SYSTEM Function.
  215. ;*********************************************************************
  216. SF_INIT equ 00H*2 ;Initialize command
  217. SF_START equ 01H*2 ;Secondary Init--initialize dependent
  218. ; upon other drivers/data structures
  219. SF_REPORT_STATE equ 02H*2 ;Reports state of driver
  220. SF_VERSION_DESC equ 03H*2 ;Report version and option describe
  221. ; record
  222. SF_DEF_ATTR equ 04H*2 ;Reports default Configuration
  223. ; (Baud Rate)
  224. SF_GET_ATTR equ 05H*2 ;Reports Current Configuration
  225. ; ES,DI pointer
  226. SF_SET_ATTR equ 06H*2 ;Sets Next Configuration ES,DI, CX
  227. SF_OPEN equ 07H*2 ;Reserve Driver for exclusive access
  228. SF_CLOSE equ 08H*2 ;Release " from " "
  229. SF_TIMEOUT equ 09H*2 ;Notify Driver Timeout Occurred
  230. SF_INTERVAL equ 0AH*2 ;Notify Driver Interval Occurred
  231. SF_TEST equ 0BH*2 ;Test Function
  232. ;*********************************************************************
  233. ; Common Subfunction Codes for the F_IO_CONTROL function.
  234. ;*********************************************************************
  235. SF_LOCK equ 00H*2 ; Lock Device for exclusive access
  236. SF_UNLOCK equ 01H*2 ; Unlock Device for exclusivce access
  237. ;
  238. ;~~tqn 060887
  239. ;
  240. SF_HIL_ON equ 26H ; Turn ON HIL (A++)
  241. SF_HIL_OFF equ 28H ; Turn OFF HIL (A++)
  242. B_HIL_STATE equ 01000000B ; HIL OFF state from SF_REPORT_STATE
  243. ;
  244. ;~~
  245. ;*********************************************************************
  246. ; HP Routines Return Status: Sucessful codes are positive and failure
  247. ; are negative.
  248. ;*********************************************************************
  249. RS_BREAK equ 00CH ; Break -- IFC
  250. RS_DATA_NREADY equ 00AH ; RS232 Data Not Ready=>Retry Operation
  251. RS_OVERRUN equ 008H ; RS232 Port Data Overrun =>Retry Operation
  252. RS_DONE equ 006H ; indicates all done return child
  253. RS_NOT_SERVICED equ 004H ; indicates a chained ISR--not handled
  254. RS_UNSUPPORTED equ 002H ; indicates function is NOPed/not valid
  255. ; for this driver
  256. RS_SUCCESSFUL equ F_ISR ; indicates executed just fine
  257. RS_SERVICED equ rs_SUCCESSFUL ; indicates chained ISR done
  258. RS_PASSTHRU equ rs_SERVICED ; indicates launch data to parent
  259. ifndef SYS
  260. ;
  261. ;************************************************************************
  262. RS_FAIL equ 0FEH ; To be used with hardware failure
  263. RS_TIMEOUT equ 0FCH ; to indicate remote device timeout
  264. RS_BAD_PARAMETER equ 0FAH ; to indicate a bad parameter
  265. RS_BUSY equ 0F8H ; to indicate driver/device is busy
  266. RS_NO_VECTOR equ 0F6H ; out of hp_VT vectors
  267. RS_OFFLINE equ 0F4H ; device is offline
  268. RS_OUT_OF_PAPER equ 0F2H ; out of paper on printer device
  269. RS_PARITY equ 0F0H ; parity error in transmission
  270. RS_FRAME equ 0EEH ; framing error
  271. ;******************************************************************************
  272. ; Function Number Equates for the EX-BIOS routines and its Data Structures.
  273. ;******************************************************************************
  274. ;*********************************************************************
  275. ; V_SYSTEM (0012H) function codes.
  276. ;*********************************************************************
  277. F_INS_BASEHPVT equ 0004H
  278. F_INS_XCHGFIX equ 0006H
  279. F_INS_XCHGRSVD equ 0008H
  280. F_INS_XCHGFREE equ 000AH
  281. F_INS_FIXOWNDS equ 000CH
  282. F_INS_FIXGETDS equ 000EH
  283. F_INS_FIXGLBDS equ 0010H
  284. F_INS_FREEOWNDS equ 0012H
  285. F_INS_FREEGETDS equ 0014H
  286. F_INS_FREEGLBDS equ 0016H
  287. F_INS_FIND equ 0018H
  288. F_INS_FINDALL equ 001AH
  289. F_INS_NXTLOGBLK equ 001CH
  290. F_RAM_GET equ 001EH
  291. F_RAM_RET equ 0020H
  292. F_CMOS_GET equ 0022H
  293. F_CMOS_RET equ 0024H
  294. F_CMOS_HPDFLTS equ 0026H
  295. F_CMOS_IBMDFLTS equ 0028H
  296. F_YIELD equ 002AH
  297. F_INS_ADR equ 002CH
  298. F_RESERVE_STRING3 equ 002EH
  299. F_SND_CLICK_ENABLE equ 0030H
  300. F_SND_CLICK_DISABLE equ 0032H
  301. F_SND_CLICK equ 0034H
  302. F_SND_BEEP_ENABLE equ 0036H
  303. F_SND_BEEP_DISABLE equ 0038H
  304. F_SND_BEEP equ 003AH
  305. F_SND_SET_BEEP equ 003CH
  306. F_SND_TONE equ 003EH
  307. F_STR_GET_FREE_INDEX equ 0040H
  308. F_STR_DEL_BUCKET equ 0042H
  309. F_STR_PUT_BUCKET equ 0044H
  310. F_STR_GET_STRING equ 0046H
  311. F_STR_GET_INDEX equ 0048H
  312. ;**********************************************************************
  313. ; String Bucket Header. This structure is usefull if using the
  314. ; following V_SYSTEM functions: F_STR_DEL_BUCKET and F_STR_PUT_BUCKET.
  315. ;**********************************************************************
  316. STR_HEADER STRUC
  317. STR_NXT_HDR dd (?)
  318. STR_UPPER_BOUND dw (?)
  319. STR_LOWER_BOUND dw (?)
  320. STR_LIST_PTR dd (?)
  321. STR_SEGMENT dw (?)
  322. STR_HEADER ENDS
  323. ;**********************************************************************
  324. ; V_SYSTEM Global Data Segment
  325. ;**********************************************************************
  326. HP_GLB_HEADER STRUC
  327. T_HP_HEADER dw (?)
  328. T_USED_AND_RESERVED dw 6 dup (?)
  329. T_HP_LAST_DS dw (?)
  330. T_HP_MAX_DS dw (?)
  331. T_HP_NXT_VCTR dw (?)
  332. T_SND_FLAG db (?) ;
  333. T_SND_CLICK_COUNT db (?) ;
  334. T_SND_CLICK_DURA db (?) ;
  335. T_SND_CLICK_VOLUME db (?) ;
  336. T_SND_BEEP_CYCLE dw (?) ;
  337. T_SND_BEEP_DURA dw (?) ;
  338. T_SND_BEEP_COUNT db (?) ;
  339. db (?) ; 1 reserved byte for volume
  340. T_STR_NEXT_INDEX dw (?)
  341. T_STR_ROOT dd (?)
  342. T_STR_VCT_HDR db size STR_HEADER dup (?) ; Area vector's name and
  343. T_STR_MSG_HDR db size STR_HEADER dup (?) ; ROM message strings
  344. T_8259_FLAGS db (?)
  345. db 31 dup (?) ; reserve 2 paragraph
  346. HP_GLB_HEADER ENDS
  347. ;*********************************************************************
  348. ; V_SINPUT (2AH) Function and subfunction codes.
  349. ;*********************************************************************
  350. ; F_ISR, F_SYSTEM and F_IO_CONTROL are functions common to all drivers.
  351. F_INQUIRE equ 0006H
  352. F_INQUIRE_ALL equ 0008H ; Reports ID's of devices
  353. F_INQUIRE_FIRST equ 000AH ; Reports (V_HPHIL1) offset
  354. F_REPORT_ENTRY equ 000CH ; Reports entrypoint of (V_PGID)
  355. ;
  356. ; Extra subfunctions under F_IO_CONTROL.
  357. ;
  358. SF_DEF_LINKS equ 0000H ; Sets default cofiguration
  359. SF_GET_LINKS equ 0002H ; Reports current configuration
  360. SF_SET_LINKS equ 0004H ; Sets Next Configuation
  361. ;
  362. SF_MOUSE_DSIZE equ 0006H ; Return sizes of HPMouse and HPTrack
  363. ;**********************************************************************
  364. ; V_LGID Fucntion Codes. This is a common driver for: V_LTABLET,
  365. ; V_LPOINTER and V_LTOUCH.
  366. ;**********************************************************************
  367. F_SAMPLE equ 06
  368. ; F_IO_CONTROL:
  369. SF_TRACK_ON equ 4
  370. SF_TRACK_OFF equ 6
  371. SF_CREATE_EVENT equ 8
  372. SF_EVENT_ON equ 0Ah
  373. SF_EVENT_OFF equ 0Ch
  374. SF_CLIPPING_ON equ 0Eh
  375. SF_CLIPPING_OFF equ 10h
  376. ;**********************************************************************
  377. ; V_LGID LD_DEVICE_STATE
  378. ;**********************************************************************
  379. EVENT_ENABLED equ 10h
  380. TRACK_ENABLED equ 08h
  381. CLIP_ENABLED equ 04h
  382. BUTTON_ERROR equ 02H
  383. ISR_IN_PROGRESS equ 01H
  384. ;*********************************************************************
  385. ; V_PGID Data Structures
  386. ;*********************************************************************
  387. DESCRIBE STRUC
  388. db size HP_SHEADER dup (?) ; this data is always offset by
  389. D_SOURCE db ? ; 7-4 (high nibble) contains the GID type
  390. ; 3-0 (low nibble) is the address of the device
  391. D_HPHIL_ID db ? ; device id byte returned by an HPHIL device
  392. D_DESC_MASK db ? ; describe header from HPHIL device
  393. D_IO_MASK db ? ; I/O descriptor byte from device
  394. D_XDESC_MASK db ? ; extended describe byte from device
  395. D_MAX_AXIS db ? ; maximum number of axis reported
  396. D_CLASS db ? ; device class
  397. ; 7-4 (high nibble) contains current class
  398. ; 3-0 (low nibble) contain the default class
  399. D_PROMPTS db ? ; number of buttons/prompts
  400. ; 7-4 (high nibble) is the number of prompts
  401. ; 3-0 (low nibble) is the number of buttons
  402. D_RESERVED db ? ; reserved for future
  403. D_BURST_LEN db ? ; maximum burst length output to a device
  404. ; if devices supports more than 255 bytes then
  405. ; 255 bytes is the default maximum
  406. D_WR_REG db ? ; number of write registers supported by a device
  407. D_RD_REG db ? ; number of read registers supported by a device
  408. D_TRANSITION db ? ; transitions reported per button
  409. D_STATE db ? ; current state of buttons
  410. D_RESOLUTION dw ? ; counts / cm (m) returned by HPHIL device
  411. D_SIZE_X dw ? ; Maximum count of in units of resolution
  412. D_SIZE_Y dw ? ;
  413. D_ABS_X dw ? ; data reported from device
  414. D_ABS_Y dw ? ; that reports absolute data
  415. D_REL_X dw ? ; data reported from device
  416. D_REL_Y dw ? ; that is relitive
  417. D_ACCUM_X dw ? ; these are used to accumulate scaling
  418. D_ACCUM_Y dw ? ; remainder
  419. DESCRIBE ENDS
  420. DESCRIBE_SIZE equ size DESCRIBE
  421. D_CCP_STATE equ D_STATE + 1
  422. D_SIZE equ D_SIZE_X
  423. D_SAMPLE_ABSOLUTE equ D_ABS_X
  424. D_SAMPLE_RELATIVE equ D_REL_X
  425. D_REMAINDER_ACCUM equ D_ACCUM_X
  426. D_BUFFER equ D_SIZE_X ; offset where buffer begins
  427. D_CLASS_CURRENT equ 0F0H
  428. D_CLASS_DEFAULT equ 00FH
  429. ; The field LD_SOURCE uses the following to access the defined nibbles
  430. D_ADDR_MASK equ 00FH
  431. D_TYPE_MASK equ 0F0H
  432. ;*********************************************************************
  433. ; V_LGID Data Structures
  434. ;*********************************************************************
  435. LDESCRIBE STRUC
  436. db size HP_SHEADER dup (?) ; this data is always offset by
  437. LD_SOURCE db ? ; 7-4 (high nibble) contains the GID type
  438. ; 3-0 reserved
  439. LD_HPHIL_ID db ? ; device id byte returned by an HPHIL device
  440. LD_DEVICE_STATE dw ? ; status bits for logical device
  441. LD_INDEX db ? ; vector index of invoking driver
  442. LD_MAX_AXIS db ? ; maximum number of axis reported
  443. LD_CLASS db ? ; device class
  444. ; 7-4 (high nibble) contains current class
  445. ; 3-0 (low nibble) contain the default class
  446. LD_PROMPTS db ? ; number of buttons/prompts
  447. ; 7-4 (high nibble) is the number of prompts
  448. ; 3-0 (low nibble) is the number of buttons
  449. LD_RESERVED db ? ; reserved for future
  450. LD_RES2 db ?
  451. LD_RES3 db ?
  452. LD_RES4 db ?
  453. LD_TRANSITION db ? ; transitions reported per button
  454. LD_STATE db ? ; current state of buttons
  455. LD_RESOLUTION dw ? ; counts / cm (m) returned by HPHIL device
  456. LD_SIZE_X dw ? ; Maximum count of in units of resolution
  457. LD_SIZE_Y dw ? ;
  458. LD_ABS_X dw ? ; data reported from device
  459. LD_ABS_Y dw ? ; that reports absolute data
  460. LD_REL_X dw ? ; data reported from device
  461. LD_REL_Y dw ? ; that is relitive
  462. LD_ACCUM_X dw ? ; these are used to accumulate scaling
  463. LD_ACCUM_Y dw ? ; remainders
  464. LDESCRIBE ENDS
  465. LDESCRIBE_SIZE equ size LDESCRIBE
  466. LD_SIZE equ LD_SIZE_X
  467. LD_SAMPLE_ABSOLUTE equ LD_ABS_X
  468. LD_SAMPLE_RELATIVE equ LD_REL_X
  469. LD_REMAINDER_ACCUM equ LD_ACCUM_X
  470. LD_BUFFER equ LD_RESOLUTION ; offset where buffer begins
  471. ; the following mask are used in the field LD_CLASS
  472. LD_CLASS_CURRENT equ 0F0H
  473. LD_CLASS_DEFAULT equ 00FH
  474. ;************************************************************************
  475. ; V_LHPMOUSE (00CCH) Function and subfunction codes.
  476. ;************************************************************************
  477. ; F_ISR, F_SYSTEM and F_IO_CONTROL are functions common to all drivers.
  478. ; Subfunction under F_IO_CONTROL particular to this driver.
  479. SF_MOUSE_COM equ 0000H ; This function is used during the
  480. ; reinit call from DOS. It is used
  481. ; to set up INT 33H. This is done
  482. ; because DOS takes INT 33H when it
  483. ; is initialized.
  484. SF_MOUSE_OVERRIDE equ 0002H ; This function is used to force the
  485. ; V_LHPMOUSE driver to install INT 33
  486. ; even when the mouse is not present.
  487. ; This allows a programmer to map
  488. ; devices to the V_LHPMOUSE driver if
  489. ; a mouse is not present.
  490. ;************************************************************************
  491. ; V_STRACK (05AH) Function and subfunction codes.
  492. ;************************************************************************
  493. F_TRACK_INIT equ 0004H ; used to perform a soft initialization
  494. ; of the tracking driver.
  495. F_TRACK_ON equ 0006H ; enables tracking
  496. F_TRACK_OFF equ 0008H ; disables tracking
  497. F_DEF_MASKS equ 000AH ; define masks for sprite
  498. F_SET_LIMITS_X equ 000CH ; define X limit of screen coordinates
  499. F_SET_LIMITS_Y equ 000EH ; define Y limits
  500. F_PUT_SPRITE equ 0010H ; Used to put the sprite on the screen
  501. F_REMOVE_SPRITE equ 0012H ; removes the sprite from the screen
  502. ;************************************************************************
  503. ; V_HPHIL (0114H) Function and subfunction codes.
  504. ;************************************************************************
  505. ; F_ISR, F_SYSTEM and F_IO_CONTROL are functions common to all drivers.
  506. ; Subfunction under F_IO_CONTROL particular to this driver.
  507. ;
  508. SF_CRV_CRV_MAJ_MIN equ 0004 ; This is used to set a default
  509. ; major and minor addresses
  510. SF_CRV_RECONFIGURE equ 0006 ; Funtion id used to force the HPHIL
  511. ; link to reconfigure the devices
  512. SF_CRV_WR_PROMPTS equ 0008 ; Used to write a prompt to a device
  513. SF_CRV_WR_ACK equ 000A ; Used to write an acknowledge to a
  514. ; device
  515. SF_CRV_REPEAT equ 000C ; Function is used to set a 30 Hz or
  516. ; 60 Hz repeat for keyboards
  517. SF_CRV_DISABLE_REPEAT equ 000E ; Used to cancel the repeat rates in
  518. ; keyboards
  519. SF_CRV_SELF_TEST equ 0010 ; Used to issue a selftest command
  520. ; to a physical device
  521. SF_CRV_REPORT_STATUS equ 0012 ; Used to get the status information
  522. ; that an HPHIL device might wish to
  523. ; report. For specific information
  524. ; on what is reported, see the specs
  525. ; for the device.
  526. SF_CRV_REPORT_NAME equ 0014 ; This function is used to return the
  527. ; ascii name that a device has.
  528. SF_ENVOY_REPEAT equ 0016 ; Used to set the keyboard repeat
  529. ; and delay rates
  530. SF_ENVOY_LED equ 0018 ; Used to set the keyboard LEDs
  531. ;************************************************************************
  532. ; V_SCANDOOR (016EH) Function and subfunction codes.
  533. ;************************************************************************
  534. ; F_ISR, F_SYSTEM and F_IO_CONTROL are functions common to all drivers.
  535. ; Subfunction under F_STATE_IOCTL particular to this driver.
  536. ;
  537. F_STATE_IOCTL equ 0008H ; Get and set the state
  538. SF_GET_STATE equ 0000H ;
  539. SF_SET_STATE equ 0002H ;
  540. ;**********************************************************************
  541. ; V_HPHIL Data Structure - do not tread lightly in this data structure
  542. ;**********************************************************************
  543. HPHIL_DATA struc
  544. db size HP_SHEADER DUP (?) ; dirver header
  545. CRV_STATUS dw ?
  546. CRV_ENVOY_STATUS db ? ; status bits used to support
  547. ; the envoy keyboard
  548. CRV_CURRENT_STATE db ? ; current configuration address
  549. CRV_ADDRESS db ? ; configuration address
  550. CRV_POLL_ADDRESS db ? ; address of device whose poll
  551. CRV_POLL_HEADER db ? ; poll header of data being proc
  552. CRV_MAJOR db ? ; default major address
  553. CRV_MINOR db ? ; default minor address
  554. CRV_EXPECTED_CMD db ? ; command expected to return
  555. CRV_KBD_ADDRESS db ? ; address of the keyboard
  556. CRV_MAX_DEVICES db ? ; status byte of itf keycode tra
  557. CRV_KC_STATE db ? ; state of itf kc translation
  558. CRV_POLL_RECORD db 32 DUP (?) ; poll record buffer
  559. RQ_ENV_REPEAT db ? ; envoy special command for repe
  560. RQ_ENV_DELAY db ? ; envoy special command for dela
  561. RQ_ENV_LED db ? ; envoy special command for led'
  562. RQ_RequEST db ?
  563. RQ_REGISTER db ?
  564. RQ_ADDRESS db ?
  565. RQ_DATA db ?
  566. RQ_MAX_BURST dw ?
  567. RQ_COUNT dw ?
  568. RQ_OFFSET dw ?
  569. RQ_SEGMENT dw ?
  570. RQ_SPECIAL db ?
  571. RQ_TIMEOUT db ?
  572. HPHIL_DATA ends
  573. ;
  574. endif ; SYS