Autor Wątek: Komputery na Z180, HD64180 lub Z8018233ASC  (Przeczytany 2085 razy)

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Komputery na Z180, HD64180 lub Z8018233ASC
« dnia: 2025.04.04, 13:59:43 »
W ciągu ostatnich kilku lat udało mi się zbudować kilka komputerków opartych na procesaorach 8080/8085/Z80, na których udało mi się uruchomić CP/M 2.2. Teraz chciałbym zbudować coś lepszego, obsługującego więcej pamięci, na czym mógłbym odpalić wielowątkowy system MP/M.
Pierwszym rozwiązaniem jakie przyszło mi do głowy było zastosowanie procesora Z180 od Ziloga. Mam parę sztuk w podręcznych zapasach, więc mógłbym je wykorzystać. Widzę jednak, że były też produkowane całkiem fajne CPU od Hitachi (HD64180), a sam Zilog wypuścił układ Z8018233ASC - w teorii przeznaczony do zastosowań wbudowanych w telekomunikacji (np. w modemach) ale z tego co widzę może on też pracować jako serce samodzielnego komputera retro. Kilka lat temu był nawet projekt P112, oparty właśnie na tym chipie. Niestety, nigdzie nie widzę dokumentacji...

Czy ktoś z was ma doświadczenia z konstruowaniem tego typu komputerów albo posiada jakieś materiały, które mogłyby ułatwić budowę takiego urządzenia?

Zegar

  • **
  • Wiadomości: 60
  • Miejsce pobytu:
    Europa
  • Z80/CA80
    • Wszystko o CA80.
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #1 dnia: 2025.04.04, 22:27:52 »
Ostatnio przymierzałem się do Z80182, ale znalazłem tylko dokumentację Ziloga. Procesor jest rozszerzoną wersją Z8S180. Najciekawszym dodatkiem jest MIMIC czyli interfejs do magistrali innego procesora np. w PC XT/AT. Dodatkowe wyprowadzenia udają układ 16550. Umożliwia to szybką transmisję danych między procesorami. Są też zmiany w MMU - dodatkowe sygnały ROMCS i RAMCS umożliwiają konstrukcję komputera bez dekodera adresów. Jeszcze nie jestem gotowy do narysowania płytki, ale mam taki plan.  8)

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #2 dnia: 2025.04.04, 22:35:11 »
Ostatnio przymierzałem się do Z80182, ale znalazłem tylko dokumentację Ziloga. Procesor jest rozszerzoną wersją Z8S180. Najciekawszym dodatkiem jest MIMIC czyli interfejs do magistrali innego procesora np. w PC XT/AT. Dodatkowe wyprowadzenia udają układ 16550. Umożliwia to szybką transmisję danych między procesorami. Są też zmiany w MMU - dodatkowe sygnały ROMCS i RAMCS umożliwiają konstrukcję komputera bez dekodera adresów. Jeszcze nie jestem gotowy do narysowania płytki, ale mam taki plan.  8)

Ja właśnie też się do tego przymierzam, nawet zamówiłem parę sztuk tego układu. :)
W tej chwili jedynie rzuciłem okiem na dokumentację od Ziloga i wygląda to obiecująco. MIMIC raczej do niczego mi się nie przyda, ale wygląda na to, że generalnie przy pomocy tego układu powinno się dać zbudować w miarę kompletny system pod MP/M, dodając niewielką liczbę elementów zewnętrznych. Zastanawia mnie ten wbudowany, konfigurowalny dekoder adresów i MMU - ciekawe czy będzie się dało za ich pomocą zrealizować organizację pamięci kompatybilną z MP/M.
Generalnie plan jest taki, żeby stworzyć SBC z wyprowadzonymi sygnałami magistrali RC2014.

Zegar

  • **
  • Wiadomości: 60
  • Miejsce pobytu:
    Europa
  • Z80/CA80
    • Wszystko o CA80.
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #3 dnia: 2025.04.05, 09:07:10 »
MMU jest prawie taki sam, jak w Z180. Główna różnica polega na dodatkowych rejestrach określających górny adres ROM i RAM oraz dolny adres RAM (ROM jest zawsze od zera). Pozwala to ustawić różną liczbę Tw dla ROM, który jest zwykle wolniejszy i uzyskać większą wydajność. Wiąże się to z koniecznością umieszczenia pamięci na tej samej karcie, lub wyprowadzeniem ROMCS i RAMCS na magistralę. Procesor mimo 100 pinów jest stosunkowo mały (16 x 16 mm), więc miejsca na płytce wystarczy. RAM też można dać SMD.
Ciekawsze byłoby, moim zdaniem, zastosowanie tego procesora "odwrotnie", czyli tak, jak w założeniach jego konstruktorów. Zaprojektować moduł jako kartę UART (16550) i użyć jej do obsługi jakichś fajnych peryferiów, albo jako koprocesor. MIMIC tylko udaje UART, bo w rzeczywistości jest szybkim portem równoległym, który może pracować z DMA lub w przerwaniach po obu stronach. Do tego w dokumentacji jest informacja, że procesor (Z8018033) może być taktowany kwarcem 66 MHz (dzielone na dwa). To jest kosmos!  ;)

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #4 dnia: 2025.04.05, 09:46:41 »
MMU jest prawie taki sam, jak w Z180. Główna różnica polega na dodatkowych rejestrach określających górny adres ROM i RAM oraz dolny adres RAM (ROM jest zawsze od zera).

