speccy.pl
Facebook Like


SPECCY.PL

[SPECCY.PL PARTY 2023.1]

[WIKI SPECCY.PL]
Polecamy

KOMITET SPOŁECZNY KRONIKA POLSKIEJ DEMOSCENY
PIXEL HEAVEN 2023
AYGOR
Forum ZX Spectrum
Zawartość panelu chwilowo niedostępna
Archiwum plików ZX Spectrum
Nawigacja
[Zin80#4] Kilka słów o ZX SPECTRUM NEXT Część druga – od TK90X Do Nexta

Tekst został opublikowany w Zin80 #4

Kilka słów o ZX SPECTRUM NEXT
Część druga – od TK90X Do Nexta

by KWF

Czas mija, pierwsza, druga (oraz czwarta) fala kwarantanny światowej przeszła, ponad rok przeleciał nawet nie wiadomo kiedy. Prawie wiosna za oknem, szczepienia ruszyły a ja miałem czas aby zapoznać się z nextem i nie tylko do strony fizycznej, ale także z tym skąd on się wziął. W tym artykule spojrzę na historię tego interesującego niebieskiego laminatu zamkniętego w całkiem ładnym kawałku plastiku. Postaram się odpowiedzieć co przyświecało jego autorom przy pracach nad nim i gdzie zaczyna się jego historia, której jest finałem.

PREHISTORIA

Aby odszukać korzenie Nexta musimy cofnąć się do Brazylii do roku 2012, kiedy Victor Trucco zbudował klon ZX Spectrum o nazwie TK-BLUE. Jego nazwa nawiązywała do brazylijskiego klona ZX Spectrum o nazwie TK90X z 1985 roku. Victor nazwał swoje ZX Spectrum na cześć mikrokomputera z swojego dzieciństwa, a „blue” pojawiło się ze względu na niebieski kolor laminatu użytego do budowy płyty głównej nowej „zabawki”.

TK90X z zewnątrz
TK90X z zewnątrz

Należy nadmienić, że w latach 80. i 90. XX wieku, w Ameryce Południowej oryginalny ZX Spectrum był trudno dostępny, ze względu na politykę tamtejszych władz i cła na towary importowane z USA i Europy. Działania te miały pobudzić rozwój nowych technologii na rodzimym rynku, na którym królowały różnorakie klony mikrokomputerów z drugiego końca świata. Do nich zaliczały się produkty firmy Microdigial Electonica, która produkowała klony ZX81 i w dalszych latach klony ZX Spectrum. ZX Spectrum w ich wykonaniu przeszedł proces inżynierii odwrotnej (ang. reverse engineering) i tak powstał mikrokomputer o nazwie TK90X. „X” pochodziło od słowa „eXtended”, bo mikrokomputer posiadał pewne rozszerzenia i usprawnienia możliwości w stosunku do pierwowzoru.

TK90X - płyta główna
TK90X - płyta główna

Słowo „extended” jest eufemizmem, ponieważ główne różnice w stosunku do ZX Spectrum, leżały w przepisanym i przetłumaczonym na portugalski ROMie, dodanym złączu i obsłudze pióra świetlnego (ang. light pen), oraz złączu joysticka. Trzeba nadmienić, że w tym klonie producent wyeliminował zjawisko „dot crawlingu” oraz poprawił istotny błąd w ROMie ZX Spectrum, tj. błąd NMI. TK90X doczekał się następcy pod nazwą TK95, ale nie jest on istotny z punktu widzenia tego artykułu.

TK90X w swoim wnętrzu miał specjalizowany układ typu MC 16845, który robił za mózg całego komputera i funkcjonalnie był on odpowiednikiem układu ULA z ZX Spectrum. Układ ten był stosowany tylko w mikrokomputerach firmy Microdigital oraz nie był dostępny kilkanaście lat później. Był on także niezgodny z brytyjskim protoplastą firmy Ferranti, używanym przez Sinclair Research Ltd. W przypadku uszkodzenia tego układu, pozostałe elementy komputera TK90X można było oddać do utylizacji, ponieważ nie przedstawiały żadnej wartości użytkowej.

ULA TK90X
ULA TK90X

Victor postanowił, że jego implementacja ZX Spectrum nie powinna opuszczać Brazylii i okroił ją tak, aby pasowała tylko jako zamiennik ULA do TK90X. Po rozesłaniu wici na temat swoich planów, oraz informacji, że do tego celu będzie używał łatwo dostępnych układów typu CPLD (ang. complex programmable logic device), napisał do niego Fabio Belavenuto z ofertą współpracy i pomocy przy tym ambitnym zadaniu. Prace nad implementacją w CPLD prowadzili oni równolegle na dwóch platformach sprzętowych – Xilinxa i Altery.

ULA w Alterze na płytce protoypowej V. Trucco - grudzień 2012
ULA w Alterze na płytce protoypowej V. Trucco - grudzień 2012
Zamiennik w alterze
Zamiennik w alterze
Prototyp zamiennika MC 16845 w TK80X
Prototyp zamiennika MC 16845 w TK80X
Zamiennik MC 16845 V. Trucco w TK80X - Xilinx
Zamiennik MC 16845 V. Trucco w TK80X - Xilinx

Po mniej więcej miesiącu pierwsza ULA była gotowa i Victor postanowił wrócić do pomysłu zbudowania uwspółcześnionej wersji TK90X. Mniej więcej w tym samym czasie na spotkaniu klubu użytkowników mikrokomputera TK w 2013 r. obecny był Nelson Gomes, który wypożyczył Fabio Belavenuto zestaw deweloperski Terasic DE-1. Zestaw ten był gotowcem do nauki programowania układów logicznych i prototypowania, na którym zawarto FPGA (ang. field-programmable gate array) Altery/Intela typu Cyclone II. Fabio przeniósł implementację TK90X z CPLD do FPGA i pokazał ją Victorowi. Początkowo Victor był przeciwny używaniu FPGA, zamiast CPLD, ze względu na koszty, ale szybkość działania tego pierwszego, wręcz nieograniczone możliwości rozbudowy implementacji ze względu na bardzo dużą ilość dostępnych makrokomórek i łatwość wprowadzania zmian ostatecznie przekonała go do nowszej platformy. Pod koniec 2013 Victor zmienił nazwę swojego komputera z TK na TB (Trucco-Belavenuto) i w ten sposób doszliśmy do wersji zerowej TBBlue.

Samo TBBlue Prezentuje się bardzo skromnie – zaledwie kilka układów na płycie laminatu wielkości oryginalnego ZX Spectrum z wianuszkiem złącz kołkowych pośrodku. Na płycie nie ma procesora, a znajdziemy tam tylko jeden układ pamięci statycznych o pojemności 512 KB, kilka buforów, układ DAC, podstawowe złącza i to wszystko.

TBBlue - V. Trucco 2016
TBBlue - V. Trucco 2016

Całość Speccy siedzi w standardowej płytce deweloperskiej FPGA znanej pod nazwą „Altera Cyclone II EP2C5 Mini Dev Board”. Płytkę tę wpina się w wianuszek złącz kołkowych wokół pamięci. Chińską kopię tego zestawu deweloperskiego można kupić za kilka dolarów w na Dalekim Wschodzie albo za kilka złotych więcej na rodzimym serwisie aukcyjnym. Jednak zanim zaczniemy go używać w TBBlue należy go przygotować poprzez usunięcie kilku elementów biernych, które zostały na nim błędnie umieszczone, albo wykorzystywane są do „napędzania” LEDów na tej płytce, a są one zbędne do działania implementacji TBBlue.

Zestaw deweloperski Cyclone II z AliExpress
Zestaw deweloperski Cyclone II z AliExpress

Victor przetestował swoją wersję TBBlue pod względem współpracy z różnymi interfejsami od ZX Spectrum. W grupie testowej znalazły się „zabawki” takie jak: joystick i mysz standardzie Kempstona, Multiface One i 128, divIDE, Interfejs 1bis, drukarka Timex 2040, AY-magic, Interface 2 oraz Spectranet. Ostanie dwa interfejsy odmówiły współpracy ze względu na konflikty na szynie danych.

Na tym etapie rozchodzą się drogi TBBlue na wersję Victora oraz wersję Fabio (sygnowane jako FBlab). Wersja Fabio używa tego samego zestawu deweloperskiego opartego o układ Altery, Cyclone II, ale forma mikrokomputera jest inna. Składa się on z 4 oddzielnych płytek połączonych taśmami zamkniętych w kanciastej obudowie, podobnej do tej z MiSTa. Komputer FBlab nie posiada złącza krawędziowego i nie jest możliwa jego dalsza rozbudowa.

TBBlue z FBLab
TBBlue z FBLab

Co do samej specyfikacji i funkcjonalności oba komputery są podobne i niewiele różnią się od siebie. Oba wykorzystują tę samą implementację w FPGA, mają tyle samo pamięci podręcznej RAM i podobny zestaw złącz tj. karta SD, klawiatura PS/2, wejście i wyjście dźwięku oraz gniazdo zasilania +5 V.

„WSAD”

Powyżej przedstawiłem fizyczną warstwę TBBlue. Ale co jest w środku i stanowi clue tego mikrokomputera? Co zaszyto w FPGA? Implementacja potocznie zwana „wsadem” z czasem ewoluowała. W pierwszej oficjalnej wersji o numerze 1.02, jej interfejs użytkownika był w języku portugalskim i zawierała w sobie komputery TX90X/TK95, ZX Spectrum 48K/128K/+3e i ZX80/ZX81. Dodatkowo wsad zawierał implementację układu dźwiękowego AY/YM, interfejs DivMMC i Multiface, rozszerzenie ULA+, obsługę pióra świetlnego, klawiatury i myszki w standardzie PS/2 oraz obsługę joysticka w standardzie Kempston, Sinclair i Cursor. Do wyświetlania obrazu służy złącze VGA (DB-15), a w implementację wbudowano tzw. scandoubler do współpracy z monitorami, które nie obsługują archaicznego trybu 15 kHz. W jego konfiguracji można włączyć/wyłączyć linie naśladujące przebieg wiązki elektronów na luminoforze (ang. scanline) telewizora czy monitora z kineskopem.

Od początku wsad powstawał wielowątkowo i był rozwijany przez dwie osoby – Victora i Fabio. Eksperymentowali oni z różnymi zestawami deweloperskimi. Był on również testowany przez kilku innych zapaleńców. W każdej paczce z wsadem od wersji 1.05 znajdziemy wersję dla platform:

  • Terasic Altera DE-1
  • Terasic Altera DE-2
  • FBlabs,
  • VTrucco,
a w późniejszych:
  • Multicore,
  • Next,
  • WXEDA,
  • ZX-Uno.

W kolejnych wydaniach implementacji dodano kilka „bajerów”, np. tryby Timexa/ULA+, tryb turbo (zegar x2), konfigurowalny mikser wyjścia kanałów audio z AYka (ABC/ACB), obsługę DAC dla wyjścia audio, poprawiono „timingi” oraz zoptymalizowano kod. Od wersji 1.05 interfejs obsługi jest w języku angielskim a ostatnią gotową do użytku jest wersja 1.08, która powstała w maju 2018. Należy wspomnieć iż ostatni firmware jest okrojoną wersją z ZX Spectrum Nexta, z którego usunięto rzeczy zbędne lub nieobsługiwane przez mniejsze FPGA, tj. TurboSound, 3 x AY czy duszki. Wersja ta jest dostępna w formie źródłowej oraz skompilowanej na różne platformy sprzętowe, a także jako „update” z poziomu karty SD.

W wersji 1.08 dodano obsługę komputera Jupiter ACE (pośrednio), ale większość zmian jest ukryta pod maską i nie jest widoczna dla użytkownika. Lista zmian istotnych z punktu widzenia TBBlue:

  • od nowa napisano obsługę protokołu PS/2 do poprawnej współpracy z większą ilością myszek,
  • poprawiono obsługę przerwań IM2 w implementacji Z80,
  • poprawiono obsługę bankowania pamięci w trybie +3,
  • dodano tryby graficzne Timexa,
  • zmieniono obsługę wejścia EAR.
Zrzut ekranu z zawartością folderu z F/W 1.08
Zrzut ekranu z zawartością folderu z F/W 1.08

Oczywiście zmian było więcej, ale one były związane z hardwarem ZX Spectrum Next, np. AntiBrick, obsługa protokołów I2C i SPI, obsługa drugiej karty SD, itp. Tak jak wspomniałem, wcześniej „wsad” jest wieloplatformowy i wielomodułowy. W zależności od posiadanego sprzętu – a jego lista jest dość pokaźna – można go przekompilować, aby działał, na tym co posiadamy. Firmware jest rekonfigurowalne na poziomie kompilacji i posiada wbudowaną sygnaturę dla poszczególnych wersji sprzętu, tak zwany „Hardware ID”. Na oficjalnej stronie ZX Spectrum Next (https://www.specnext.com/hardware-ids/) znajdują się szczegółowe informacje na ten temat. Przy aktualizacji wsadu z karty SD wyświetlana jest aktualna jego wersja, wersja aktualizacji oraz sygnatura hardware’u (w przypadku TBBlue ID = 6). Do dnia dzisiejszego pliki z implementacją noszą nazwę TBBLUE.FW i TBBLUE.TBU a na płycie głównej Nexta widnieje logo TBBlue.

Wróćmy jednak do projektu Victora i Fabio. Co prawda rozwijali go oni niezależnie, to jednak mieli na uwadze, iż mając całkiem dobrą platformę zgodną z ZX Spectrum, można by na jej podstawie opracować nowego, świeższego ZX Spectrum w XXI wieku. Sprawa mogłaby zakończyć się w tym miejscu, gdyby postanowili kontynuować projekt w Brazylii. Naturalnym posunięciem wydawało się skierować projekt do Europy, szczególnie do Wielkiej Brytanii, gdzie ZX Spectrum cieszył się dużą popularnością. Także dystrybucja komputera z Wielkiej Brytanii na tę część przedbrexitowego świata była łatwiejsza niż podobne przedsięwzięcie logistyczne z Ameryki Południowej. Co prawda Victor pomimo ich znacznych kosztów sprzedał ok. 150 płyt TBBlue, ale to były tylko płyty, bez FPGA, obudowy i instrukcji. Aby projekt okazał się sukcesem musiał stać się kompletny oraz popularny, z rzeszą potencjalnych nabywców.

Pod koniec 2015 roku Victor ze swoim skromnym acz zaawansowanym projektem skontaktował się ze swoim kolegą z dzieciństwa Henrique Olifiersem. W tym czasie Henrique prowadził firmę softwarową w Wielkiej Brytani, więc znał tamtejsze realia. Rozmawiali oni o różnych możliwych wspólnych projektach łącznie z klonem Atari 2600, jednak Henrique wykazał duże zainteresowanie TBBlue. Od początku wspólnemu projektowi przyświecała idea, że będzie on finansowany przez przyszłych użytkowników.

Henrique miał także kontakty w firmie Sky (UK), która posiada prawa autorskie do wyrobów Amstrada i Sinclair Research. Uruchomienie tych kontaktów pozwoliłoby zrobić z TBBlue produkt licencjonowany przez Sky. Pociągając za odpowiednie sznurki, udało się im skontaktować z odpowiednimi osobami w Sky (UK) i otrzymali licencję na logo, instrukcję i ROMy ZX Spectrum. Od tej chwili TBBlue stał się oficjalnym licencjonowanym produktem. Idąc tym kursem, skontaktowali się z Rickiem Dickinsonem, który wciąż był aktywny zawodowo i wyraził chęć przyłączenia się do tak ambitnego zadania. Dla niewtajemniczonych Rick Dickinson był projektantem – zajmował się wzornictwem przemysłowym i użytkowym. Spod jego ręki wyszły projekty obudów ZX81 i ZX Spectrum i to on stworzył obudowę do ZX Spectrum Nexta o czym pisałem w części 1.

I tak Henrique zajął się marketingiem i administracją oraz założył firmę SpecNext Ltd., w której Victor i Fabio byli odpowiedzialni za stronę sprzętową i firmware’u, Rick za obudowę przyszłego mikrokomputera wraz z nadzorowaniem procesu jej produkcji. Oficjalnie cała kampania ruszyła w kwietniu 2017 roku, otworzono zapisy na Kickstarterze a zegar zaczął odmierzać czas. Podstawowa konfiguracja Nexta była skromna ale i wystarczająca, jak na tamte czasy:

  • Implementacja procesora Z80 z zegarami 3.5 MHz i 7 MHz,
  • 512KB RAM,
  • zaimplementowana ULA+ i układ dźwiękowy AY,
  • wyjścia wideo: RGB, VGA i mini HDMI,
  • wsparcie dla wczytywania i zapisu na magnetofonie,
  • stereofoniczne wyjście audio,
  • port joysticka zgodny z Interface 1 i interface 2,
  • port PS/2 dla myszki lub klawiatury,
  • złącze krawędziowe zgodne z ZX Spectrum dla interfejsów zewnętrznych.

W sumie nic ponad to, co już było sprawdzone w TBBlue. Plany były bardzo ambitne – pierwsze płyty miały trafić do użytkowników w 2-3 miesiące po zakończeniu zbiórki pieniędzy. Gotowe zestawy z zaprojektowaną od zera obudową i klawiaturą miały ujrzeć światło dzienne już kilka miesięcy później.

Zamiast tego opublikowano ponad 63 informacje z opisem postępu prac, biciem piany, pokazywaniem nowych „emejzing ficzers” i składaniem nowych obietnic. A sponsorzy mogli przez trzy lata lizać ciastko przez szybę cukierni. Na pierwszy rzut rozsyłane były zestawy deweloperskie, tj. same płyty bez obudowy. Zestawów tych było 130 a ich szczęśliwcy dostali je przed końcem 2018 r. Wydawało się, że sprawa dostaw pójdzie z górki, jednak pierwsze zestawy do wyposzczonych użytkowników trafiły dopiero w lutym 2020. Część z nich nie doczekała się nowej zabawki, część znudziła oczekiwaniem i wystawiła otrzymane zestawy na portale aukcyjne. Pozostali zainteresowani dostawali retro-orgazmu w mediach społecznościowych. Szał trwał prawie rok, ceny zestawów na rynku wtórnym osiągały wartość 500-600 funtów. W grudniu 2020 została ogłoszona druga edycja kickstartera (KS2), która wyprzedała się na pniu, pomimo znacznego wzrostu ceny w stosunku do KS1 (185 GBP za KS1 w wersji podstawowej do 300 GBP w KS2). Według zapowiedzi zestawy KS2 mają trafić do odbiorców pod koniec lata 2021.

TBBLUE KONTRA ZX SPECTRUM NEXT

Taka konfrontacja nie wypada pomyślnie dla TBBlue, ale pokazuje drogę jaką przeszedł od projektu amatorskiego po produkt komercyjny. TBBlue wymaga sporej dozy zacięcia, aby go uruchomić a jego praca bywa kapryśna. TBBlue jest obudowany przezroczystym plexi i można do niego podłączyć folię klawiatury od ZX Spectrum lub klawiaturę PS/2. Wpinanie i wypinanie zestawu deweloperskiego jest niewygodne, całość jest zasilana z zasilacza +5 V i łatwo można pomylić się, podpinając zasilanie +9 V z zasilacza ZX Spectrum, puszczając TBBlue z dymem. Z kolei ZX Spectrum Next wyjmujemy z kolorowego pudełka, podłączamy zasilacz z kompletu i używamy, a w wolnych chwilach możemy wczytać się w bardzo dobrze napisaną instrukcję obsługi w wersji papierowej.

W każdym razie TBBlue i cała praca wykonana przez Victora i Fabio dała bardzo solidne podwaliny do produktu komercyjnego. TBBlue w obecnej formie ZX Spectrum Nexta jest pełnoprawnym produktem komercyjnym z dodanymi ciekawymi funkcjami, np.

  • implementacja trzech AY-ków i SIDa,
  • obsługa sprzętowych duszków (do 64, 16x16 pikseli w 256 kolorach każdy),
  • wyjście HDMI,
  • obsługa WiFi i zegara czasu rzeczywistego,
  • akcelerator w postaci Raspberry Pi Zero.

Na Nexta powstaje nowe oprogramowanie (czytaj gry) pisane przez amatorów a także małe manufaktury. Jim Bagley, zaangażowany w projekt Nexta od jego początku na kickstarterze, na swoim kanale na Youtube o nazwie „Code along with Baggers” prowadzi internetowe kursy programowania i pokazuje w jaki sposób wykorzystać nowinki oraz możliwości drzemiące w Next’cie.

NA ZAKOŃCZENIE

W sumie nagana należy się osobom, które promowały Nexta na Kickstarterze i mediach społecznościowych, powtarzając ciągle, że sprzęt jest prawie gotowy. Niestety jak to bywa, „prawie” robi różnicę. Opóźnienia wynikały z wielu powodów, ale chyba najwięcej z błędnego założenia, iż implementacja Victora i Fabio zostanie wprost przeniesiona na inną platformę sprzętową FPGA (Spartan 6) i poprawnie zadziała bez problemów. Zmiany wprowadzone w poszczególnych wydaniach płyty, wpadki z brakującymi na nich elementami, trudności z opracowaniem nowej folii klawiatury to tylko niektóre z ważniejszych przyczyn. Na szczęście ZX Spectrum Next wyrósł już z chorób wieku dziecięcego, ale obawiam się, że KS2 także zostanie opóźniony ze względu na zmiany konstrukcyjne w płycie oraz próbę spełnienia wymagań FCC co do norm kompatybilności elektromagnetycznej. Mam nadzieję, że drobne opóźnienia nie staną się prawie trzyletnimi jak to było przy pierwszym kickstarterze.

W ostatnim roku światło dzienne ujrzał klon klona o nazwie ZX Spectrum Next N-GO ale jego projektanci przemilczają informacje o jego korzeniach i na płycie nie ma wzmianki o pierwowzorze. Przykre, że zapominano o takim drobnym szczególe.

ZX Spectrum Next N-GO
ZX Spectrum Next N-GO

Na zakończenie można by napisać „Umarł król, niech żyje król”. Tak, ZX Spectrum Next jest krokiem milowych w rozwoju platformy Speccy przynajmniej takim, jakim był model 128K w 1985 roku. Oby sympatykom, użytkownikom i programistom nie zabrakło sił, chęci oraz pomysłów do realizacji na tym kawałku krzemu.

P.S. Rok za rokiem mija jak z bata strzelił i mamy koniec styczna 2022. W świecie Nexta niewie zmieniło się, KS2, jak można było spodziewać się, ma już półroczne opóźnienie, a ze względu na „światowe problemy z dostępnością podzespołów elektronicznych, w tym układów FPGA“ przeciągnie się ono o kolejne kilka, kikanaście miesięcy. W międzyczasie powstało całkien sporo nowych gier wykorzystujących możliwości Nexta. Ostatni oficjalny firmware został wydany w marcu 2020. Ponad to Victor Trucco zaimplementował kilkanaście tytułów gier znanych z automatów oraz kilka innych maszyn tj. Atari 2600, MSX, NES, Amstrad CPC6128 jako niezależne core’y. Poza tym cisza.

Brak komentarzy. Może czas dodać swój?
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?