DECLARE SUB MouseDriver (AX%, bx%, CX%, DX%) DECLARE FUNCTION MouseInit% () DECLARE SUB Mouseshow () DECLARE SUB Mousestatus (LB%, RB%, Xmouse%, Ymouse%) DIM SHARED mouse$ RESTORE SCREEN 13 mouse$ = SPACE$(57) FOR I% = 1 TO 57 READ A$ H$ = CHR$(VAL("&H" + A$)) MID$(mouse$, I%, 1) = H$ NEXT I% DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53 DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F DATA 8B,5E,06,89,17,5D,CA,08,00 CLS MS% = MouseInit% IF NOT MS% THEN PRINT "Mouse not found": LET AMOUSE$ = "NO": PRINT "Mouse found and initialized": AMOUSE$ = "YES" Mouseshow LOCATE 24, 23: PRINT "any key to exit"; DO Mousestatus LB%, RB%, Xmouse%, Ymouse% LOCATE 5, 1 PRINT "Mouse STUFF: LB:"; LB%, "RB:"; RB%, "X:"; Xmouse%, "Y:"; Ymouse% LOOP WHILE INKEY$ = "" SUB MouseDriver (AX%, bx%, CX%, DX%) DEF SEG = VARSEG(mouse$) mouse% = SADD(mouse$) CALL Absolute(AX%, bx%, CX%, DX%, mouse%) END SUB SUB MouseHide AX% = 2 MouseDriver AX%, 0, 0, 0 END SUB FUNCTION MouseInit% AX% = 0 MouseDriver AX%, 0, 0, 0 MouseInit% = AX% END FUNCTION SUB MousePut AX% = 4 CX% = X% DX% = Y% MouseDriver AX%, 0, CX%, DX% END SUB SUB Mouseshow AX% = 1 MouseDriver AX%, 0, 0, 0 END SUB SUB Mousestatus (LB%, RB%, Xmouse%, Ymouse%) AX% = 3 MouseDriver AX%, bx%, CX%, DX% LB% = ((bx% AND 1) <> 0) RB% = ((bx% AND 2) <> 0) Xmouse% = CX% Ymouse% = DX% END SUB