mikrocontroller.net

Forum: PC-Programmierung Parallel-Port Adresse "umbiegen"


Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorgeschichte:
Ich habe hier einen sogenannten Willem-Programmer aufgebaut. Dieser wird
über die parallele Schnittstelle betrieben.

Leider ist mein Rechner nur noch mit USB-Schnittstellen ausgerüstet, so
daß ich eine Parallelportkarte kaufte. Diese hat allerdings die Basis-
adresse xB800. Das Steuerprogramm für den Eprommer ist aber nur auf
die "Standardadressen" (x278)geeicht. Mit diesem Problem war ich aber
nicht allein und fand hier eine Lösung, welche auch prima funktioniert:
http://www.benryves.com/products/remappediodll

Damit wird durch Änderung der Adresse und die Bnutzung der Datei 
"remappedio.dll" dem System "weisgemacht", daß der Prgrammer auf LPT1 
sitzt.



Dadurch kam bei mir die Frage auf: Ist es möglich, ein "alleinstehendes"
Programm zu schreiben, welches solche "schrägen" Portadressen auf 
"normale"
Adressen umweisen kann? Ich stelle mir ein Fenster mit 2 Eingabefeldern
vor:
1. "Basisadresse aus dem Gerätemanager abgelesen"
2. "Wunschadresse (x278, x378...)

unter Verwendung dieser remappedio.dll


Die Leute habe ja entweder gar keine oder nur LPT1 in ihren Rechnern
und wenn sie die Basisadressen wie z.B. xB800 auf x278 umweisen könnten,
wäre vielen Leuten sehr geholfen und einen Crash könnte es auch nicht
geben, da ja nichts auf den Originaladressen sitzt.

MfG Paul

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sinnvoller wäre es, wenn die den Frickelport nutzende Software das 
Betriebssystem nach der verwendeten I/O-Adresse fragen würde, statt 
falsche Annahmen zu treffen und irgendwelche fest codierten Adressen zu 
verwenden.

Die meisten Frickelportprogramme bekommen das auch hin.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus

Da gebe ich Dir selbstverfreilch Recht. Nur: Was nützt das, wenn man
z.B. Winpic800 oder die Willem-Software nutzen muß?

MfG Paul

Autor: Spade, Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Programm zu schreiben, welches solche "schrägen" Portadressen auf
>"normale"
>Adressen umweisen kann? Ich stelle mir ein Fenster mit 2 Eingabefeldern
>vor:
>1. "Basisadresse aus dem Gerätemanager abgelesen"
>2. "Wunschadresse (x278, x378...)

Das geht schon und ist, wenn du das Verständniss hast, gar nicht mal so 
schwierig. Damit meine ich, dass das Programm weniger als 50 Zeilen 
Codelänge hat. Man fängt dazu den Zugriff auf die IO-Adresse mittells 
der Debugbefehle ab und "topft" dann ganz simpel um. Mann kann natürlich 
auch direkt patchen. (Beides hat Vor- und Nachteile) Ich habe sowas 
ähnliches mal mit einem Windows-Programm unter Linux gemacht. Das 
Programm hatte ich aber selbst geschrieben, so dass ich die IO-Zugriffe 
durch Interrupt-Aufrufe ersetzen konnte. Damals ging es mir um eine 
schnelle Umsetzung in Wine, denn die Alternative alles neu zu schreiben 
hätte zu lange gedauert. Danach hatte ich mit einem Kernelmodul die 
entsprechende Vektortabelle in Linux manipuliert und damit direkten 
IO-Zugriff über Wine.

Du kannst auch ganz einfach im Gerätemangaer die Adresse ändern. Bei PCI 
muss das möglich sein. Falls nicht, kannst du dich eines 
Zusatzprogrammes bedienen, welches Zugriff auf die PCI-Adressen 
ermöglicht. Die Parallelportadresse müsste unter Base0 (Base0-4) stehen. 
Die anderen sind jeweils für den Steuerport bzw. MM-IO.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sam Spade

Ja, das ist bei mir das Problem, daß ich mit der PC-Programmierung
Schwierigkeiten habe. Seit dieser ganze Visual xxx-Kram im Gange ist,
habe ich mich mit Grauen davon abgewandt.

Im Gerätemanager ist die Adresse fest, d.h. ich kann nichts verstellen,
denn die betreffenden Schaltflächen sind ausgegraut. (So, wie meine 
Haare)
;-)

>Falls nicht, kannst du dich eines
>Zusatzprogrammes bedienen, welches Zugriff auf die PCI-Adressen
>ermöglicht.

Würde ich gerne, wenn ich nur Eines fände...

Wie gesagt: Dank der Seite
http://www.benryves.com/products/remappediodll
geht es ja mit dem Willem-Programmer. Das Programm "WinPic800" hingegen
funktioniert so nicht, weil: Wenn ich dort in der .ini-Datei die 
Adressen
ändere, ändert das Programm sie gleich nach dem Start wieder zurück.

MfG Paul

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Baumann schrieb:
> ändert das Programm sie gleich nach dem Start wieder zurück.
Datei schreibgeschützt machen? ;)

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Läubi
>Datei schreibgeschützt machen
Habe ich. Als Dank kommt von "WinPic800"die Meldung, daß er nicht in
diese Datei schreiben kann und es geht nicht weiter, bis der 
Schreibschutz
wieder entfernt ist.
:-(
MfG Paul

Autor: Spade, Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>geht es ja mit dem Willem-Programmer. Das Programm "WinPic800" hingegen
>funktioniert so nicht, weil: Wenn ich dort in der .ini-Datei die
>Adressen
Wenn das Programm seinen eigenen sys-Treiber mitbringen sollte, so 
funktioniert die Notlösung über die neue io.dll auf jeden Fall nicht.

>Würde ich gerne, wenn ich nur Eines fände...
Vereinzelt lassen sich noch welche für Dos finden aber nicht für 
Windows. 98 Prozent der Programmierer sind auf Endlösungen, also 
Anwendungsprogrammierung, ausgerichtet. Deswegen findet man auch keine 
Tutorials, Beispiele oder Hilfsprogramme freier Entwickler dazu. Die 
Specs zum PCI-Zugriff und die Debugbefehle findet man bei Intel oder 
AMD. Zur Treiberprogrammierung gibt es einige wenige englische Tutorials 
und auch freie (zumindest für XP) Dokus bei M$.

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.