fbpx

Nowoczesna wersja klasycznego komputera – relacja z budowy

Wstęp

Od czasu do czasu nachodzi mnie chęć, aby coś zlutować. Chociaż nie mam doświadczenia w samodzielnym projektowaniu układów i elektronik ze mnie marny, dość dobrze posługuję się lutownicą i sprawia mi dużą frajdę składanie różnych urządzeń projektowanych przez inne osoby. Najróżniejszych wzmacniaczy, zegarów i tym podobnych gadżetów chwilowo miałem dość, za to po głowie zaczął mi chodzić pomysł, aby zbudować “odświeżoną” wersję klasycznego komputera.

Screen z gry “Mr Robot and his Robot Factory”

Retro-gaming jest ostatnio w modzie i jak grzyby po deszczu na rynku pojawiają się rozmaite urządzenia udające stare konsole typu NES (Pegasus), SNES, PlayStation itp. Często są to po prostu współczesne komputerki przebrane w obudowę wyglądającą jak rodem z lat 90′ (RetronPlayStation Classic). W bebechach zawierają zwykłe emulatory. Rzadziej jest to reimplementacja klasycznego sprzętu w technologii programowalnych bramek logicznych FPGA (MistMini NT). W moim pomyśle chciałem uniknąć emulacji i użyć prawdziwego sprzętu i prawdziwych układów scalonych. Po pierwsze dlatego, że emulacja to oklepany temat – istnieją gotowe systemy operacyjne na Raspberry PI. Wymagają jedynie instalacji na karcie micro SD i dostarczają dziesiątki emulatorów najróżniejszych konsol, komputerów i automatów do gier. Po drugie, chciałem, aby zgodność z oryginałem tego, co powstanie, była jak największa. A po trzecie – przede wszystkim chciałem jednak trochę polutować.

Wybór

Z dzieciństwa najbardziej utkwiły mi w pamięci dwa komputery. Pierwszy to 8-bitowy Atari 800 XL. Gdy miałem te 4 czy 5 lat wraz z Bratem namówiliśmy Rodziców, aby nam go kupili. Na szczęście jeden z Wujków posiadał “Atarynkę” już wcześniej, dlatego wiadomo było, czego się po tym sprzęcie spodziewać. Wujek był też pierwszym źródłem oprogramowania (gier), które wówczas przechowywało się na kasetach, a kopiowało na zwykłym magnetofonie. To na Atari pisałem, a w zasadzie przepisywałem z instrukcji obsługi czy z “Bajtka” pierwsze w życiu programy. Niewiele z nich wtedy zrozumiałem, ale cały proces był bardzo fascynujący. Wielką satysfakcję dawało to, że po wprowadzeniu kilkunastu magicznych linii na ekranie pojawiała się – na przykład – “tęczowa autostrada”. Natomiast po ujrzeniu takich gier jak Boulder Dash, Road Race, Moon Patrol czy River Raid wiedziałem już, że chcę zostać programistą (dobra, trochę przesadzam, ale tylko ciut 😉 )

“Tęczowa autostrada”

Drugi komputer to Amiga 600. Tę już 16-bitową maszynę zupełnie niespodziewanie sprezentował nam inny Wujek. Rodziców akurat nie było w domu i od razu można było zająć się rozpakowywaniem, podłączaniem i – co najważniejsze – graniem. A gierki na Amigę były świetne – Lotus, Flashback, Superfrog… i dziesiątki innych. No i nie trzeba było wgrywać ich z kaset, co było procesem zawodnym i długotrwałym, a z dyskietek. To w produkcjach na Amigę po raz pierwszy pojawiły się wstawki rodem ze świata filmu. Powstawały też gry strategiczne i przygodowe o rozbudowanej fabule, a nie tylko proste zręcznościówki czy łamigłówki.