Jeszcze nie przyglądałem się kwestii obsługi pamięci w MP/M, ale rozumiem, że ROM zaczynający się od zera nie będzie problemem? Pytam, bo CP/M wymaga aby na początku przestrzeni adresowej znajdował się RAM - tam są trzymane pewne zmienne systemowe i wektory skoków. Budując swoje dotychczasowe komputerki musiałem to brać pod uwagę, umieszczając EPROM w górnej części przestrzeni adresowej (i stosując układ tymczasowego ustawienia linii A14/A15 po resecie) albo wykorzystując ROM shadowing.

Cytuj
Wiąże się to z koniecznością umieszczenia pamięci na tej samej karcie

Generalnie taki mam plan, żeby wszystkie podstawowe komponenty znajdowały się na jednej karcie, która w podstawowe konfiguracji będzie mogła pełnić funkcję komputera jednopłytkowego. Tak więc poza samym układem Z80182 znajdzie się tam RAM (SMD), EPROM/FLASH (w podstawce DIP albo PLCC), dwa porty szeregowe i gniazdo karty CF. Magistrala RC2014 ma służyć do rozbudowy, gdybym w przyszłości chciał podpiąć np. jakąś kartę graficzną, kontroler klawiatury albo stacji dyskietek.

Cytuj
Procesor mimo 100 pinów jest stosunkowo mały (16 x 16 mm), więc miejsca na płytce wystarczy. RAM też można dać SMD.

To akurat żaden problem, dużo mniejsze rzeczy w SMD lutowałem. :)


Cytuj
Ciekawsze byłoby, moim zdaniem, zastosowanie tego procesora "odwrotnie", czyli tak, jak w założeniach jego konstruktorów. Zaprojektować moduł jako kartę UART (16550) i użyć jej do obsługi jakichś fajnych peryferiów, albo jako koprocesor. MIMIC tylko udaje UART, bo w rzeczywistości jest szybkim portem równoległym, który może pracować z DMA lub w przerwaniach po obu stronach. Do tego w dokumentacji jest informacja, że procesor (Z8018033) może być taktowany kwarcem 66 MHz (dzielone na dwa). To jest kosmos!  ;)

