Posts

Showing posts from January, 2024

Małe, duże postępy 2....

 Jak już pisałem pracuję w tym momencie nad uruchomieniem systemu Agon Light na eZ80f91. To wiąże się z poznaniem tego co różni te układy i odzwierciedleniem tego przez zmiany w oprogramowaniu.  Co się udało do tej pory: 1. Rozpracowałem rejestry timer'a i naniosłem poprawki, teraz nie wiesza się na oczekiwaniu na wyzerowanie. 2. Interface ZDI, który był na osobnej płytce, został przekształcony w dołączany moduł. Teraz nie muszę przkładać modułu eZ80F91 na inną płytkę by go zaprogramować. 3.Dopracowałem procedury programowania wewnętrznej pamięci flash. Jestem w stanie zaprogramować      tą pamięć z pliku HEX. I to tyle na dziś. Prace trwają......

Małe, duże postępy..

 Tak, aby przdstawić postęp prac, to jest jakiś krok do przodu. Znalazłem znaczącą różnicę między eZ80F91 i eZ80F92. Jest w rejestrze kontrolnym liczników. Po tym odkryciu i zmianach w oprogramowaniu część softu ruszyła. Muszę się głębiej zagłębić w pdf'y, aby znaleść dalsze różnice. A tak z planów na przyszłość to na pokładzie znajdzie się karta muzyczna składająca się z układu swinSID nano i  AY-3-8910. To na początek. To do roboty !!

Prace trwają ...

Prace trwają... Tak, od ostatniego wpisu trochę się zmieniło. Pierwotny projekt zakładał użycie ESP32S3 16MB Flash i 8MB SPIRAM. Niestety tą wersje odłorzyłem na później. Powstała inna wersja oparta o zwykłe ESP32 WROM, ale z wymienioną kością Flash z 4MB na 16MB i dodaną kością SPIRAM 8MB. Oczywiście na pokładzie jest jak poprzednio ten sam moduł eZ80F91. Zrobiłem tak, aby na początek upodobnić mój projekt do Agon Light i wykorzystać już istniejące oprogramowanie. Po nabraniu doświadczenia i wiedzy przeniosę to na planowaną platwormę. Na GitHub znalazłem to : https://github.com/envenomator/agon-vdpflash/tree/master . W teorji ma to być narzędzie do  załadowania oprogramowania do eZ80. Niestety ugrzązłem w naprawianiu błędów i zmianie z F92 na F91. Autor niestety zamiast użyć OUT0 użył zwykłe OUT. Po znalezieniu tego błędu i naprawie kod ruszył, ale dalej nie może zamontować karty uSD. Rozwiązanie tego problemu to mój plan na dalsze dni. Co przyniesie?  Zobaczymy......

Pierwsza gra w planach..

 Zapadła decyzja, że pierwsą grą jaką zaimplementuje na nowym zx'ie będzie:   Deathchase (1983). Była to moja ulubiona gra nz Zx Spectrum. Ale to jeszcze daleka przyszłość.

Nie oczekiwane źródło..

 W trakcie prac nad programatorem ZDI dla eZ80F91 udało mi się zgrać zawartość wewnętrznej pamięci flash. Po przeglądzie zawartości znalazłem coś ciekawego. To nie są fabrycznie nowe moduły, były wcześniej używane. I tu niespodzianka. Na końcu zawartości zgranego kodu jest string "0000.zabka.pl" Ciekawe :)

Już powstaje...

Trochę czasu zabrało zamówienie niezbędnych części, ale już dotarły. Dwie nowe płytki eZ80F91, tak na wszelki wypadek, gdyby coś poszło nie tak. ESP32S3-N16R8 z 16MB Flash i 8MB SPIRAM jako główny układ graficzny, kontroler systemu i programator. Zamówiłem też wyświetlacz OLED 128x16 na I2C. Nie zdecydowałem jeszcze do którego procesora go podłączyć. Zaczołem też montować płytkę nowego ZX'a. Powstaje na dwustronnej płytce prototypowej 12x18cm.  Na płytce jest gniazdo dla eZ80F91, gniazdo dla ESP32S3, moduł hub'a USB (wymontowany z taniej chińszczyzny w której zawiodły gniazda usb), dwa 2 portowe gniazda USB podłączone do hub'a, gniazdo VGA z DAC na rezystorach, gniazdo wyjścia audio (stereo), oraz oczywiście płytka z gniazdem microSD. Dodatkowo zamontowałem też złącze 64 pin, jako miejsce na rozszeżenie systemu.Część połączeń jest już zrobiona: hub USB, ZDI, VGA, UART(ez80<-->ESP32). To tyle na dzisiaj.

