LPTDAC.386: LPTDAC WaveOut Driver Version 1.0ß
= SoundBlaster-Emulator auf LPTDAC-Basis für Windows und DOS-Boxen
- LPTDAC ≡ Digital-Analog-Umsetzer am Druckerport. Im einfachsten Fall
ein R-2R-Netzwerk ("16 singende Winderstände") im Donglegehäuse.
Auch bekannt als Covox(TM) Speech Thing oder Disney(TM) Sound Source
- Mein erster "großer Fall" in Sachen 32-bit-, Protected-Mode- und
Gerätetreiber-Programmierung. Ich wollte damit beweisen, daß auch auf
meinem 386/25 mehr als 1kHz "drin" sind. Ohne Kernelprogrammierung geht's
nämlich nicht (feste 8kHz von der Echtzeituhr ausgenommen)!
Erforderlich:
- 386 DX 25 (je schneller, desto besser)
- MS-Windows 3.1 Enhanced Mode oder Windows95 (NT, 2K, XP geht hiermit NICHT)
- das LPTDAC Speech Thing selbstverständlich
Fehlende Funktionen in LPTDAC.386 Version 1.0ß
- vollständige Gerätekonkurrenz-Behandlung
+ eine VM kann die Sample-Rate setzen und damit die andere VM beeinflussen
- Gerätekonkurrenzbehandlung beim Drucken über dasselbe Port
+ Man sollte es daher vermeiden, gleichzeitig noch drucken zu wollen:-)
- einige API-Funktionen sind noch nicht implementiert
- Einstellbarkeit von SB-Port, -IRQ und -DMA-Kanal
Nicht emulierte Funktionen
- Einzel-Ausgabe
- Ausgabe komprimierter Daten
- Eingabe
- MIDI-Funktionen
- bestimmte DMA-Konfigurationen wie
+ zu kleiner oder unpassender DMA-Puffer
+ Abwärts-Zählrichtung
- CMS-Chipsatz-Funktionen
- AdLib-Funktionen
Erweiterte Funktionen
- Der DMA-Puffer kann eine 64-KB-Grenze überschreiten
- Eine API ermöglicht die Ansteuerung des Treibers ohne die sonst
üblichen SB-"Klimmzüge" und unterstützt Blöcke > 64KB
In Zukunft
- Unterstützung von 2 DACs
- Emulierung der SoundBlaster Pro
- Eigener Windows-Treiber
- AdLib-Portadressen einer vorhandenen AdLib-Karte auf die SoundBlaster-
Adressen mappen
Garantien
- Ich übernehme keine Garantie, weder für Hard- noch Softwareschaden
Es handelt sich um ein "unreifes" Programm, das noch verbessert werden
müßte, dazu läuft mir aber die Zeit davon.
Installation
* Entweder reguläre Installation via OEMSETUP.INF
- Interrupt bevorzugt auf 5 (obwohl Vorgabe = 7) stellen
* oder von Hand:
- in die [386enh]-Sektion der SYSTEM.INI folgende Zeile:
device=LPTDAC.386 ;ggf. Pfad mit eintragen
- Ist das Port<>378h, dann folgende Zeilen ergänzen:
[LPTDAC]
port=xxx ;xxx=hexadezimale Portadresse
- in die [drivers]-Sektion den SB20SND.DRV eintragen:
wave=sb20snd.drv
- SoundBlaster-Treiber einstellen auf PORT220, IRQ5, DMA1,
oder (besser) sofort in der SYSTEM.INI eintragen:
[sndblst.drv]
port=220
int=5
dmachannel=1
- Windows starten
Autor
haftmann#software
Henrik Haftmann, Reichenhainer Str. 51 Zi. 105
email: henrik.haftmann@e-technik.tu-chemnitz.de
Neueste Version unter
http://www.tu-chemnitz.de/~heha/lptdac.zip
Geändertes seit letzter Version:
- Name des Treibers, da sich COVOX als ein amerikanischer Firmenname
herausstellte
- Dokumentation enthielt einen Fehler: der Treiber mußte in die [drivers]-
Sektion (der SYSTEM.INI) eingetragen werden und NICHT in die [devices]-
Sektion (der WIN.INI).
- Die Emulationseinstellungen von LPTDAC richten sich nach der
[sndblst.drv]-Sektion in der SYSTEM.INI, dadurch keine Huddelei mit
falschem IRQ mehr
- Hinzugefügte OEMSETUP.INF für einfachere Installation
Eigene Compilierung:
- Erforderlich ist "DDK-Lite", z.B. aus dem Buch
"Writing Windows Virtual Device Drivers" von D. Thielen und B. Woodruff.
- Dazu TASM oder (vielleicht auch) MASM
- für TASM eine veränderte VMM.INC, namentlich TVMM.INC
(Bezug direkt per email, da öffentliches Angebot im WWW problematisch.)
Detected encoding: OEM (CP437) | 1
|
|