Pewnego razu dowiedziałem się, że Amiga potrafi mówić ludzkim głosem. Pora była późna, telewizor zajęty, nie było możliwości, aby zaraz to uruchomić i zweryfikować. Wówczas wydawało się to tak kosmiczną technologią, że całą noc nie mogłem spać, myśląc o tym, jak zaawansowany program za tym stoi. Od tamtej pory nic w świecie informatyki, nawet systemy typu “OK Google”, nie wywarły na mnie tak mocnego wrażenia.

Po przesiadce na PC właściwie zaprzestałem grania. Sam nie wiem dlaczego. Dopiero niedawno Żona namówiła mnie na zakup PlayStation 4, wybudzając mnie z gamingowego letargu. Wcześniej miałem styczność z wieloma klasycznymi komputerami i konsolami, jednak dwa opisane wyżej wspominam najmilej. Postanowiłem, że zbuduję jeden z nich. Założenia projektu postawiłem sobie takie, aby wynikowy komputer był możliwie mały i pasujący do standardowych, współcześnie produkowanych obudów, na przykład w formacie mini ITX. Do tego chciałem odciąć się od monolitycznej konstrukcji Amigi czy Atari – oryginalnie oba komputery miały formę jednostki centralnej ze zintegrowaną klawiaturą. Wolałbym podłączyć współczesną klawiaturę zewnętrzną, od zwykłego peceta, najlepiej bezprzewodową, aby uniknąć plątaniny kabli. Albo w ogóle zrezygnować z klawiatury – jednak to gry były celem nadrzędnym projektu, a do ich obsługi klawiatura jest (niemal) zbędna i powinien wystarczyć joystick.

Na zakończenie tego rozdziału chciałbym pozdrowić wszystkich w nim wymienionych, bez których mój świat jako gracza komputerowego byłby uboższy.

Istniejące rozwiązania

Nie podjąłbym się samodzielnego przeprojektowania płyty głównej. Zacząłem więc rozglądać się, czy ktoś nie zrobił tego przede mną. Okazało się, że podobne projekty już istnieją. W przypadku Amigi są to: Amiga 500 Project RedReAmiga 1200GBA1000 oraz AmyITX. Z tego zestawienia trzy pierwsze projekty skupiają się na odwzorowaniu płyt głównych w ich oryginalnej formie i rozmiarze. Jedynie założenia AmyITX były tożsame z moimi, jednak okazało się, że płytka drukowana jest ekstremalnie trudno dostępna. Do tego stopnia, że nie wiem nawet, czy rzeczywiście powstała i czy ktokolwiek złożył na niej choć jeden działający egzemplarz Amigi. Kilka tygodni później wszelkie ślady po AmyITX zniknęły z Internetu. W przypadku Atari sytuacja wyglądała lepiej. Natknąłem się na projekt Atari 1088XEL, który był właściwie tym, czego szukałem. Wprowadzał jednak znaczące zmiany w stosunku do oryginalnego Atari – wymagał na przykład rozszerzenia pamięci do 1 MB (standardowo Atari posiadał 64 KB) oraz instalacji modułu Ultimate Atari Video. Nie twierdzę, że 1088XEL to zły projekt, jednak konieczność inwestycji w zbędne dla mnie rozszerzenia, a także trudność w skompletowaniu rzadkich, wymaganych części sprawiły, że przewidywany koszt budowy był zbyt duży jak na hobbystyczną zabawkę. Na szczęście okazało się, że pod nosem, na rodzimym forum Atari Area, użytkownik o nicku x_angel pracuje nad własną wersją płyty głównej Atari “przerysowanej” do formatu mini ITX. Jego wersja nie zawierała większych różnic w stosunku do oryginalnego Atari (o nich wspomnę w dalszej części tekstu). Wkrótce x_angel zaprezentował zdjęcia i filmy pokazujące, że jego konstrukcja faktycznie działa i zaoferował płytki drukowane do sprzedaży. Postanowiłem kupić taką płytkę i w oparciu o nią zbudować moją uwspółcześnioną wersję klasycznego komputera. W tym miejscu chciałbym bardzo podziękować dwóm osobom. Pierwsza z nich to właśnie x_angel. Nie tylko zaprojektował i wyprodukował płytkę, ale na bieżąco służył radą podczas procesu składania. Dodatkowo użyczył mi trochę sprzętu niezbędnego do testowania układów scalonych Atari, dzięki czemu uniknąłem ryzyka związanego z uruchamianiem płyty na niesprawdzonych częściach. Druga osoba to Jerzy Sobola. Na swojej stronie umieścił schematy Atari, powstałe w wyniku żmudnego procesu inżynierii wstecznej. Te właśnie schematy wykorzystał x_angel przy przeprojektowywaniu płytki.

