;Copyright 2000 - Mark McDonald All rights reserved
;SUB mclear
;Resets the mouse driver, turning the mouse cursor off
;and resetting the internal SHOW/HIDE flag.
;Use when you get confused after multiple MSHOW/MHIDE
;commands, or to take the mouse out of strange modes.
;Does not change position of mouse cursor.
;A single MSHOW after an MCLEAR will show the mouse
;cursor at any time.
;
;Example: CALL mclear
;;
MCODE Segment Byte
        Assume  CS: MCODE

        Public  mclear

mclear  proc    far
                public  mclear
          push  si
          push  di
          push  bp
          push  ds
          mov   ax,3
          int   33h ;Get position
          push  cx ;Save column
          push  dx ;Save row
          mov   ax,2
          int   33h ;Hide mouse cursor (if necessary)
          mov   ax,21h
          int   33h ;And reset...
          pop   dx
          pop   cx
          mov   ax,4
          int   33h ;Reposition mouse cursor
          pop   ds
          pop   bp
          pop   di
          pop   si
          retf
mclear  ENDP
MCODE EndS
        End