Gameport

Aus Lowlevel
Version vom 5. August 2008, 17:26 Uhr von Jgraef (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Der Gameport ist ein ein 15-poliger Anschluss, meist auf Soundkarten anzufinden (da er auch für MIDI verwendet wird). Er eignet sich besonderst gut für Joysticks und ...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

Der Gameport ist ein ein 15-poliger Anschluss, meist auf Soundkarten anzufinden (da er auch für MIDI verwendet wird). Er eignet sich besonderst gut für Joysticks und Lenkräder, da die Daten vorher nicht vom jeweiligen Gerät bearbeitet werden müssen.

Programmierung

Der Gameport wird über den I/O-Port 0x201 angesprochen. In ihm sind 8 Bits auf 2 Eingabegeräte aufgeteilt und diese 4 Bits jeweils nochmal auf 2 Buttons und 2 Achsen geteilt.

Bit Beschreibung
Bit 0 Joystick A, X-Achse
Bit 1 Joystick A, Y-Achse
Bit 2 Joystick B, X-Achse
Bit 3 Joystick B, Y-Achse
Bit 4 Joystick A, Button 1
Bit 5 Joystick A, Button 2
Bit 6 Joystick B, Button 1
Bit 7 Joystick B, Button 2

Buttons

Um den Status eines Buttons zu lesen, muss man nur das jeweilige Bit auslesen. 0b steht für Taste gedrückt und 1b für Taste losgelassen.

Achsen

Um die Achsen auszulesen, muss man erst ein beliebigen Wert in den I/O-Port schreiben. Dadurch werden alle Achsen-Bits auf 1b gesetzt. Nun muss man die Zeit messen bis das jeweilige Bit wieder 0b wird. Da die Werte von Treiber zu Treiber abweichen ist meistens eine Kalibrierung erforderlich.