forum speccy.pl

ZX Spectrum => HARDWARE => Wątek zaczęty przez: kippouser w 2020.09.19, 19:52:30

Tytuł: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.19, 19:52:30
Wiele, wiele lat temu w jakimś czasopiśmie komputerowym znalazłem ten oto artykuł "Jak z ZX Spectrum zrobić komputer?".
http://wojtek.pp.org.pl/pliki/notki/2009-11-03_Eniac-ZX-Spectrum/jak-z-zx-spectrum-skan.pdf (http://wojtek.pp.org.pl/pliki/notki/2009-11-03_Eniac-ZX-Spectrum/jak-z-zx-spectrum-skan.pdf) .
Był bardzo pouczający ze strony hardwer'owej jak na tamte czasy.
Ostatnio szukając układów do poskładania klona "superfo harlequin 48" natknąłem się na układ ZILOG'a Z8018233ASC.
https://www.tvsat.com.pl/pdf/Z/z8018233asc.pdf (https://www.tvsat.com.pl/pdf/Z/z8018233asc.pdf)
Jest to układ oparty na rdzeniu Z180, kompatybilny z Z80 na poziomie listy rozkazów, ale rozszerzony o MMU co daje dostęp do 1MB fizycznej przestrzeni adresowej w blokach po 64KB. Do tego dwa układy DMA mające dostęp do całego 1MB pamięci fizycznej. I co ważne maksymalny zegar to 33MHz!! A cena to tylko 13.20PLN.
Posiada też bloki typu UART i inne, ale nie o tym będę teraz pisać.

I tu urodził się taki oto pomysł.
0. Zrobić układ w którym ZX Spectrum będzie tylko wycinkiem systemu.
1. Korzystając z informacji zawartych w/w artykule, potraktować "superfo harlequin 48" jako "kartę graficzno-tekstową". Bez CPU, ROM i górnej połówki RAM. Załączaną do nowej przestrzeni adresowej jedynie przez kombinacje linii adresowych A14=1,A15=0, co można wytworzyć sztucznie.
2. W przestrzeni adresowej Z182 wydzielić przestrzeń dla karty "video", ROM i RAM ZX Spectrum w jednym bloku 64KB, korzystając z dobrodziejstwa MMU.
3. Reszta przestrzeni adresowej to już dowolnie. BIOS, ect. Co dusza zapragnie :)

Co nam to da??

1. Mamy szybkie ZX Spectrum !!
2. Mamy 1MB przestrzeni adresowej
3. Mamy INT0(INT znane z Z80), INT1,INT2, więc więcej przerwań do wykorzystania.
4. Powiązanie przerwań i MMU daje teoretycznie możliwość nadpisywania procedur z ROM( przy użyciu CPLD)
5. i .....

To tylko pomysł. Proszę o Wasze przemyślenia na ten temat.
Może jakieś pomysły??!!

Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.19, 19:59:12
I jeszcze jedno, mając 16x64KB przestrzeni mamy namiastkę wielozadaniowości!!
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: steev w 2020.09.19, 22:11:57
Na 'dzieńdobry' stracisz chyba wszystkie 'nieoficjalne' instrukcje starego z80..
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: tooloud w 2020.09.20, 02:21:47
to w sumie jak kolejne wersje kalkulatora graficznego TI.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: damik w 2020.09.20, 10:48:54
Pomysł jest jak najbardziej ciekawy, sam kiedyś myślałem o czymś podobnym.
Jednak taki komputer jest tak dobry jak jego oprogramowanie potrafiące wykorzystać ten potencjał hardware.
Więc, aby to miało sens to musiało by powstać i rozwijać się odpowiednie oprogramowanie do tego systemu, a to jest mało prawdopodobne by poza autorem i może lecz też nie na pewno kilkoma kolegami z forum ktoś na to cokolwiek napisał.
Na taką przypadłość choruje niestety wiele ciekawych projektów sprzętowych.

Kuszaca byłaby też implementacja CP/M pod taki system, jednak tutaj pewnym ograniczeniem byłaby rozdzielczość grafiki by uzyskać 80 znaków w linii, pewnym rozwiązaniem mogło by być dodanie np. trybu Timex'owego hires lub innego w pełni potrafiącego zaprezentować 80 znaków.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: trojacek w 2020.09.20, 11:21:47
Pomysł jest jak najbardziej ciekawy, sam kiedyś myślałem o czymś podobnym.

