Nie mogę sobie przypomnieć, kiedy kupiłem Spectrum (plus). Pamiętam, że kupiłem je bezpośrednio w Anglii, w jakiejś firmie wysyłkowej, pamiętam robienie przelewu w warszawskim NBP na Placu Powstańców Warszawy, gdzie miałem konto dewizowe* (gdzie indziej chyba mieć nie można było). Pewnie było to gdzieś w drugiej połowie 1985 r. Czekałem kilka tygodni, ale o dziwo wszystko odbyło się zgodnie z oczekiwaniami.
Nie zawsze miałem tyle szczęścia – jakiś czas później dostałem w prezencie Interfejs 1 z napędem microdrive, przysłany pocztą dyplomatyczną bezpośrednio z Londynu. Nie dość, że szedł kilka miesięcy, to jeszcze sam interfejs ktoś ukradł po drodze (microdrive dotarł, dzięki czemu kilka lat później, kiedy dorobiłem się Interfejsu 1 jeszcze raz, byłem jednym z pewnie niewielu w Polsce właścicieli Spectrum z dwoma podłączonymi napędami).
Początkowo miałem tylko standardową instrukcję, taką, jaką dołączano do Spectrum+. Programowanie nie było dla mnie rzeczą nową – miałem za sobą semestr ETO (Elektroniczne Techniki Obliczeniowe) w ramach którego uczyłem się FORTRAN-u, spędziłem dziesiątki, jeśli nie setki godzin programując odziedziczony po znajomym angielskim inżynierze* polskiego pochodzenia TI-59 (kalkulator, ale odwracał w pamięci macierze 9×9, więc lepiej go nie lekceważyć), miałem też z brytyjskich zrzutów* ZX-81, a od momentu kupna Spectrum katowałem jego BASIC wiele godzin dziennie – więc jako programista poczułem się na tyle pewnie, że zacząłem pisać w BASIC-u pierwszą wersję Puszki Pandory. Nie dlatego, że miałem jakiś konkretny plan, ot tak, po kawałku. Niestety pewnego pięknego dnia trafił ją szlag, kiedy taśma wkręciła się w magnetofon. BASIC miałem w małym palcu, ale o zmiennych systemowych, mapie pamięci, bezpośrednim dostępie do pamięci ekranu wiedziałem tylko tyle, ile było w instrukcji (sporo, ale niewiele), a o istnieniu kodu maszynowego nie miałem zielonego pojęcia.
Po kilku miesiącach okazało się, że Spectrum (zwykłe) ma również znajomy znajomych. Ten znajomy znajomych oprócz Spectrum miał również ojca, profesora, pracującego bodajże w WHO. To znaczyło, że ojciec znajomego znajomych zarabiał jak biały człowiek, a że jak to się białym ludziom zdarza inwestował w syna, kupił mu nie tylko komputer, ale też kilka książek i zaprenumerował kilka gazet. Gazety przejrzałem na miejscu, książki pożyczyłem do domu. Kolega (bo w międzyczasie na tę pozycję awansował ze znajomego znajomych) nie był nimi specjalnie zainteresowany – jako przyszły lekarz nie miał w planach uczyć się programowania, więc wprowadzenie do kodu maszynowego niespecjalnie go interesowało.
Dla mnie te książki to było otwarcie nowego świata. O rany, tam jest coś pod spodem! A, to to tak działa? Rejestry, bity, adresy, przerwania… Wsiąkłem.
Pierwsza poważniejsza rzecz, jaką napisałem (klasyczne rozpoznanie kodu maszynowego bojem), to był labirynt 3D, przez który trzeba było przejść w ograniczonym czasie. Brzmi poważnie, ale tak naprawdę rzecz była trywialna, labirynt składał się z niemal identycznych pomieszczeń, różniących się jedynie wyjściami. Wystarczyło narysować jeden widok na samym początku, żeby potem modyfikując atrybuty ekranu – czarnego na czarnym nie widać – maskować wyjścia, których w aktualnym pomieszczeniu nie było. Czasem tylko, kiedy modyfikacja atrybutów przypadała na moment odświeżenia ekranu, było widać, że coś jest nie tak. Trywialne, ale jaka zabawa! Potem wykorzystałem dokładnie ten sam kod w Puszce Pandory, tylko zmieniłem tło na niebieskie.
Jakoś trochę później odbiłem jeszcze na ksero „The Complete Spectrum ROM Disassembly” Iana Logana i Franka O’Hary – ale skąd je miałem, ani kiedy to było? Nie mam pojęcia.
Gdyby nie te książki, nie byłoby ani Puszki Pandory, ani większości moich artykułów w Bajtku. Ba, jako że asembler 86 jest bardzo podobny do Z80 (w końcu punktem wyjścia był Intel 8080), cała moja wiedza o programowaniu pecetów na poziomie kodu maszynowego miała w nich swoje źródło. A że gdyby nie Borek w Bajtku, nie byłoby Borka w Top Secrecie, w jakimś stopniu to właśnie te książki są odpowiedzialne za kawałek historii polskiej prasy komputerowej 😉
Te trzy w oryginale, pożyczone od przyszłego lekarza, mam do dzisiaj:
- Beyond simple BASIC, delving deeper into your ZX Spectrum, Dilwyn Jones
- Understanding your Spectrum, BASIC and machine code programming, dr. Ian Logan
- Introducing Spectrum machine code, how toget more speed and power, Ian Sinclair (zbieżność nazwisk z Sir Clive Sinclairem przypadkowa)
*Tytułem wyjaśnienia: w porównaniu z większością rówieśników byłem w mocno uprzywilejowanej pozycji. Moi rodzice ze względu na swoje kontakty zawodowe jeździli sporo po świecie, co nie było normą w PRL-u. Nie, nie jestem dzieckiem resortowym 😉 Opisałem to – trochę ubarwiając szczegóły, ale generalnie trzymając się faktów – w opowiadaniu „Teczki Ziółka”, które można znaleźć w papierowym wydaniu „Odwlekanych porządków”.
Zostaw komentarz
You must be logged in to post a comment.