Budowa

Miałem płytkę i co dalej? Wszelką tak zwaną “drobnicę”, czyli oporniki, kondensatory, dławiki, gniazda czy nawet pamięci RAM, można kupić w zasadzie od ręki w dobrym sklepie elektronicznym. Jednak rdzeniem konstrukcji są układy specjalizowane Atari. Są to: procesor, scalaki obsługujące dźwięk, obraz oraz urządzenia peryferyjne – o nazwach PIA, POKEY, GTIA, ANTIC i FREDDIE. Żaden z nich nie jest już od lat produkowany. Istnieje tylko jeden skuteczny sposób ich zdobycia – wylutowanie z oryginalnego komputera. Owszem, czasami na eBayu czy innym portalu aukcyjnym pojawia się oferta sprzedaży nieużywanych zapasów magazynowych, jednak zdarza się to bardzo rzadko, a koszt jednego, najrzadszego scalaka (POKEYa), bywa większy niż całego Atari.

Płyta główna oryginalnego Atari

Działające Atari ma dla mnie rangę zabytku i wyprucie układów z kompletnego egzemplarza byłoby profanacją. Dlatego zacząłem polować na Allegro na egzemplarz zniszczony, niedziałający, nawet bez obudowy czy klawiatury. Im w gorszym stanie, tym lepiej. Zależało mi tylko na specjalizowanych układach scalonych. Udało mi się dość szybko wylicytować płytę główną od Atari 65 XE, w złym stanie wizualnym, ale z kompletem części, a przynajmniej tych, które były mi potrzebne. W ten sposób nie tylko uniknąłem dewastacji kompletnego egzemplarza, lecz tchnąłem nowe życie w elektroniczny złom.

Części wylutowane z oryginalnego Atari

Nowa płyta główna według projektu x_angela wymagała montażu elementów przewlekanych oraz SMD (powierzchniowych). Tym, którym nic to nie mówi, wyjaśnię tylko, że elementy SMD są malutkie, na oko mają może 1 x 2 mm. Wydawać by się mogło, że ich lutowanie to największe wyzwanie w całym przedsięwzięciu. Nic bardziej mylnego! Dobra pęseta i cienki grot sprawiają, że po nabyciu wprawy jest to równie łatwe, jak montaż elementów przewlekanych.

Elementy SMD

Najgorsze okazało się… wylutowanie niezbędnych scalaków z płyty oryginalnego Atari! Taki scalak ma 40 nóżek, każda z nich trzyma solidnie, najczęściej nawet po odessaniu cyny. Próba podważenia scalaka, kiedy któraś z jego nóżek nie została dobrze wyczyszczona, może skończyć się pęknięciem elementu. A wtedy… cóż, pozostałoby polowanie na Allegro na kolejny egzemplarz płyty. Dwa czy trzy elementy udało mi się oswobodzić przy użyciu zwykłej lutownicy kolbowej i odsysarki, jednak wymagało to wyjątkowego skupienia i precyzji, no i zabierało zdecydowanie zbyt dużo czasu. Postanowiłem przy tej okazji zainwestować w półprofesjonalną rozlutownicę. W oczekiwaniu na dotarcie przesyłki z nią, zacząłem wlutowywać “drobnicę” w nową płytkę. Gdy rozlutownica przyszła, wylutowanie pozostałych scalaków z Atari przebiegło już bezboleśnie i szybko, no i mogłem dokończyć montaż i przejść do testów.