Wykorzystanie tego "zgodnie z założeniami twórców" prawdę mówiąc zupełnie do mnie nie przemawia. Fajne tutaj jest głównie to, że mamy kawałek (względnie) nowoczesnego krzemu, który pod względem swojej architektury jest właściwie komputerem z lat siedemdziesiątych/osiemdziesiątych, zachowując kompatybilność z systemami z tamtej epoki.
Jednak gdyby eksperymenty się udały, to chodzi mi po głowie jeszcze jeden "szalony" pomysł - zrobienie mobilnego komputera pod CP/M lub MP/M, z jakimś ekranem LCD lub e-ink obsługiwanym przez interfejs zaimplementowany w CPLD/FPGA. Stare tekstówki fajnie by się na tym prezentowały. ;)
Co do 16550 to mam ich trochę w zapsach w oryginalnej formie i pewnie też wykorzystam je w jakimś swoim projekcie. Albo zaprojektuję własną płytkę na RC2014, albo złożę cudzy projekt.

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #5 dnia: 2025.04.05, 10:45:38 »
Z założenia ten układ miał pełnić funkcję akceleratora szeregowej transmisji danych, stąd ten interface MIMIC, ale nic nie stoi na przeszkodzie użyć go jako autonomicznego CPU, w dowolnym projekcie. Wspomniany MIMIC daje również możliwości użycia tego MPU jako dodatkowego procesora do istniejących systemów, o czym wspomniał kolega @Zegar, i w takiej postaci planuję go użyć, jako moduł SBC na szynie RCBus. Jest to na mojej liście TODO, z tym że prace nad nim zdecydowanie się opóźnią, bo obecnie jestem w trakcie projektowania od zera modułowego systemu komputerowego na szesnastobitowych procesorach Zilog z rodziny Z8000.
Kolejna uwaga, systemy wyposażone w MMU (lub jego namiastkę w postaci układu wyłączającego ROM i w jego miejsce włączającym RAM) umożliwiają uruchomienie dowolnego systemu operacyjnego z logicznym mapowaniem pamięci RAM od adresu 0. Prawdziwe MMU daje większe możliwości, procesor "nie jest świadomy" jak jest zmapowany użytkowy obszar 64kB pamięci CPU, z całej fizycznej pamięci dostępnej dla systemu. W moich systemach z MMU często wykorzystuję pozostałą część pamięci ROM jako "dysk" RO w celu uruchomienia i działania CP/M bez potrzeby posiadania pamięci masowej.

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #6 dnia: 2025.04.05, 20:21:36 »
Kolejna uwaga, systemy wyposażone w MMU (lub jego namiastkę w postaci układu wyłączającego ROM i w jego miejsce włączającym RAM) umożliwiają uruchomienie dowolnego systemu operacyjnego z logicznym mapowaniem pamięci RAM od adresu 0. Prawdziwe MMU daje większe możliwości, procesor "nie jest świadomy" jak jest zmapowany użytkowy obszar 64kB pamięci CPU, z całej fizycznej pamięci dostępnej dla systemu. W moich systemach z MMU często wykorzystuję pozostałą część pamięci ROM jako "dysk" RO w celu uruchomienia i działania CP/M bez potrzeby posiadania pamięci masowej.

W swoich dotychczasowych projektach jestem właśnie na etapie "wyłaczania" ROM-u po załadowaniu systemu i zastępowania go RAM-em.
Początkowo planowałem implementować alternatywną opcję bootowania, z możliwością odpalenia TinyBasica z EPROM-u, z połówką RAM-u. Jednak z jakiegoś powodu nie mogę zmusić TinyBasica do pracy w takim trybie, przy takiej organizacji pamięci. Pewnie to sobie odpuszczę. Gdy mój BIOS będzie już dostatecznie dopracowany, pewnie zapiszę obraz systemu w EPROM-ie i zastąpię boot z karty CF prostą operacją memcopy. To przyspieszy start systemu i pozwoli odzyskać trochę miejsca na pierwszej partycji. Raczej nie będę implementował właściwego dysku RO w EPROM-ie. :)

Dokumentacja twoich rozwiązań jest gdzieś dostępna? Bo tak właśnie sobie uświadomiłem, że projektując taki komputerek chyba prościej będzie zrobić go kompatybilnym z jakimś istniejącym firmware dla systemów na Z180, niż portować mój kod, tworzony z myślą o znacznie bardziej prymitywnych komputerkach. :)

Tak swoją drogą widzę, że ten Z80182 ma też trochę portów GPIO, więc na dobra sprawe powinno się też dać wcisnąć na płytke port drukarki. :)

Zegar

  • **
  • Wiadomości: 60
  • Miejsce pobytu:
    Europa
  • Z80/CA80
    • Wszystko o CA80.
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #7 dnia: 2025.04.06, 13:51:58 »
Tak swoją drogą widzę, że ten Z80182 ma też trochę portów GPIO, więc na dobra sprawe powinno się też dać wcisnąć na płytke port drukarki. :)
Trzeba wziąć pod uwagę, że dodatkowe rejestry Z80182 zajmują prawie całą górną ćwiartkę adresów IO. Dostęp do nich jest ośmiobitowy, czyli standardowymi rozkazami Z80. Port C jest "niepełnosprawny", bo PC6 i PC7 mogą być tylko wejściami i są zajęte przez sygnały INT. (Cała dolna ćwiartka jest zajęta przez rejestry Z180, do których dostęp jest tylko przez pełne szesnastobitowe adresowanie.) Myślałem o zbudowaniu CA80 z wykorzystaniem wbudowanych portów, ale konflikt adresów wymusza zmiany w oryginalnym monitorze pana Gardynika. Do tej pory nie dopuszczałem takiej możliwości, ale uległem pokusie. Zobaczymy, czy podołam.  ;)

P.S. Rejestry Z180 można przenieść do innych ćwiartek, ale "nowych" już nie. Dodatkowo ograniczone zostały możliwości przenoszenia do "górnej" ćwiartki, bo jest zajęta.

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #8 dnia: 2025.04.06, 16:16:23 »
Trzeba wziąć pod uwagę, że dodatkowe rejestry Z80182 zajmują prawie całą górną ćwiartkę adresów IO. Dostęp do nich jest ośmiobitowy, czyli standardowymi rozkazami Z80.

