MP/M II na Z80

przez | 23 grudnia 2022
Moduł procesora Z80 z MMU

Wielodostępny, wielozadaniowy i wielowątkowy system operacyjny jakim jest MP/M II ma większe wymagania sprzętowe od systemu komputerowego, na którym będzie działać jednowątkowy CP/M. Fundamentalne wymagania są podobne, dostęp do pamięci RAM od początku przestrzeni adresowej, port konsoli i pamięć masowa. MP/M dodatkowo wymaga istnienia zegara umożliwiającego przełączanie zadań w takt jego przerwań co 15-20ms oraz większej dostępnej pamięci RAM niż standardowe 64kB, co wymusza posiadania przez taki system układu MMU.

Podobnie jak w CP/M v3.1 jest możliwe uruchomienie MP/M z mniejsza ilością pamięcią RAM (min. 48kB), lecz praktycznie traci się wszystkie jego wielo… cechujące ten system operacyjny, gdyż nie została tam zaimplementowana pamięć wirtualna, która dawałaby pozory posiadania większej ilości pamięci niż dostępna RAM. W celach poznawczych i edukacyjnych przygotowałem rezydentną wersję jądra MP/M, która po dołożeniu modułu CTC umożliwia uruchomienie tego systemu na podstawowych modułach RCBus (Z80+64kB RAM+SIO+CF). Układ CTC należy skonfigurować tak by kanał 1 CTC był taktowany zegarem systemowym 7,3728MHz, a jego wyjście było połączone z wejściem kanału 2, który będzie generował przerwania co 20ms.

Ustawienie zworek modułu CTC

Skompilowane jądro (MPM.SYS) wraz z loaderem (MPM.COM) umożliwiające uruchomienie MP/M z powłoki CP/M w systemach zgodnych z SCM (deklaracja parametrów dysku CF, w RomWBW jest ona inna).

Do pełnej wersji MP/M dla Z80 został przygotowany dedykowany moduł procesora Z80 z MMU 74HCT612, który obsługuje 4kB strony pamięci RAM, gdyż dostępne na rynku moduły pamięci ROM/RAM 512kB [1],[2],[3] dzielą tą przestrzeń na 16kB co powoduje że są nieprzydatne do tego zastosowania. Użyty MMU, podobnie jak zastosowany w Z280, w tym rozwiązaniu operuje na tablicy dzielącej przestrzeń adresową na 16 części, które mogą się odwoływać do dowolnego adresu w przestrzeni 1MB (dla Z280 16MB). Jest to odmienne rozwiązanie od tego jakie znamy z Z180, lecz bardziej elastyczne i zarazem też trochę wolniejsze dla modelu przełączanych banków MP/M, CP/M+. Takie podejście ułatwi mi w przyszłości przeportowanie MP/M dla procesorów Z280.