AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Game Port Pins ein-/ausschalten
Thema durchsuchen
Ansicht
Themen-Optionen

Game Port Pins ein-/ausschalten

Offene Frage von "fishly"
Ein Thema von fishly · begonnen am 28. Jan 2010 · letzter Beitrag vom 30. Jan 2010
Antwort Antwort
fishly

Registriert seit: 30. Okt 2008
31 Beiträge
 
Delphi 5 Standard
 
#1

Game Port Pins ein-/ausschalten

  Alt 28. Jan 2010, 00:19
[edit]sorry, hab mich irgendwie in der Kategorie verheddert.[/edit]

Hallo

mein Ziel ist es eine einfache Eingabe zu schaffen, die über Schalter erfolgen soll.
Dazu habe ich die Schalter an die Pins des Gameports geklemmt, die relevant für die 4 Buttons eines Joysticks sind.

Ich habe in der Systemsteuerung einen Joystick installiert. (XP: GameController/Hinzufügen/4-Tasten-Joystick)
Die 4 Buttons, konnte man (früher als Windows 2000) mal direkt mit folgendem Code abfragen:

Delphi-Quellcode:
var
Wert: byte; //Wert aus Gameport-Register

asm
  mov dx,$201; //Also bei mir liegt der Gameport halt im E/A-Bereich 201
  in al,dx; //hier kommt ab Win2000 ne Fehlermeldung: "Privilegierte Anweisung!"
  mov Wert, al;
end;
Ich hab mich also informiert und herausgefunden, dass man eben ab Win 2000 bzw. XP nicht mehr direkt auf die Hardwareports zugreifen darf. Wegen irgendwelchem Sicherheitszeug wurde das eingebaut.

Lösung: Ich habe einen Treiber installiert, war auch alles sehr schön beschrieben wie man das machen soll und schließlich funktionierte das auch.

Durch weitere Foren habe ich erfahren, dass auf dem 5.-8. Bit von varWert die Buttons 1-4 liegen.
Soweit so gut. Ich hoffe ich konnte das Wissen, das ich durch Recherche ermittelt habe, so rüberbringen, dass ihr mein Problem auch versteht.

Der Standardwert von varWert ist 240 (5.-8. Bit = I; 128+64+32+16 = 240)
Wenn ich jetzt Button 1 oder 2 drücke dann wird das jeweilige Bit auf O gesetzt.
Bei Button 3 und 4 funktioniert das nicht.

Meine Frage:
Wo liegt das Problem?
Es könnte am heruntergeladenen Treiber oder an der Hardware liegen, hab ich mir gedacht.
Den Treiber halte ich jedoch für vertrauenwürdig.

Danke falls ihr Denkansätze oder andere Lösungwege für mich hättet.
Ich hab mich auch etwas mit der Arbeitsweise von LPT- und COM-Port auseinandergesetzt, jedoch fand ich dieses Modell deutlich einfacher; bis jetzt zumindest.

lg fishly
never change a running system...
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

Re: Game Port Pins ein-/ausschalten

  Alt 28. Jan 2010, 07:39
In der Unit MMSystem sind Funktionen für den Zugriff auf einen Joystick.
Google:
mmsystem joystick button
aJoystickValues.dwButtonNumber

http://www.google.com/codesearch?hl=...ber&sbtn=Suche

http://mc-computing.com/Languages/Joysticks.htm#Delphi
  Mit Zitat antworten Zitat
fishly

Registriert seit: 30. Okt 2008
31 Beiträge
 
Delphi 5 Standard
 
#3

Re: Game Port Pins ein-/ausschalten

  Alt 28. Jan 2010, 12:37
Soweit ich das jetzt mal schnell unter die Lupe genommen hab, scheint mir das arg weiterzuhelfen.
Ich meld mich nochmal wenn ich das so in mein Projekt implementiert hab.

Danke schon mal.

lg fishly
never change a running system...
  Mit Zitat antworten Zitat
fishly

Registriert seit: 30. Okt 2008
31 Beiträge
 
Delphi 5 Standard
 
#4

Re: Game Port Pins ein-/ausschalten

  Alt 28. Jan 2010, 21:02
So jetzt hab ichs getestet, aber es tut sich nix.

Habs folgendermaßen implementiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  myjoy: tjoyinfo;
begin
  Checkbox1.checked := false;
  Checkbox2.checked := false;
  
  joygetpos(joystickid1,@myjoy); //Was ist joystickid1?
  Checkbox1.checked := (myjoy.wbuttons and joy_button1)>0;
  Checkbox2.checked := (myjoy.wbuttons and joy_button2)>0;
end;
Also so funktionierts jedenfalls nicht, ich muss jedoch sagen, dass ich den Code nicht richtig verstehe, um genau zu sein "joystickid1", "wbuttons" und "joy_button1". Ich hab keine Hilfe dazu gefunden. Wäre nett wenn mir jemand das erklären könnte.

lg fishly
never change a running system...
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

Re: Game Port Pins ein-/ausschalten

  Alt 29. Jan 2010, 08:40
Es führt nicht zum Erfolg, wenn Du Dich nicht bemühst, bei Microsoft die Grundlagen für Multimedia u.a. zu erlernen.

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Hier ist noch ein Link, um Joystick-Werte anzuzeigen:
http://www.torry.net/vcl/system/joys...joystickex.zip
  Mit Zitat antworten Zitat
fishly

Registriert seit: 30. Okt 2008
31 Beiträge
 
Delphi 5 Standard
 
#6

Re: Game Port Pins ein-/ausschalten

  Alt 30. Jan 2010, 02:51
Danke hat mir weitergeholfen, aber ich hatte das weder bei g**gle noch in der wind*ws developer library bei micr*soft gefunden.

lg fishly
never change a running system...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz