;Copyright 2000 - Mark McDonald All rights reserved ; MLOCATE routine for PowerBASIC ; PROC: MLOCATE ; DECLARE: SUB MLOCATE(BYVAL integer, BYVAL integer) ; DESC: Locate the mouse cursor. ; MLOCATE Row, Col ;Extrn GETSCRNMODE: Far MCODE Segment Byte Assume CS: MCODE Public MLOCATE MLOCATE Proc Far ARG Col: WORD, Row: WORD = Retbytes ;--- Save All Registers for Power BASIC --- push BP ; mov BP,SP ; push DS ; save DS for PowerBASIC mov CX, Col ; put column in CX mov DX, Row ; put row in DX DEC CX ; convert to 0 base DEC DX ; convert to 0 base mov AL, 8 ; 8 pixels per char in text mode mul CL ; multiply by X position mov CX, AX ; put back in CX mov AL, 8 ; 8 pixels per char in text mode mul DL ; multiply by Y position mov DX, AX ; put back in DX mov AX, 04h ; function 04h, set mouse location int 33h ; call mouse interrupt ;--- Restore ALL Registers Saved for Power BASIC --- pop DS ; restore DS pop BP ; restore BP retf Retbytes MLOCATE EndP MCODE EndS End