Great minds...;) https://www.speccy.pl/forum/index.php?topic=1683.msg83848#msg83848

Cytuj
Jednak taki komputer jest tak dobry jak jego oprogramowanie potrafiące wykorzystać ten potencjał hardware.

Na Z180 powstało kilka fajnych systemów, łącznie z jakąś mutacją uzixa.

Cytuj
Kuszaca byłaby też implementacja CP/M pod taki system,

Ależ CP/M jak najbardziej istnieje, i to dla trybu Z80, jak i - o ile dobrze pamiętam - dla trybu Z180 (wersja 3.0/3.1 używająca MMU).

Cytuj
jednak tutaj pewnym ograniczeniem byłaby rozdzielczość grafiki by uzyskać 80 znaków w linii, pewnym rozwiązaniem mogło by być dodanie np. trybu Timex'owego hires lub innego w pełni potrafiącego zaprezentować 80 znaków.

Z tym to akurat najmniejszy problem. Przecież istnieje program terminala CP/M dla TC2048. Standardowo jest on 64-kolumnowy, ale istnieje też ROM od TT3000, który oferuje 80 kolumn (w rzeczywistości 85, ale 5 kolumn odpada na marginesy).
Oprócz tego są inne możliwości. Mając zegar rzędu 33 MHz, wyświetlanie obrazu można zrobić na przerwaniach, jak w ZX81, z absolutnym minimum dodatkowej logiki. Kiedyś to liczyłem i realnie można osiągnąć XGA (1024x768) w trybie mono, 8 pikseli/bajt. Ale do tekstowego terminala CP/M prościej jest użyć gotowca na jakimś jednoukładowcu, prawdę mówiąc.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 12:08:30
Powstała pierwsza mapa pamięci fizycznej.
(https://scontent-waw1-1.xx.fbcdn.net/v/t1.0-9/119888166_10219505984496623_6701118597732206246_n.jpg?_nc_cat=103&_nc_sid=730e14&_nc_ohc=3O-_GkVj9zYAX8tphyI&_nc_ht=scontent-waw1-1.xx&oh=78363f4150c9f8216099e8f313b0f7b9&oe=5F8BF83C)

Kuszaca byłaby też implementacja CP/M pod taki system, jednak tutaj pewnym ograniczeniem byłaby rozdzielczość grafiki by uzyskać 80 znaków w linii, pewnym rozwiązaniem mogło by być dodanie np. trybu Timex'owego hires lub innego w pełni potrafiącego zaprezentować 80 znaków.

Całego fizycznego RAM'u jest 2256KB i z użyciem MMU można mieć CP/M bez problemu. Jest VGA, więc na drugim monitorze masz dowolny tryb tekstowy.

Na 'dzieńdobry' stracisz chyba wszystkie 'nieoficjalne' instrukcje starego z80..

To prawda, ale w Z182 istnieje przerwanie TRAP i co daje możliwość ich emulacji.


Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 14:31:43
Pierwsza mapa I/O.

Będzie się oczywiście zmieniać, w miarę rozwoju projektu.
Ne uwzględnia jeszcze mapowania VGA, ale to później.


Dodatkowe urządzenia podłączone przez SPI to :
1. SD CARD
2. ETH - ENC28J60
3. Dwa USB HOST - MAX3421E

Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: trojacek w 2020.09.20, 14:43:31
A jaki przewidujesz format PCB i gniazdo rozszerzeń?
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 15:09:58
Tego jeszcze nie rozważałem.
Postaram się zawrzeć w projekcie większość ze znanych rozszerzeń komunikacyjnych.
Prawdopodobnie będzie rozszerzone złącze krawędziowe. Dłuższe, ale kompatybilne.

Tak naprawdę ten projekt jest w bardzo wczesnym stadium, zrodził się wczoraj(19.09.2020)
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: damik w 2020.09.20, 15:10:09

Cytuj
Jednak taki komputer jest tak dobry jak jego oprogramowanie potrafiące wykorzystać ten potencjał hardware.

Na Z180 powstało kilka fajnych systemów, łącznie z jakąś mutacją uzixa.


Miałem tutaj na myśli jakieś nowe programy oraz gry a nie stare systemy operacyjne.
Gry pod typowy CP/M wyglądają jak wystrugane z drewna  ;) a aplikacji pod GSX to zbyt wiele nie widziałem poza jakimś demo.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: tooloud w 2020.09.20, 18:45:40
to może być fantastyczny komputer na papierze... problem niezmienny czyli do czego go można użyć i jaki jest margines akceptacji braku nowego softu.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 19:16:26
Jeśli powstanie, a taki mam zamiar, mogę użyć tego samego co twórcy ARDUINO. Stworzyć prosty w użyciu 'interface' dla użytkownika, aby mógł tworzyć sam. A najlepsza była by wtyczka do ARDUINO IDE.
Do czego go użyć? To kwestia otwarta.
Na pewno nie do codziennej pracy.
Na pewno nie będzie zastępstwem dla AVR, ARM itp.
Ale może dać platformę dla tych co jeszcze chcą i potrafią pisać na Z80 i potrafią użyć wyobraźni by stworzyć coś wartościowego z ubogiego sprzętu.


Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 19:33:38
Raport z dziennych postępów w projekcie:

