Powrót do przyszłości

Mając lat 11 dostałem od rodziców pierwszego PC-ta. Był to 386SX z dyskiem twardym o pojemności 50 MB, z zainstalowanym MS-DOSem - bodajże w wersji 5.0. Były to czasy gdy na rynek PC wdzierał się Windows w wersji 3.11. Dzisiaj, nie do pomyślenia - Windows, który nie był systemem operacyjnym. To tak jakby pendrive nie był pamięcią.

Jako nastolatek uwielbiałem grywać na komputerze. Tytuły takie jak Dune2, Prince of Persia, Duke Nukem 3D czy Mortal Kombat spędzały mi sen z powiek. Jednak oprócz samego grania chciałem czegoś więcej, chciałem tworzyć, więc zacząłem uczyć się programowania. Pierwszym językiem, który poznałem był Clipper Summer 87. Język, który głównie służył do pisania programów współpracujących z bazami danych w formacie dBASE. Zaczynałem od klasycznego "hello world!". Krok po kroku, pisałem coraz bardziej zaawansowane programy.

W technikum zdecydowałem się napisać przy użyciu tego języka pracę dyplomową. Wraz z moimi dwoma kolegami - Dariuszem Kulczyckim oraz Tomaszem Piotrowskim - napisałem program "UCZEŃ 2000", który był dziennikiem w wersji elektronicznej. Pomimo że, język Clipper już wtedy odchodził do lamusa, a wielką popularnością cieszył się Visual Basic zdecydowaliśmy się jednak na język "DOSowy" gdyż sprzęt komputerowy w szkolnych instytucjach również do najnowszych nie należał. Sukcesu - w sensie komercyjnym - z tego tytułu nie odnieśliśmy. Jednak wszyscy obroniliśmy tytuł technika.

Dzisiaj - w dobie procesorów 64-bitowych - próba uruchomienia tego programu w środowisku natywnym skończyłaby się fiaskiem. Aby móc korzystać z oprogramowania napisanego dla środowiska DOS zmuszeni jesteśmy użyć emulatora.  Świetną pozycją w ramach emulowania systemu DOS jest DOSBox. który doczekał się również implementacji stricte webowej. Mowa oczywiście o dwóch dużych projektach: asm.js oraz WebAssembly, dzięki  którym jesteśmy w stanie uruchomić m.in. kod napisany w języku np. C/C++ w przeglądarce internetowej.

Jak działa asm.js / WebAssembly ?

Dla asm.js: kod źródłowy zostaje – przy użyciu Clang-a – skompilowany do kodu bajtowego LLVM, który z kolei dzięki emscripten zostaje skompilowany do Javascriptu. Natomiast w przypadku WASM postacią docelową nie jest plik JS a moduł .wasm, który to posiada charakter pliku skompilowanego i jako taki dzięki JS zostaje “dołączony” do strony internetowej.

Dzięki tym dwóm rozwiązaniom możemy zaobserwować prawdziwy renesans gier z dobrych starych lat. Wystarczy wpisać w wyszukiwarce internetowej Dune2 online by za pośrednictwem przeglądarki internetowej zagrać i znów poczuć dziecięcą radość.

Poniżej emulacja programu UCZEŃ2000 dzięki em-dosbox oraz emscripten.

Dodaj komentarz

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

© 2024 fatejow.pl | ScrollMe by AccessPress Themes