Mówiące szachy dla DOS z 1994 roku, dziś w przeglądarce www

Oprogramowanie, o którym mowa, zostało wydane w 1994 roku przez firmę Altix na bazie rozbudowanego o czytnik Readboard programu szachowego Turbo chess – opublikowanego przez firmę Borland wraz z kodem źródłowym i podręcznikiem programowania gier w ramach pakietu Turbo GameWorks 1985.

W czasach mojej szkoły średniej dostarczyło mi ono sporo pasjonującej rozrywki intelektualnej, więc wspominam z sentymentem.

Znaleziona w sieci informacja o uruchamianiu w przeglądarce WWW starych gier typu Doom działających pod MS-DOS, systemu operacyjnego Linux, a nawet Windowsa 98, zainspirowała do pytania, czy da się w ten sposób ożywić historyczne oprogramowanie dla niewidomych?

Krótko mówiąc: udało się, więc zapraszam…

Szybki start

Po otwarciu poniższej strony, kliknij „Click to start”, a po zgłoszeniu się programu wydaj polecenia:

l[Enter]
p[Enter]
3[Enter]

Spowodują one ustawienie przewidywania pozycji na 3 ruchy naprzód, więc odpowiedź komputera będzie względnie szybka, a też i spora szansa wygranej z maszyną.

Można następnie przeglądać szachownicę klawiszami strzałek, zaznaczać figurę do ruchu i jej pole docelowe spacją, albo wpisywać ruch jako e2e4.

Naciśnięcie klawisza F1 spowoduje odczytanie wszystkich poleceń programu.

Szachy Turbo Chess udźwiękowione Readboardem firmy Altix

Jak to działa

Podstawowym zadaniem przeglądarki www jest wyświetlanie stron internetowych. Strona internetowa, to najczęściej nie jest tylko statyczny dokument HTML z jakąś ilością formatowania, obrazków i odnośników, a współczesnym stronom bliżej do zaawansowanych programów, wykonujących określone akcje po kliknięciu w jakieś elementy, albo najechaniu na nie myszą. Za tę dynamikę odpowiada Javascript (nie mylić z Java) – język skryptów dołączanych do stron internetowych.

Wśród wielu zalet JavaScript ma przynajmniej jedną wadę: mała wydajność dużych aplikacji, gdyż megabajty tekstu programu Javascript muszą zostać wczytane do przeglądarki, zinterpretowane i przetworzone na postać wykonawczą i wreszcie – wykonane przez silnik przeglądarki. Jako pomysł częściowego zaradzenia problemom wydajności pojawił się asm.js – zaproponowany przez Mozillę podzbiór poleceń JavaScript nadający się do optymalizacji. ASM.JS jest nadal tekstowo zapisanym programem, więc można było iść jeszcze dalej w stronę programu zapisanego binarnie, jeszcze szybszego do wczytania i wykonania – technologia WebAssembly.

Następny element, to Emscripten – narzędzie umożliwiające kompilację programów napisanych w języku C/C++ do postaci asm.js lub Webassembly, a co za tym idzie, ich uruchamianie w przeglądarce. Emscripten umożliwia nie tylko przetworzenie samego algorytmu programu, ale również jego komunikację z urządzeniami wejścia / wyjścia: generowanie obrazu, dźwięku, przyjmowanie informacji z klawiatury.

Możliwe dzięki temu stało się uruchamianie w przeglądarce różnych programów, które wcześniej dało się uruchamiać tylko z poziomu pulpitu, albo konsoli systemu operacyjnego. Warunek, to dostępność kodu źródłowego programu w języku C/C++.

DOSBox

System operacyjny MS-DOS pojawił się w wersji 1.1 w roku 1982. Wersja 6.22, z którą miałem okazję zaczynać przygodę z komputerami, to rok 1994, a ostatnia wersja 8.0 dla Windowsa Me ukazała się w roku 2000.

Sporo poleceń dawnego DOS przetrwało do dziś w Windowsowej konsoli dostępnej po wpisaniu „cmd” w oknie Uruchom, ale o wykonywaniu starych programów w ten sam sposób, mowy być nie może: konsola Cmd nie obsługuje programów 16-bitowych, a gdyby nawet, to pozostawałoby mnóstwo niezgodności na poziomie dostępu do przerwań procesora, albo trybu graficznego ekranu.

