MinGW inline asm / inp /outp ?!

Gast #201409
Lesenswert?

Hallo,
ich habe folgendes Problem:

ich möchte (unter Windows XP) auf eine ältere Selbstbauhardware am
Parallelport zugreifen.
Ich habe eine ältere DOS Software, die mit dem UserPort Treiber auch
funktioniert. Ich will das Programm jetzt aber mit einer GUI versehen
und etwas erweitern.
Leider scheint MinGW diese ganzen Inport(), Outportb() usw. Funktionen
nicht zu kennen.
Weiss jemand ob diese vielleicht irgenwie aufgerufen werden können ?

Alternativ würde ich versuchen, diese als Inline asm zu schreiben,
leider komme ich mit g++ asm Systax nicht klar. Kann mir vielleicht
jemand erklären wie ich zum Bespiele folgenden code auf den g++
übertrage ?

void outportb(UINT portid, BYTE value)
{
  __asm mov edx,portid
  __asm mov al,value
  __asm out dx,al
}

P.S. die inpout32.dll scheint nicht geeignet zu sein.
Gast #201410
Lesenswert?

Unter Windows (XP) kannst du nicht direkt auf die Hardware zugreifen. Um
in/out-Befehle benutzen zu können, müsstest du einen Treiber schreiben,
was ohne das (kostenpflichtige) DDK soweit ich weiß nicht möglich ist.

Du solltest vielleicht nochmal überprüfen, ob die fertigen Treiber
nicht doch reichen.
Gast #201412
Lesenswert?

Hallo,

ich nutze die inpout32.dll ohne Probleme - allerdings ohne GUI aber ich
denke das ist vom Prinzop das Gleiche:
dll laden und dann mit den Funktionen schreiben. Beispielcode gibt es
ja dazu.


Martin
Gast #201413
Lesenswert?

>>Unter Windows (XP) kannst du nicht direkt auf die Hardware zugreifen.
>>Um
in/out-Befehle benutzen zu können, müsstest du einen Treiber
schreiben,
>>was ohne das (kostenpflichtige) DDK soweit ich weiß nicht möglich
ist.

das stimmt nicht... mit dem MASM32 package kann man ohne großen Aufwand
Treiber Für XP/2000 erstellen. Tutorials gibt es dafür im Netz, z.B.
unter:

http://www.assembly-journal.com/index.php

(nur mal so als ein Startpunkt...)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren