home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 01 / gameport / joy_at.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-10-15  |  2.3 KB  |  80 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    JOY_AT.PAS                          *)
  3. (*     AT-Joystick-Abfrage und numerische Anzeige         *)
  4. (*              der Joystick-Ausschläge                   *)
  5. (*                                                        *)
  6. (*        (c) 1991 by Andreas Bartels & toolbox           *)
  7. (* ------------------------------------------------------ *)
  8. {$A-,B-,D-,E-,F+,I-,L-,N-,O-,R-,S-,V-}
  9.  
  10. PROGRAM AT_JoystickTest;
  11.  
  12. USES crt, dos;
  13.  
  14. VAR
  15.   X1, Y1,
  16.   X2, Y2,
  17.   T11, T12,
  18.   T21, T22 : BYTE;
  19.  
  20. PROCEDURE CursorOn;
  21. BEGIN
  22.   INLINE($B4/$01/
  23.          $B9/13/12/   { Cursoranf. 12.Z, Cursorende 13.Z }
  24.          $CD/$10);
  25. END;
  26.  
  27. PROCEDURE CursorOff;
  28. BEGIN
  29.   INLINE($B4/$01/
  30.          $B9/$FF/$FF/       { Cursoranfang und -ende auf }
  31.          $CD/$10);        { 255 setzen löscht den Cursor }
  32. END;
  33.  
  34. PROCEDURE AT_JoySticks( VAR X1, Y1, X2, Y2, T11, T12, T21,
  35.                             T22 : BYTE );
  36. VAR
  37.   Regs : REGISTERS;
  38. BEGIN  (* JoyStickX *)
  39.   (* Knüppelstellungen *)
  40.   Regs.AH := $84;
  41.   Regs.DX := $01;
  42.   Intr( $15, Regs );
  43.   X1 := Regs.AX;
  44.   Y1 := Regs.BX;
  45.   X2 := Regs.CX;
  46.   Y2 := Regs.DX;
  47.  
  48.   (* Tasten gedrückt ? *)
  49.   Regs.AH := $84;
  50.   Regs.DX := $00;
  51.   Intr( $15, Regs );
  52.   T11 := 1 - Lo(Regs.AX SHL 3) SHR 7;(* Abfrage von Bit 7 *)
  53.   T12 := 1 - Lo(Regs.AX SHL 2) SHR 7;
  54.   T21 := 1 - Lo(Regs.AX SHL 1) SHR 7;
  55.   T22 := 1 - Lo(Regs.AX      ) SHR 7;(* Abfrage von Bit 4 *)
  56. END; (* AT_JoySticks *)
  57.  
  58.  
  59. BEGIN   (* Hauptprogramm *)
  60.   ClrScr;
  61.   CursorOff;
  62.   WriteLn;
  63.   Writeln(' ┌────────────────────────────────┐');
  64.   WriteLn(' │    JoyStick-Test für IBM-AT    │');
  65.   WriteLn(' │  ( über  BIOS-Interrupt 15H )  │');
  66.   WriteLn(' │ (c) A.Bartels & toolbox 1991 ) │');
  67.   Writeln(' └────────────────────────────────┘');
  68.   REPEAT
  69.     AT_JoySticks( X1, Y1, X2, Y2, T11, T12, T21, T22 );
  70.     GoToXY(4,8);
  71.     Write( 'Joystick 1 :  X-Wert : ',  X1:3, '   Y-Wert : ',
  72.     Y1:3, '     1.Taste : ', T11:1,'   2.Taste : ', T12:1 );
  73.     GoToXY(4,10);
  74.     Write( 'Joystick 2 :  X-Wert : ',  X2:3, '   Y-Wert : ',
  75.     Y2:3,'     1.Taste : ', T21:1, '   2.Taste : ', T22:1 );
  76.   UNTIL KeyPressed;
  77.   CursorOn;
  78. END. (* Joy_AT *)
  79. (* ------- Ende JOY_AT.PAS ------------------------------ *)
  80.