Program MausSketch;

Uses CRT, DOS, Graph;
{
       Dieses Programm zeigt wie man die Microsoft Maus ansprechen kann
                       *** WARNUNG ***
       Der Maustreiber muá unbedingt geladen sein bevor dieses Programm
       ausgefhrt wird.
       Der Maustreiber wird durch Maus.COM geladen.
}

Var
   OldX, OldY, X, Y :       Integer;
   M1, M2, M3, M4 :         Integer;
   Regs :                   Registers;
   GraphMode, GraphDriver : Integer;


Procedure Maus(var M1,M2,M3,M4 : Integer);

Begin
   with Regs do
   begin
      AX := M1;          { AX, BX, CX, DX fr den Interrupt vorbereiten }
      BX := M2;
      CX := M3;
      DX := M4
   end;
   Intr(51,Regs);        { Interrupt 51 aufrufen }

   with Regs do
   begin
      M1 := AX;
      M2 := BX;
      M3 := CX;
      M4 := DX
   end;
   Intr (51, Regs)
end;   { der Prozedur Maus }


Begin      { Hauptprogramm von TBOMuas }
   GraphDriver := Detect;
   InitGraph (Graphmode, Graphdriver, '\tp6\ju');
   SetGraphMode (VGAHi);

   M2 := 2;
   M3 := 0;
   M4 := 0;
   SetColor (Yellow);

   M1 := 0;             { Initialierung des Maustreibers }
   Maus (M1, M2, M3, M4);

   M1 := 1;             { Maus Cursor an }
   Maus (M1, M2, M3, M4);

   M1 := 3;             { Maus Position Abfrage }
   OldX := 0;
   OldY := 0;

   While not KeyPressed do
   begin                 { Programmende wenn eine Taste gedrckt wird }
      Maus (M1, M2, M3, M4);
      If M2 <> 0
      Then Line (OldX, OldY, M3, M4);
                         { M3 ... waagrechte Koordinate }
                         { M4 ... senkrechte Koordinate }
                         { Zeichne wenn der Mausknopf gedrckt wurde }
      OldX := M3;
      OldY := M4
   end
end.