Nowe pomysły

 Przeglądając internet znalazłem projekt Agon Light. Oparty jest o układ eZ80F92. Jedyna różnica z eZ80F91 to to, że nie posiada ETH i ma tylko 128KB internal Flash. Agon Light to ciekawy projekt. Używa ESP32-PICO-D4 jako karty graficznej z komunikacją po USART pomiędzy eZ80 i ESP32. I tu wpadł mi pomysł na to co można ulepszyć. eZ80F91 daje nam ETH, zmiana ESP32-PICO-S2 na ESP32S3-WROOM-1-N16R8 daje nam mocniejszy ESP32 z 16MB Flash i 8MB PSRAM w jednym chipie. Dodatkowo mamy lepsze wsparcie sprzętowe do generacji sygnału VGA. Dodatkowo w Agon Light nie ma zewnętrznej pamięci Flash, a my mamy 1MB! Reasumując. ESP32 działa jako karta graficzna. Komunikuje się z eZ80 po USART. Mamy : 512+8 KB RAM,  1MB+256KB FLASH,  ETH,  VGA 640x480xRGB565(8bit color), SPI SD Card, CH345B USB Host, dodastkowo esp32 daje możliwość posiadania WiFi i Bluetooth, Czego więcej trzeba ? Tak sobie myślę nad nazwą: ZX SpectrumAGONmega3 ??  Czy :  ZX Spectrum Dream ?? Dosyć dywagacji, do roboty !!

Plany..

 Jak pisałem ostatnio udało mi się zaimplementować układ programatora ZDI na arduino. Hynek Sladky napisał program MCUload, który komunikuje się z jego wersją programatora i dodaje funkcje kasowania i zapisu wewnętrznej pamięci flash. Ja postanowiłem iść trochę inną drogą. Jestem w trakcie pisania odpowiednika tego programu, ale w Python'nie. Da to możliwość używania go w środowisku Windows i Linux. Jak na razie jest zrobiona pełna integracja skryptu python'a z ZDI. Na teraz plan jest  taki: Dodać funkcie: 1) zgrywania do pliku zawartości dowolnego obszaru pamięci eZ80. (w formie pliku IntelHex) Da mi to możliwość zachowania oryginalnego oprogramowania z jakm moduł  eZ80F91 wyszedł z fabryki. Tak jak by coś poszło nie tak przy programowaniu i trzeba było przywrócić jego oryginalną zawartość. 2) zgrywanie do pliku zawartość rejestrów I/O. I możliwość przywrócenia ich stanu z pliku. To na jutro, dalej pomyślimy ...

Podziękowania

 Tak na prawdę to co mi się udało do tej pory nie było by możliwe bez pracy jaką włożył  Hynek Sladky. To z Jego oprogramowania korzystam. Wielkie Dzięki za podzielenie się swoją pracą z innymi!!!

Duży krok do przodu !

Image
Jak pisałem ostatnio eZ80F91 to rozbudowany Z80. Posiada 256KB pamięci flash 16KB RAM i kontroler ETH. Na płytce jest też 512KB RAM i dodatkowe 1MB flash. Jest też moduł IRDA, ale to już się do niczego nie przyda. A wygląda tak: No dobra. Moduł jest i co dalej ?  Trochę szukania po necie i znalazłem do tego modułu płytę "główną". Niestety nie dostępna. Potrzebny jest też programator, ale ponad 500 zł to trochę za dużo.  Okazało się że procek ma wbudowany interfejs ZDI (Zilog Debug Interface), który to jest wykożystany przez programator do komunikacji z prockiem. Trochę szukania jakiejś alternatywy i znalazłem taki interfejs z użyciem ATMEGA238, a przecież Arduino ! Zabrałem się więc do roboty i po dwóch dniach powstała płytka bazowa a na niej: płytka eZ80F91, Arduino Nano, płytka z CH340C jako wyjście terminala i AT24C512 EEPROM I2C. Zmieniłem też na razie kwarc z 50MHZ na 18.432MHz. A oto co po wielu trudach ukazało się w oknie terminala : Reasumując. Mam gotową platformę sp

Story begins ...

"Moim pierwszym komputerem był ZX Spectrum..." Od tego zdania rozpoczęły się wspomnienia wielu z nas i moje też. Zx Spectrum 48k, "gumiak". Trochę inny niż reszta bo miał nie 48kb RAM tylko 80kb. Górny bank 32kb nie składał się jak w oryginale z uszkodzonych kostek 64kb tylko ze sprawnych! Lata 80te, brak internetu, ale są czasopisma. W jednym znalazłem układ na kilku scalakach który pozwalał przełączać dwie 32kb połówki. Poszukiwanie układów scalonych w tych czasach trochę zajeło czasu, ale udało się, kupiłem. Udało się , zmontowałem, działa. No dobra, mam dodatkowe 32kb i co dalej? Wtedy wpadła mi w ręce pewna książka, dosłownie "biały kruk". "The Zx Spectrum Rom Disassembly " Pożyczyłem na kilka dni i zrobiłem xero!!. Miałem własną kopię !! Zaczęło się studiowanie kodu. Jak działa składnia Basic, Jak dodać nowe instrukcje. I gdzie to zmieścić., W końcu miałem swój własny ROM. Teraz tylko wypalić EEPROM. I o dziwo działa !! Teraz miałem Zx Spec