Mapa wstępna adresów pamięci fizycznej: jest
Mapa wstępna adresów IO :jest
Zamówione układy : CPU-Z8018233asc, XC95144XL x2: jest
Biblioteka projektu dla KiCad:  Z8018233asc - jest, XC95144XL - jest(był tam)
Wstępny schemat układu : Z8018233asc - jest

To i tak dużo jak na jeden dzień! :)
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.20, 19:45:49
Chciałbym podziękować za głosy krytyczne i sceptyczne.
Są bardzo wartościowe. Pozwalają stworzyć rozwiązania, by ten projekt nie był tylko "one piece project" jakich pełno.

Krytykujcie, bądźcie sceptyczni. To bardzo pomaga!! Otwiera oczy. Dzięki :)
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: Artu2tu w 2020.09.20, 21:19:03
A ja,  dla odmiany,  trzymam kciuki.  Zawsze to coś nowego,  innego.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: Gryzor w 2020.09.22, 10:58:58
A dlaczego nie eZ80 ?
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: rzookol w 2020.09.22, 13:02:55
A czy przypadkiem Spectrum+3 nie miał rozwiniętego bankowania, zeby uruchomić cp/m? 
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: KWF w 2020.09.22, 13:06:46
Miał tryb „All RAM”
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: trojacek w 2020.09.22, 13:29:46
+2A/B chyba również,  w końcu na tym samym scalaku robione.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: KWF w 2020.09.22, 13:39:24
Cała seria od Amstrada +2A/B i +3 miała ten tryb, bo był w układzie Amstrada 40077. Co prawda, +3 miało wbudowaną stację i była wersja CP/M na dyskietce 3" pod ZX Spectrum od Locomotive Software Ltd., a do +2A/B trzeba było sobie samemu zmajstrować kontroler dysków.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.22, 16:49:49
Dobre wieści :
* CPU już jest.
* jutro będzie CPLD i adaptery z TQFP100.
* HARLEQUINE odpalony. Działa :)

W weekend ruszam z układem na płytce prototypowej.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.22, 18:07:10
A dlaczego nie eZ80 ?

Może w przyszłości.

Ale teraz dałeś mi szalony pomysł!!

Emulacja Z80CPU na Teensy 4.0 !

Połączenie z pinami (sygnałami) Z80 przez MCP23S17 (10MHz SPI) + translacja poziomów 5v/3,3v na TXB0108.
Z użyciem Teensy 4.0 mamy 8MB Flash, 1MB RAM, SPI, I2C, USART i inne.
Ale co najważniejsze mamy od 600MHz do 1GHz zegar, więc nie ma problemu z emulacją.
Może robić za DMA, DivMMC etc. Emulacja dowolnych portów I/O "w locie" Wow!!

To by było jak Z80 z nowoczesnymi peryferiami!
Podobny emulator już napisałem dla STM32F7, więc źródła już są.
Jedyne co trzeba dopisać to obsługę pinów przez SPI.
Expandery mają programowane przerwania przy zmianie stanu wejść, więc Teensy będzie wiedziało co się dzieje.

Idąc dalej po zmianie na Teensy 4.1 mamy dodatkowo USB HOST, ETH CORE + PHY i wbudowane złącze uSD.

Dalej, dodająć dedykowany Audio Adaptor (SGTL5000) mamy audio 16bit/44.1kHz, więc emulacja AY-3-8910 i SAA1099 to pestka!!

