Autor Wątek: MP/M  (Przeczytany 5690 razy)

tapy

  • ****
  • Wiadomości: 265
  • Z80 & CP/M
MP/M
« dnia: 2023.10.28, 13:00:51 »
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

  • Fresh rosin sniffer ;)
  • Moderator
  • *****
  • Wiadomości: 2518
  • Miejsce pobytu:
    Generalnie Polska, głównie Bytom czasem Bielsko-Biała oraz okolice
  • ZX'owy i nie tylko...
Odp: MP/M
« Odpowiedź #1 dnia: 2023.12.16, 01:52:24 »
Z mojej strony ogromny szacun za wkład i popularyzację tej wersji systemu, trzymam kciuki bo to mało popularny temat !  8)
Wszystkiego po trochu: Schwarz, mydło i powidło... konsole, stare i nieco nowsze komputery oraz akcesoria i duperele.

tapy

  • ****
  • Wiadomości: 265
  • Z80 & CP/M
Odp: MP/M
« Odpowiedź #2 dnia: 2023.12.16, 13:29:51 »
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.
 
« Ostatnia zmiana: 2023.12.16, 15:15:48 wysłana przez tapy »

tapy

  • ****
  • Wiadomości: 265
  • Z80 & CP/M
Odp: MP/M
« Odpowiedź #3 dnia: 2024.01.11, 21:35:50 »
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.