home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / MOUSE / MOUSE.INC < prev    next >
Text File  |  1995-04-14  |  25KB  |  596 lines

  1. ;*DDK*************************************************************************/
  2. ;
  3. ; COPYRIGHT (C) Microsoft Corporation, 1989
  4. ; COPYRIGHT    Copyright (C) 1995 IBM Corporation
  5. ;
  6. ;    The following IBM OS/2 WARP source code is provided to you solely for
  7. ;    the purpose of assisting you in your development of OS/2 WARP device
  8. ;    drivers. You may use this code in accordance with the IBM License
  9. ;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
  10. ;    Copyright statement may not be removed.;
  11. ;*****************************************************************************/
  12. ;/*************************************************************************
  13. ;*
  14. ;* SOURCE FILE NAME = MOUSE.INC
  15. ;*
  16. ;* DESCRIPTIVE NAME = Mouse Device Driver Equates and Data Structures.
  17. ;*
  18. ;*
  19. ;* VERSION      V2.0
  20. ;*
  21. ;* DATE         02/29/92
  22. ;*
  23. ;* DESCRIPTION  Mouse Device Driver Equates and Data Structures.
  24. ;*
  25. ;* FUNCTIONS    NONE
  26. ;*
  27. ;* NOTES        This file contains the equates used by the mouse DD
  28. ;*              code.
  29. ;*
  30. ;*
  31. ;*
  32. ;* STRUCTURES   NONE
  33. ;*
  34. ;* EXTERNAL REFERENCES
  35. ;*
  36. ;*              NONE
  37. ;*
  38. ;* EXTERNAL FUNCTIONS
  39. ;*
  40. ;*              NONE
  41. ;*
  42. ;* CHANGE ACTIVITY =
  43. ;*   DATE      FLAG        APAR   CHANGE DESCRIPTION
  44. ;*   --------  ----------  -----  --------------------------------------
  45. ;*   04/21/93              67424  Loose mouse when coming back from suspend
  46. ;*                                mode on Dell 325nc laptop.
  47. ;*   06/03/93              69671  Lose pointing stick when coming back from
  48. ;*                                suspend mode on IBM 700 series laptops.
  49. ;**************************************************************************
  50.  
  51.  
  52.  
  53. .xlist
  54.         include abios.inc
  55.         include aberror.inc
  56.         include devsym.inc
  57.         include struc.inc
  58.         include sgcb.inc
  59.         include devhlp.inc
  60.         include macs.inc
  61.         include hw.inc
  62.         include apmidc.inc                      ;           
  63. .list
  64.  
  65. TRUE             equ         -1
  66. FALSE            equ          0
  67.  
  68. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  69. ;*                 C O N S T A N T S  ==>  Protect Mode                    *
  70. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  71.  
  72. Func_HReq_End    EQU        6BH     ; Last valid Mouse IOCTL Function Code
  73. Func_LReq_Start  EQU        50H     ; 1ST valid Mouse IOCTL Function Code
  74. Mou_Cat          EQU        07H     ; Mouse IOCTL Category Code
  75. Mon_Cat          EQU        0AH     ; Mouse Monitor Category Code
  76. Gen_Cat          EQU        0BH     ; General DD Category Code
  77. QMonSup          EQU        60H     ; Query DD Monitor Support
  78. Hk_Mask_Min      EQU      0001H     ; Min Hot Key Mask Value
  79. ElRec_Size       EQU        0AH     ; Event Queue Element Size (in bytes)
  80. DevStatRet       EQU      0BFFH     ; Dev Status Get Value Ret Filter
  81. DevStatSetMax    EQU      0f00H     ; Dev Status settable sits
  82.  
  83. ;*
  84. ;* The following equates are for the session device status
  85. ;*
  86.  
  87. THRHLDDSBLD      EQU      0800h     ; !! bit 3 set hi byte (threshold disabled)
  88. SQ_MODE          EQU      0400H     ; SingleQ mode is acitve for the session
  89. MICKEYDATA       EQU      0200H     ; Report relative motion in events
  90. PTRDRAW          EQU      0100H     ; Don't call ptr draw for drawing operations
  91. USS_MODE         EQU      0008H     ; Display mode is not supported.
  92. Q_FLUSH          EQU      0004H     ; A Queue flush is in progress
  93. BLOCK_MASK       EQU      0002H     ; A process is blocked on mouse events
  94. BUSY_MASK        EQU      0001H     ; The event queue is busy
  95.  
  96.  
  97. ReqBlk_Busy      EQU      0200H     ; Bit 9 set in Req Blk Status Field
  98. Max_Eq_Rec       EQU       100D     ; Max Event Queue Element Count
  99. MBuf_Size        EQU      000EH     ; Monitor Output Buffer Size (in bytes)
  100. MRec_Size        EQU      000CH     ; MOB Mouse Data Record Size (in bytes)
  101. RBlk_Min         EQU        00D     ; Min Request Block Command Code
  102. RBlk_Max         EQU        1FH     ; Max Request Block Command Code ;           
  103. Req_MM           EQU        40H     ; Mouse Monitor Function Request Code
  104. SM_WinFlag       EQU      0004H     ; Bit 2 set in Ptr Flags of SG CB
  105. Max_Scale        EQU     07FFFH     ; Max allowed Scaling Factor (32K-1)
  106. MaxSupConfigs    EQU         8      ; max number of supported configurations
  107. MouseVersion     EQU         1      ; current level of support ver number
  108. ExtModeLen       EQU        22      ; length of extended mode data
  109.  
  110. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  111. ;*                C O N S T A N T S  ==>  Both Modes                       *
  112. ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  113.  
  114. ON               EQU          0     ; Used on Byte Flags = Enabled
  115. OFF              EQU         -1     ; Used on Byte Flags = Disabled
  116. Done             EQU          0     ; EOI Already issued Flag
  117. Max_Ints         EQU          2     ; Max # of Nested Ints allowed
  118. Graphics         EQU  00000010B     ; SG CB Type Flag for Graphics Disp Mode
  119. Shell_Session    EQU          1     ; Shell/Winthorne SG ID
  120. VIO_PopUp_SG     EQU          3     ; Vio Popup Session ID
  121. Max_CBs          EQU        16D     ; Number of Mouse SG's supportable
  122. Ack_Port         EQU        20H     ; Interrupt controller's acking port
  123. Both             EQU        00H     ; OpMode Flag = Both Modes Supported
  124. Real             EQU        01H     ; OpMode Flag = Real Mode Only Support
  125. Protect          EQU        02H     ; OpMode Flag = Protect Mode Only Support
  126. CfgNumOff        EQU        10      ; offset to config # in config data
  127.  
  128. GIOParaPacx      EQU  WORD PTR GIOParaPack   ; Since GIOParaPack is DD
  129. GIODataPacx      EQU  WORD PTR GIODataPack   ; Since GIODataPack is DD
  130. GIODataSelector  EQU  word ptr es:[bx].GIODataPack+2
  131. GIODataOffset    EQU  word ptr es:[bx].GIODataPack
  132. GIOParaSelector  EQU  word ptr es:[bx].GIOParaPack+2
  133. GIOParaOffset    EQU  word ptr es:[bx].GIOParaPack
  134.  
  135. GDTINFOINDEX     EQU          1     ; GDT Info Segment Var number
  136. LDTINFOINDEX     EQU          2     ; LDT Info Segment Var number
  137. UPPERCASE        EQU         90     ; Max ASCII value for Upper case letters
  138. LOWERTOUPPER     EQU         32     ; Delta between Lower/Upper Case letters
  139. UNKNOWNCMD       EQU      8003H     ; Unknown Command CP/DOS RB Error Code
  140. GENERALFAILURE   EQU      800CH     ; General Failure   "    "    "    "
  141. CHARINT          EQU      8011H     ; Char Call Interrupted    "    "
  142. MNS              EQU      8012H     ; Mon Not Sup'd  "    "    "    "
  143. INVALIDPARMS     EQU      8013H     ; Invalid Parms  "    "    "    "
  144. DEVICENOTREADY   EQU      8002h     ; ### device not ready error
  145. TAB              EQU          9     ; ASCII code for TAB
  146. LF               EQU         10     ; ASCII code for Line Feed
  147. CR               EQU         13     ; ASCII code for Carriage Return
  148. SYNCHMASKSAVED   EQU          1     ; Initial Synch Mask Has been saved
  149. HOTPLUG1         EQU  00000010B     ; Hot Plug stage one has occurred
  150. HOTPLUG2         EQU  00000100B     ; Hot Plug stage two has occurred
  151. HOTPLUG          EQU  11111001B     ; Hot Plug clear flag mask  ;           
  152. PDI_SAMPLERATE   EQU        3CH     ; Default sample rate: 60/second
  153. PDI_RESOLUTION   EQU        03H     ; Default resolution: 8 counts/mm
  154.  
  155.  
  156. StandardOutput   EQU          1     ; Standard Output Device
  157.  
  158. INITBAD          EQU      802FH     ; Fatal Init Error = ABORT DD Load
  159. BADLPARM         EQU      804FH     ; Config.sys Parameter Error
  160. RMINITBAD        EQU      808FH     ; Serious Init Error = DD ShutDown
  161.  
  162.  
  163. ;*********************************************************************
  164. ;*     Device Independent/Dependent IDC funtion equates.             *
  165. ;*********************************************************************
  166.  
  167. QUERYCONFIG     EQU     1        ; Query config function
  168. READENABLE      EQU     2        ; Read enable function
  169. READDISABLE     EQU     3        ; read disable function
  170. ENABLEDEVICE    EQU     4        ; enable the mouse device function
  171. DISABLEDEVICE   EQU     5        ; disable the mouse device function
  172.  
  173. PROCESSPACKET   EQU     1        ; process interrupt packet function
  174. DISABLESUPPORT  EQU     2        ; disable all support function
  175. PROCESSABSOLUTE EQU     3        ; process an absolute mouse event
  176. OPENMOUSE       EQU     4        ; Request a handle communication with MOUSE$
  177. CLOSEMOUSE      EQU     5        ; Release the handle returned from OPENMOUSE
  178. QUERYMOUSE      EQU     6        ; Query mouse activity function
  179.  
  180. ;**********************************************************************
  181. ;* Equates for MouseType byte field in the Dev_Data structure         *
  182. ;**********************************************************************
  183.  
  184. UNKNOWN_DEVICE     equ    00h
  185. BUS_DEVICE         equ    01h
  186. MSS_DEVICE         equ    02h
  187. INP_DEVICE         equ    03h
  188. PDI_DEVICE         equ    04h
  189. PSC_DEVICE         equ    05h
  190. LOG_DEVICE         equ    06h      ; Logitech mouse
  191. KYP_DEVICE         equ    07h      ; Screen Reader Keypad
  192.  
  193. ;**********************************************************************
  194. ;*  The following equates define the DevStatus word.                  *
  195. ;**********************************************************************
  196.  
  197. gREADENABLE   equ    0001h    ; device status - read enabled (report data)
  198. ATTACHED      equ    0002h    ; device status - MOUSE$ attached
  199. IRQENABLED    equ    0004h    ; device status - IRQ is enabled
  200. DEINSTALLED   equ    0008h    ; device status - we've been deinstalled
  201. DEVICEENABLED equ    0010h    ; device status - we are enabled
  202.  
  203. ;*********************************************************************
  204. ;*     Access check table equates.                                   *
  205. ;*********************************************************************
  206.  
  207. CHECKREQD       equ     10h      ; used to see if a check is required
  208. READCHECK       equ     10h      ; used to build the access check table
  209. WRITECHECK      equ     30h      ; used to build the access check table
  210. NULLOK          equ     40h      ; used to skip access check if sel is null
  211.  
  212.  
  213. ;*********************************************************************
  214. ;*   VMSE to PMSE IDC function numbers.                              *
  215. ;*********************************************************************
  216.  
  217. PMSE_REGISTER       EQU      0      ; Register the VMSE entry point.
  218. PMSE_DEREGISTER     EQU      1      ; De-Register the VMSE entry point.
  219. PMSE_QUERYTYPE      EQU      2      ; Query the physical mouse parms.
  220. PMSE_SETSCREENSIZE  EQU      3      ; Set the row and column numbers.
  221. PMSE_XMOUSEMODE     EQU      4      ; Set exclusive mouse mode on/off.
  222.  
  223. ;*********************************************************************
  224. ;*   PMSE to VMSE IDC function numbers.                              *
  225. ;*********************************************************************
  226.  
  227. VMSE_EVENT          EQU      1      ; PMSE reporting a relative event to VMSE.
  228.  
  229. ;*********************************************************************
  230. ;*   Bits for the (ve_Event) field of the VMSE_EVENT input packet.   *
  231. ;*********************************************************************
  232.  
  233. ABSPIXEVENT         EQU      8000H  ; This is an absolute event.
  234.  
  235. ;*********************************************************************
  236. ;*     Screen group switch control equates                           *
  237. ;*********************************************************************
  238.  
  239. TERMINATION     equ   0000000000001000b   ; 8
  240. CREATION        equ   0000000000010000b   ; 16  or 10h
  241. PRESWITCH       equ   0000000000100000b   ; 32  or 20h
  242. POSTSWITCH      equ   0000000001000000b   ; 64  or 40h
  243. AIMPOSTSAVE     equ   0000000100000000b   ; 256 or 100h
  244.  
  245. ;*********************************************************************
  246. ;*     Bit definitions for VDM_Flags word                            *
  247. ;*********************************************************************
  248.  
  249. VDMREGISTERED   equ   0001h      ; The VMSE has registered with PMSE
  250. VDMXMOUSEMODE   equ   0002h      ; The windowed VDM has exclusive access
  251.  
  252. ;*********************************************************************
  253. ;*     Bit definitions for DDDInit flags word                        *
  254. ;*********************************************************************
  255.  
  256. DI_IDC          equ   0001h      ; We need to call the DDDD for init
  257. DI_ERROR        equ   0002h      ; The IDC communication is down
  258.  
  259. ;*
  260. ;*      Pointer Definition record template (10 byte structure)
  261. ;*
  262.  
  263. Ptr_Template   STRUC
  264.                Buf_Len          DW  ?   ; Pointer shape buffer length in bytes
  265.                PWidth           DW  ?   ; Ptr's width shape demension
  266.                PHeight          DW  ?   ; Ptr's height shape demension
  267.                Col_Hot          DW  ?   ; Pointer col coord hot spot pixel
  268.                Row_Hot          DW  ?   ; Pointer row coord hot spot pixel
  269. Ptr_Template   ENDS
  270.  
  271.  
  272. ;*
  273. ;*      Mode data record template (34 byte structure for Protect Mode)
  274. ;*
  275.  
  276. Mode_Data      STRUC
  277.                Len              DW  ?   ; Length of this data structure
  278.                M_Type           DB  ?   ; Display Mode type value
  279.                M_Color          DB  ?   ; Number of color bits
  280.                New_TCol_Res     DW  ?   ; Text column resolution
  281.                New_TRow_Res     DW  ?   ; Text row resolution
  282.                New_GCol_Res     DW  ?   ; Graphics column resolution
  283.                New_GRow_Res     DW  ?   ; Graphics row resolution
  284.                Attrib_Fmt       DB  ?   ; Attribute format
  285.                Num_Attrib       DB  ?   ; Number of attributes
  286.                Buf_Address      DD  ?   ; Display buffer address
  287.                BufLen           DD  ?   ; Buffer length
  288.                FullBuf          DD  ?   ; Full buffer size
  289.                PartBuf          DD  ?   ; Partial buffer size
  290.                ExtData          DD  ?   ; Extended data area address
  291. Mode_Data      ENDS
  292.  
  293.  
  294. ;*
  295. ;*      Internal Data Structure used for GetPointerMemory Function call
  296. ;*
  297.  
  298. Call_5Blk      STRUC
  299.                Addr1            DD  ?   ; Address to ptr definition record
  300.                Addr2            DD  ?   ; Address to ptr image buffer
  301. Call_5Blk      ENDS
  302.  
  303.  
  304. ;*
  305. ;*      Collision Area Definition record template (8 byte structure)
  306. ;*
  307.  
  308. C_Area_Rec     STRUC
  309.                R_Pos            DW  ?   ; Area's starting row coord
  310.                C_Pos            DW  ?   ; Area's starting col coord
  311.                R_End            DW  ?   ; Area's ending row coord
  312.                C_End            DW  ?   ; Area's ending col coord
  313. C_Area_Rec     ENDS
  314.  
  315.  
  316. ;*
  317. ;*      Event Queue element definition record template (10 byte structure)
  318. ;*
  319.  
  320. Event_Rec      STRUC
  321.                EVMask           DW  ?   ; Event occurrence mask
  322.                Time             DD  ?   ; Event time stamp
  323.                PR_Pos           DW  ?   ; Current pointer row-coord
  324.                PC_Pos           DW  ?   ; Current pointer col-coord
  325. Event_Rec      ENDS
  326.  
  327.  
  328. ;*
  329. ;*      Monitor Chain Buffer definition record template (12 byte structure)
  330. ;*
  331.  
  332. Mon_Rec        STRUC
  333.                Mon_Flags        DW  ?   ; Monitor specific flags
  334.                Mon_Emask        DW  ?   ; Event occurrence mask
  335.                Mon_Time         DD  ?   ; Event's MilliSec Time Stamp
  336.                Mon_Row_Pos      DW  ?   ; Current pointer row-coord
  337.                Mon_Col_Pos      DW  ?   ; Current pointer col-coord
  338. Mon_Rec        ENDS
  339.  
  340.  
  341. ;*
  342. ;*      Generic IOCtl Function I/O Structure template (4 byte structure)
  343. ;*
  344.  
  345. Gen_Temp       STRUC
  346.                Parm1            DW  ?   ; 1st Word parameter
  347.                Parm2            DW  ?   ; 2nd Word parameter
  348. Gen_Temp       ENDS
  349.  
  350. ;*
  351. ;*      Monitor Register Data Parm Structure (10 byte structure)
  352. ;*
  353.  
  354. Mon_Data       STRUC
  355.                P_Flag           DW  ?   ; Placement Flag
  356.                Index            DW  ?   ; DD Dependent Index
  357.                Input_Buff       DD  ?   ; Input Buffer Address
  358.                Output_Buff      DW  ?   ; Output Buffer Offset
  359. Mon_Data       ENDS
  360.  
  361.  
  362. ;*
  363. ;*      Mouse event data collection record template (5 byte structure)
  364. ;*
  365.  
  366. Mou_Event      STRUC
  367.                Buttons          DB  ?   ; Interrupt button status field
  368.                Mouse_Col1       DB  ?   ; Interrupt 1st X delta value
  369.                Mouse_Row1       DB  ?   ; Interrupt 1st Y delta value
  370.                Mouse_Col2       DB  ?   ; Interrupt 2nd X delta value
  371.                Mouse_Row2       DB  ?   ; Interrupt 2nd Y delta value
  372. Mou_Event      ENDS
  373.  
  374. ;*
  375. ;*      Interrupt packet.  Built by device specific mouse routines.
  376. ;*      has common format:
  377. ;*          Event  DW   Bit 0 - Pure motion
  378. ;*                      button x - bit 2x-1 set for with motion
  379. ;*                                 bit 2x set for w/o motion
  380. ;*          Col_Mov DW  Column movement in mickeys (2's complement)
  381. ;*          Row_Mov DW  Row movement in mickeys (2's complement)
  382. ;*
  383. ;*      The second Abs_Data is for absolute events.
  384. ;*          The event is the same format
  385. ;*          X_Pos,Y_Pos is the location of the event in the absolute
  386. ;*          device space represented by X_Size,Y_Size.  X_Pos and Y_Pos
  387. ;*          are 0 based numbers, while X_Size and Y_Size represent the
  388. ;*          size (1 based).
  389. ;*
  390.  
  391.  
  392. Packet    Struc
  393.           Event       DW      ?
  394.           Col_Mov     dw      ?
  395.           Row_Mov     dw      ?
  396. Packet    Ends
  397.  
  398.  
  399. Abs_Data    struc
  400.             Abs_Event    dw     ?
  401.             Y_Pos        dw     ?
  402.             X_Pos        dw     ?
  403.             Y_Size       dw     ?
  404.             X_Size       dw     ?
  405. Abs_Data    Ends
  406.  
  407.  
  408.  
  409. ;*
  410. ;* Register protect mode pointer draw routine parameter structure.
  411. ;*
  412.  
  413. SD_Param     struc                  ; 
  414.              DLLen       dw    ?    ; length of structure (6)
  415.              DLCfg       dw    ?    ; new display config number
  416.              DLCaller    dw    ?    ; caller flag
  417. SD_Param     Ends                   ; 
  418.  
  419.  
  420. ;*
  421. ;* DevHlp_AttachDD Data Record, used for SQ DD Input Mode Interface
  422. ;*
  423.  
  424. Atch_DD      STRUC                  ; For SQ DD Interface Data
  425.              RealEntry   DD  ?      ; DD Real Mode Entry Pt (Seg:Offset)
  426.              RealDS      DW  ?      ; DD Real Mode Data Segment
  427.              ProtEntry   DD  ?      ; DD Protect Mode Entry Pt (Sel:Offset)
  428.              ProtDS      DW  ?      ; DD Protect Mode Data Selector
  429. Atch_DD      ENDS                   ; SQ DD Call Record
  430.  
  431. ;*
  432. ;* Device data from the hardware DD
  433. ;*
  434.  
  435. Dev_Data    struc
  436.             DDlen        dw  ?            ; length of this structure in bytes
  437.             NumMics      db  ?            ; Number of mickeys per cm
  438.             NumButt      db  ?            ; number of buttons
  439.             IRQ          db  ?            ; device IRQ level
  440.             MouseType    db  ?            ; Mouse type attached:
  441.             ComNum       db  ?            ; 0 if non-serial device
  442.             ComPort      dw  ?            ; Com port address
  443. Dev_Data    EndS
  444.  
  445. ;*
  446. ;* Queue structure for use by QueueWrite and Read functions
  447. ;*
  448.  
  449. QueueStruc   Struc
  450.    Start     dw         ?   ; start of queue
  451.    Head      dw         ?   ; head of queue
  452.    Tail      dw         ?   ; tail of queue
  453.    PID       dw         ?   ; PID blocked on event queue
  454.    EQSize    db         ?   ; size of event queue
  455. QueueStruc   Ends
  456.  
  457. ;*
  458. ;* Threshold structure.
  459. ;*
  460.  
  461. ThrHold        Struc
  462.    THLength    dw         ?   ;  length of structure
  463.    THLevel1    dw         ?   ;  level 1 movement value
  464.    THLvl1Mplr  dw         ?   ;  level 1 multiplier
  465.    THLevel2    dw         ?   ;  level 2 movement value
  466.    THLvl2Mplr  dw         ?   ;  level 2 multiplier
  467. ThrHold        Ends
  468.  
  469. ;*
  470. ;* This structure is used when the PMSE sends an event to the VMSE.
  471. ;*
  472.  
  473. VDMEvent_        struc        ; Used on the NOTIFYEVENT function.
  474.    ve_SGID       dw       ?   ; Screen group number.
  475.    ve_Event      dw       ?   ; Button/motion status bits.
  476.    ve_X          dw       ?   ; Column motion in mickeys (OR) ABS col position.
  477.    ve_Y          dw       ?   ; Row motion in mickeys (OR) ABS row position.
  478. VDMEvent_        Ends
  479.  
  480. ;*
  481. ;* This is the input packet the VMSE sends on the PMSE_XMOUSEMODE function
  482. ;*
  483.  
  484. xmm_             struc
  485.    xmm_len       dw       ?   ; Length of packet in (8 bytes)
  486.    xmm_sgid      dw       ?   ; DOS window session id number
  487.    xmm_flags     dd       ?   ; Flags
  488. xmm_             ends
  489.  
  490. ;*
  491. ;* This structure top portion for all notification types from the
  492. ;* Cat B function 41h IOCTL call from the Session Manager.
  493. ;*
  494.  
  495. SC_     Struc
  496.    SC_Length     dw             ?     ; length of the structure
  497.    SC_Action     dw             ?     ; type of control operation
  498. SC_     Ends
  499.  
  500. ;*
  501. ;* This structure is for the TERMINATION notification type of the
  502. ;* Cat B function 41h IOCTL call from the Session Manager.
  503. ;*
  504.  
  505. TERMINATION_     Struc
  506.                  db (size SC_) dup (?)
  507.    TN_TypeOut    dw             ?     ; 
  508.    TN_SIDOut     dw             ?     ; 
  509. TERMINATION_     Ends
  510.  
  511. ;*
  512. ;* This structure is for the CREATION notification type of the
  513. ;* Cat B function 41h IOCTL call from the Session Manager.
  514. ;*
  515.  
  516. CREATION_        Struc
  517.                  db (size SC_) dup (?)
  518.    CN_SIDIn      dw             ?     ; 
  519.    CN_TypeIn     dw             ?     ; 
  520. CREATION_        Ends
  521.  
  522. ;*
  523. ;* This structure is for the both PRESWITCH and POSTSWITCH notification
  524. ;* types of the Cat B function 41h IOCTL call from the Session Manager.
  525. ;*
  526.  
  527. PSWITCH_       Struc
  528.                  db (size SC_) dup (?)
  529.    PS_SIDIn      dw             ?     ; 
  530.    PS_TypeIn     dw             ?     ; 
  531.    PS_SIDOut     dw             ?     ; 
  532.    PS_TypeOut    dw             ?     ; 
  533. PSWITCH_       Ends
  534.  
  535. ;*
  536. ;* This structure is for the AIMPOSTSAVE notification type of the Cat B
  537. ;* function 41h IOCTL call from the Session Manager.
  538. ;*
  539.  
  540. AIM_       Struc
  541.                  db (size SC_) dup (?)
  542.    AIM_Errors    dd             ?     ; 
  543.    AIM_Active    dw             ?     ; 
  544.    AIM_TimeOut   dw             ?     ; 
  545.    AIM_FKAccept  dd             ?     ; 
  546.    AIM_FKRate    dd             ?     ; 
  547.    AIM_FKDelay   dd             ?     ; 
  548. AIM_       Ends
  549.  
  550. ;*
  551. ;* This structure is for the dynamic allocation of FULL screen CBs.
  552. ;*
  553.  
  554. CBPtrStruc  struc
  555.             SGSelOff    dd     ?   ; selector:offset to control block
  556.             SGLinear    dd     ?   ; linear address to control block
  557. CBPtrStruc  EndS
  558.  
  559. ;*********************************************************************
  560. ;*     IDC_Entry defines the structure for each IDC handle given     *
  561. ;*     by MOUSE$ in the Start_IDC routine.                           *
  562. ;*********************************************************************
  563.  
  564. IDC_Entry   struc
  565.             IDC_Flags   dw     ?   ; IDC flags per handle.
  566.             IDC_Status  dw     ?   ; IDC activity status.
  567. IDC_Entry   EndS
  568.  
  569. MAXIDCS     equ      5             ; Maximum IDC handles allowed
  570.  
  571. ;*********************************************************************
  572. ;*     IDC_Flags equate definitions                                  *
  573. ;*********************************************************************
  574.  
  575. IDC_ACTIVE         equ   0001h     ; This IDC handle is now active.
  576.  
  577. ;*********************************************************************
  578. ;*     SN_Flags  equate definitions                                  *
  579. ;*********************************************************************
  580.  
  581. SNF_ACTIVE          equ   0001h    ; Special needs support is now active.
  582.  
  583. ;*********************************************************************
  584. ;*     APM bit definitions         ;                                 *
  585. ;*********************************************************************
  586.  
  587. APM_DEVICEID        equ   0001h     ; Indicates we are dependent on BIOS
  588.  
  589. ;*********************************************************************
  590. ;*     APM bit positions defined in SynchFlag ( DATA.ASM )           *
  591. ;*********************************************************************
  592. APM_IDCACTIVE       equ   00001000b ; Bit mask to indicate APM active
  593. APM_IDCINACTIVE     equ   11110111b ; Bit mask to clear APM Inactive bit
  594. APM_RESETMOUSE_ON   equ   00010000b ; Bit mask to indicate APM reset needed
  595. APM_RESETMOUSE_CLEAR equ  11101111b ; Bit mask to clear APM reset needed bit
  596.