'=========================================================================== ' Subject: MOUSE AND JOYSTICK ROUTINES Date: 07-12-99 (19:10) ' Author: Daryl Dubbs Code: QB, QBasic, PDS ' Origin: www.wcnet.org/~royals/qbasic/ Packet: MOUSE.ABC '=========================================================================== 'Original coding by Daryl Dubbs ' 'Recoded and restructured by: ' 'Kevin Wolfe from... ' 'gkSoftware ' Finance Head ' Developer/Production Specialist ' Advertisement Head ' 'gk_software@yahoo.com 'http://www.geocities.com/SiliconValley/Lab/5335 ' ' 'CHECK IT OUT!!! HERE BEGINS THE PROGRAM!!! ' ' 'Mouse (which) ' 0 = Mouse Init ' 1 = Mouse Driver ' 2 = Mouse Put ' 3 = Mouse Status ' 4 = Mouse Hide ' 5 = Mouse Show ' DECLARE SUB Mouse (which!) DECLARE SUB STICKS () DIM SHARED mouser$, JoyXPos, JoyYPos, but1%, but2%, but3%, but4%, MouseLeftButton, MouseRightButton, MouseXPos, MouseYPos, AX%, bx%, cx%, dx% SCREEN 12 Mouse 0 CLS DO 'Mouse Routines Mouse 3 LOCATE 2, 1 PRINT "Mouse " PRINT " Left Button :"; MouseLeftButton PRINT " Right Button:"; MouseRightButton PRINT " X Position:"; MouseXPos PRINT " Y Position:"; MouseYPos PRINT PRINT 'Joystick Routines (Beware, they slow your program down alot!) ' (Plus a calibration program needs to be build) ' (I don't have enough time to do it!) STICKS PRINT "Joystick " PRINT " Button 1:"; but1% PRINT " Button 2:"; but2% PRINT " Button 3:"; but3% PRINT " Button 4:"; but4% PRINT " X Position:"; JoyXPos PRINT " Y Position:"; JoyYPos LOOP 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 SUB Mouse (which) '0 = Mouse Init '1 = Mouse Driver '2 = Mouse Put '3 = Mouse Status '4 = Mouse Hide '5 = Mouse Show IF which = 0 THEN mouser$ = SPACE$(57) FOR I% = 1 TO 57 READ A$ H$ = CHR$(VAL("&H" + A$)) MID$(mouser$, I%, 1) = H$ NEXT I% AX% = 0 bx% = 0 cx% = 0 dx% = 0 Mouse 1 MouseInit% = AX% Mouse 5 END IF IF which = 1 THEN DEF SEG = VARSEG(mouser$) mouser% = SADD(mouser$) CALL Absolute(AX%, bx%, cx%, dx%, mouser%) END IF IF which = 2 THEN AX% = 4 cx% = X% dx% = Y% bx% = 0 Mouse 1 END IF IF which = 3 THEN AX% = 3 Mouse 1 MouseLeftButton = ((bx% AND 1) <> 0) MouseRightButton = ((bx% AND 2) <> 0) MouseXPos = cx% MouseYPos = dx% END IF IF which = 4 THEN AX% = 2 bx% = 0 cx% = 0 dx% = 0 Mouse 1 END IF IF which = 5 THEN AX% = 1 bx% = 0 cx% = 0 dx% = 0 Mouse 1 END IF END SUB SUB STICKS JoyXPos = STICK(0) JoyYPos = STICK(1) but1% = STRIG(0) but2% = STRIG(2) but3% = STRIG(4) but4% = STRIG(6) END SUB