Hier sind die Mausprozeduren für den Grafikmodus. Die für den Textmodus finde ich leider nicht mehr. Die Routinen kommen aus dem Buch "Turbo Pascal 7.0 - Das Kompendium", das im Markt und Technik-Verlag erschienen ist. Hier ist der Code:
Delphi-Quellcode:
m1, m2, m3, m4: WORD;
PROCEDURE Maus;
ASSEMBLER;
ASM
MOV AX,m1
MOV BX,m2
MOV CX,m3
MOV DX,m4
INT $33
MOV m1,AX
MOV m2,BX
MOV m3,CX
MOV m4,DX
END;
PROCEDURE MausDA(nr : WORD);
Inline($58/$cd/$33);
PROCEDURE MausReset;
BEGIN
IF Mem[MemW[0:$
cc+2]:MemW[0:$
cc]] <> $cf
THEN BEGIN
MausDa(0);
MausDa(1);
END
ELSE BEGIN
OutTextXY(10,10,'
Maus nicht installiert! MOUSE in MS-DOS aufrufen! <Enter>');
Readln;
Halt;
END;
END;
PROCEDURE MausData;
BEGIN
m1:=3;
Maus;
END;
PROCEDURE UrCursor;
BEGIN
MausDa(2);
MausDa(0);
MausDa(1);
END;
Am Beginn des Programms rufst du MausReset auf. Jedes Mal, wenn du die Mausdaten abfragen willst, musst du MausData aufrufen. Anschließend steht in m2 der gedrückte Button drin:
0 = Nichts
1 = Links
2 = Rechts
3 = Beide
m3 und m4 enthalten die x und y-Position der Maus.
Die Funktion MausDa(2) blendet den Mauscursor aus, MausDa(1) zeigt ihn wieder.
WICHTIG: Dies ist nur ein Teil der Routinen, den anderen Teil brauchte ich nicht, und die Beispieldiskette vom Buch habe ich auch verloren
Ich hoffe, dass du den Code zum Laufen bringst, und wenn du ganz viel Glück hast, hat ja noch jemand das Buch...