Re: "Kompilierung" von Grafik zu Assembler-Code, für maximale Geschwindigkeit?
Verfasst: Fr 12. Jan 2024, 10:35
@zatzen:
Ja, innerhalb der ISR vom Ticker sollte man nicht allzuviel machen.
Den Ticker benutze ich auch nur so: Ich erhöhe irgendwelche Zähler, setze Flags, o.ä. - Die eigentlichen Dinge werden dann in der Hauptschleife ausgeführt - die prüfen, ob ein Flag gesetzt, ein Zähler einen Wert über-/unterlaufen hat usw. - D.h. den Ticker nutze ich dann mehr dazu, daß nicht eine Funktion vor der anderen "davonläuft".
Man kann natürlich auch einige einfache Dinge innerhalb des Tickers machen - beispielsweise fülle ich im Ticker den "Steuerpuffer" für Figuren - damit ich genau so viele Steuerbefehle (gedrückte Tasten-/Kombis) kriege wie ich Steuerschritte in der Figuren-/Spiel-Steuerung habe. Und natürlich, wenn ich DIgi-Sound über PC-Speaker abspiele, da ist das ohne Ticker quasi nicht möglich (außer wenn man außer Soundabspielen nichts weiter machen will).
Und wegen Unterstützung: Windows XP (32bit) unterstützt auch den Sound-Blaster.
Wie schonmal erwähnt: In C:\WINDOWS\System32\autoexec.nt einfach sowas schreiben wie:
SET BLASTER=A220 I5 D1 T2
oder ähnliches - je nachdem, was man haben will. Und der supportet dann die entsprechende SB, d.h. er erkennt die Portzugriffe und spielt es dann auf der Soundhardware/Soundtreiber ab, der installiert ist. D.h. die NTVDM (das ist das Ding in 32bit-Windows, das die 16bit-Programme ("DOS", Realmode) ausführt) tut dann so, als wäre die Soundkarte im System, die dem BLASTER Wert entspricht. - Funktioniert bei mir seit Jahren tadellos.
Ich hab's noch nicht mit AdLib probiert - aber eine SB enthält ja auch die Funktionalität der AdLib-Karten. Könnte also sein, daß auch das ganze AdLib-Zeug dann mit funktioniert.
(Auch das ganze Ticker-Zeug funktioniert übrigens unter Windows - außer wenn man die Tickerfrequenz über 1000 Hz stellt.)
Windows XP war nicht umsonst so beliebt und wurde viel länger supportet als vorgesehen:
Das beste aus allen Welten: Die Forschrittlichkeit der NT-Linie, die Einfachheit der Win9x Linie, die Abwärtskompatibilität zu alten 16bit-Windows und zu DOS. Wenn DOS-Programme unter WinXP laufen, Zugriff auf INTs, die dann lange FIlenamen ermöglichen (lesend/schreibend). DIe Zwischenablage von Windows kann man von DOS aus nutzen (Bei Win9x einfach so, für WinXP hat einer n Treiber gebaut, seitdem kann ich das auch direkt zwischen DOS und Windows benutzen.)
Schon wieder zu viel Text meinerseits. Und ja, ich weiß: Du magst die ganze alte DOS-Hardware: VGA, AdLib, SoundBlaster, Keyboard - aber aus irgendwelchen Gründen den Timer nicht. Ich wollt auch nicht damit nerven, nur 'n paar vielleicht nützliche Informationen streuen.
Ja, innerhalb der ISR vom Ticker sollte man nicht allzuviel machen.
Den Ticker benutze ich auch nur so: Ich erhöhe irgendwelche Zähler, setze Flags, o.ä. - Die eigentlichen Dinge werden dann in der Hauptschleife ausgeführt - die prüfen, ob ein Flag gesetzt, ein Zähler einen Wert über-/unterlaufen hat usw. - D.h. den Ticker nutze ich dann mehr dazu, daß nicht eine Funktion vor der anderen "davonläuft".
Man kann natürlich auch einige einfache Dinge innerhalb des Tickers machen - beispielsweise fülle ich im Ticker den "Steuerpuffer" für Figuren - damit ich genau so viele Steuerbefehle (gedrückte Tasten-/Kombis) kriege wie ich Steuerschritte in der Figuren-/Spiel-Steuerung habe. Und natürlich, wenn ich DIgi-Sound über PC-Speaker abspiele, da ist das ohne Ticker quasi nicht möglich (außer wenn man außer Soundabspielen nichts weiter machen will).
Und wegen Unterstützung: Windows XP (32bit) unterstützt auch den Sound-Blaster.
Wie schonmal erwähnt: In C:\WINDOWS\System32\autoexec.nt einfach sowas schreiben wie:
SET BLASTER=A220 I5 D1 T2
oder ähnliches - je nachdem, was man haben will. Und der supportet dann die entsprechende SB, d.h. er erkennt die Portzugriffe und spielt es dann auf der Soundhardware/Soundtreiber ab, der installiert ist. D.h. die NTVDM (das ist das Ding in 32bit-Windows, das die 16bit-Programme ("DOS", Realmode) ausführt) tut dann so, als wäre die Soundkarte im System, die dem BLASTER Wert entspricht. - Funktioniert bei mir seit Jahren tadellos.
Ich hab's noch nicht mit AdLib probiert - aber eine SB enthält ja auch die Funktionalität der AdLib-Karten. Könnte also sein, daß auch das ganze AdLib-Zeug dann mit funktioniert.
(Auch das ganze Ticker-Zeug funktioniert übrigens unter Windows - außer wenn man die Tickerfrequenz über 1000 Hz stellt.)
Windows XP war nicht umsonst so beliebt und wurde viel länger supportet als vorgesehen:
Das beste aus allen Welten: Die Forschrittlichkeit der NT-Linie, die Einfachheit der Win9x Linie, die Abwärtskompatibilität zu alten 16bit-Windows und zu DOS. Wenn DOS-Programme unter WinXP laufen, Zugriff auf INTs, die dann lange FIlenamen ermöglichen (lesend/schreibend). DIe Zwischenablage von Windows kann man von DOS aus nutzen (Bei Win9x einfach so, für WinXP hat einer n Treiber gebaut, seitdem kann ich das auch direkt zwischen DOS und Windows benutzen.)
Schon wieder zu viel Text meinerseits. Und ja, ich weiß: Du magst die ganze alte DOS-Hardware: VGA, AdLib, SoundBlaster, Keyboard - aber aus irgendwelchen Gründen den Timer nicht. Ich wollt auch nicht damit nerven, nur 'n paar vielleicht nützliche Informationen streuen.