Komputery z Z80 > CP/M - kompatybilne

MP/M

(1/1)

tapy:
Witam,
Rozpocząłem jesienne porządki (te chyba powinny odbywać się wiosną? ;) ) w swojej bibliotece kodów i na pierwszy ogień poszedł wielozadaniowy system operacyjny MP/M dla procesorów Z180. Uaktualnione i rozszerzone o obsługę przerwań dla szeregowej konsoli zostało repozytorium na GitHub. Myślę, że dla Z80 nie będę tworzyć kolejnego, bo ten wymaga specyficznego zarządcy pamięci MMU który obsługuje 4kB bloki pamięci, a dla Z280 ze względu na jego homeopatyczne ilości dostępnych rozwiązań sprzętowych, to nie ma sensu - nieliczni zainteresowani i tak dotrą do mnie. Zachęcam do zapoznania się z tym systemem operacyjnym, choćby w formie jego dokumentacji, bo zastosowane w nim rozwiązania (wielowątkowość, wielodostępność i wieloprogramowość) są niespotykanym ewenementem w świecie 8-bit, a które stały się standardem współczesnych OS (warto tu też dodać datę jego powstania 1979, co wzbudza mój ogromny szacunek).
PS. Odkurzam też swój projekt CP/Net i mam nadzieję, że po 2 letnim poślizgu w końcu zostanie udostępniony publicznie. 8)

damik:
Z mojej strony ogromny szacun za wkład i popularyzację tej wersji systemu, trzymam kciuki bo to mało popularny temat !  8)

tapy:
Niestety data powstania dojrzałej wersji to rok 1982, więc na schyłku popularności rozwiązań ośmiobitowych. Podobny los spotkałby jednowątkowy CP/M 3 (w dużym stopniu oparty na MP/M - pamięć bankowa, BDOS3), ale tu sytuację uratował Amstrad z jego CPC, więc znajomość tego systemu jest większa. Był to również czas, w którym Digital Research rakiem wycofywał się z tego rynku, by skupić się na komputerach PC, zarazem zachęcając swoich partnerów do dalszego rozwoju tego systemu (bez uwalniania kodu) - to mało znana ciekawostka. Przykładem takich "legalnych" rozszerzeń jest wspomniany asmtradowski CP/M + który został wzbogacony o kilka funkcji, które nie istniały w pierwotnej specyfikacji tego systemu.

Edit. Dodałem ucięte ostatnie zdanie.
 

tapy:
W końcu zabrałem się za przesunięcie bazowego adresu pamięci wspólnej w MP/M co spowodowało zmianę jego podziału z 44/20kB na 48/16kB. Efektem jest większe TPA (pamięć robocza danego procesu) i zarazem znacząco poszerzył się zakres rozwiązań sprzętowych dla Z80, gdyż można obecnie używać popularnych modułów pamięci z MMU opartych na modelu zastosowanym w Zeta2 (podział na 16kB bloki, wykorzystujący 74x670). Przy Z80 nie ma już potrzeby używania trudno dostępnych układów MMU z podziałem 4kB takich jak 74x612. Procesory Z180 otrzymały również obsługę DMA dla operacji dyskowych, dając im ponad 36% przyśpieszenie (może być ono większe, ale zachowawczo dodałem po jednym cyklu oczekiwania na każdą operację zapisu i odczytu karty CF). Wersji dla Z80 jeszcze nie udostępniłem na GitHub, bo na razie nie mam pomysłu jak to zrobić, a nie chcę dodawać kolejnego repozytorium z powielającą się zawartością - coś wymyślę. Praktycznie można uznać ten projekt za zakończony, będę jeszcze tylko próbować dodać obsługę wbudowanego DMA do transferów pomiędzy blokami pamięci (na czym poległem) i synchronizację zegara RTC z jego odpowiednią funkcją systemu operacyjnego. Do pełni szczęścia brakuje jeszcze działającego pod MP/M oprogramowania xmodem, by móc go w pełni używać. Z tego powodu obecnie uruchamiany jest on z poziomu CP/M (bo tam działa xmodem) zamiast bezpośredniego uruchomienia z dysku.

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej