' Maus-Demo: Einfacher Mausprogrammierungsversuch ' $INCLUDE: 'qb.bi' SCREEN 12 FOR i% = 0 TO 5 LINE (0, 0)-(3 * i%, 15), i% + 1 LINE (0, 0)-(15, 3 * i%), 11 - i% NEXT i% FOR i% = 0 TO 3 FOR j% = 0 TO 3 LINE (4 * j%, 4 * i%)-STEP(3, 3), 4 * i% + j%, BF NEXT j% NEXT i% LINE (0, 0)-(15, 15), 1, BF LINE (3, 0)-(4, 1), 2 LINE (4, 0)-(4, 1), 2 ' LINE (3, 0)-(4, 0), 0 ' PSET (4, 1), 0 LINE (7, 0)-(7, 6), 3 FOR i% = 1 TO 15 FOR j% = 0 TO i% - 1 PSET (j%, i%), POINT(i%, j%) NEXT j% NEXT i% DIM f%(65) FOR i% = 0 TO 6 GET (i%, 0)-STEP(0, 15), f% PUT (14 - i%, 0), f%, PSET NEXT i% FOR i% = 0 TO 6 GET (0, i%)-STEP(15, 0), f% PUT (0, 14 - i%), f%, PSET NEXT i% FOR i% = 0 TO 15 GET (0, i%)-STEP(7, 0), f% PUT (16 * i% + 8, 16), f%, PSET GET (8, i%)-STEP(7, 0), f% PUT (16 * i%, 16), f%, PSET NEXT i% GET (0, 16)-(255, 16), f% DIM dosIntEin AS RegTypeX, dosIntAus AS RegTypeX ' Abfrage, ob Maus vorhanden dosIntEin.ax = 0 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) IF dosIntAus.ax <> -1 THEN PRINT "Keine Maus vorhanden" END END IF PRINT "Anzahl Mauskn”pfe:"; dosIntAus.bx dosIntEin.ax = 9 dosIntEin.bx = 7 dosIntEin.cx = 7 dosIntEin.es = VARSEG(f%(2)) dosIntEin.dx = VARPTR(f%(2)) CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) FOR i% = 0 TO 55 CIRCLE (400 - 3 * i%, 300 - 2 * i%), 4 + 7 * i%, 1 + i% MOD 15, , , 1! NEXT i% FOR i% = 0 TO 15 LINE (20 * i%, 16)-STEP(19, 19), i%, BF NEXT i% dosIntEin.ax = 1 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) w! = 0 f% = 1 q% = 0 DO t$ = INKEY$ IF t$ <> "" THEN w! = w! + .1 dosIntEin.ax = 2 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) LINE (320, 240)-STEP(230! * COS(w!), 230! * SIN(w!)), f% f% = f% MOD 15 + 1 IF q% THEN dosIntEin.ax = 5 dosIntEin.bx = 0 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) COLOR 5 LOCATE 3, 1 PRINT USING "Knopfstat:#### Anzahl:###"; dosIntAus.ax; dosIntAus.bx x% = dosIntAus.cx y% = dosIntAus.dx LINE (x% - 3, y%)-(x% + 3, y%) LINE (x%, y% - 3)-(x%, y% + 3) ELSE dosIntEin.ax = 6 dosIntEin.bx = 0 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) COLOR 2 LOCATE 4, 1 PRINT USING "Knopfstat:#### Anzahl:###"; dosIntAus.ax; dosIntAus.bx x% = dosIntAus.cx y% = dosIntAus.dx LINE (x% - 3, y%)-(x% + 3, y%) LINE (x%, y% - 3)-(x%, y% + 3) END IF q% = NOT q% dosIntEin.ax = 1 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) END IF ' dosIntEin.ax = 3 ' CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) ' LOCATE 3, 1 ' PRINT USING "X=##### Y=##### Kn”pfe=##"; dosIntAus.cx; dosIntAus.dx; dosIntAus.bx LOOP UNTIL t$ = CHR$(27) dosIntEin.ax = 2 CALL INTERRUPTX(&H33, dosIntEin, dosIntAus) END