Lutowanie w trakcie

Lutowanie ukończone

Testy

Zwykle bywało tak, że po złożeniu jakiegokolwiek projektu elektronicznego, nie zadziałał on za pierwszym razem. Najczęściej okazywało się, że pomimo sprawdzania wszystkiego po pięć razy, jeden tranzystor był wlutowany odwrotnie, niż powinien. W przypadku Atari na płycie mini ITX, ku memu zdziwieniu, komputer zadziałał już przy pierwszym włączeniu. Co prawda debiut odbył się w warunkach bojowych – płyta główna leżała na biurku bez żadnej obudowy. Zamiast do telewizora, podpięta była do chińskiej karty telewizyjnej no-name nędznej jakości, w dodatku kablem przesyłającym jedynie obraz czarno biały. Ale jednak, zadziałała i na ekranie pojawił się słynny napis “READY”! Widząc, że projekt najpewniej zakończy się sukcesem i większych problemów nie będzie, zamówiłem z Chin obudowę.

Różnice

Projekt płyty w formacie mini ITX jest właściwie wierną kopią oryginalnego Atari. Są jednak pewne różnice. Rezygnacja ze standardowej klawiatury na rzecz klawiatury od peceta sprawia, że konieczny jest odpowiedni adapter. Na płycie przewidziane zostało miejsce na mikrokontroler PIC zaprogramowany jako AKI (Atari Keyboard Interface). Mikrokontroler obsługuje klawiaturę w standardzie PS/2 i tłumaczy wciśnięcia klawiszy na format zrozumiały dla Atari.

Druga różnica to zintegrowany z płytą główną układ SIO2SD, oparty o mikrokontroler Atmega32. Jego rolą jest emulacja stacji dyskietek, przy czym obrazy tych dyskietek zawarte są na karcie micro SD. Użytkownik SIO2SD nie ma potrzeby posiadania zewnętrznej stacji dysków, albo co gorsza zawodnego magnetofonu. Gigabajtowa karta pamięci wystarczy, aby przechować wszystkie gry na 8-bitowe Atari, jakie kiedykolwiek zostały oficjalnie wydane.

Ostatnia nowinka to dźwięk stereo. W Atari za generowanie dźwięku (monofonicznego) odpowiada układ POKEY. Jeśli chce się mieć dźwięk stereofoniczny, należy posiadać drugiego POKEYa. Jako, że jest to towar deficytowy, na razie poprzestałem na jednym i nie przetestowałem układu stereo w praktyce.

Problemy

W oczekiwaniu na obudowę przetestowałem urządzenie dogłębnie. Dźwięk działał, joystick działał, klawiatura także. Po wymianie kabla video uzyskałem też kolorowy obraz. Niestety, nie zadziałało SIO2SD. Wypróbowałem kilka, a może nawet kilkanaście różnych kart micro SD, bez sukcesu. Mam też zewnętrzną wersję SIO2SD, zbudowaną lata temu. Po serii eksperymentów także na zewnętrznej wersji, doszedłem do jedynego słusznego wniosku: coś musiałem źle polutować na płycie mini ITX. Poprawiłem nóżki Atmegi i wszystko, co się z nią łączyło. Po tych zabiegach SIO2SD zadziałało już właściwie i mogłem w końcu ładować gry.

Dalsze prace

Obudowa dotarła i umieściłem w niej płytę główną. Końcowy efekt, w mojej ocenie, prezentuje się bardzo dobrze i w zasadzie na tym mógłbym zakończyć projekt. Jednak kilka rzeczy zapragnąłem zmienić.

Atari w obudowie

Klawiatury w standardzie PS/2 to dla mnie niemal taki zabytek, jak samo Atari. W dzisiejszych czasach bardziej popularne są klawiatury USB oraz Bluetooth. Dodatkowo, dziura na gniazdo USB w obudowie aż błagała o wykorzystanie. Podobnie ma się rzecz z joystickami – te do Atari są już ciężko dostępne i wolałbym zamiast nich użyć np. pada od PlayStation 4, który jest przy okazji wygodniejszy. Zdecydowałem, że samodzielnie zaprojektuję i wykonam adapter do klawiatury i pada USB w oparciu o Arduino.

