home *** CD-ROM | disk | FTP | other *** search
- '*--------------------------------------------------------*
- '* MAUSLIB.BAS *
- '* Mausroutinen für MACHCURS.BAS. *
- '* Kompilieren als Quick-Library und mit QB/Lmauslib ein- *
- '* binden. QB.LIB/.QLB muß für eingebunden sein. *
- '*--------------------------------------------------------*
- TYPE Registers
- AX AS INTEGER
- BX AS INTEGER
- CX AS INTEGER
- DX AS INTEGER
- BP AS INTEGER
- SI AS INTEGER
- DI AS INTEGER
- Flags AS INTEGER
- DS AS INTEGER
- ES AS INTEGER
- END TYPE
- DIM SHARED Regs AS Registers
-
- DECLARE SUB CursAn ()
- DECLARE SUB CursAus ()
- DECLARE FUNCTION Knopf% ()
- DECLARE FUNCTION XPos% ()
- DECLARE FUNCTION YPos% ()
- DECLARE SUB InterruptX (IntNum AS INTEGER, _
- InRegs AS Registers, _
- OutRegs AS Registers)
-
- '* Mauscursor aktivieren
- SUB CursAn
- Regs.AX = 1
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Mauscursor abschalten
- SUB CursAus
- Regs.AX = 2
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Grafikcursor definieren
- SUB GCurs (horiz%, vertik%, offset%, segm%)
- Regs.AX = 9
- Regs.BX = horiz%
- Regs.CX = vertik
- Regs.DX = offset%
- Regs.ES = segm%
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Mickey-Einheit definieren
- SUB Geschwindigkeit (horiz%, vertik%)
- Regs.AX = 15
- Regs.CX = horiz%
- Regs.DX = vertik%
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Fenster für Mauscursor definieren
- SUB Grenzen (links%, oben%, rechts%, unten%)
- Regs.AX = 7
- Regs.CX = links%
- Regs.DX = rechts%
- CALL InterruptX(51, Regs, Regs)
- Regs.AX = 8
- Regs.CX = oben%
- Regs.DX = unten%
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Maustreiber initialisieren
- SUB Init
- Regs.AX = 0
- CALL InterruptX(51, Regs, Regs)
- END SUB
-
- '* Maustastenstatus lesen
- FUNCTION Knopf%
- Regs.AX = 3
- CALL InterruptX(51, Regs, Regs)
- Knopf% = Regs.BX
- END FUNCTION
-
- '* horizontale Cursorposition ermitteln
- FUNCTION XPos%
- Regs.AX = 3
- CALL InterruptX(51, Regs, Regs)
- XPos% = Regs.CX
- END FUNCTION
-
- '* vertikale Cursorposition ermitteln
- FUNCTION YPos%
- Regs.AX = 3
- CALL InterruptX(51, Regs, Regs)
- YPos% = Regs.DX
- END FUNCTION
-
- '*--------------------------------------------------------*
- '* Ende von MAUSLIB.BAS *