ZX 81 doładowane 64KB odzyskuje duszę…znowu ten software
Mamy już czerwiec i chyba tej daty czekała wiosna, aby w pełni rozkwitnąć swą urodą. Co prawda wdzięki pokazuje teraz tak intensywnie, że temperatury dochodzą do 29ºC i można odnieść wrażenie, że to już lato, ale jednak zimne jeszcze wieczory z tego zapatrzenia potrafią nas skutecznie wyrwać. Przyroda dalej nadrabia zaległości co widać po wzmożonej aktywności ptaków i owadów. Te pierwsze albo wychowały już młode, albo są w trakcie, albo dopiero zakładają gniazda. Jak być może pamiętacie w poprzednim tygodniu znalazłem gniazdo na zachodniej stronie altany, utkane w gałęziach wiciokrzewu i obiecałem dochodzenie w sprawie sprawcy tej samowoli budowlanej. Podpatrując to miejsce z oddalenia udało mi się ustalić właścicieli tego lokum. Jest to para muchołówek szarych, wędrownych ptaków, które zimują na drugiej stronie globu, w Afryce poniżej równika a na lęgowiska wybierają właśnie Europę. Ptaki te polują głównie na owady. Robią to w taki sposób, iż czatując obserwują okolicę i w dogodnym momencie ruszają do ataku. Są doskonałymi lotnikami. Co ciekawe nie gromadzą rezerw tłuszczu przed migracją ale polują w jej trakcie, wędrując głównie nocą pojedynczo lub w grupach rodzinnych.
Grzywacz dalej wysiaduje jaja w swoim gnieździe na sośnie, pewnie już niedługo pojawią się tam pisklęta. Niesamowite jest to, że nie przeszkadza mu deszcz, upał czy silny wiatr, cały czas dzielnie znosi kaprysy pogody. Wszystkie sikorki opuściły już natomiast swe budki, ale nadal słychać je w ogrodzie w ilości głosów pomnożonej przez mniej więcej osiem, 🙂 która to ilość nie daje gąsienicom żadnych szans i dzięki temu chroni rośliny przed ich inwazją. Pies dalej dzielnie pilnuje karmnika doskonaląc coraz bardziej metodę nasłuchu sonarowego z jednoczesnym pilnowaniem ulubionej zabawki. 😉
Dwa dni temu zakwitła pierwsza piwonia dowodząc dobitnie, że to już czerwiec. Na tarasie pojawił się natomiast nowy gość, rzadki chrząszcz: ciołek matowy z rodziny jelonkowatych. Chrząszcz ten pełni bardzo pożyteczną rolę w przyrodzie, składając jaja w przegrzybiałych pniach powalonych drzew liściastych, z których to jaj wylęgają się larwy odpowiedzialne za rozkład pni i zwracanie pochodzących z nich związków organicznych glebie. Niestety na skutek wycinki lasów i coraz mniejszej ilości pozostawianych w nich próchniejących pni chrząszcze te są zagrożone wyginięciem i takie odwiedziny zdecydowanie cieszą, gdyż dowodzą że ich populacja powoli się odradza.
Czym dzisiaj się zajmiemy? Powrócimy do bohatera dwóch ostatnich wpisów a mianowicie Sinclair’a ZX 81. Dokończymy prace związane z jego konserwacją i spróbujemy przywrócić mu duszę czyli wzory złożone z misternie utkanych binarnych zer i jedynek powodujących, iż procesor zaczyna podnosić swą temperaturę wykonując instrukcja po instrukcji kod napisany przez człowieka. Czy dojdzie kiedyś do sytuacji, że maszyny same będą się oprogramowywać? Nie jest to wykluczone, już w tej chwili wiele komputerów wykorzystuje metody uczenia maszynowego (ang. Machine Learning), za pomocą którego komputery są w stanie samodzielnie tworzyć algorytmy bazujące na doświadczeniu oraz są w stanie prognozować i podejmować decyzje. Czy jednak chcemy takiego świata? Tu zdania są podzielone. Nam jednak to nie grozi gdyż moc obliczeniowa naszych retro-komputerów nie pozwala na tego typu działania i wszystkie programy są jak na razie dziełem człowieka. 🙂 Szykujcie aromatyczną kawę, miejsce wygodne może już gdzieś na świeżym powietrzu warto zająć i nareszcie kocyk nie będzie już nam potrzebny! 🙂
***
Wracamy na warsztat gdzie zostawiliśmy naszego nestora. Po wymianie kondensatorów (co prawda nie na niebieskie 😉 ) i zainstalowaniu “implanta” w postaci wtórnika emiterowego oraz wyczyszczeniu obudowy i wymianie garnituru klawiszy nasz bohater nabrał wigoru i bardzo się ożywił. 🙂 Dodatkowo czas odłączyć go od szpitalnej aparatury w postaci zasilacza laboratoryjnego i przejść na odżywianie ustrojowe wyposażając go w nowoczesny zasilacz impulsowy. 😉 W tym celu nabyłem sprawdzony już w przypadku Atari i ZX Spectrum zasilacz firmy MeanWell o napięciu wyjściowym 9V prądu stałego DC (ang. Direct Current). Zasilacz jest w stanie zapewnić moc urządzeniom pobierającym prąd do 3,5A co w przypadku naszego ZX 81 to bardzo duży zapas. Urządzenie jest wyposażone we wtyczkę DC Jack, my jednak potrzebujemy Jack’a 3,5mm mono z plusem na czubku wtyczki. Szybkie odwiedziny w lokalnym sklepie elektronicznym zwanym “Piwnicą” i wtyczka leży na naszym stole. Zabieramy się zatem za jej wymianę. W tym celu obcinamy dotychczasową i za pomocą ściągarki usuwamy izolację:
Nakładamy na przewód odginkę i izolator (zawsze przed a nie po… 😉 ) i przylutowujemy wtyczkę.
Nakładamy izolator i odginkę, i wtyczka gotowa!
Zostaje nam sprawdzenie miernikiem napięcia i polaryzacji, wynik testu pozytywny: 9V z plusem na końcówce wtyczki. Zasilacz mamy gotowy.
Tak jak wspominałem w poprzednich wpisach, dwa elementy generują duże ilości ciepła w komputerze, niepotrzebnie podnosząc temperaturę jego pracy i przyspieszając degradację klawiatury. Chodzi tu o przeciążony układ ULA firmy Ferranti i liniowy stabilizator napięcia 7805, który stabilizując napięcie na poziomie 5V DC, wszystko powyżej tego progu przetwarza na ciepło i w związku z tym mamy solidny kawał blachy (radiator) zamontowany pod klawiaturą. Aby zapewnić naszemu staruszkowi dalsze lata w zdrowiu i dobrej formie wymienimy mu regulator na nowoczesny układ TSR 1-2450 pozwalający na pracę nawet w 80ºC bez radiatora i zapewnimy lepsze chłodzenie układu ULA zakładając radiatory, które przez zwiększoną powierzchnię styku z powietrzem są w stanie odprowadzić więcej ciepła. Warunkiem jest tu zapewnienie konwekcji cieplnej i tego, aby rezystancja cieplna radiatora była mniejsza niż rezystancja cieplna układu scalonego:
Rth = ΔTη/Po
Rth – rezystancja cieplna
ΔTη – przyrost temperatury
Po – moc odprowadzana
Weźmy przykład: wartość Rth=50ºC/W oznacza, że na każdy Wat wydzielonej mocy obudowa spowoduję powstanie różnicy w stosunku do temperatury otoczenia na poziomie 50ºC. Przy 2 W mocy przyrost temperatury w środku układu w stosunku do temperatury otoczenia wyniesie: 2W*50ºC/W = 100ºC. Czyli temperatura elementu elektronicznego pracującego w temperaturze otoczenia 25ºC wyniesie: 100ºC + 25ºC = 125 ºC. Jeżeli do elementu elektronicznego dodamy radiator o rezystancji termicznej na poziomie 12ºC/W i założymy, że rezystancja połączenia to 0,5ºC/W to otrzymamy
Rth=12ºC/W+0,5ºC/W = 12,5ºC/W.
Jeżeli teraz obliczymy przyrost temperatury dla 2W mocy to otrzymamy: 2W*12,5ºC/W=25ºC a zatem przy temperaturze otoczenia na poziomie 25ºC otrzymamy 50ºC pracy układu. Całkiem niezły wynik i na pewno jesteśmy poniżej dopuszczalnych wartości temperatury pracy. Warunkiem jest jednak aby suma rezystancji termicznej radiatora i połączenia była niższa niż rezystancja termiczna układu, inaczej nie poprawimy sytuacji, a nawet możemy ją pogorszyć. Dlatego jak następnym razem będziecie kupowali radiator, to zwróćcie uwagę na rezystancję termiczną Rth, lepsze produkty mają zawsze podany ten parametr (im mniejszy tym lepiej) i zazwyczaj podawany jest w K/W. Nie ma to dla nas znaczenia bo skala Kelwina oparta jest na skali Celsjusza. 0 w skali Kelwina to odpowiednik zera bezwzględnego, teoretycznie najniższej temperatury jaką może przyjąć ciało (-273,15ºC), a zatem temperatura w Kelwinach wynosi
T[K] = t[C]+273,15.
Skończmy już jednak te nasze rozważania teoretyczne bo nam zaraz Czytelnicy uciekną. 🙂 Wracamy zatem na warsztat. Nasz radiator składa się z kilku segmentów i czterema uda nam się pokryć cały układ scalony. W pierwszym kroku odtłuszczamy chip ULA i radiatory alkoholem izopropylowym, a następnie przyklejamy taśmę dwustronną do radiatorów. W kolejnym kroku przyklejamy je do układu ULA.
Po przyklejeniu, zestaw chłodzenia układu mamy gotowy:
Przejdźmy teraz do regulatora napięcia, odkręcamy śrubę mocującą radiator zapewniającą mu dobry styk termiczny:
Następnie demontujemy radiator:
Używając rozlutownicy demontujemy oryginalny regulator napięcia 7805.
Miejsce na nowy regulator mamy gotowe:
Porównajmy oba układy. Stary ma montaż poziomy, nowy natomiast montaż pionowy. Rozkład wprowadzeń jest identyczny, od lewej: napięcie wejściowe, masa, napięcie wyjściowe. Dzieli je 40 lat postępu w dziedzinie elektroniki i reprezentują dwie odmienne technologie stabilizacji napięcia: liniową (stary) i impulsową (nowy).
Wlutowujemy nowy regulator napięcia:
Na koniec czyścimy miejsca lutowania z nadmiaru topnika alkoholem izopropylowym.
Montujemy płytę do obudowy:
Skręcamy obudowę i komputer gotowy. A i do tego zostały nam dwie części 😉 , które później spakujemy do torebki foliowej i opiszemy, tak aby, gdyby zaszła taka konieczność, móc przywrócić oryginalny stan.
Czas nałożyć staruszkowi buty 😉 , przyklejamy kawałki taśmy dwustronnej do nóżek:
Następnie odtłuszczamy obudowę w miejscach montażu alkoholem izopropylowym:
Pozostaje nam montaż nóżek:
Buciki leżą jak ulał 🙂
Dodatkowo aby uniknąć nieporozumień oznaczamy wyjście sygnału zespolonego wizji symbolem ‘CVBS’,
oraz dodatkowo oznaczamy zasilacz symbolem komputera, do którego jest przeznaczony: ‘ZX 81’. Komputer mamy gotowy!
ZX 81 posiada na pokładzie tylko 1KB pamięci RAM, jeżeli chcemy uruchomić programy z ‘top listy ZX 81’ 😉 potrzebne będzie nam przynajmniej 16KB. My dysponujemy natomiast wypasionym modułem zewnętrznym rozszerzającym pamięć do niebotycznych 64KB. 😉
Rozbieramy obudowę i badamy stan elementów elektronicznych na płytce:
Wszystko wygląda dobrze, może z czasem wymienimy ten “złoty” kondensator i dodamy prosty układ pozwalający uzyskiwać wyższą rozdzielczość w naszym ZX 81. Czyścimy jednak dla zapewnienia dobrego styku złącze kontaktem “U” firmy TermoPasty”:
Przedmuchujemy elektronikę strumieniem sprężonego powietrza:
i obudowę czyścimy domowym środkiem do szyb:
Nie zaszkodzi też nałożyć Protectant’a Mat firmy K2 i wypolerować obudowę szmatką z mikrofibry:
Po złożeniu obudowy pozostaje nam jeszcze podklejenie płytki stabilizującej moduł rozszerzenia. Do tego celu zastosujemy żywicę epoksydową dwuskładnikową firmy Poxipol:
Po zmieszaniu składników, nakładamy klej cienko na obudowę:
a następnie przyklejamy płytkę do obudowy i wkręcamy wkręty unieruchamiające, tak aby płytka przykleiła się w odpowiednim miejscu.
Po 10 minutach klej związał i możemy przejść do testów. Podłączamy komputer do nowego zasilacza i uzyskujemy piękny, wyraźny obraz na telewizorze LCD. Komputer ma teraz 64KB RAM.
Montujemy zestaw do ładowania programów, za magnetofon posłuży nam nasz smartphone, który będzie odtwarzał dźwięk zapisanych w nim zer i jedynek, pochodzący z pliku .wav (format: “Wave”). Do podłączenia używamy monofonicznego kabla audio, który zrobiliśmy wcześniej dla naszego ZX Spectrum. Przewód podłączamy podobnie jak w przypadku ZX Spectrum do gniazda ‘EAR’ w komputerze.
Do konwersji plików programów ZX 81 o rozszerzeniu ‘.p’ na format ‘wav’ używamy napisanego w Javie darmowego konwertera: “ZX 81 Tape Converter”.
Wczytajmy zatem pierwszy program i w naszym przypadku będzie to klasyk: “PacMan”. Wpisujemy komendę LOAD “” i wciskamy klawisz “New Line”:
Komputer przechodzi w tryb ładowania wyświetlając ruchome skośne pasy:
Niestety nasz telewizor nie jest w stanie oczytać prawidłowo sygnału synchronizacji takiego obrazu i po chwili pokazuje nam pusty niebieski ekran, aż do czasu zakończenia ładowania programu. Po dokładnie 2’32” oczom naszym ukazuje się plansza tytułowa! 🙂
Przechodzimy do samej gry, którą na pewno pamiętacie 🙂
Zobaczmy kolejny klasyk, który też na pewno pamiętacie – “Space Invaders” 🙂
A pamiętacie może jeszcze DokeyKong’a? Tu mamy ZX81 Kong 🙂
ale scenariusz gry ten sam: świat drabin i złośliwy goryl starający się zniweczyć nasze wysiłki. 🙂
Specjalnie dla mojego Przyjaciela wrzucę jeszcze jeden tytuł: “Mazogs”, grę w którą grał on w latach 80-tych właśnie na ZX 81:
przechodzimy tutaj przez labirynt przy okazji unieszkodliwiając zagrażające nam potwory za pomocą znalezionej broni:
Czy tylko takie proste graficznie gry powstały na ZX81? Mam tu trzy niespodzianki, wydane współcześnie. Pierwsza to “Avalanche”:
Druga to wydany w 2011r. “Nanako”
gdzie wspinamy się przez 30 poziomów, z których każdy jest jednym z pięter wieży. Aby oszukać grawitację drogę budujemy sobie tu za pomocą skrzyń.
Trzecia to “Against the Elements”,
zaskakująca swoim izometrycznym widokiem (więcej o grafice tego typu można przeczytać tutaj).
Komputer ZX 81 nie posiada ani dźwięku, ani wyspecjalizowanego układu graficznego. Tworzeniem obrazu zajmuje się procesor i powoduje to spowolnienie wykonywania samych programów. Aby temu zaradzić twórcy umieścili w BASIC’u dwie komendy: SLOW i FAST. Co robią te komendy? Otóż, jeżeli zależy nam na szybkości wykonywania obliczeń, to możemy czterokrotnie przyspieszyć wykonywanie programu poprzez wprowadzenie komputera w tryb FAST. Komputer przestanie wtedy wyświetlać obraz i skupi się na wykonywaniu programu. Zobaczmy czy przyspieszenie jest rzeczywiście 4-krotne. W tym celu napisaliśmy prosty program, który wyświetla na ekranie 125 liter “A”, a następnie przechodzi w tryb FAST i wykonuję tę samą ilość kroków z wyłączonym obrazem.
Odpalamy program komendą ‘RUN’. Testy za pomocą stopera potwierdzają, że rzeczywiście część z wyłączonym obrazem wykonywana jest czterokrotnie szybciej.
Czas kończyć nasz dzisiejszy wpis, udało nam się poprawić wyświetlanie obrazu montując ‘mod’ pozwalający na generowanie zespolonego sygnału wizji. Wymieniliśmy uszkodzoną klawiaturę, kondensatory elektrolityczne i regulator napięcia. Poprawiliśmy chłodzenie układu ULA i przygotowaliśmy nowy zasilacz oraz naprawiliśmy obudowę modułu rozszerzającego pamięć. Wszystko zostało wyczyszczone, wypachnione i zakonserwowane. 🙂 Przed naszym staruszkiem kolejne lata w świetności i ‘elektronicznym’ zdrowiu, tak aby mógł cieszyć się jak najdłużej zasłużonym honorowym miejscem w naszej retro-kolekcji. 🙂
***
Życzę Wam udanej niedzieli i mam nadzieję, że udało Wam się odpocząć przez kilka ostatnich dni. Polecam niedzielny spacer najlepiej do lasu, gdzie wchodząc koniecznie zwróćcie uwagę na różnicę temperatur w lesie i poza nim. To jedna z rzeczy, które oferują nam lasy, a jest tego znacznie więcej. 🙂 Trzymajcie się “ciepło” przy tej temperaturze w znaczeniu “pogodnie”, tak jak w moim ulubionym angielskim przysłowiu:
Don’t trouble trouble till trouble troubles you 🙂