Docelowa klawiatura

Po głębszym zastanowieniu doszedłem do wniosku, że w zasadzie w ogóle nie potrzebuję klawiatury. Moje Atari miało być w założeniach “maszynką do gier”. Oryginalne joysticki do Atari miały tylko jeden przycisk. W różnych grach jest różnie wykorzystywany – czasem do strzelania, innym razem do skakania. Natomiast samą grę rozpoczyna się zwykle przyciskiem “start” z klawiatury. Współczesne pady mają więcej niż jeden przycisk. Pomyślałem, że mój interfejs mógłby “przetłumaczyć” różne przyciski z pada od PlayStation 4 na klawisze specjalne Atari, czyli “start”, “select”, “option”. Dzięki temu byłbym w stanie uruchomić pewnie 90% gier wykorzystując wyłącznie pad. Pozostałe 10% to gry sterowane klawiaturą, np. przygodówki tekstowe.

Zbudowałem prototyp interfejsu i udało się, grałem na Atari padem od PlayStation 4 bez użycia klawiatury! Zrobiłem z tego projekt Open Source – źródła dla Arduino udostępniam tutaj: https://github.com/vandalton/DaltonAJKI. A nuż jakiś inny maniak będzie chciał zbudować sobie taki interfejs.

Prototypowy interfejs pada od PlayStation 4

Postanowiłem, że docelowo obsłużę także klawiaturę USB/Bluetooth, aby przywrócić Atari rangę komputera. W dodatku sposób obsłużenia klawiatury przez POKEYa to ciekawe zagadnienie algorytmiczno-elektroniczne, ale to już temat na inny artykuł…

Podsumowanie

Samodzielna budowa odnowionej wersji klasycznego komputera okazała się ciekawym wyzwaniem. Przy okazji dowiedziałem się wiele o sposobie działania komputerów w ogóle i obsłudze urządzeń peryferyjnych. Efekt końcowy umożliwił sentymentalną podróż do dzieciństwa i pierwszych gier, w jakie grałem. Wygoda użytkowania Atari ze SIO2SD, gdzie ładowanie programów jest szybkie i powodzi się zawsze, sprawia, że komputer będzie mógł być wykorzystywany na imprezach typu Retro Gaming Party.

P.S. W czasach Atari, kiedy w Polsce nie było możliwości kupienia oryginalnego oprogramowania i kwitł handel kopiowanymi kasetami, osoby zajmujące się ich dystrybucją tworzyły własne katalogi i broszury z “opisami” gier. Trzeba przyznać, że mieli fantazję. Poniżej zamieszczam przykład – “opis” gry Mr Robot z katalogu wypożyczalni “Sezam” z Warszawy.

Typowa gra “labiryntowa”. Sterujesz monstrualnych rozmiarów robotem w baśniowo-technicznej scenerii. Oczywiście jak w każdej grze o podobnym module na Twojej drodze piętrzą się przeszkody w postaci śmiercionośnych taśmociągów, lin które zachowaniem przypominają węże i błędnych ogników. Twoje zadanie polega na wygaszeniu wszystkich lampek znajdujących się w labiryncie, lampki bowiem są źródłem energii dla piekielnych machin.

Autor:

Sławomir „Dalton” Krysztowiak
https://daltonlabs.pl/

Share:

Share on facebook
Share on twitter
Share on linkedin

Copyright © 2020. ecom sp. z o.o. All rights reserved.

Nasza strona wykorzystuje pliki cookies. Umożliwiają one sprawne działanie strony, narzędzi analitycznych oraz reklamowych. Ustawienia cookies możesz zmienić w preferencjach swojej przeglądarki internetowej. Więcej informacji znajdziesz w naszej polityce prywatności.