[Back to MOUSE SWAG index] [Back to Main SWAG index] [Original]

    {************************************************************}
    PROGRAM WhatPortIsTheMouseOn;   { Sept 18/93, Greg Estabrooks}
    TYPE
        MouseParamTable = RECORD
                            BaudRate   :WORD; { Baud Rate Div 100}
                            Emulation  :WORD;
                            ReportRate :WORD; { Report Rate.     }
                            FirmRev    :WORD;
                            ZeroWord   :WORD; { Should be zero.  }
                            PortLoc    :WORD; { Com Port Used.   }
                            PhysButtons:WORD; { Physical Buttons.}
                            LogButtons :WORD; { Logical Buttons. }
                          END;
    VAR
       MouseInf :MouseParamTable;

    PROCEDURE GetMouseInf( VAR MouseTable ); ASSEMBLER;
                           { Routine to Get info about mouse.   }
                           { NOTE Doesn't check to see if a     }
                           {  a mouse is installed.             }
    ASM
      Push AX                      { Save Registers Used.       }
      Push ES
      Push DX
      Mov AX,$246C                 { Get Mouse Parameters.      }
      LES DX,MouseTable            { Point ES:DX to Param Table.}
      Int $33                      { Call Mouse Interrupt.      }
      Pop DX                       { Restore Registers used.    }
      Pop ES
      Pop AX
    END;{GetMouseInf}

    BEGIN
      GetMouseInf(MouseInf);        { Get mouse info.            }
      Writeln('     ___Mouse Info___'); { Show a title.          }
      Writeln;
      WITH MouseInf DO              { Display Mouse Info.        }
        BEGIN
          Writeln('Baud Rate     : ',BaudRate * 100);
          Writeln('Emulation     : ',Emulation);
          Writeln('Report Rate   : ',ReportRate);
          Writeln('FirmWare Rev  : ',FirmRev);
          Writeln('Com Port      : ',PortLoc);
          Writeln('Physical Butns: ',PhysButtons);
          Writeln('Logical Buttns: ',LogButtons);
        END;
      Readln;                       { Wait for user to have a look.}
    END.{WhatPortIsTheMouseOn}
    {************************************************************}

[Back to MOUSE SWAG index] [Back to Main SWAG index] [Original]