ISA Plug'n Play | |
JSTML | Wie geht das mit dem ISA PnP ? Irgendwann ist man davon abgegangen fuer ISA Karten mit ein paar Jumpern die Hardwareressourcen vorzugeben. Das war vermutlich zu einfach. Erste Versuche die starren Vorgaben aendern zu koennen, ohne die Karte auszubauen war z.B. bei der CPS Soundblaster 2.5. Dort war ein EEPROM drauf, das man umprogrammieren konnte und so den IRQ und DMA umstellen konnte. (Seltsamerweise blieb IRQ5 hardwaremaessig belegt, wenn man IRQ7 einstellte.) Dazu benoetigte man ein spezielles Programm. ISA PnP wird von modernen BIOS Versionen unterstuetzt (zB Award Plug and Play Bios Extension 1.0A). Dazu hat die ISA Karte ein EEPROM in dem mehrere Konfigurationen der eigenen Ressourcenverteilung gespeichert sind. Unter Win9x nennt sich das 'Basiskonfigurationen'. Die erste Konfiguration ist unveraenderlich und vom Hersteller vorgegeben. Alle weiteren kann man selbst einstellen. Wenn man im BIOS nun PnP OS auf No stellt, versucht das BIOS alle Plug and Play Hardware vorzukonfigurieren. Wenn man es auf Yes stellt, konfiguriert das BIOS nur die zum booten notwendigen Komponenten, wie Grafik und IDE Controller. Der Ablauf wenn man im BIOS PnP OS auf No gestellt hat, ist grob dann so:
Bei den ueblichen Award BIOS kann man das Ergebnis ganz am Ende unter der Box, in der die Konfiguration des Computers steht sehen. Im allgemeinen kann man PnP OS auf Yes stehen lassen und ein Programm nutzen das die Karten spaeter konfiguriert. Bei der SB16 PnP bis AWE64 PnP gibt es da CTCU und CTCM von Creative. Bei Crystal 423x Chips gibt es cs4232c.exe. Bei anderen Karten aehnliches... Leider macht die Software zum Konfigurieren nicht immer das was man wuenscht, und damit kann man durch PnP unter Umstaenden bei jedem booten eine andere Hardwarekonfiguration vorfinden. Das ist nicht akzeptabel. Um dieses Problem zu erschlagen gibt es eine halbwegs funktionierende Strategie. Fuer SB PnP stellt man mit CTCU die zweite BasisKonfiguration auf seine Wunschkonfiguration um. Dann traegt man seine Konfiguration in der ctpnp.cfg direkt ein (ist eine Textdatei) und setzt diese auf Read Only. Nun sollte CTCM immer die Wunschkonfiguration laden. In aehnlicher Weise klappt das auch bei anderen Karten, wobei man notduerftigerweise manchmal den Geraetemanager von Win9x missbrauchen muss um die Basiskonfigurationen festzulegen, da der Kartenhersteller kein Tools zum aendern der Basiskonfigurationen zur Verfuegung stellt. Nun, wenn das BIOS die Hardware konfigurieren kann, sollte es im Prinzip moeglich sein ein universelles Programm dafuer zu schreiben. So ein Programm gibt es und es heisst ISAPNPTools. Geschrieben wurde es, um ISA PnP Karten fuer Linux zu konfigurieren, jedoch existiert auch eine Version fuer DOS. Zu erst laesst man sich mit pnpdump.exe eine Liste der im System vorhandenen ISA PnP Karten ausgeben, am besten in eine Datei mit: pnpdump > mypnp.txt Das Programm generiert in der Ausgabe eine Textdatei die alle Basiskonfigurationen aller installierten Karten auflistet. Diese Textdatei kann man so zusammenkuerzen, dass man sie gleich als Konfigurationsvorgabe fuer isapnp.exe verwenden kann, das dann die Konfiguration der Karten vornimmt. Die Ausgabe startet so: (READPORT 0x0273) Die Readport Zeile sagt isapnp welcher Ausgabeport verwendet wird, um evt. vorhandene ISA PnP Karten zu konfigurieren. Dieser Port wird unter Win9x als eigenes Geraet gefuehrt und heisst ISA PnP Datenleseport (oder so aehnlich ;) ). Falls pnpdump keine (vorhandenen) Karten erkennt, kann man mit pnpdump 0xAAA (A = Adresse) den Datenleseport vorgeben. Die zweite Zeile (ISOLATE) sagt isapnp, dass es die Karten neu erkannt werden sollen (statt die BIOS Liste zu uebernehmen) und dabei deren aktuelle Konfiguration erhalten werden soll (Preserve). Identify * sagt, dass alle Karten nacheinander identifiziert werden. Die Einstellung Fatal bei Conflict gibt an, dass isapnp beim auftreten einer Konfiguration, bei der die gewuenschte Ressource schon belegt ist (oder ein andres Problem aufgetreten ist) abbrechen soll und beim naechsten Geraet weitermachen soll. Nun folgen die erkannten Geraete, fuer einen Crystal 4236 zB: # Card 1: (serial identifier 5d ff ff ff ff 36 98 63 0e) (usw.) als weiteres folgen dann jeweils zwei weitere Basiskonfigurationen mit allen moeglichen einstellbaren Ressourcen. Dies fuer jedes Logische Geraet, der CS4236 hat als logische Geraete zB WSS/SB , GAME, CTRL, MPU, DSP. (Logisches Geraet = Logic Device = LD 0, LD 1 usw.) Nun kommentiert man die gewuenschte Konfiguration aus, Beispiel folgt unten. Nach jedem Logischen Geraet muss man entscheiden ob man es aktivieren will oder nicht. Das wird mit ACT Y bzw ACT N gemacht. Das erste Problem was mir aufgefallen ist, was aber u.U. ein Bug des Programms ist - isapnp liest als Namen der Karte wenn es ein Logisches Device anspricht nur Datenmuell, so dass es meint sie nicht gefunden zu haben. Der Workaround ist, die Karten ueber deren Nummer anzusprechen mit CSN X. (Nachteil: es darf sich nichts an der Reihenfolge aendern). So hier nun das Beispiel fuer die Konfigurationsdatei fuer isapnp.exe mit einer Maxi Sound 64 Home Studio und einer AWE64 auf einem Intel 430VX basierten Mainboard: (ISOLATE PRESERVE) Die Zeile mit CONFIGURE hat dieselbe Bedeutung wie die Zeile mit CSN. Wenn man genau hinschaut faellt auf, dass am Anfang einmal (IO 1 (SIZE 4) (BASE 0x0388)) auskommentiert wurde (Der Port fuer OPL FM Synthese). Weiter unten sieht man, dass auf der AWE64 dieser Port nochmal konfiguriert wird. Dies einzelne auskommentieren scheint zu funktionieren, auch wenn man mit ACT nur vollstaendige Logische Geraete abschalten kann. (vorausgesetzt PnP OS = Yes im Bios). Wenn man nun isapnp.exe mit der Konfigurationsdatei als Parameter aufruft, scheint ersteinmal alles zu klappen, jedoch merkt man schnell dass es doch einige Probleme gibt:
Bleibt die Frage, ob PnP an der Stelle es einfacher gemacht hat. Der einzige Vorteil den ich sehe ist, dass die Software sieht, wo die Ressourcen der Karte sind im Gegensatz zu Nicht-PnP, wo aufwaendige Hardwaresuchen durchgefuehrt werden, bzw. der Benutzer die eingestellten Ressourcen seiner Karte kennen muss. Meineserachtens ist ISA-PnP fuer die Konfiguration der Hardware unter DOS ein Aufwand, der nicht noetig waere. |
Thoughts | |
Artikel | |
Hardware Gallery x86 | |
IBM PC System/2 8580 | |
CBM Rechner | |
HP Gallery | |
Originale / Verpackungen | |
Curriculum Vitae | |
Links | |
alte Seite | |