|
|
TITLE MOUSE.ASM PAGE ,132 ; ; WOW v1.0 ; ; Copyright (c) 1991, Microsoft Corporation ; ; MOUSE.ASM ; Thunks in 16-bit space to route Windows API calls to WOW32 ; ; History: ; 30-Sept-1992 Chandan Chauhan (ChandanC) ; Created. ; ; Freehand and ??? need mouse driver. ;
.286p
.xlist include cmacros.inc .list
__acrtused = 0 public __acrtused ;satisfy external C ref.
createSeg _TEXT,CODE,WORD,PUBLIC,CODE createSeg _DATA,DATA,WORD,PUBLIC,DATA,DGROUP defgrp DGROUP,DATA
sBegin DATA Reserved db 16 dup (0) ;reserved for Windows //!!!!! what is this
mouse_Identifier db 'mouse'
sEnd DATA
sBegin CODE assumes CS,CODE assumes DS,DATA assumes ES,NOTHING
cProc MOUSE,<PUBLIC,FAR,PASCAL,NODATA,ATOMIC> cBegin <nogen> mov ax,1 ;always indicate success ret cEnd <nogen>
;--------------------------Exported-Routine-----------------------------; ; int Inquire(lp_mouse_info); ; ; Information regarding the mouse is returned to the caller. ; ; Entry: ; None ; Returns: ; AX = # bytes returned in lp_mouse_info ; Error Returns: ; None ; Registers Preserved: ; SI,DI,DS,BP ; Registers Destroyed: ; AX,BX,CX,DX,ES,FLAGS ;-----------------------------------------------------------------------;
assumes cs,Code assumes ds,Data
cProc Inquire,<FAR,PUBLIC,WIN,PASCAL>,<di>
parmD lp_mouse_info
cBegin xor ax, ax
cEnd
;--------------------------Exported-Routine-----------------------------; ; void Enable(lp_event_proc); ; ; Enable hardware mouse interrupts, with the passed procedure address ; being the target of all mouse events. ; ; This routine may be called while already enabled. In this case the ; passed event procedure should be saved, and all other initialization ; skipped. ; ; Entry: ; None ; Returns: ; None ; Error Returns: ; None ; Registers Preserved: ; SI,DI,DS,BP ; Registers Destroyed: ; AX,BX,CX,DX,ES,FLAGS ;-----------------------------------------------------------------------;
assumes cs,Code assumes ds,Data
cProc Enable,<FAR,PUBLIC,WIN,PASCAL>,<si,di>
parmD new_event_proc
cBegin
; The new event procedure is always saved regardless of the ; mouse already being enabled. This allows the event proc ; to be changed as needed.
xor ax, ax
cEnd
;--------------------------Exported-Routine-----------------------------; ; void Disable(); ; ; Disable hardware mouse interrupts, restoring the previous mouse ; interrupt handler and 8259 interrupt enable mask. ; ; This routine may be called while already disabled. In this case the ; disabling should be ignored. ; ; Entry: ; None ; Returns: ; None ; Error Returns: ; None ; Registers Preserved: ; SI,DI,DS,BP ; Registers Destroyed: ; AX,BX,CX,DX,ES,FLAGS ;-----------------------------------------------------------------------;
assumes cs,Code assumes ds,Data
cProc Disable,<FAR,PUBLIC,WIN,PASCAL>,<si,di>
cBegin xor ax, ax
cEnd
;--------------------------Exported-Routine-----------------------------; ; WORD WEP(); ; ; Generic WEP. ; ; Entry: ; None ; Returns: ; AX = 1 ; Error Returns: ; None ; Registers Preserved: ; all ; Registers Destroyed: ; none ;-----------------------------------------------------------------------;
assumes cs,Code assumes ds,Data
cProc WEP,<FAR,PUBLIC,WIN,PASCAL> ; parmW stuff cBegin nogen mov ax,1 ret 2 cEnd nogen
;--------------------------Exported-Routine-----------------------------; ; int MouseGetIntVect(); ; ; The interrupt vector used by the mouse is returned to the caller. ; If no mouse is found, then -1 is returned. ; ; Entry: ; None ; Returns: ; AX = interrupt vector ; AX = -1 if no mouse was found ; Error Returns: ; None ; Registers Preserved: ; SI,DI,DS,BP ; Registers Destroyed: ; AX,BX,CX,DX,ES,FLAGS ;-----------------------------------------------------------------------;
assumes cs,Code assumes ds,Data
cProc MouseGetIntVect,<FAR,PUBLIC,WIN,PASCAL>
cBegin mov al, -1 cEnd
assumes DS,DATA
assumes DS,NOTHING
sEnd CODE
end MOUSE
|