DOS 6.22 - Soundcard

Dźwięk... w komputerach domowych był oczywistością. Wszystkie Ataryny, Commodory i Amigi wydawały z siebie dźwięki. Brzmienie C64 to brzmienie dla wielu kultowe do dziś. Nic nie brzmi jak SID!

Tymczasem stary dobry grzyb, IBM PC wbudowany miał malutki cherlawo popiskujący głośniczek. Kiedy słyszę, jak brzmi, kiedy gram w starego poczciwego Pinballa, jestem w szoku, że programiści w taki stopniu umieli wykorzystać coś, czego producent chyba nie przewidział.

 

A wszystko dlatego, że IBM PC miał być komputerem biurowym. Po co karta muzyczna  w biurze? Głośniczek peceta miał w zasadzie jedno zadanie - informować o błędach komputera.

W wielu starych grach uwzględniono fakt, że IBM PC nie dysponował niczym więcej niż wspomniany głośniczek. Dlatego prawdziwa karta muzyczna często nie była potrzebna. Piec obywał się bez niej!

Czas szedł jednak naprzód. Głośniczek PC sprawował się rewelacyjnie jak na swoje możliwości, ale możliwości miał skromne. Pod koniec lat osiemdziesiątych pojawiły się pierwsze karty dźwiękowe za astronomiczne pieniądze. Tańszym rozwiązaniem był COVOX. Kosztował 70 $, ale zlutować można go było za dolara. Widziałem COVOKSA, gdy nie miałem jeszcze własnego komputera. Nie słyszałem go, ale podejrzewam, że jakość dźwięku była sporo wyższa niż ta z głośniczka.

Aż pewnego dnia nadszedł Adlib i Soundblaster... Były to już prawdziwe karty muzyczne! W 1994 kupiłem sobie Soundblastera 16 ISA za około 300 zł. Było to więcej niż kosztował wtedy C64! Drogo, ale był to dźwięk z prawdziwego zdarzenia. Do karty dołączony był sterownik, ale w zasadzie nie robił on więcej niż odpowiedni wpis do pliku autoexec.bat:

SET BLASTER=A220 I5 D1 P330
 

gdzie:
A określa bazowy port We/Wy karty sound blaster
I określa wiersz żądania przerwania
D określa 8-bitowy kanał DMA
P określa bazowy port We/Wy MPU-401
T określa type karty sound blaster
1 - Sound Blaster 1.5
2 - Sound Blaster Pro I
3 - Sound Blaster 2.0
4 - Sound Blaster Pro II
6 - Sound Blaster 16/AWE 32/32/64

(za http://forum.pclab.pl/lofiversion/index.php?t111226.html)

Były to domyśle ustawienia karty. Wystarczy te same własności wpisać we wspomniany plik autoexec.bat i dyskietka instalacyjna nie była potrzebna. Niestety tak różowo nie było, bo przykładowe przerwanie mogło być zajęte. Miałem kiedyś skaner, który pracował na I5. Co wtedy? Wtedy należało rozebrać komputer i poustawiać zworki! Niestety do tego, jakie piny należy zewrzeć, trzeba było wiedzieć, na jakich przerwaniach i adresach pracują inne urządzenia. Należało znać swój sprzęt!

Sytuacja ta zmieniła się dopiero pod koniec pierwszej połowy lat 90. W  życie weszła technologia PnP. Od tej pory można było programowo zmieniać ustawienia kart. Komputera nie trzeba było już rozbierać. Możliwa stała się automatyzacja procesu przydzielania zasobów komputera. Jedyną wadą był fakt konieczności posiadania programu, który mówiłby karcie, na jakich zasadach ma pracować. Od tej pory bez sterownika ani rusz!

Technologia PnP powstała pod sam koniec ery DOSa. Przez lata jego panowania, należało operować zworkami. Jest jeszcze jeden powód takiego stanu rzeczy. Magistrala ISA nie była zaprojektowana dla urządzeń PnP. Właśnie ta magistrala odgrywała kluczowe znaczenie w czasach DOSa.

Zajmijmy się jednak naszym wirtualnym komputerem. Virtual PC emuluje kartę Soundblaster 16 PnP. Z powyższego wywodu można wywnioskować, że będzie konieczny sterownik. Zdobyłem go na stronie producenta karty, co w czasach DOSa nie byłoby możliwe. Sterowniki dostarczano na dyskietkach. Jeśli ktoś nie miał sterownika... miał edytor tekstu, a w przypadku karty PnP pozostawały mu łzy!

Ściągamy więc sterownik o kopiujemy go na dyskietkę. W moim przypadku jest to plik: sbbasic.exe. Startujemy komputer i robimy jak niżej:

c:\mkdir snd
a:
a:\copy *.* c:\snd
c:
cd snd
sbbasic

 

Pliki rozpakowują się:

Wylistujmy je (dir):

Uruchamiamy plik install.exe

Naciskamy ENTER:

System poinformował nas miejscach, gdzie zostaną skopiowane sterowniki. Wciskamy Enter

Instalator proponuje powyższe ustawienia. Akceptujemy je wciskając ENTER,

Instalator kopiuje pliki:

Dokonuje wpisów do plików startowych:

Instalacja zakończona:

Powinniśmy wcisnąć F10.

Restartujemy komputer... i mamy problem:

Wniosek? To chyba nie jest sterownik do SB16 PnP. Spróbuję więc sterownika ctcmbbs.exe. Cały problem polega na tym, że istnieją dwie karty Soundblaster - SB16 i SB16 PnP. Zresztą... zwyczajnie nie wiem, w czym jest problem!

Post Scriptum

Zbadałem sprawę tego błędu. Prawdopodobnie wszystko zrobiłem dobrze. Błąd spowodowany jest z całą pewnością przez nieudokumentowane odwołania programu DIAGNOSE. Virtual PC takich odwołać nie wspiera, co przyznają sami twórcy. Jest to taka mała wada naszego testowego emulatora.

Sam instalator karty muzycznej nie robi w zasadzie nic więcej niż odpowiednie wpisy w pliku autoexec.bat i config.sys. Wiele gier poradzi sobie pod dosem nawet bez tych wpisów. Tak zachowa się na przykład Prince of Persia. Istnieją jednak gry, które nie będą działały z dźwiękiem bez powyższych wpisów. Ponadto karty PnP wymagały inicjacji i automatycznego przydziału zasobów. W takim przypadku instalacja sterowników z prawdziwego zdarzenia była niezbędna. Niestety nasz emulator nie umożliwia nam demonstracji.

Tak czy siak... Moja strona ma charakter poglądowy, a instalacja prawdziwej karty SB16 w roku 1994 mogła wyglądać dokładnie tak, jak widzicie to wyżej, z tą jednak różnicą, że zakończyła by się pewnym powodzeniem.

P.S. 2016

Na filmie na samej górze widać instalację sterownika SB pod Virtualbox. Tam błąd DIAGNOSE nie występuje. Karta inicjuje się poprawnie, ale w grach rónież nie działa, jak powinna. Z jakiegoś powodu emulacja SB16 pod dos nie działa najlepiej!