home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / MSMOUSE1.ZIP / BAS.ZIP / MOUSE.BAS < prev    next >
Encoding:
BASIC Source File  |  1989-02-03  |  3.4 KB  |  114 lines

  1.   '***************************************************************
  2.   '*  MOUSE.BAS                                                  *
  3.   '*  6/24/88 by Dave Tryon, Microsoft Product Support           *
  4.   '*                                                             *
  5.   '*  Demonstration of calling mouse functions using CALL MOUSE  *
  6.   '*                                                             *
  7.   '*  Load QBMOUSE.QLB into memory with QuickBASIC...            *
  8.   '*  QB /L QBMOUSE.QLB                                          *
  9.   '*                                                             *
  10.   '*  Assumes EGA - For CGA change SCREEN and LINE statements    *
  11.   '***************************************************************
  12.  
  13.   ' Initialization
  14.     DIM CURSOR(15, 1) AS INTEGER
  15.     COMMON CURSOR() AS INTEGER
  16.     DECLARE SUB MOUSE (M1%, M2%, M3%, M4%)
  17.     CLS
  18.  
  19.   ' Define Cursor Array
  20.     CURSOR(0, 0) = &HE1FF
  21.     CURSOR(1, 0) = &HE1FF
  22.     CURSOR(2, 0) = &HE1FF
  23.     CURSOR(3, 0) = &HE1FF
  24.     CURSOR(4, 0) = &HE1FF
  25.     CURSOR(5, 0) = &HE000
  26.     CURSOR(6, 0) = &HE000
  27.     CURSOR(7, 0) = &HE000
  28.     CURSOR(8, 0) = &H0
  29.     CURSOR(9, 0) = &H0
  30.     CURSOR(10, 0) = &H0
  31.     CURSOR(11, 0) = &H0
  32.     CURSOR(12, 0) = &H0
  33.     CURSOR(13, 0) = &H0
  34.     CURSOR(14, 0) = &H0
  35.     CURSOR(15, 0) = &H0
  36.  
  37.     CURSOR(0, 1) = &H1E00
  38.     CURSOR(1, 1) = &H1200
  39.     CURSOR(2, 1) = &H1200
  40.     CURSOR(3, 1) = &H1200
  41.     CURSOR(4, 1) = &H1200
  42.     CURSOR(5, 1) = &H13FF
  43.     CURSOR(6, 1) = &H1249
  44.     CURSOR(7, 1) = &H1249
  45.     CURSOR(8, 1) = &HF249
  46.     CURSOR(9, 1) = &H9001
  47.     CURSOR(10, 1) = &H9001
  48.     CURSOR(11, 1) = &H9001
  49.     CURSOR(12, 1) = &H8001
  50.     CURSOR(13, 1) = &H8001
  51.     CURSOR(14, 1) = &H8001
  52.     CURSOR(15, 1) = &HFFFF
  53.  
  54.   ' Check if Mouse Driver installed--exit if not.
  55.     DEF SEG = 0
  56.     MSEG = 256 * PEEK(51 * 4 + 3) + PEEK(51 * 4 + 2)
  57.     MOUSE1 = 256 * PEEK(51 * 4 + 1) + PEEK(51 * 4) + 2
  58.     IF MSEG OR (MOUSE1 - 2) THEN
  59.         DEF SEG = MSEG
  60.         IF PEEK(MOUSE1 - 2) <> 207 THEN
  61.             SCREEN 9
  62.  
  63.           ' Function 0  Mouse Reset
  64.             M1% = 0
  65.             CALL MOUSE(M1%, M2%, M3%, M4%)
  66.  
  67.           ' Function 7  Limit Horizontal Motion
  68.             M1% = 7: M3% = 100: M4% = 540
  69.             CALL MOUSE(M1%, M2%, M3%, M4%)
  70.  
  71.           ' Function 8  Limit Vertical Motion
  72.             M1% = 8: M3% = 50: M4% = 300
  73.             CALL MOUSE(M1%, M2%, M3%, M4%)
  74.  
  75.           ' Draw box to show Mouse Motion
  76.             COLOR 1
  77.             LINE (100, 50)-(540, 50)
  78.             LINE (540, 50)-(540, 300)
  79.             LINE (540, 300)-(100, 300)
  80.             LINE (100, 300)-(100, 50)
  81.  
  82.           ' Function 9  Set Custom Cursor
  83.             M1% = 9: M2% = 5: M3% = 0
  84.             CALL MOUSE(M1%, M2%, M3%, VARPTR(CURSOR(0, 0)))
  85.  
  86.           ' Function 1  Show Cursor
  87.             M1% = 1
  88.             CALL MOUSE(M1%, M2%, M3%, M4%)
  89.  
  90.           ' Loop until button pressed
  91.  
  92.             COLOR 7
  93.             M2% = 0
  94.             WHILE (M2% = 0)
  95.  
  96.               ' Function 3  Get Mouse Status
  97.                 M1% = 3
  98.                 CALL MOUSE(M1%, M2%, M3%, M4%)
  99.  
  100.               ' Print Cursor Location
  101.                 LOCATE 2, 2
  102.                 PRINT M3%, M4%
  103.             WEND
  104.  
  105.           ' Function 0  Reset Mouse and Status
  106.             M1% = 0
  107.             CALL MOUSE(M1%, M2%, M3%, M4%)
  108.  
  109.         ELSE PRINT "Mouse Driver Not Found"
  110.         END IF
  111.  
  112.     ELSE PRINT "Mouse Driver Not Found"
  113.     END IF
  114.