Die MS - Mouse Treiber arbeiten nur in in Graphik Modi bis Screen 19 (320x200x256), aber nicht im GFA-BASIC untersttzten SVGA Mode (800x600x16). In dieser Version (GFA-BASIC DOS 4.52) gibt es eine DEFMOUSE Erweiterung: Zus„tzlich zu den alten Parametern ist jetzt m”glich: DEFMOUSE 100 // kleine Raute DEFMOUSE 101 // groáe Raute DEFMOUSE 102 // kleines hohles Kreuz DEFMOUSE 103 // groáes hohles Kreuz DEFMOUSE 104 // kleines Kreuz DEFMOUSE 105 // groáes Kreuz DEFMOUSE 106 // kleiner Pfeil DEFMOUSE 107 // groáer Pfeil DEFMOUSE 108 // Fadenkreuz Diese Mausfromen werden nicht wie blich dargestellt, als weiáe Figuren mit schwarzer Umrandung, sondern invertierend, also „ndern sich nur die Farben unter dem Mauszeiger. Die Mauserweiterung arbeitet nur in 16 Farben VGA (EGA) Modi. Ein weiterer Unterschied zum normalen Mauszeiger ist ein Feature, das nicht nachgebildet wird. Wird die Maus abwechselnd versteckt und wieder dargestellt, ohne das die Mausposition sich „ndert, so gibt es eine Verz”gerung, die dazu dient ein Flackern des Mauszeigers zu vermindern, die Sichtbarkeit auf Laptop LCD Anzeigen zu verbessern und Windows, wenn das Programm in Dos unter Windows l„uft, das Multitasking zu erleichtern. Das Problem dabei ist, das w„hrend dieser Verz”gerungszeit Mausbewegungen iognoriert werden. DO PLOT MOUSEX,MOUSEY UNTIL MOUSEK In diesem einfachen Beispiel sind Mausbewegungen extrem schwierig und sprunghaft. (Alte Maustreiber reagieren mit Flackern des Mauszeigers.) Die Abhilfe ist eine Prfung auf Mausbewegungen vor dem Verstecken des Mauszeigers, wie bei jeder Bildausgabe zwangsweise vogegeben, auch bei PLOT, da Bildausgaben auf EGA oder VGA Karten von Registerinhalten abh„ngig sind, die ein Interrupt durch die Maus die register nicht rettet - hardwarebedingt nicht retten kann. Die Abfrage: DO MOUSE x&,y&,k& EXIT if k& IF x& != ox& || y& != oy& PLOT x&,y& ox& = x&,oy& = y& ENDIF LOOP Ich wrde vorziehen, wenn diese Verz”gerung w„hlbar w„re, weil die extra Abfragen ein Programm oft sehr stark unlesbar machen. Mit DEFMOUSE 10x gibt es jetzt optional Flackern, aber schnelle Reaktion auf Mausbewegung, ohne viel Programmieraufwand (und ein Fadenkreuz gibt's extra). Routine zum Einschalten der 800x600x16 Aufl”sung fr (Super) VGA Karten: PROCEDURE HiresOn() LOCAL i&,f& = 0 HiresTest(91,f&) IF f& THEN EXPROC FOR i& = 127 DOWNTO 20 HiresTest(i&,f&) EXIT IF f& NEXT i& if _C != 16 THEN SCREEN 18 RETURN PROCEDURE HiresTest(mode&,VAR flag&) TRY SCREEN mode& IF _X = 800 && _Y = 600 && _C = 16 flag& = 1 ENDIF CATCH RETURN HiresOn() berprft alle m”glichen Screen Modi, notfalls wird auf VGA Screen 18 geschaltet. (Der erste HiresTest(91..) ist korrekt fr eine Graphikkarte, erfolgt dann also ohne st”rende Modusumschaltversuche.) Anschlieáend ist mit Defmouse 107 eine zumindest sichtbare Maus auch in dieser Aufl”sung m”glich.