Eigener Treiber für OPTi 929 Soundkarten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Eigener Treiber für OPTi 929 Soundkarten

      Vielleicht erinnert ihr euch noch, als ich letztes Jahr meine Soundkarten getestet und hier im Forum vorgestellt habe, ärgerte ich mich mit den "typischen" Problemen der Soundkarten mit der Kombination aus OPTi929 und einem Windows Sound System Codec herum. Dabei fand ich heraus, dass bestimmte Treiber und teilweise auch verschiedene Treiberversionen eines Herstellers mit bestimmten Codecs (AD1848, AD1845, Codecs von Crystal) besser oder schlechter funktionieren. Auch der häufig zu lesende Tipp, diese Soundkarten erst mit dem eigenen und anschließend nochmal mit den MAD16 pro Treibern von OPTi zu initalisieren, deutet ja bereit darauf hin, dass es mehr an der Software, als an der Hardware liegt.
      Aber es lohnt ja nicht zu meckern, besser machen ist angesagt. Und iImmerhin ist das ja nur ein kleines Programm, dass Codec und Controller mit den richtigen Werten füttert, damit der OPTi-Chip Sound Blaster Befehle in solche für das WSS-Codec übersetzen kann. Das sollte man doch auch selber hinbekommen können!
      Das Windows Sound System reizt mich als interessantes Stück Hardwaregeschichte (Microsoft vs. Creative) und ich wollte eh mal wieder etwas hardwarenah unter DOS programmieren... Also suchte ich mir die Datenblätter zusammen, fand auch noch den sehr hilfreichen Quellcode eines MAD16 Treibers für Linux und setzte mich an meinen 486er.... :tasskaff je nach Zeit, Lust und Laune habe ich da immer mal dran weiter geschrieben.... und hier ist er nun:

      Dragonspheres Treiber für OPTi 929 Soundkarten!

      Stand 14.02.2019: Version 1.2

      OPTi929 Treiber 1.2.zip


      Ich habe das ganze in drei Programmen umgesetzt:

      929INIT.EXE Initialisiert die Soundkarte und schaltet zwischen SB und WSS Modus um. Anders als beim originalen Treiber von OPTi geht der Wechsel zwischen SB (Pro) und WSS Modus einfach per Kommandozeile (929INIT.EXE /WSS bzw. /SB). Man kann sich also praktische Batch-Dateien für Spiele mit WSS Unterstützung basteln.

      SETUP.EXE Hier lassen sich alle Einstellungen vornehmen, deutlich mehr als bei den Originaltreibern. Es lässt sich einstellen, ob der SB PRO Modus in Mono oder Stereo initialisert wird, welche Sound Blaster DSP Version ausgegeben wird und vieles mehr, was die Kompatibilität mit Spielen beeinflusst. Auch lässt sich direkt testen, ob sich die Karte mit den vorgenommenen Einstellungen initialisieren lässt.
      Beim Beenden bietet das Setup die Möglichkeit, automatisch die SET BLASTER Anweisung in der Autoexec.bat anzupassen und 929INIT dort einzutragen.

      MIXER.EXE Ein komfortabler Mixer. Die WSS kompatiblen Codecs haben zwei interne Eingänge, mit denen normalerweise der FM-Chip und CD-Audio verbunden sind . An welchem Eingang was angeschlossen ist, haben die Hersteller der Soundkarten unterschiedlich umgesetzt. Daher habe ich hier die Möglichkeit eingebaut, Musik über den OPL-3, ein Sample und einen Midi-Testton (ein C-4 mit dem Piano) über MPU401 oder Wavetableheader abzuspielen, um alles ausprobieren zu können.
      Der Mixer liest beim Start die aktuellen Werte vom Chip, zeigt also die momentan eingestellte Lautstärke an. Mit F1 lassen sich die zuletzt gespeicherten Einstellungen laden. Beim Beenden mit ESC werden die Einstellungen gespeichert. Von 929INIT wird die zuletzt gespeicherte Lautstärke auch beim Start des Rechners eingestellt.
      Auch der Mixer nimmt Parameter direkt von der DOS Kommandozeile an: Mit Mixer.exe DAC 100 100 lässt sich z.B. die Lautstärke für die Ausgabe von Samples auf 100% (links und rechts) setzen.


      Mit der letzten Version ist noch ein viertes kleines Programm hinzugekommen:

      SBFIX.COM
      ist ein kleines TSR-Programm, das den Sound Blaster Pro Mixer im Auge behält und in den Stereo-Modus zwingt. Der OPTi 929 verhält sich nämlich in einem Punkt anders als ein "echte" SB Pro: Werden im Sound Blaster Modus Audiodaten in Stereo ausgegeben, schaltet der Chip nach erfolgter Wiedergabe wieder auf Mono. Manche Spiele, z.B. Duke Nukem 3D, schalten vor jeder Soundausgabe auf Stereo um, die funktionieren auch super mit dem OPTi-Chip, andere, z.B. Descent, vertrauen darauf, dass der Mixer im Stereo Modus bleibt und es wird nur das erste Sample in Stereo ausgegeben, alle weiteren dann nur in Mono. Hier hilft dann dieses kleine Programm.
      SBFIX braucht ca. 2 KB Speicher, kann aber per LH (Load high) Anweisung in der Autoexec problemlos in den oberen Speicher geladen werden.

      Zur Installation einfach den Treiber in ein beliebiges Verzeichnis kopieren und Setup ausführen.

      Ich würde mich freuen, wenn der ein oder andere von euch den Treiber ausprobiert und mir eine Rückmeldung gibt, was funktioniert und was nicht und wo ich noch etwas verbessern kann.


      Mit dem Treiber getestete Karten:

      Miro FM10:
      Alle meine Spiele erkennen die Karte als SB Pro. Wichtig ist die "Sound Blaster Volume Control" bzw. "Automatic volume contol" auszuschalten. Dann laufen auch Hocus Pocus und Black Thorne, die mit dem Originaltreiber Probleme machten. Leichte Soundaussetzer gibt es bei einigen Spielen, bei denen die Daten für die Soundeffekte mit ADPCM komprimiert sind (Duke Nukem 2) und bei Spielen, die das Loudness Sound System verwenden (Dig it!, Tyrian...). Grund scheint das AD1848 Codec zu sein, welches nur sehr begrenzt komprimierten Audiodaten unterstützt.

      Shuttle HOT 233 ( Spacewalker Sound System 48 plus):
      Läuft sehr gut mit meinem Treiber. Sound gab es in jedem getesteten Spiel. Auch ADPCM funktioniert mit dem AD1845 Codec deutlich besser.
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )

      Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von Dragonsphere ()

    • super! :thumbsup: Tolles Engagement was Du da an den Tag legst @Dragonsphere! Und dass Du unser Forum hier zuerst damit verwöhnst macht mich schon sehr stolz! ^^

      Leider wartet jetzt eine 6-Tage-Woche auf mich. Arbeitsmäßig. Ich hatte jetzt 4 Tage frei und da hätte das Testen des Treibers gut gepasst. Hab mir die ZIP aber
      trotzdem sofort gierig gezogen. Werde es frühestens kommenden Sonntag ausprobieren. Da ich immer noch keinen Testrechner habe muß eine laufende Kiste
      auf den OP. Aber das ist es wert!

      Die Miro-Tröten sind ja bekannt für ihren tollen Klang (wenn sie denn laufen) und leider auch für ihre Hakeligkeit. Darum wirst Du wohl über kurz oder lang vielen
      überzeugten und genervten Usern einen großen Dienst getan haben!
      Danke schon mal! :Bier
      vG; Daryl_Dixon
    • Hui, ein komplett selbstgeschriebener DOS-Treiber! Nicht übel, gar nicht übel! :we-are-not-worthy
      Leider hab ich keine Karte mit Opti929A-Chip, "nur" eine PCM12 Rev.E mit 924er, sonst würde ich Dein Meisterwerk mal auf Herz und Nieren durchchecken :D
      Ich nehme mal nicht an, dass Dein Treiber mit anderen OPTis auch läuft???
    • ich glaub ich hab nur ne Karte die mit opti924 läuft, aber cool dass es Leute gibt die noch neue Treiber entwickeln :)
      Chaintech 486SPM// X5 133Mhz // 16MB RAM // Riva128 // GUS2.4 & AWE32// 2GB SD & 4GB WD // 17" CRT
      Tyan S1564 // P1-233MMX // S3 4MB // AWE64 Gold mit Roland SC-55 // 128MB SOD + 4GB HDD
      Der DosReloaded YT Kanal ! :thumbsup:
      :!: Verkaufe: ==Mein Verkaufsthread== <---update 10/2018
      :?: SUCHE Bigbox Games aktualisiert <---update 1/2019
    • Danke für das viele Lob! Das war einfach mal eine interessante Herausforderung, die sich nur an einem echten DOS-PC und mit original Hardware lösen lässt. Obendrein lernt man etwas über die Funtion alter Hardware. Da kommen Spaß und Engagement doch von ganz alleine. :D

      Geschrieben und getestet wurde der Treiber übrigens auf einem 486er DX4 mit 100 MHz. Das ist also die Referenz und auf anderen Systemen könnten die Programme entsprechend zu schnell oder zu langsam laufen. Allerdings habe ich bewusst auf jeglichen 386er Assemblercode verzichtet, sodass theoretisch auch ein 286er ausreichen sollte. Da könnte dann aber der Bildaufbau der Menüs im Setup und beim Mixer etwas dauern... Eventuell setze ich das noch in reinem Assemblercode um. Vieles im Quellcode ist da noch nicht optimiert.


      tom4dos schrieb:

      Ich nehme mal nicht an, dass Dein Treiber mit anderen OPTis auch läuft???

      Die OPTi-Chips haben ein "Passwortregister", das zum einen zur Identifikation des Chips dient und zum anderen unbeabsichtigten Zugriff auf die Soundhardware verhindert. Wahrscheinlich wird der Treiber also einen 924 einfach nicht als 929 erkennen, da er ihn mit dem falschen "Passwort" anspricht, selbst falls der 924 ansonsten registerkompatibel mit dem 929 sein sollte. Wenn ich die Zeit finde, gucke ich mal nach, worin sich beide unterscheiden und ob der 924 ohne großen Aufwand mit zu integrieren ist. Ich habe aber keine Karte mit Opti924 und kann es daher selber nicht ausprobieren.
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Dragonsphere ()

    • Ich finde das Megageil, einfach mal so nen Treiber zu programmieren :)

      Auch wenn ich keine opti Soundkarte besitze, meinen vollsten Respekt hast du.
      Compaq Deskpro 286n/12MHz - 1MB - 40MB HDD - 3,5" Floppy //
      Panatek 386DX33 - 80387 - 8MB - 504MB CF2IDE - 5.25" & 3,5" Floppy - SB Vibra - NIC - 512Kb VGA //
      486DX2-66 - 16MB - 4GB CF2IDE - 5,25" & 3,5" 2,88MB Floppy - DVD - SB Vibra - NIC - 1MB CL VLB VGA //
      Intel Pentium 233MMX - 64MB - 4GB CF2IDE - 3,5" Floppy - 48x CD-ROM - ESS 1688 - NIC - 4MB ATI Rage II - 3Dfx V1//
      Intel Pentium III 600MHz - 256MB - 4GB CF2IDE - 3,5" Floppy - DVD - SB AWE64 - NIC - 3Dfx Voodoo 3 3000 //
    • So, pünktlich zum Wochenede gibt es hier schon ein erstes Update. :D
      Ich habe mich in den letzten Tagen nach Feierabend noch ein paar Feinarbeiten an dem Treiber vorgenommen.

      Änderungen:

      - Zum Testen können im Mixer jetzt Samples auch im WSS Modus abgespielt werden
      - Im Mixer kann jetzt auch ein Testton über den Wavetableheader, die MPU 401 Schnittstelle abgespielt werden

      - Im Setup habe ich einige Einstellungen umbenannt und die Sortierung geändert. Ich hoffe, die Bezeichnungen sind nun verständlicher.
      - Der Hardwaretest im Setup wurde grundlegend überarbeitet.

      - Diverse kleiner Bugfixes und Anpassungen an den Texten
      - 929INIT.EXE hat ja bisher sehr viele Details am Bildschirm angezeigt (das half mir bei der Fehlersuche), nun gibt es mit /Q einen "Quiet Mode" und es wird nur noch das Copyright angezeigt.
      Sieht beim Start des Computers einfach besser aus :)

      Ich habe Startbeitrag editiert und dort die neue Version eingfügt. Das werde ich auch in Zukunft so halten, damit man nicht lange im Thread suchen muss.
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )
    • Noch kurz ein paar Infos:

      Installation:
      Einfach die Dateien ins Hauptverzeichnis von C: oder in einen Ordner kopieren, den ihr in der PATH Variable in der Autoexec ergänzt.
      Dann nacheinander Setup und Mixer ausführen und die Einstellungen vornehmen und testen. Gespeichert werden die beim Beenden automatisch.
      Dann noch 929INIT /INIT /Q in die Autoexec eintragen und die SET BLASTER entsprechend eurer Einstellungen anpassen.
      Das Verzeichnis in der PATH Variable stehen zu haben hat den Vorteil, dass ihr dann jederzeit und aus jedem Ordner mit 929INIT /SB bzw. /WSS zwischen Sound Blaster und WSS wechseln könnt.
      Damit lassen sich dann auch einfach Batchdateien für einzelne Spiele erstellen, die vor bzw. nach dem Spiel den Modus wechseln.

      Einstellungen im Setup:
      Ihr könnt im Setup neben den Standardeinstellungen, wie Port, DMA und Interrupt, unter dem Punkt "Erweiterten Optionen" auswählen, ob der Sound Blaster Modus standardmäßig mit 22.05 kHz stereo or 44.1 kHz mono initialisiert wird. Das macht für manche Spiele (Hocus Pocus z.B.) einen wesentlichen Unterschied für die Soundkartenerkennung aus. Darunter lässt sich auch auswählen, welcher Kristall auf der Karte für die Berehcnung der Sampleraten im SB Modus verwendet werden sollte.
      Normalerweise benutzen die Codecs beide Kristalle (16 und 24 MHz) dafür, aber manche älteren Spiele scheinen besser damit zurecht zu kommen, wenn hier nur der mit 16 MHz ausgewählt wird. Falls ihr bei einer dieser Soundkarten Probleme mit zu schnell / unvollständig abgespielten Samples in manchen Spielen hattet, hilft es hier auf 16 MHz umzustellen. Wolfenstein 3D ist hier so ein Kandidat.
      Standardmodus meint hier übrigens, in welchem Modus sich die Karte nach dem Initialisieren, z.B. nach dem Start des Computers, befinden soll. Ansonsten kann hier noch zwischen OPL3/OPL4 ausgwählt und auch das Timing der FM-Chips umgestellt werden (OPL3/4 Chips können in einen KOPL2 Kompatibilitätsmodus gesetzt werden). Unter den Basiseinstellungen für den Sound Blaster lässt sich auch die DSP Version auswählen, für die sich der OPTi Controller ausgibt.

      Mit F2 werden die Einstellungen gesetzt und das Programm versucht, WSS, Sound Blaster, FM-Chip und Wavetable (sofern aktiviert) zu erkennen. Klappt das nicht, könnt ihr mit F1 einfach zurückgehen und die Einstellungen anpassen.

      Der Mixer sollte Selbsterklärend sein ;)


      matze79 schrieb:

      Geilomat! echt toll gemacht, blöd nur meine Karte geht nun zu nicetux
      Ich hab nur eine OPTI 924 mit OPL3 Clone.
      Na, dann kann sich der @nicetux aber freuen. Neue Karte und gleich passende Software im Forum dazu!

      Der 924 ist dem 929 anscheined sehr ähnlich. Im Wesentlichen wurde Plug and Pray hinzugefügt. Die Chancen stehen also gut, dass ich euch auch einen OPTi 924 Treiber zusammenbasteln kann.
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )
    • Absolut Spitze. Danke für dieses Engagement, einen Treiber zu entwickeln ist jetzt auch nichts was man einfache mal so nebenbei macht.
      Dann freue ich mich umso mehr wenn die Miro bei mir eintrifft. :D
      Meine Vintagerechner: XT (NEC V20) #-# Epson XT portable #-# HighScreen 286@16MHz #-# L&P 286-20MHz #-# Cyrix 386DRx²-33/66 #-# ESCOM Black Slim Am386DX@40MHz #-# IndustriePC Am5x86-133 #-# Cyrix 5x86@100 VIP #-# Libretto 50CT #-# && 1x Sockel 8 & 3x Sockel4 (60MHz + 66MHz)
    • So, Version 0.8 ist online. :)

      Ich habe die Routinen zum zeichnen der Menüs jetzt komplett in Assembler umgesetzt, damit die etwas schneller / flüssiger laufen. Damit sollten das Setup und der Mixer auch auf einem 386er und 286er gut zu benutzen sein.

      Ansonsten gibt es ein paar neue Funktionen:

      Im Mixer werden die Lautstärken jetzt auch in Prozent angezeigt. Außerdem lassen sich, neben FM-Musik und einem Sample, über den "Wavetable" Button Midi Noten abspielen.
      Ihr könnt die Lautstärke jetzt auch über die Kommandozeile anpassen: "Mixer.exe DAC 100 50" würde z.B. die Lautstärke vom DAC Links auf 100% und Rechts auf 50% setzen.

      Die Prüfung der Einstellungen im Setup wurde komplett überarbeitet. Jetzt werden auch der eingestellte DMA-Kanal für das WSS und Midi/MPU401 getestet.
      Dann habe ich noch ein paar kleine Fehler ausgebessert, die sich ja irgendwie immer einschleichen.


      Mit Ausprobieren von verschiedeen Einstellungen im Setup habe ich jetzt fast alle Spiel zum Laufen gebracht, die vorher mit den Soundkarten nicht wollten.
      Nur Tyrian ist noch zickig und will keinen Sound Blaster erkennen, läuft aber im WSS Modus einwandfrei mit 16 Bit 48 KHz und Stereo.
      Also nicht wirklich ein Problem und der Modus lässt sich ja jetzt auch bequem per Kommandozeile umschalten. Das ärgerte mich bei den originalen Treibern immer sehr, dass da das Umschalten per SB und WSS nicht über die Kommandozeile geht.

      Jetzt kann ich mir für Spiele, die WSS unterstützen, einfach kleine Batchdateien machen und habe Ruhe. :D

      Ich bin jetzt bestens zufrieden mit meinem eigenen kleinen Treiber für die Soundkarte, der all das kann, was ich vorher vermisst habe. Für mich hat sich der Aufwand auf jeden Fall gelohnt und ich hoffe, ich habe auch hier dem ein oder andern Frust mit seiner Soundkarte erspart.

      Der Mixer läuft übrigens nicht über den OPti Controller sondern direkt über den Codec und sollte auch mit anderen Karten funktionieren, die ein WSS kompatibles Codec haben (Analog Devices AD184x.... Crystal CS423x).
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )
    • Und jetzt noch support füe den opti924 und gut ist xD

      Ein all in one treiber, das wär was!
      Chaintech 486SPM// X5 133Mhz // 16MB RAM // Riva128 // GUS2.4 & AWE32// 2GB SD & 4GB WD // 17" CRT
      Tyan S1564 // P1-233MMX // S3 4MB // AWE64 Gold mit Roland SC-55 // 128MB SOD + 4GB HDD
      Der DosReloaded YT Kanal ! :thumbsup:
      :!: Verkaufe: ==Mein Verkaufsthread== <---update 10/2018
      :?: SUCHE Bigbox Games aktualisiert <---update 1/2019
    • Yes! Hab doch noch eine Spacewalker hier mit 929A, die wandert dann vielleicht wirklich in den aktiven Dienst.
      Bisher gingen die Karten mir nur auf den Sack. Aber wenn Treiber mit Hirn geschrieben werden gibt das Hoffnung :D
      "The best way to deal with an electric shock is to make sure nobody sees you get it." -Clive (bigclivedotcom)
    • Respekt!

      Muss ich mal schauen welche Opti ich hab und werde das mal testen.

      Ich hab einen heiden Respekt vor Assembler!

      :we-are-not-worthy
      :freak RetroComputerPoPe - Dr. (Ehrenhalber) Darius von Bernstein - Grünstein - Lötstein :freak

      * Bezwinger der EIZO ( ͡° ͜ʖ ͡° ) *

      Päpstlicher DOSianer mit mittlerweile jeder DOS-Architektur (XT/286/386/486/586/686...)
      Status: Don't mess with the RetroPoPe / Erweiterter Amateur mit der unoffiziellen Bräter-Lizenz *g*
    • Könntest du auch einen Treiber Schreiben der Port Adressen mappt ?

      z.B. 0C0h auf 2c0h oder 1E0h wählbar ? mit qemm ist das machbar.

      Würde dir im Gegenzug eine der Tandy Soundkarten zur Verfügung stellen.

      Der Primäre nutzen davon wäre die Karte auch in neueren Geräten mit ISA Slot nutzbar zu machen auf der Original Tandy Adresse.
      Ohne die Spiele patchen zu müssen. (Abgesehen von denen die nach einen Tandy BIOS suchen.)
      Suche Nexgen 5x86 ^^
    • Wow! Am Wochenende muss ich den neuen Treiber mal testen. Wirklich ganz großes Lob @Dragonsphere für die Arbeit!


      Super idee @matze79

      matze79 schrieb:

      (Abgesehen von denen die nach einen Tandy BIOS suchen.)
      Wernn man den Tandy BIOS String dann in den noch nicht existenten Treiber mit unterbringen könnte, würden die doch auch gehen? oder seh ich das falsch? So ähnlich machen das doch auch dieser Tandy Emulator.
      Verrückter DOS-Liebhaber mit diversen PC-Generationen.
      Meine Lieblinge: IBM Rechner, 386er sowie 486er mit VLB :thumbup:
    • Jigo schrieb:

      Und jetzt noch support füe den opti924 und gut ist xD

      Ein all in one treiber, das wär was!

      Probier es mal hiermit 924.zip :D Kleines Geschenk zum Wochenende.

      Da ich selber keine Karte mit 924er habe, habe ich keine Ahnung, ob de Treiber überhaupt funktioniert. Ich habe einfach ins Datenblatt geguckt und den Treiber für den 929 entsprechend abgeändert.
      Der 924 ist mit dem 929 registerkompatibel, daher war das jetzt keine große Sache. Allerdings unterstützt der 924 Plug and play, kann Einstellungen auf einem EPROM speichern und hat zusätzliche Register für automatisches Regulieren der Lautstärke, eine eine Funktion namens "Wave" ?( und noch andere Features. Auch kann die Lautstärke über einen Interrupt reguliert werden, den man im Chip aktivieren kann. Plug and play kannst du jetzt im Setup ein/ausschalten, den Rest habe ich jetzt einfach mal ignoriert.
      Berichte bitte mal, was deine Karte zu diesem Treiber so sagt...

      Übrigens ist es bei den OPTis wie auch bei den Codecs so, dass eine kleinere, hintere Zahl ein neueres Modell bezeichnet. Also ein 82C924 ist z.b. neuer als ein 928er oder 929er und bei den Codecs ist ein AD1845 moderner als ein AD1848 usw. Die 93x von OPti sind dann aber wieder eine neue Serie und moderner als die 92xer.


      matze79 schrieb:

      Könntest du auch einen Treiber Schreiben der Port Adressen mappt ?

      z.B. 0C0h auf 2c0h oder 1E0h wählbar ? mit qemm ist das machbar.

      Würde dir im Gegenzug eine der Tandy Soundkarten zur Verfügung stellen.

      Der Primäre nutzen davon wäre die Karte auch in neueren Geräten mit ISA Slot nutzbar zu machen auf der Original Tandy Adresse.
      Ohne die Spiele patchen zu müssen. (Abgesehen von denen die nach einen Tandy BIOS suchen.)

      Interessante Idee, aber bsolut keine einfache Sache. Du bräuchtest dann also so ein TSR, wie beim OPL2LPT?

      Ich guck mir das bei Gelegenheit mal an, Ports abzufangen ist absolut nicht einfach und mit QEMM habe ich bisher noch nichts gemacht.

      Ranger85 schrieb:

      Wernn man den Tandy BIOS String dann in den noch nicht existenten Treiber mit unterbringen könnte, würden die doch auch gehen? oder seh ich das falsch? So ähnlich machen das doch auch dieser Tandy Emulator.

      Der String steht ja im Tandy BIOS im ROM, also an einer festen, unveränderlichen Adresse. Ein eigenes Programm wird aber irgendwo in den Speicher geladen, daher klappt das nicht.
      Ein Emulator emuliert ja auch das komplette Bios an der richtigen Stelle.

      Darius schrieb:

      Ich hab einen heiden Respekt vor Assembler!
      Dafür bist du unangefochtener Meister des Smoketests und vor deinen Lötkünsten und heilenden Händen für alte Hardware habe ich wirklich Respekt! :)

      Und Assembler ist doch gar nicht so schwer:

      Quellcode

      1. mov ax, 3 ;Grafikmodus 3, den 80x25 Textmodus setzen
      2. int 10h
      3. mov ax, B800h ;Segment des Grafikspeichers für den Textmodus (Farbe)
      4. mov es, ax
      5. mov di, 4000 ;Anzahl der zu zeichnenden Zeichen
      6. mov al, 1 ;ASCII Zeichennummer
      7. mov ah, 1 ;Attribut 1 (Blau auf Schwarz)
      8. std ;Wir zählen rückwärts
      9. @Loop:
      10. stosw ;Und schreiben in den Bildspeicher, was im Register ax (al und ah) steht
      11. cmp di, 0 ;ist der Zähler bei 0?
      12. jnz @Loop ;Nein, dann geht es wieder zur Sprungmarke "Loop"
      Alles anzeigen
      Und schon hast du einen Bildschrim voller Smileys, absolut hardwarenah programmiert :)
      Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR Plus Rev. C6 und SB 16 ( CT2770 )