Dla zaradzenia tym problemom, opracowany został DOSBox – emulator komputera z procesorem X86, systemem DOS, różnych rodzajów kart graficznych oraz niektórymi innymi urządzeniami peryferyjnymi, jak np. karta dźwiękowa Sound Blaster. Umożliwia uruchamianie dawnych gier dla DOS, ale jak się okazuje, również innych programów. DOSBox dostępny jest na licencji otwartych źródeł GPL.

Em-DOSBox to rezultat konwersji programu DOSBox przy pomocy Emscripten do postaci uruchamianej w przeglądarce.

Wygodnego sposobu korzystania z tego narzędzia dostarcza API serwisu JS-DOS.com, w którym udostępniane jest sporo gier z dawnych czasów w wersji przystosowanej do przeglądarki.

Nic więc nie stało na przeszkodzie, aby sprawdzić jak w tym środowisku odnajdą się programy mówiące dla niewidomych.

Czytniki ekranu dla DOS

W Polsce używane były co najmniej trzy programy tego typu: 1. HAL produkcji firmy Dolphin: współpracujący z zewnętrznym syntezatorem Apollo. 2. ReadBoard polskiej firmy Altix: czytnik ekranu z wbudowanym programowym syntezatorem mowy. 3. SCR firmy E.C.E.: czytnik współpracujący z zewnętrznym syntezatorem mowy SMP, podłączanym do komputera przez port szeregowy.

Programy czytające, pracujące z zewnętrznymi syntezatorami mowy, oszczędzały cenne zasoby procesora, bo po wysłaniu tekstu do wypowiedzenia, synteza mowy odbywała się na zewnętrznym urządzeniu. ReadBoard generował głos syntetyczny, odtwarzany za pośrednictwem urządzenia Covox – wynalezionego w 1986 roku przez firmę Covox inc., prostego przetwornika cyfrowo-analogowego, podłączanego do portu drukarki.

Prócz dostępnego komercyjnie czytnika ReadBoard i innych narzędzi, Altix rozprowadzał bezpłatnie dwie komputerowe gry dla niewidomych: Szachy i Brydż.

Przy tej pierwszej, spędziłem sporo godzin, a jej niewątpliwą zaletą była możliwość ustawienia poziomu trudności, poprzez nałożenie ograniczenia ilości ruchów, które mógł analizować komputer.

Kod źródłowy „Turbo chess” udało się znaleźć w sieci, więc próba jego zrozumienia, to było dla mnie kolejne wyzwanie tamtych czasów: szkoda, że nie wiedziałem o istnieniu podręcznika, który dołączany był do tego kodu, a omawiał w przystępny sposób zastosowane algorytmy… Dzisiaj lektura do nadrobienia z zasobów archive.org.

Czy mówiące Szachy uda się uruchomić w DOSBox? Jedno z ustawień jego konfiguracji, to emulacja urządzenia dźwiękowego Disney, kompatybilnego z Covox Voice Master i Speech Thing.

Uruchomienie Szachów w standardowej wersji DOSBox generuje zamiast mowy, serię trzasków. Eksperymenty pokazują, że problem tkwi w prędkości pracy emulatora: przy domyślnym ustawieniu, DOSBox startuje z prędkością 3000 cykli, czyli 3 tys. instrukcji wykonywanych w milisekundę. Zmniejszenie tej wartości do około 350-400 cykli sprawia, że z głośnika wydobywa się zrozumiała mowa z dawnych czasów. Dzieje się to jednak kosztem spowolnienia pracy samego programu, można tu jednak skorzystać z ręcznego przyśpieszania i spowalniania emulacji w DOSBox przy pomocy klawiszy skrótu Ctrl+F12 (szybciej) i Ctrl+F11 (wolniej).

Zagadki tych 400 cykli nie udało mi się rozwiązać tym bardziej, że napisany przeze mnie pod koniec lat 90-tych programowy syntezator mowy, wysyłający dźwięk na Covox lub kartę Sound Blaster, pracuje w DOSBox prawidłowo zarówno przy 400 jak i przy 24 tys. cykli.

Linki zewnętrzne

JavaScript – Wikipedia, wolna encyklopedia

asm.js w angielskiej Wikipedii

WebAssembly – nadciąga rewolucja – DevEnv

Emscripten – kompilator C/C++ do asm.js / Webassembly.

MS-DOS – Wikipedia, wolna encyklopedia

DOSBox, an x86 emulator with DOS

An Emscripten port of DOSBox

Covox – Wikipedia, wolna encyklopedia

Historia firmy Altix

Turbo Pascal Toolbox 1.x

borland :: turbo pascal :: Turbo GameWorks 1985

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *