'=========================================================================== ' Subject: MOUSE PROGRAMMING Date: 08-03-97 (15:04) ' Author: Hiep Quang Luong Code: QB, QBasic, PDS ' Origin: hiep.luong@glo.be Packet: MOUSE.ABC '=========================================================================== REM Mouse programming by Hiep Quang Luong (hiep.luong@glo.be) DECLARE SUB MuisInit () DECLARE SUB MuisReset () DECLARE SUB Muis (AanUit%) DECLARE SUB MuisForm (Bmasker%, Cmasker%) DECLARE SUB MuisRange (X%, B%, Y%, H%) DECLARE SUB MuisSet (X%, Y%) DECLARE SUB MuisTempo (tempo%) DECLARE SUB GetMuis () DECLARE SUB WachtKnopLos () DECLARE SUB WachtBeweging () DECLARE SUB absolute (functie%, par1%, par2%, par3%, adr%) DIM SHARED Muis.Offset% DIM SHARED muisX%, muisY%, MuisK% MuisInit MuisReset IF Muis.Offset% = -1 THEN PRINT "No Mousedriver !" END END IF SCREEN 12 CLS LINE (0, 0)-(640, 480), 7, BF Muis 1 DO GetMuis MuisTempo 4 MuisForm &HFF00, &HC000 + ASC("h") IF MuisK% = 1 THEN DO PSET (muisX% - 1, muisY% - 1), 10 REM WachtKnopLos GetMuis LOOP UNTIL MuisK% = 0 LOCATE 1, 1 PRINT "Klik at "; muisX%; muisY% WachtBeweging END IF X% = muisX%: Y% = muisY% DO key$ = INKEY$ GetMuis LOCATE 2, 1 PRINT muisX%; muisY% LOOP UNTIL X% <> muisX% OR Y% <> muisY% OR MuisK% LOOP UNTIL MuisK% = 2 OR key$ = CHR$(27) REM Muis 0 SUB GetMuis IF Muis.Offset% = -1 THEN EXIT SUB absolute 3, MuisK%, muisX%, muisY%, Muis.Offset% END SUB SUB Muis (AanUit%) IF Muis.Offset% = -1 THEN EXIT SUB IF AanUit% = 0 THEN AanUit% = 2 ELSE AanUit% = 1 absolute AanUit%, 0, 0, 0, Muis.Offset% END SUB SUB MuisForm (Bmasker%, Cmasker%) IF Muis.Offset% = -1 THEN EXIT SUB absolute 10, 0, Bmasker%, Cmasker%, Muis.Offset% END SUB SUB MuisInit DEF SEG = 0 Muis.Segment% = 256 * PEEK(&HCC + 3) + PEEK(&HCC + 2) Muis.Offset% = 256 * PEEK(&HCC + 1) + PEEK(&HCC + 0) + 2 DEF SEG = Muis.Segment% IF Muis.Offset% + Muis.Segment% = 0 OR PEEK(Muis.Offset%) = 88 THEN Muis.Offset% = -1 END IF END SUB SUB MuisRange (X%, B%, Y%, H%) IF Muis.Offset% = -1 THEN EXIT SUB X% = X% * 8 - 8: B% = B% * 8 Y% = Y% * 8 - 8: H% = H% * 8 absolute 7, 0, X%, X% + B%, Muis.Offset% absolute 8, 0, Y%, Y% + H%, Muis.Offset% END SUB SUB MuisReset IF Muis.Offset% = -1 THEN EXIT SUB SHARED buttons% NoMuis% = 0 absolute NoMuis%, buttons%, 0, 0, Muis.Offset% IF NoMuis% = 0 THEN Muis.Offset% = -1 END SUB SUB MuisSet (X%, Y%) IF Muis.Offset% = -1 THEN EXIT SUB X1% = X% * 8 - 8: Y1% = Y% * 8 - 8 absolute 4, 0, X1%, Y1%, Muis.Offset% END SUB SUB MuisTempo (tempo%) IF Muis.Offset% = -1 THEN EXIT SUB absolute 15, 0, tempo%, tempo% * 2, Muis.Offset% END SUB SUB WachtBeweging IF Muis.Offset% = -1 THEN EXIT SUB GetMuis X% = muisX%: Y% = muisY%: K% = MuisK% DO GetMuis LOOP UNTIL muisX% <> X% OR muisY% <> Y% OR MuisK% <> K% END SUB SUB WachtKnopLos IF Muis.Offset% = -1 THEN EXIT SUB DO GetMuis LOOP UNTIL MuisK% = 0 END SUB