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
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.
@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
>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.
@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
Paul Baumann schrieb: > ändert das Programm sie gleich nach dem Start wieder zurück. Datei schreibgeschützt machen? ;)
@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
>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$.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.