Idea jest prosta! Po co dobudowywać wciąż nowe rozszerzenia do gumiaka, skoro można to zaszyć w CPU!

I to zadziała w każdym ZX Spectrum i w klonach.


Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.22, 18:30:25
Idea się rozwija!

Expandery MCP23S17 to tylko 10MHz SPI clock. Jeśli zaszyć je w CPLD, mamy nawet 10x szybsze.
Tak sobie policzyłem, że te 10MHz to może być za mało dla 3.5MHz zegara dla Z80.

I ten pomysł coraz bardziej mi się podoba!!
Teensy 4.0 mam, Audio Adaptor też, CPLD będzie jutro.
XILINX ISE WEBPACK już się sciąga..

Chyba porzucę ideę z Z182?!

Choć to szalony pomysł :)
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.22, 19:00:25
Idę za ciosem!

Teensy 4.1 zamówione.
Będzie w czwartek.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: KWF w 2020.09.22, 20:24:35
Skoro nie ma fizycznego Z80 i AYka, pokręcona mapa pamięci niezgodna z żadnym ze Spectrumów, dziwne połączenie Harelquina dla wyświetlania obrazu, do tego procesory, CPLD/FPGA, to gdzie ten Speccy w tym? Sztuka dla sztuki? Fajnie, ze masz pomysły i je realizujesz, tylko po co, dla kogo? Jeśli dla siebie, to super.
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: steev w 2020.09.22, 22:21:11
Idę za ciosem!

Teensy 4.1 zamówione.
Będzie w czwartek.

Zamiast Teensy można wziąć RPi zero (40GPIO), do wyboru z linuksem lub barebone.
Skoro już dajesz CPLD, to można pójść krok dalej... Są całkiem tanie i dość spore FPGA. Wsadzisz wszystko oprócz pamięci (ale sugeruję też zewnętrzny DAC video 11bit/kolor)
Jeśli zamienić...
Stop.
To droga z której się nie wraca (albo krąży po niej w kółko wte i wewte, jak ja :) )
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: kippouser w 2020.09.23, 18:59:05
Kochani!!
Chciałbym wyjaśnić kilka aspektów mojego projektu, które mogły być opacznie zrozumiane.

Po pierwsze:
Moim pierwszym celem jest: zastąpić fizycznie stare Z80 czymś bardziej odpowiadającym aktualnym rozwiązaniom, ale ciągle zgodnym z nim. Ja nie buduję nowego klona!! Ja rozbudowuję Z80 CPU o nowe "możliwości", pozostając z nim zgodny w zakresie rozkazów ( i tych nieoficjalnych też), jak i timingu. Cały ROM i RAM pozostają!

Po drugie:
Część z Was była zniesmaczona użyciem Harlequine 48, jak to określiłem, jako karty "video". Rozumiem, z mojej strony był to skrót myślowy. Wyszedłem z założenia, że użycie do eksperymentów Harlequine 48 będzie tańsze niż ZX Spectrum. Łatwiej wymienić np. kilka 74HC niż ULA w razie niepowodzenia, i taniej.

Po trzecie:
Mapa pamięci (dla Z8018233ASC) nie jest "pokręconą" jak to napisał Klaud. Jeśli się dobrze przypatrzy to w obszarze od 0x40000 do 0x4ffff jest dokładna mapa ZX 48 z zamianą ROM na RAM. Domyślam się że zawiniła tu zamiana 16bitowego adresy fizycznego w realnym Z80 na mapę pamięci Z182, gdzie mapa Z80 jest tylko logiczną częścią mapy fizycznej.

Po czwarte:
Do 'steev'. Nie jest moim zamiarem iść w Twoje ślady. Wiem że to błędna uliczka. Używam CPLD tylko po to, aby uzyskać taką logikę jaką potrzebuję, aby powiązać jeden system z drugim. To nie jest sztuka dla sztuki, jak to napisał Klaud.

Pozdrawiam Wszystkich !!




Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: ZbyniuR w 2020.09.26, 01:44:50
A czy da się gdzieś kupić procka od MSX Turbo R?
Tytuł: Odp: "Jak z ZX Spectrum zrobić komputer?"
Wiadomość wysłana przez: rzookol w 2020.09.26, 21:16:57
Ale on jest przeciez niezgodny w pełni.