Mówimy o ćwiartce z 65535 dostępnych adresów (jak w przypadku Z80) czy jedynie 256 (jak to miało miejsce w 8080/8085)?
W każdym razie, nawet w tym drugim przypadku to pozostawia sporo miejsca na rozszerzenia. Tym bardziej, że nie muszę kopiować żadnej konkretnej architektury, a spora część peryferiów i tak jest zintegrowana w krzemie - nie ma konieczności stosowania zewnętrznego UART-a, DMA, timerów czy portów równoległych. Tak więc nawet 3/4 z 256 adresów I/O to aż nadto. :)

Chyba zacznę projektować płytkę. Zobaczę co z tego wyjdzie. Na stosunkowo niewielkiej płytce zgodnej z RCBus powinno się dać upchnąć kompletny system ze złączem karty CF, 2xRS232 i złączem drukarki.

Zegar

  • **
  • Wiadomości: 60
  • Miejsce pobytu:
    Europa
  • Z80/CA80
    • Wszystko o CA80.
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #9 dnia: 2025.04.06, 16:48:25 »
Trzeba wziąć pod uwagę, że dodatkowe rejestry Z80182 zajmują prawie całą górną ćwiartkę adresów IO. Dostęp do nich jest ośmiobitowy, czyli standardowymi rozkazami Z80.

Mówimy o ćwiartce z 65535 dostępnych adresów (jak w przypadku Z80) czy jedynie 256 (jak to miało miejsce w 8080/8085)?
System dziesiętny w opisywaniu architektury komputera zawsze powodował u mnie dysonans.  ;) Tak. Chodziło mi o adresy 0C0H - 0FFH w przypadku rejestrów Z80182. Plusem jest możliwość używania "starych" rozkazów IN i OUT. Rejestry Z180 są dostępne tylko w pełnym adresowaniu (starszy bajt równy 0).
Niestety monitor CA80 ma adresy portów 0E0H - 0FFH, chociaż adresowanie jest niepełne i równie dobrze można pisać 80H -0BFH. Jednak konflikt i tak wystąpi.

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #10 dnia: 2025.04.06, 17:54:06 »
System dziesiętny w opisywaniu architektury komputera zawsze powodował u mnie dysonans.  ;) Tak. Chodziło mi o adresy 0C0H - 0FFH w przypadku rejestrów Z80182. Plusem jest możliwość używania "starych" rozkazów IN i OUT. Rejestry Z180 są dostępne tylko w pełnym adresowaniu (starszy bajt równy 0).
Niestety monitor CA80 ma adresy portów 0E0H - 0FFH, chociaż adresowanie jest niepełne i równie dobrze można pisać 80H -0BFH. Jednak konflikt i tak wystąpi.

Ok. Zmyliło mnie użycie określenia "dostęp ośmiobitowy" zaraz obok "standardowych rozkazów Z80". Dla mnie ośmiobitowa adresacja I/O jest cechą odziedziczoną po 8080/8085, a właśnie szesnastobitowe adresowanie I/O jest natywną cechą Z80. :)
W każdym razie w moim przypadku to nie stanowi żadnego problemu. Jedynym niskopoziomowym oprogramowaniem jakie będzie odpalane na tym komputerze będzie BIOS CP/M (docelowo MP/M), gdzie będę mógł sobie dowolnie ustawić adresację I/O. A ponieważ Z80182 bierze na siebie obsługę większości podstawowych peryferiów, zostanie tylko kilka zewnętrznych urządzeń (karta CF, sterownik klawiatury, sterownik graficzny, potencjalnie kontroler FDD) które zmieszczą się bez problemu.

Zegar

  • **
  • Wiadomości: 60
  • Miejsce pobytu:
    Europa
  • Z80/CA80
    • Wszystko o CA80.
Odp: Komputery na Z180, HD64180 lub Z8018233ASC
« Odpowiedź #11 dnia: 2025.04.06, 21:40:09 »
Dla mnie ośmiobitowa adresacja I/O jest cechą odziedziczoną po 8080/8085, a właśnie szesnastobitowe adresowanie I/O jest natywną cechą Z80. :)
To jest raczej niepożądany skutek uboczny.  ;) Wystawianie przypadkowych stanów na magistrali nie jest zbyt wygodne do wykorzystania, ale nie niemożliwe. Dopiero Z180 to uporządkował, ale tylko w pewnym zakresie. Rozkazy blokowe Z80 są bez sensu dla 16 bitów.