www.mikrocontroller.net

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


Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ole Loots (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.