Hallo,
ich habe einen älteren PC auf dem Windows NT läuft. In diesem Rechner
sind zwei Steuerkarten am ISA Bus eingebaut. Die erste Karte hat die
Adresse 310, die zweite Karte 320. Die Adresse ist mit den Jumpern auf
den Karten eingestellt.
Am PC habe ich eine Software auf der ich die Karten konfigurieren kann.
Die Karte mit der Adresse 310 wird erkannt, bei der Zweiten kommt der
Fehler das die Karte an den angegebenen Adresse nicht gefunden werden
kann. Wenn ich die Adresse auf dieser Karte von 320 auf 330 umstelle
wird sie in der Software erkannt (in der Software habe ich dann auf auf
330 umgestellt).
Das Problem was ich habe, die zwei Karten werden dann im Betrieb von
einer Software gesteuert bei der fix diese zwei Adressen festgelegt sind
(310 und 320) und somit funktioniert das ganze nicht.
Was kann daran schuld sein das die Karte mit der Adresse 320 nicht
erkannt wird?
Kann man im Windows NT irgendwo nachsehen, ob diese Adresse schon belegt
ist?
Der PC ist auf einer ISA Backplane aufgebaut, darauf befindet sich:
1x Mainboard Steckkarte
3 weitere ISA Karten, die zwei besagten und eine dritte die auf Adresse
300 gejumpert ist.
Die Datei C:\config.sys ist bei mir leer.
Norbert L. schrieb:> Was kann daran schuld sein das die Karte mit der Adresse 320 nicht> erkannt wird?
Ein anderes Gerät mit der Adresse 320h. Wenn es nicht Plug&Play ist wird
das aber schwierig zu finden sein. Meiner Erinnerung nach käme eine
Soundkarte in Frage, aber das ist Äonen her.
Ich hatte mal ein kleines Heftchen aus der damaligen Zeit, in dem viele
Adressen, IRQs usw. aufgelistet waren, aber das habe ich letztes Jahr
entsorgt, zusammen mit kiloweise Unterlagen über PC, XT, AT, MSDOS
u.a.m.
Georg
georg schrieb:> Ich hatte mal ein kleines Heftchen aus der damaligen Zeit, in dem viele> Adressen, IRQs usw. aufgelistet waren, aber das habe ich letztes Jahr> entsorgt, zusammen mit kiloweise Unterlagen über PC, XT, AT, MSDOS> u.a.m.
Neeeiiiiiiiin! Das frisst doch kein Heu!
Gruss Chregu
Es kann sein, dass bei Adresse 320 hex bei dem alten Rechner eine
serielle Schnittstelle liegt. Das konnte man früher im BIOS
konfigurieren.
Einfach mal da nachschauen bzw. serielle Schnittstellen deaktivieren
oder andere Adresse wählen.
Netzwerkkarten tummelten sich per Default gerne im Bereich 0300h-031Fh
was ggf. zu Konflikten führen kann. Hier ggf. eine andere Adresse
wählen, sollte eine Netzwerkkarte verbaut sein.
Hab jetzt alle Karten bis auf die mit Adresse 320 ausgebaut.
Im Bios habe ich beide seriellen und die parallele Schnittstelle
deaktiviert.
Netzwerkkarten habe ich 2 Onboard. habe ich zum Test im Bios beide
deativiert. Reicht das oder muss ich sie im Windows deinstallieren?
USB Ports hab ich im BIOS ebenfalls deaktiviert.
Problem ist so immer noch vorhanden.
Habe Windows NT 4.0 installiert.
Ich bin mir jetzt nicht sicher, aber es kann sein, dass Windows NT die
Seriell bzw. Netzwerktreiber trotzdem lädt, obwohl im BIOS deaktiviert.
Ich glaube Gerätemanager gabs bei Win NT 4.0 keinen. Aber man müsste
sicherstellen, dass NT die Treiber nicht lädt.
Andere mehr theoretische Möglichkeit. Herausfinden, wie die Software den
IO-Zugriff durchführt. Bei NT 4.0 war der IO-Adressbereich schon
geschützt und nur der Treibern vorbehalten. Die Software könnte einen
'richtigen' Treiber für den Zugriff verwenden oder mit einer 'frickel'
Lösung den IO-Bereich dem Programm zugänglich machen.
In diesem Fall kann man sich im Binärcode des Programms auf die Suche
nach den spezifischen Assembler Opcodes für die Adresse 320 machen und
dann einfach mit Hex-Editor auf andere Adresse patchen ;-)
Norbert L. schrieb:> Hab jetzt alle Karten bis auf die mit Adresse 320 ausgebaut.
Was passiert, wenn du statt dessen einfach mal die andere Karte nimmst
und diese auf 320 jumperst? Dasselbe?
Der Test könnte nützlich sein, um festzustellen, ob eventuell ein Fehler
im Adressdecoder der einen Karte vorliegt.
> Netzwerkkarten habe ich 2 Onboard. habe ich zum Test im Bios beide> deativiert. Reicht das oder muss ich sie im Windows deinstallieren?
Das kann man leider nicht genau sagen. Das kommt darauf an, was das BIOS
genau tut, um die Karte zu "deaktivieren". Das gilt übrigens auch für
die Schnittstellen. An manchen dieser "Deaktivierungen" kann ein OS
vorbeiarbeiten, ja es merkt nichtmal, dass die eigentlich im BIOS
deaktiviert sind.
Hatte NT4.0 eigentlich schon einen Gerätemanager? Wenn ich mich richtig
erinnere, hatte es einen. Ist schon verdammt lange her, ich kann mich
also auch irren...
Wenn es einen hat, kannst du jedenfalls dort nachschauen, was mit den
"deaktivierten" Geräte los ist, wenn sie wirklich deaktiviert sind,
dürfen sie darin nicht auftauchen.
c-hater schrieb:> Hatte NT4.0 eigentlich schon einen Gerätemanager?
Nö, aber WINMSD.EXE aka. "Windows NT-Diagnose" (irgendwo unter
Programme->Verwaltung).
Man kann doch im BIOS manuell Adressen für Nicht-PnP-Karten reservieren.
Trag doch dort mal die 320 ein.
P.S.: Ach nee, das waren nur IRQ und DMA. Ist einfach zu lange her. ;-)
Das Mainboard war defekt und wurde durch ein baugleiches ersetzt
Habe jetzt in der Windows NT Diagnose nachgesehen, die Adresse ist nur
für die Karte vergeben.
Norbert L. schrieb:> Das Mainboard war defekt und wurde durch ein baugleiches ersetzt
Aha, dann wäre der Test mit der Iteration über die beiden Karten
(jeweils auf 320 gejumpert) zu erweitern. Nämlich mit einer Iteration
über alle verfügbaren ISA-Slots des Boards. Es ist auch durchaus
möglich, dass das Board oder einer der Slots einen Hardware-Fehler hat.
Nun, dann ist halt irgendwas auf dem Motherboard drauf, was die
Decodierung der Adresse 320 verhindert, weil es z.B. selbst antwortet.
Du könntest ein Testprogramm schreiben, das Lesezugriffe auf die
entsprechende I/O-Adresse (und den von den Karten jeweils ausdecodierten
Bereich) durchführt und die gelesenen Werte anzeigt.
Lass' das Programm mit verschiedenen Kombinationen gesteckter und nicht
gestecker Karten laufen.
Am einfachsten dürfte es ein, das Programm als DOS-Programm zu schreiben
und es unter nativem DOS laufen zu lassen, da unter NT ein Programm ohne
passenden Devicetreiber überhaupt keine I/O-Zugriffe durchführen darf.
Wobei mir da die Frage aufkommt: Auf welche Art und Weise kommuniziert
denn Dein Spezialprogramm mit den Karten? Was für ein Devicetreiber ist
da installiert? So etwas à la "giveio.sys"?
Hat dein neues Board eventuell auch eine integrierte Audiokarte?
Die benutzen gerne für MIDI den 320-323h
Eventuell war das ja am alten Board umgesetzt....
Du hast den Rechner getauscht, dort ist eine ISA Bridge verbaut die den
Adressraum verwendet.
Möglichkeit 1: BIOS updaten
Möglichkeit 2: Einen PC mit IT8888 Bridge verwenden, dort kann man diese
Adresse Einstellen.
(Arcnet usw.)
Ich habe aber das baugleiche Mainboard wieder verwendet.
Wenn ich die Adresse 330 statt der erforderlichen 320 verwende, wir die
Karte erkannt. Allerdings kann ich sie dann nicht in Verbindung mit der
Software verwenden, da diese die Adresse 320 erwartet.
Ich gehe davon aus, dass die Sourcen der Software nicht zur Verfügung
stehen?
Es lohnt sich aber wahrscheinlich, mal zu schauen, wie die Software
aufgebaut ist. Welcher Treiber benutzt wird, ob es ein spezieller
Treiber für die Karten ist oder ob nur der IO-Adressbereich dem Programm
'freigeschaltet' wird? - "giveio.sys" wurde schon erwähnt, es gibt noch
Andere...
Prizipiell ist es möglich die alten Binärdateien mit einem Hex-Editor
nach den IO-Zugriffen zu durchsuchen und zu patchen. Normale Programme
waren damals weder verschlüsselt noch mit Prüfsummen gesichert.
WinMSD zeigt nur an, was Devicetreiber anmelden. Wenn aber irgendwelche
Hardware (ohne Devicetreiber) präsent ist, die aus irgendeinem Grund auf
die Adressen ab 320 reagiert, dann bekommt WinMSD das nicht mit.
Norbert L. schrieb:> Wenn ich die Adresse 330 statt der erforderlichen 320 verwende, wir die> Karte erkannt.
Da fällt mir noch was ein: welche Adresskonfigurationen erlaubt die
Karte denn eigentlich insgesamt?
ich hätte damals probiert, die karte in verschiedene slots zu setzen,
die reihenfolge der karten auf dem bus zu tauschen, nach jumpern auf bus
und karte zu sehen, und andere irq zu nehmen..
ich hatte solche probleme vor langer zeit, und manchmal wußte ich zum
schluß nicht, weshalb meine lösung dann funktionierte. denn man
übersieht manchmal eine ursache und behebt sie mit unpassend
erscheinenden mitteln..
Rufus Τ. F. schrieb:> ano baka schrieb:>> und andere irq zu nehmen.>> Und das hätte jetzt was mit dem vorliegenden Problem zu tun?
Wenn der IRQ blockiert ist, kann es auch sein, dass die Adressierung
nicht passt.
Und die Karten müssen schon sehr alt sein.
Am Ende der ISA war auch schon Auto-Config möglich.
Es gab auch Fälle, die nur in einem anderen Slot funktionierten. Das
kann auch mit einem versauten Bussignal zusammenhängen. Die sahen am
Oszi nicht immer besonders schön aus und noch schlimmer waren Karten auf
Verlängerungsadaptern.
@c-hater
ich kann 240-270 und 300-370 einstellen (in 10er Schritten)
@ano baka
hab sie schon an verschiedenen Steckplätzen ausprobiert und auch alle
anderen Karten entfertn...
Norbert L. schrieb:> Ich habe aber das baugleiche Mainboard wieder verwendet.
Das garantiert aber nicht, daß dieses keinen Fehler haben könnTE?
Vergleiche es mal rein optisch ob andere Schaltkreise benutzt wurden.
Du hast nicht zufällig eine CDROM ISA Interface Karte in das Board
gesteckt? Die lagen nämlich gerne auch in diesem Bereich...
300,320,330,340,360h
Von welchem Mainboard reden wir hier eigentlich... ich habe das jetzt
auf die schnelle nicht gefunden.
Welche Karten sind ggf. noch auf das Mainboard gesteckt?
Bilder der BIOS Einstellungen können ggf. ebenfalls hilfreich sein.
Durch die Brust ins Auge: Anwendung durch den Disassembler jagen, IN/OUT
Zugriffe auf die hartcodierte ISA Adresse umbiegen. Mit etwas Glück
liegt alles in einer übersichtlichen abgekapselten Funktion, oder die
Adresse liegt an einer festen Speicherstelle.
Also wenn ich mir das was bis jetzt alles gepostet wurde anschaue...
gibt es meiner bescheidenen Meinung nach nur drei Lösungen
- entweder das neue Board hat eine Macke,
- hat trotz gleicher Bezeichnungen bauliche Unterschiede,
- oder die BIOS Einstellungen zum vorherigen Board sind nicht identisch
und damit wird die Adresse 320h an was auch immer vergeben.
Laut Handbuch sollte sowohl die Prototypenkarte mit Ihrer Adresse 310h
als auch die Adresse 320h zur Verfügung stehen. Ob das Ding nun
Prototypenkarte oder wie auch immer heißt, spielt dabei keine Rolle.
Wahrscheinlich hat Advantech selber mal eine Prototypenkarte angeboten
und die wahr dann auf 310h gelegt.
Torsten K. schrieb:> Also wenn ich mir das was bis jetzt alles gepostet wurde> anschaue...> gibt es meiner bescheidenen Meinung nach nur drei Lösungen>> - entweder das neue Board hat eine Macke,> - hat trotz gleicher Bezeichnungen bauliche Unterschiede,> - oder die BIOS Einstellungen zum vorherigen Board sind nicht identisch> und damit wird die Adresse 320h an was auch immer vergeben.>> Laut Handbuch sollte sowohl die Prototypenkarte mit Ihrer Adresse 310h> als auch die Adresse 320h zur Verfügung stehen. Ob das Ding nun> Prototypenkarte oder wie auch immer heißt, spielt dabei keine Rolle.> Wahrscheinlich hat Advantech selber mal eine Prototypenkarte angeboten> und die wahr dann auf 310h gelegt.
Nachtrag: die Adresse 310h ist per Default für Prototypenkarten gedacht
gewesen. In sofern ist eine Belegung mit der obigen Karte (was auch
immer das für eine Karte ist) kein Konflikt. 320h war und ist von der
Adresse her erstmal generell frei und kann genutzt werden.
Eine kleine wenn auch vielleicht nicht ganz so einfache Möglichkeit wäre
es, nachdem Du den Tipp des vorherigen Posts mal durchgeführt hast, sich
ein von CD ROM bootbares Linux zu ziehen und dann als root das Kommando
cat /proc/ioports
absetzen. Das listet Dir alle IO Ports und ihre Belegung auf.
Voraussetzung ist allerdings ein an das Mainboard angeschlossenes CD ROM
Laufwerk. Über die angeschlossene Peripherie hast Du ja leider nichts
kundgetan oder ich habe es überlesen.
Dann nimmt er das Disketten basierte Trinux und gut ist...
aber auch hier habe ich keine Ahnung ob ein Diskettenlaufwerk
angeschlossen ist. Bis auf das Board das wir seit heute kennen wissen
wir eigentlich fast nichts über das System, seine HW, etc... naja,
stochern wir halt weiter.
Torsten K. schrieb:> cat /proc/ioports>> absetzen. Das listet Dir alle IO Ports und ihre Belegung auf.
Da hast du leider exakt das gleiche Problem wie beim
Windows-Gerätemanager (bzw. dessen NT4-Vorgänger). Angezeigt wird nur
das, wofür sich irgendein Treiber zuständig fühlte, nicht das, was
wirklich so alles in der Hardware vorhanden ist...
Auf jeden Fall sollte man nach dem Einbau einer auf 320h gejumperten
Karte im BIOS mal die Option "Reset Configuration Data" (Seite 48 im
oben verlinkten PDF) aktivieren.
Gelegentlich half es bei solchen Problemen auch, mal mit der Option "PNP
OS Installed" rumzuspielen.
So, ich habe mal mein NT4 zum laufen gebracht.
Leider lebte das ursprüngliche Asus P4 nicht mehr.
Jetzt auf einem PII mit 233MHz und Maus am ser. Anschluß.
Torsten K. schrieb:> sich> ein von CD ROM bootbares Linux zu ziehen und dann als root das Kommando>> cat /proc/ioports>> absetzen. Das listet Dir alle IO Ports und ihre Belegung auf.
Braucht man nicht.
Man kann die Ports unter NT4 direkt ansehen.
Programme/Verwaltung(Allgemein)/Windows NT-Diagnose
Dort kann man die Ports/IRQ/Speicher... ansehen.
TO, wie ist der Stand?
michael_ schrieb:> Dort kann man die Ports/IRQ/Speicher... ansehen.
Auch das zeigt nur das, was ein Treiber für sich reklamiert, nicht das,
was irgendwelche Hardware tatsächlich tut.
michael_ schrieb:> oder Erkennung von Außen
Das ist ja interessant: du siehst einem PC von aussen an, welche
I/O-Adressen von Hardware belegt sind? Wir wüssten auch gern wie das
geht, wenn es nicht allzu geheim ist.
Georg