home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 02 / heimw_q / mauslib.bas < prev    next >
Encoding:
BASIC Source File  |  1990-10-23  |  2.5 KB  |  101 lines

  1. '*--------------------------------------------------------*
  2. '*                      MAUSLIB.BAS                       *
  3. '*            Mausroutinen für MACHCURS.BAS.              *
  4. '* Kompilieren als Quick-Library und mit QB/Lmauslib ein- *
  5. '* binden. QB.LIB/.QLB muß für eingebunden sein.          *
  6. '*--------------------------------------------------------*
  7. TYPE Registers
  8.   AX    AS INTEGER
  9.   BX    AS INTEGER
  10.   CX    AS INTEGER
  11.   DX    AS INTEGER
  12.   BP    AS INTEGER
  13.   SI    AS INTEGER
  14.   DI    AS INTEGER
  15.   Flags AS INTEGER
  16.   DS    AS INTEGER
  17.   ES    AS INTEGER
  18. END TYPE
  19. DIM SHARED Regs AS Registers
  20.  
  21. DECLARE SUB CursAn ()
  22. DECLARE SUB CursAus ()
  23. DECLARE FUNCTION Knopf% ()
  24. DECLARE FUNCTION XPos% ()
  25. DECLARE FUNCTION YPos% ()
  26. DECLARE SUB InterruptX (IntNum AS INTEGER, _
  27.                         InRegs AS Registers, _
  28.                         OutRegs AS Registers)
  29.  
  30. '* Mauscursor aktivieren                         
  31. SUB CursAn
  32.   Regs.AX = 1
  33.   CALL InterruptX(51, Regs, Regs)
  34. END SUB
  35.  
  36. '* Mauscursor abschalten                         
  37. SUB CursAus
  38.   Regs.AX = 2
  39.   CALL InterruptX(51, Regs, Regs)
  40. END SUB
  41.  
  42. '* Grafikcursor definieren                       
  43. SUB GCurs (horiz%, vertik%, offset%, segm%)
  44.   Regs.AX = 9
  45.   Regs.BX = horiz%
  46.   Regs.CX = vertik
  47.   Regs.DX = offset%
  48.   Regs.ES = segm%
  49.   CALL InterruptX(51, Regs, Regs)
  50. END SUB
  51.  
  52. '* Mickey-Einheit definieren                     
  53. SUB Geschwindigkeit (horiz%, vertik%)
  54.   Regs.AX = 15
  55.   Regs.CX = horiz%
  56.   Regs.DX = vertik%
  57.   CALL InterruptX(51, Regs, Regs)
  58. END SUB
  59.  
  60. '* Fenster für Mauscursor definieren             
  61. SUB Grenzen (links%, oben%, rechts%, unten%)
  62.   Regs.AX = 7
  63.   Regs.CX = links%
  64.   Regs.DX = rechts%
  65.   CALL InterruptX(51, Regs, Regs)
  66.   Regs.AX = 8
  67.   Regs.CX = oben%
  68.   Regs.DX = unten%
  69.   CALL InterruptX(51, Regs, Regs)
  70. END SUB
  71.  
  72. '* Maustreiber initialisieren                    
  73. SUB Init
  74.   Regs.AX = 0
  75.   CALL InterruptX(51, Regs, Regs)
  76. END SUB
  77.  
  78. '* Maustastenstatus lesen                        
  79. FUNCTION Knopf%
  80.   Regs.AX = 3
  81.   CALL InterruptX(51, Regs, Regs)
  82.   Knopf% = Regs.BX
  83. END FUNCTION
  84.  
  85. '* horizontale Cursorposition ermitteln          
  86. FUNCTION XPos%
  87.   Regs.AX = 3
  88.   CALL InterruptX(51, Regs, Regs)
  89.   XPos% = Regs.CX
  90. END FUNCTION
  91.  
  92. '* vertikale Cursorposition ermitteln            
  93. FUNCTION YPos%
  94.   Regs.AX = 3
  95.   CALL InterruptX(51, Regs, Regs)
  96.   YPos% = Regs.DX
  97. END FUNCTION
  98.  
  99. '*--------------------------------------------------------*
  100. '*                 Ende von MAUSLIB.BAS                   *
  101.