Beiträge von Lotosdrache

    Fertig wurde die Karte inkl. der beiden Frontpanels schon vor Weihnachten:

    IMG_2361.JPG

    Schon wieder eingestaubte EWS64 XL nach einer Elkokur. Komme einfach nicht dazu, das System fertig zu machen. So viele Dinge, die ich da beachten muß....



    Nun hab ich als Ersatz für die kleinen 10 µF, 63 V Elkos die EB-A Serie von Panasonic genommen, da es in der FR-A Serie keine passenden gibt (max. Spannungsfestigkeit bei 10 µF ist hier 50 V). EB-A sind jetzt keine low ESR Teile, aber die Karte läuft trotzdem.


    Die Antwort geht noch weiter, aber der Grill ist heiß und bevor das Wetter umschlägt...

    grillen4.gif

    Bitte noch nicht Antworten, ich komme gleich wieder...

    ^^


    So, weiter geht's. Wo war ich??? ?(


    Eine Alternative wäre noch die FC-A Serie gewesen mit niedrigem ESR, ich glaube so irgendwas um 0,18 Ohm, wenn ich das richtig verstanden habe. ?(


    Nun bin ich gerade dabei, mein DFI K6XV3+/66 neu zu bestücken. Und weil ich meine Vorgehensweise ja Stück für Stück verbessern möchte, hab ich mich an die Hinweise des Fachmanns CryptonNite aus dem voodooalert-Forum erinnert, daß man Elkos nicht wahllos gegen low ESR ersetzen sollte, sondern typgleich ("Ripplestrom, thermisches Verhalten, Impulsverhalten, usw"):

    - "Man beachte zumindest zusätzlich noch den Ripplestrom, nicht daß es unter Vollast zu unschönen Knall- und Raucheffekten kommt."

    - "Bei der Temperatur muss ebenso aufgepasst werden, da sich die Bauteile sehr stark unterscheiden können. So hat vielleicht ne Type mit 1 mF bei Raumtemperatur die richtige Kapazität, bei 60 Grad Celsius aber vielleicht nur 800 uF. Bei einer anderen Baureihe kann das schon wieder anders sein."

    - "Eine falsche Kapazität kann z.B. wegen Überlast zum Transistortod führen. Ein defekter Transistor bedeutet meist einen Kurzschluss und damit ein enorm großer Strom. Und genau an der Stelle wird dann das Board verbrennen, womit man es wegschmeißen kann."

    - Bei zu hohem ESR läd/entläd er sich zu langsam, bei zu niedrigem ESR "ist ein Kondensator entladen quasi ein Kurzschluss und jenachdem fließt da erstmal alles an Strom rein. Ist der Strom zu groß, dann gibt es Schaden."


    Also hab ich jetzt die entlöteten Elkos des DFI ins Schätzkästchen gepackt, damit ich wenigstens eine grobe Vorstellung bekomme, was verbaut wurde. Interessanterweise waren alle Elkos lt. Schätzkästchen noch in Ordnung:

    IMG_2362.JPG IMG_2363.JPG


    Bei den 10 µF, 25 V Dingern von TEAPO (siehe die beiden, die zusätzlich auf dem Klemmblock liegen) ist mir dann der hohe ESR von 4 Ohm aufgefallen. Wenn ich da jetzt z. B. die FC-A Serie von Panasonic nehmen würde, wäre der Ladestrom nach I=U/R ja etwa 20x höher, sofern ich das alles richtig verstanden habe.


    Das DFI-Board hat jetzt nur 8 dieser 10 µF TEAPO-Teile drauf, die EWS64 XL aber ganze 52, von denen ich nichts mehr weiß.

    Es wäre natürlich auch noch interessant, welchen ESR die TEAPO-Teile (BJ 01/00) lt. Datenblatt eigentlich haben sollten. Wenn also jemand dazu auch noch ein Datenblatt hätte, wäre das schon sehr hilfreich.

    Hat jemand noch eine Terratec EWS64 XL mit originalen, grünen Elkos drauf?

    Mich würde der ESR der 10 µF, 63 V Elkos interessieren, von denen da 52 St. drauf sind. Evtl. geht auch ein Foto von einem dieser Teile, mit dem man dann Hersteller und Typ zur Datenblattsuche ermitteln kann.

    Auf den Fotos von ganzen Karten im Netz ist da nichts Genaues zu erkennen.


    Super spitze wäre es natürlich, wenn jemand eines dieser Dinger auslöten und im Schätzkästchen (Bauteiltester) messen würde.


    Hintergrund:

    Meine Karte produzierte nur noch Quietschen, wenn sie längere Zeit nicht lief, und es brauchte ewig, bis man die Ohrenschützer abnehmen konnte. Inzwischen sind die Elkos getauscht und sie lief auch auf Anhieb. Also hab ich die alten Elkos weggeworfen, waren ja zu nichts Verläßlichem mehr zu gebrauchen.

    Inzwischen, man hört und lernt ja immer was Neues dazu, bin ich mir nicht mehr sicher, ob ich nicht durch den Einbau der falschen Elkos den elektrischen Widerstand der ganzen Schaltkreise zu stark verändert habe.

    Fanhistorie Jetzt kommen wir langsam zusammen :super


    Hier gibt es sonst Stecker und Sockel wie oben mit Wartezeit und schlechter Ökobilanz:

    https://www.aliexpress.com/ite…t.0.0.f9003c00eM2Nzt&mp=1


    Conrad oder Reichelt abholen wäre was :)

    Das sind die falschen Stecker, weil denen das Loch im Führungsnippel fehlt .

    Früher, als ich noch nahe der Münchner Innenstadt gearbeitet habe, hab ich mir mal was bei Conrad über's Internet bestellt und dann in deren Laden in der Innenstadt abgeholt. Geht das heute nicht mehr? Freilich bräuchte ich dann noch jemanden, der auf dem Weg zu Hofbräuhaus einen Umweg einlegt und mal eben 2 Straßen weiter läuft... :rolleyes:

    Fanhistorie

    Danke für Deine Hilfe bei der Suche. :)

    Das ist derselbe Hersteller, den ich oben auch schon gefunden hatte, nur daß der Abstand der Pins bei dem von Dir verlinkten Produkt 5 mm betragt. Die 2,5 mm aus den beiden oberen Links im Beitrag #5 passen schon.


    Dennoch stellt sich mir immer noch die Frage, wo oder wie ich das Zeug in bzw. nach Good Old Germany bekomme, ohne irrwitzige Versandkosten zahlen zu müssen? :rolleyes:

    Dank Storm s Hinweis kam ich zur Berg Connector Wikiseite.

    Dummerweise ist die Berg Electronics Corporation aus St. Louis, Missouri, von Amphenol übernommen worden.


    Über die Links unten auf der Wikiseite kommt man zu TE Connectivity.

    Die könnten passen:

    https://www.te.com/usa-en/product-172487-3.html

    https://www.te.com/usa-en/product-171825-3.html

    https://www.te.com/usa-en/product-4-1971817-3.html


    Aber laß ich mir jetzt echt einen 19-59 Cent Artikel aus den USA schicken??? :grübel


    :S

    Ich hab hier so einen Papst Multifan 4312 GL im Gehäuse, sieht genauso aus wie der bei ebay. Er hat so einen komischen Anschluß, der ausschaut wie ein Floppystecker mit dem Unterschied, daß er nur 3-Adern hat:

    IMG_2355.JPG   IMG_2356.JPG


    Unten in der Mitte hat er noch eine Nase und oben ist der zweite Steg von links erhöht.


    Da er auf keinen Anschluß so richtig gut paßt (mit wohldosierter Gewalt geht er auf einen 3-Pin Anschluß, sitzt aber sehr wacklig) und die Endhülsen an den Adern auch nicht in den normalen 3-Pin Stecker passen, will ich mir nun einen Adapter löten. Abzwicken will ich den Stecker (noch) nicht. Das Problem, ich weiß nicht, wie der Anschluß heißt und wo ich das passende Gegenstück finde.


    Hat da jemand einen Rat für mich?

    Kurz zur Vorgeschichte:

    Ich bin ja schon länger und immer noch auf der Suche nach einer Lösung für mein Verkabelungsproblem bei meinem Infinite AMD (Slot A hier und hier und hier). Inzwischen weiß ich selber nicht mehr genau, welche Abstände die Stecker haben sollten. :S Nun hab ich an Ostern von Alpha Japan den schon lange gesuchten P7125 Kühlkörper für Athlon Slot A geschenkt bekommen:

    IMG_2318k.JPG

    Geschenk von Alpha, Japan: P7125


    Einzige Bitte: Ein paar Bilder des fertigen Systems. :thumbup:


    Das Problem, das System fertig zu stellen, wird also langsam akut und der Kühler darf dann natürlich auch nicht durch tausend Kabel verdeckt sein. ***Backen aufblasen***

    Also hab ich endlich mal den Lindy IDE/SATA-Adapter getestet, der schon seit Weihnachten 2020 bei mir rum liegt. Da aber schon zum zweiten Mal eine Festplatte am Primary Slave meines GA-5AX mit Ausfallerscheinungen auf sich aufmerksam gemacht hat und ich mir nicht sicher bin, ob das Board einen Schlag hat oder das Netzteil Alterserscheinungen zeigt, hab ich mit dem Experiment an diesem Board angefangen.


    Bisher hierher lief die Sache ja ganz nett:

    IMG_2324.JPG

    Gigabyte GA-5AX (ALi Aladdin V) mit 2 Crucial BX500 (120 GB) an SATA-IDE-Adapter :)


    Aber dann kam das hier:

    IMG_2325.JPG

    Der Adapter simuliert wohl nur ein 40-adriges IDE-Kabel, obwohl er bis zur UDMA-7-Spezifikation kompatibel sein soll :(


    Michse sehr traurig:

    IMG_2326.JPG

    Die Bestätigung, daß der Teufel mal wieder im Detail steckt. Die Southbridge kann bis UDMA-4 (UDMA-66), was mit entsprechenden IDE-Festplatten und einem 80-adrigen IDE-Kabel auch funktioniert ;(


    Eigentlich sollte das Chippaar JMicron JMH330/JMH330S keine Probleme mit den schnelleren PATA-Modi haben. Also erst einmal den Support von Lindy kontaktiert, schließlich werben die auch mit UDMA 66 und höher:

    Zitat von Lindy-Support

    treten die BIOS-Fehler auch auf, wenn Sie normale SATA-HDDs (nicht SSD) verwenden? Bitte schließen Sie eine einzelne SATA-HDD (max 32GB) anstelle von 2 SSDs an.


    Bitte beachten Sie auch, dass der ALi Aladdin V/ALi M1543C B1 Chipsatz auf Festplatten mit einer Größe von 32GB beschränkt ist.

    https://www.amd-k6.com/platfor…rives%20up%20to%2032%20GB.

    https://www.anandtech.com/show/72/3


    Punkt 1 -> Ja. Hab ich gemacht, brachte aber nichts, allerdings war meine kleinste SATA-HDD 80 GB groß. Wer hat denn bitte schön schon eine 32 GB SATA-HDD? Gibt's so eine überhaupt?

    Punkt 2 -> Diese Aussage ist in Bezug auf die B1-Version der Southbridge schlicht falsch. Die verlinkten, uralten Artikel beziehen sich auf sehr frühe Versionen des Chipsatzes, weisen aber auch bereits auf die Möglichkeit eines BIOS-Updates zur Unterstützung größerer Platten hin, wie es Gigabyte veröffentlicht hat. Die Größe der Platten ist auch nicht das Problem, sondern der Übertragungsmodus. :bash Bisher wurde bei allen IDE-Platten, die es unterstützten und mit einem 80-adrigen IDE-Kabel angeschlossen waren, problemlos UDMA-66 aktiviert.

    Hab extra dazu geschrieben, daß ich Version B1 auf dem Board habe. Warum laufen denn bitte schön die ganzen IDE-Festplatten mit 80 GB auf dem Board? Gigabyte hat höchstselbst ein passendes BIOS dazu herausgebracht. Und was hat bitte schön die Größe mit dem Übertragungsmodus zu tun???


    Ich hab dem Support extra die Fehlermeldung des BIOS wortwörtlich mit in die Anfrage hinein geschrieben. Also eine glatte Themaverfehlung. :mist


    Laut Wikipedia muß bei einem 80-adrigen IDE-Kabel, das für die schnelleren UDMA-Modi zwingend notwendig ist, Pin 34 innerhalb des blauen Steckers (also auf Seite des Mainboards/Host-Controllers) auf Masse liegen, damit der Host-Controller das Kabel als 80-adrig erkennen und die schnelleren UDMA-Modi aktivieren kann. Des weiteren ist Pin 34 innerhalb des blauen Steckers mit keiner weiteren Ader verbunden. Der graue Stecker (Primary Slave) und der schwarze Stecker (Primary Master) sind normal mit Pin 34 verbunden.https://en.wikipedia.org/wiki/…TA#Parallel_ATA_interface


    Betrachtet man sich den Lindy-Adapter von unten, dann führt Pin 34 zu einer Stelle unterhalb des JMH330S, liegt also vermutlich eher nicht auf Masse, weshalb der Host-Controller von einem 40-adrigen Kabel ausgeht. Für Chipsätze wie den beliebten Intel i440BX wäre das auch ideal.
    Wünschenswert wäre daher ein Jumper, mit dem man Pin 34 wahlweise auf Masse legen oder mit der momentanen Schaltung verbinden könnte, um je nach Fähigkeiten des Host-Controllers ein 80- oder ein 40-adriges Kabel zu simulieren.


    Leider ging der Support in seiner zweiten Antwort nicht weiter auf meine Hinweise ein:

    Zitat von Lindy-Support

    leider hat der Chipsatzhersteller uns mitgeteilt, dass der im 51024 verwendete Chip einige Kompatibilitätsprobleme mit neueren SATA-Laufwerken hat. Insbesondere auf Basis sehr neuer SSDs.

    Das IDE-SATA 51024 ist ein sehr altes Produkt (von 2007) und der Chipsatz ist noch viel älter. Wir empfehlen die Verwendung älterer SATA-Festplatten (nicht größer als 160 GB)


    Wenn eine SATA-Festplatte angeschlossen ist, wird sie vom IDE-Host als MASTER gesehen, die zweite SATA-Festplatte wird dann als SLAVE konfiguriert.

    Änderungen mit Jumper-Einstellungen und neuerer Firmware sind derzeit nicht möglich.

    Noch so eine Themaverfehlung. :mist


    Also hab ich halt mal wieder den Doktor rausgekramt und eine kleine Operation durchgeführt. Wozu hat man schließlich ein Semester lang an Blättern, Pflanzenstielen, Nematoden, Seesternen, Würmern, Mäusen... herumgeschnippelt? :rolleyes:


    Hat etwas gedauert, bis ich dazu gekommen bin, weil ich vorher unbedingt noch ausprobieren wollte, ob DR-DOS auch von Partitionen booten kann, die nicht nach Zylindern, sondern an MiB-Grenzen ausgerichtet sind. Kurze Antwort: Ja, es geht, ist aber etwas tricky hinzubekommen und würde hier jetzt zu weit vom Thema wegführen.


    Also dann, auf an's Werk!

    Schwester, die Bewaffnung für das Auge, das Messer und die Pinzette bitte! ;)

    IMG_2350.JPG

    (Ein scharfes Skalpell wäre sicher besser geeignet als so ein altes, stumpfes Teppichmesser. Aber wichtig ist nur, was hinten raus kommt :P )


    Für den Bypaß kommt goldbeschichteter Silberdraht aus dem Bastelladen zum Einsatz, der noch vom Adventskranz übrig geblieben ist. Die Enden wurden kurz mit groben Schleifpapier bearbeitet für den Fall, daß da Lack drauf ist. Zur Isolierung ein kleines Stück Schrumpfschlauch.

    IMG_2351.JPG


    Dann ging's auch schon los:

    Zuerst wurde die Leitung, die vom Pin 34 zum JMH330S führt, gekappt, dann die Überbrückung von Pin 34 nach Pin 40 angelötet:

    IMG_2349.JPG


    Ergebnis:

    Der Controller bzw. das BIOS beschwerte sich schon mal nicht mehr über ein falsches Kabel:

    IMG_2347.JPG


    Der nächste Schirm zeigte, daß tatsächlich UDMA66 für beide SSDs aktiviert wurde:

    IMG_2348.JPG


    Aber bringt das auch was?

    Vor und nach dem Umbau hab ich ein paar Benchmarks gemacht. Windows98SE wurde dazu neu installiert. Die Partition war an MiB-Grenzen ausgerichtet, 118 GB groß und mit FAT32 formatiert. Allerdings verwende ich nicht die Standardformatierung von Microsoft mit 32 kiB Dateisystemclustern, weil ich die Platzverschwendung nicht mag, sondern formatiere mit 4 kiB-Clustern.

    Die Benchmarks nach dem Umbau wurden einmal mit dem MS IDE-Treiber durchgeführt und einmal mit dem ALi IDE-Treiber 3.56, da HD Tach 2.70 mit dem MS-Treiber immer wieder Bluescreens verursachte. Nach einem Tastendruck arbeitete das System dann weiter und der Benchmark lief durch (manchmal) oder auch nicht (Fifty-fifty Chance). Mit dem ALi-Treiber trat das nicht auf.



    ATTO Disk Benchmark 2.41




    Roadkil's Disk Speed 2.0




    HD Tach 2.70



    Zusammenfassung: Kleiner Draht, große Wirkung?

    Ob der Lindy-Support Recht damit hat, daß die JMicron-Chips Probleme mit neueren SSDs haben, kann ich nicht sagen. Die verwendete Crucial BX500 ist/war jedenfalls nicht die schnellste SSD am Markt und besitzt keinen DRAM-Cache. Die Ursache für mein Problem des falschen Übertragungsmodus ist jedenfalls ein Designfehler im Lindy SATA-IDE-Adapter und keine Inkompatibilität zwischen den JMH330-Chips und den SSDs. Das wird Lindy aber vermutlich nicht zugeben wollen.


    Bringt der Umbau was?

    Mit drei Benchmarkprogrammen kann ich jedenfalls einen Geschwindigkeitszuwachs um knapp das Doppelte in manchen Szenarien messen. Aber wie heißt es so schön: Wer mißt, mißt Mist. Will heißen, beim berühmten "Wie lange braucht Windows beim Booten bis zum Desktop"-Benchmark :Face hab ich gefühlt keine Zeit gespart. Gemessen hab ich's aber nicht. Tests auf VIA MVP3 und AMD Irongate muß ich noch machen.


    Bleibt noch zu erwähnen, daß der Adapter schön kompakt ist und man dadurch, daß er direkt auf die Hauptplatine gesteckt wird, SATA-Kabel verwenden kann statt IDE-Flachbandkabel. Allerdings steht der Adapter senkrecht auf den meisten Hauptplatinen, was je nach Position des IDE-Anschlußes dazu führen kann, daß manche PCI-Slots für lange PCI-Karten (z. B. Voodoo2) blockiert werden. Hier müßte man dann den Anschluß des Adapters umbauen und um 90° anwinkeln. Aber selbst das ist bei manchen Hauptplatinen kein gangbarer Weg, da der Adapter je nach Ausrichtung des IDE-Anschlußes dann nach innen gerichtet sein kann.


    Wenn ihr das Teil verwenden wollt, plant also gut! 8)


    Ach ja: Vielleicht hab ich jetzt, da ich mit dem Adapter so weit fertig bin, auch eine Möglichkeit gefunden, mir ein geeignetes langes IDE-Kabel zu basteln. Stichwort AWG 30... :rolleyes:

    Wenn man so vertieft in eine Sache ist, wie ich zur Zeit in die Analyse von BIOS-Code, ist das schöne daran, daß man gar keine Zeit mehr damit verbringt, sich mit so unwichtigen, nebensächlichen Dingen zu beschäftigen, wie die Menge an Geld, die irgend jemand bereit ist, alter Hardware nachzuwerfen. Noch ein angenehmer Nebeneffekt: Das Girokonto erholt sich. :5er


    Aber manchmal kommt dann halt doch so eine Bettelmail von eBay an und man reibt sich verwundert die Augen:

    KaufNeppsBeiUns.png

    Hier giert jemand nach Verkaufsprovisionen


    Soll ich wirklich 15.000 € für ein Buch ausgeben, daß noch nicht einmal originalverpackt ist? :crazy

    Wie kommen die auf den Preis?

    Mal schaun, wie das hier ausgeht.

    Und was ist es erst wert, wenn es noch nie geöffnet wurde?


    Vor diesem Hintergrund sollte ich vielleicht mal meine kleine Sammlung an Abenteuern und Regelwerken für Das Schwarze Auge neu bewerten.

    IMG_2299.JPG

    Hinter den Büchern unten links (alle Erstauflage) befinden sich die ganz alten Abenteuer beginnend mit #1.

    Die meisten davon doppelt: 1x original verschweißt, 1x geöffnet zum Spielen.

    Zinnfiguren, darunter auch einige aus der ersten Serie, sind nicht auf dem Foto zu sehen.


    Ich nehme jetzt Gebote entgegen, werde aber vermutlich kein einziges davon annehmen. Ist halt wie mit Prozzzessoren :D


    So, jetzt hab Ihr mich die letzten 17 Stunden und einige Minuten aber schon wieder lange genug von meiner eigentlichen Beschäftigung abgelenkt... :rolleyes:

    Danke für die Blumen.

    Aber können tu ich Assembler auch nicht.


    Das letzte Mal, daß ich was mit Compilern zu tun hatte, bevor ich vor zwei Jahren mit Reverse Engineering angefangen habe, waren ein paar Übungen mit Turbo Pascal 6.0 im Mathematikunterricht 9. Klasse. Das ist jetzt 29 Jahre her. Davor gab's noch ein paar Nachmittagsstunden GW-Basic in der 6, 7 oder 8 Klasse auf Rechnern, die noch mit 5,25"-Disketten gebootet wurden. :D

    Ich fange gerade erst wieder an mit dem ganzen Zeugs und alles im Selbststudium, was doch etwas viel ist, auch wenn ich nichts dagegen habe. :)


    Wollte schon vor 20 Jahren wissen, wie so ein BIOS eigentlich funktioniert. Nur haben mir damals noch etwas das Verständnis und die Programme gefehlt und das Internet war noch nicht so informativ wie heute - wenn man an die richtigen Stellen schaut:

    1999: Warum steht überall, daß das 1.048.576-te Byte (= 1 MiB) bei Adresse F000:FFFFh (= F_FFFFh) liegt, wo doch 1.048.576 im Hexadezimalsystem 10_0000h ist?

    - Antwort 2021: Die Zählung und Zuordnung der RAM-Adressen beginnt bei 0 und nicht bei 1. :rolleyes:


    1999: Wie soll der PC an der Adresse F000:FFF0h (F_FFF0h) mit dem Bootvorgang beginnen können, wenn das BIOS lt. Hexeditor doch bloß 128 kiB (= 2_0000h) groß ist?

    - Antwort 2021: Das BIOS wird immer an der höchstmöglichen Adresse innerhalb des Adreßraums der CPU eingeblendet und der Chipsatz sorgt für die korrekte Übersetzung zur Wahrung der Kompatibilität. Oder so ähnlich jedenfalls. Ganz genau hab ich's immer noch nicht begriffen, aber es reicht für den Moment aus. :rolleyes:


    1999: Scheiß Hexadezimalsystem.

    - Antwort 2021: Ist immer noch scheiße. :rolleyes:


    1999: IDA oder Ghidra hatte ich auch nicht, nur einen einfachen Hexeditor names Hex Workshop 2.20, der die Opcodes nicht übersetzten konnte. Und so war mir damals schleierhaft, wo der erste JMP-Befehl bei Adresse 1FFF0h mit Sprung nach FE05Bh eigentlich rauskommen sollte. Schließlich hatte ich gar nicht so viele Bytes im BIOS.

    - Antwort 2021: So langsam lichtet sich die Finsternis. Inzwischen hab ich auch begriffen, daß die Basis bei der Addition relativer Sprünge nicht die Adresse des aktuellen Befehls, sondern die des nächsten Befehls ist. :rolleyes:


    Assembler lern ich dabei eigentlich nur nebenbei mit. Ist quasi ein Abfallprodukt. ;)


    Was mir aber immer noch schleierhaft ist:

    Wie kann ich in IDA ein Segment verschieben, z. B. von FFFF_0000h-FFFF_FFFFh nach F_0000h-F_FFFFh, und die Adressen an die neue Lage anpassen? ?(


    Bisher kopiere ich mir die Stellen mittels Hexeditor raus und importiere sie in IDA als neue Dateien direkt an die gewünschten Adressen. Ist halt kein sehr intuitives Programm diese arbeitende Jungfrau und göttliche Seherin. :S


    Wenn mich da jemand erleuchten könnte. :)


    EDIT: Gestern abend hat das mit dem Verschieben und der Anpassung der Adressen mal funktioniert. Jetzt muß ich nur noch herausfinden, wie ich es gemacht habe und was der Unterschied zu früheren Versuchen war, bei denen es nicht geklappt hat. :S

    Hab eben eine E-Mail bekommen:


    Zu Eurer Beruhigung, zu Eurem Erschaudern oder was auch immer Ihr so fühlt, ich hab Euch nicht vergessen! :evil:


    Es ist nur so, daß ich gerade sehr beschäftigt bin und nur wenig Zeit habe, mich um Euch zu kümmern. Also, macht keinen Scheiß! :dududu


    Hab ja letztens mal erwähnt, daß ich für jemandem aus dem voodooalert.de Forum versuche, ein BIOS für ein Intel X58 Express-Board (Core i7, Nehalem, Westmere, Xeon 5600, Gulftown) zu hacken. Ich war auch schon auf einem guten Weg hin zum Ziel im zweiten Speicherbild, doch dann kam das hier


    DisassembleP6T - 2.png

    Zweites Speicherbild: POST-Modul relokalisiert nach F000 im RAM, Relokalisation des BIOS


    und ich bin aus dem Stack geflogen. X/ Ab Adresse F000:027F zieht er mehrere Werte vom Stack runter: 7 Werte in die General Purpose Register (EDI, ESI, EBP, EBX, EDX, ECX und EAX) und je einen Wert in die Segmentregister DS und ES. Dann kommt ein RETF. Dazu hätte ich nun die nächsten beiden Werte auf dem Stack gebraucht, die ich aber (noch) nicht hatte, obwohl ich sie hätte haben müssen.

    Mir war schon ganz am Anfang nicht ganz klar, an welcher Stelle der Stack eigentlich initialisiert wird. Daher hab ich erst einmal ohne die ersten Werte angefangen, was bis hierher auch ganz gut lief. An diesem Punkt bin ich dann aber doch noch einmal zurück zum ersten Speicherbild gegangen und habe dort die frühe Bootphase erneut analysiert. Dadurch wieder einiges mehr verstanden und auch die Initialisierung des Stacks gefunden, nachdem ich ein paar voreilige Codeinterpretationen rückgängig gemacht hatte.

    Das ganze ist halt sehr zeitaufwendig trotz Anleitung. Die bezieht sich auf den älteren Intel X48 Express-Chipsatz, aber die grundlegenden Schritte sind (fast) identisch. Hier und da sind bei dem neueren BIOS ein paar zusätzliche Funktionen vorhanden. Zwecks Übung versuche ich aber auch die zu verstehen. Meistens sind es nur Konfigurationsroutinen für die CPU (System Address Decoder, MSRs) oder den Chipsatz (Low Pin Count Interface Brigde). Die Angaben zur LPC waren leider nicht im X58-Datenblatt und so habe ich sie mal aus dem Datenblatt zum neueren X79 Express-Chipsatz geklaut. Scheint identisch zu sein... :/ Glaube ich jedenfalls... :/ Zumindest sieht es nicht ganz sinnlos aus... ?(


    Bin jetzt durch den Bootblock im Segment 8000 wieder durch und zurück im POST-Modul bei F000:0000, wo ich am Ende der Relocate_BIOS_Binary-Funktion rausgeflogen bin. Dieses Mal mit dem Stack. So wie es aussieht, hat mir gar nicht so viel gefehlt. Ich hätte ihn einfach besser mitschreiben sollen. X/  :mist

    Hackschnitzel.png

    Zwei Bildschirme 1280x1024 + 1440x900 sind einfach zu wenig. Ich könnte locker noch zwei füllen :rolleyes:


    Ich hätte das gerne bis zum Frühjahr fertig, weshalb ich noch eine Zeit lang etwas rar hier sein werde. Für dringende Fälle ist eine E-Mail-Benachrichtigung für PMs eingerichtet. ;)


    Bis die Tage und paßt gut auf Euch auf!

    :)

    Gibt es eigentlich ein Buch, in dem die x86-Befehle zusammengefaßt und erklärt sind?


    Von 8086 bis möglichst weit in die 64-bit Ära hinein. Erklärungen auf Deutsch mit Beispielen wären toll, Englisch geht aber auch (zur Not). Mehr muß nicht drinnen stehen, also kein DOS, kein Windows. Ein reines Nachschlagewerk für Assemblerbefehle.

    mov, and, or, call, jmp, loop, rep und so kann ich ja inzwischen. Aber manchmal taucht halt auch immer wieder mal so was auf wie bts, rdmsr, wrmsr oder anderes.

    Bisher bemühe ich dafür immer die Suchmaschine, weil keine Seite alle Befehle erklärt. Da muß ich dann erst wieder zwei drei Seiten anklicken, bis ich die richtige gefunden habe, die den Befehl vernünftig erklärt und nicht einfach irgendwelche Forumsbeiträge auflistet, wo zufälligerweise das Stichwort drin vorkommt. :rolleyes: Das nervt und ich bin halt mehr ein Bücherwurm, dem das ständige Hin- und Herklicken zwischen verschiedenen Fenster auf den beiden kleinen Bildschirmen noch mehr auf die Nerven geht. :S

    Versucht hab ich noch gar nichts. Das sind erst einmal Vorüberlegungen. Die Zeit, Du weißt schon, ist knapp und so viel zu tun... :rolleyes:

    Werd mir das Datenblatt zum HTK320 bei Gelegenheit mal anschauen.

    *seufz*

    Da muß ich wohl noch über ein paar andere Möglichkeiten nachdenken, dem HT-12 zu Leibe zu rücken. ||


    BTW. in deinem obigen Beispiel sind das 256*65536 Durchläufe.

    Ich meinte 65536 Ausgabedateien (= Kombinationen aus Index- und Datenport) mit je 256 Werten drinnen, die man irgendwie automatisiert per Skript vergleichen müßte. Ja, war etwas ungenau geschrieben. :S

    Was ich meinte, war, daß das Programm nichts in die Register schreiben soll.

    Ich dachte mir den Scanmodus zum Finden des Leseports als eine Art Brutforceangriff, wenn alles unbekannt ist, etwa so:


    Indexport = 00h (variabel)

    Datenport = 00h (variabel)

    Register = 00h

    :Label1

    Eingabe Register auf Indexport

    Einlesen der Daten von Datenport

    Schreibe Daten in Datei "IndexportDatenport.txt" (z. B. IA8hDA9h.txt)

    Register + 01h

    :Loop Label1 bis Register = 100h (ausschließlich)

    Register = 00h

    Datenport + 01h

    :Loop Label1 bis Datenport = 100h (variabel)

    Register = 00h

    Datenport = 00h

    Indexport + 01h

    :Loop Label1 bis Indexport = 100h (variabel)


    Dann ändert man was im BIOS und läßt das noch einmal laufen.


    Ergäbe mit den Beispielen die Kleinigkeit von 65536 Kombinationen pro Lauf, die man dann miteinander vergleicht. :S Von daher wäre es hilfreich wenn man den Scanbereich von Index- und Datenport bei Programmstart angeben kann, damit's nicht so viel auf einmal wird.