Forum: PC-Programmierung MinGW inline asm / inp /outp ?!


von Heinz (Gast)


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.

von Chris (Gast)


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.

von Heinz (Gast)


Lesenswert?

@chris
Das ist klar, deshalb arbeite ich ja auch mit User-Port, welches den
Parallelport für Usermode-Programme freischaltet. Und wie gesagt, die
alten DOS Programme laufen damit.

von Martin (Gast)


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

von Ole Loots (Gast)


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...)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.