Autor Wątek: Historia CP/M, jego odmiany oraz wersje.  (Przeczytany 870 razy)

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Historia CP/M, jego odmiany oraz wersje.
« dnia: 2025.04.12, 20:33:51 »
Wydzielono z wątku "Karty graficzne do komputerów pod CP/M"

Tak dla przypomnienia, koniec rozwoju ośmiobitowych wersji CP/M, MP/M i CP/Net to luty 1982, Digital Research dość wcześnie wyczuła pismo nosem i cały swój potencjał skupiła na wydanej pół roku wcześniej platformie IBM PC. To, że przez ponad dekadę produkowane były nadal różne konsumenckie komputery zgodne z tym systemem, nie zmienia tego faktu że nie był on już rozwijany, więc pozostał w epoce lat 70-tych. Był to efekt bogatej oferty profesjonalnego oprogramowania zgodnego z tym systemem operacyjnym oraz to, że wielu producentów komputerów przegapiło (boleśnie) rewolucję 16-bit. Konstrukcje z lat 80 pozwoliły na upowszechnienie się tego systemu, doskonale tu znany CPC6128 wypromował w świadomości użytkowników istnienie CP/M 3.0, który bez tego komputera pozostałby podobną nieznaną ciekawostką jak MP/M, był to rok 1985.
Prawdą jest to, że firma DEC zaprezentowała swój terminal VT100 w 1978 roku, w tym samym kiedy swoją premierę miała najbardziej popularna seria systemów z rodziny CP/M - wersja 2.0, więc wsparcie rozszerzeń jakie on niósł nie mogły zostać już dodane do tego systemu (najpopularniejszy CP/M 2.2 jest wersją poprawkową wspomnianego). W późniejszych latach Digital Research skupił się na przebudowie swojego jądra na BDOS3 (na którym jest zbudowany MP/M 2 i CP/M 3) i powoli wycofywał się z rynku 8-bitwego, więc sterownik ANSI nigdy nie został tam dodany. 
Żeby nie było, że jestem tu malkontentem, bo w rzeczywistości jestem ogromnym entuzjastą CP/M i autopsji znam jego ograniczenia. Mój ulubiony MP/M, który wywarł na mnie ogromne wrażenie ma również swoje wady spowodowane datą jego powstania. Tu chylę czoło twórcom, że z powodzeniem udało im się na 8-bitowcu zaprojektować wielozadaniowy, wielodostępny system operacyjny, na czym kilka lat później globalny potentat oprogramowania połamał sobie zęby i wersja MS DOS 4.0 została wydana jako jednowątkowa.
« Ostatnia zmiana: 2025.04.14, 12:44:21 wysłana przez damik »

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #1 dnia: 2025.04.12, 21:31:42 »
Tak dla przypomnienia, koniec rozwoju ośmiobitowych wersji CP/M, MP/M i CP/Net to luty 1982, Digital Research dość wcześnie wyczuła pismo nosem i cały swój potencjał skupiła na wydanej pół roku wcześniej platformie IBM PC. To, że przez ponad dekadę produkowane były nadal różne konsumenckie komputery zgodne z tym systemem, nie zmienia tego faktu że nie był on już rozwijany, więc pozostał w epoce lat 70-tych.

To tak naprawdę nic nie zmienia. ZX Spectrum i Commodore C64 też zostały wypuszczone na rynek w 1982 roku, a pomimo tego wciąż miały wielu użytkowników jeszcze w pierwszej połowie lat dziewięćdziesiątych. To były trochę inne czasy niż obecnie, kiedy system po zakończeniu rozwoju i wyłączeniu wsparcia trafia do kosza, bo bezpieczeństwo. CP/M był tym czym miał być - relatywnie prosta platformą do obsługi pamięci dyskowych i ładowania programów, a także frameworkiem pozwalającym na tworzenie względnie zunifikowanego oprogramowania. Jasne, że dość szybko pozostał w tyle za DOS-em, ale jednak nadal był używany na domowych komputerach. Taki system + stacja dysków to i tak ogromny skok w stosunku do BASIC-a i ładowania programów z taśmy.

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #2 dnia: 2025.04.12, 22:13:12 »
Tu miałem na myśli, że żadne nowe rozszerzenia nie były już dodawane, jak obsługa kart graficznych a nawet wsparcie dla ANSI. Ten system pozostał w takiej formie jak w momencie jego premiery. Niewielki skok nastąpił z wydaniem BDOS3, ale ten był związany z obsługą dysków (CP/M 2.2 to epoka dyskietek), czasu i obsługi większej pamięci niż domyślne 64kB. Na podstawie CP/M powstał DOS (w zasadzie to jest jego klonem), zaś MP/M+CP/Net dało początek Netware. Digital Research przegrało swój bój o dominację na rynku systemów operacyjnych. Do końca nie rozwiązali też największej bolączki jakie cechowały ich systemy operacyjne - brak obsługi katalogów, tu FAT okazał się zdecydowanie lepszym rozwiązaniem.
Owszem był przełomowym rozwiązaniem na rynku 8-bit, wprowadzając unifikację tworzonego oprogramowania i był na tyle uniwersalny by stać się główny systemem wielu różnorodnych komputerów na 8080 i Z80. Czego nie można powiedzieć o 6502 (pewnie niektórym podpadnę), który był procesorem jednego systemu operacyjnego, jednego producenta co doprowadziło go do roli CPU konsol do gier i komputerów domowych. Lepszy los spotkał 6800 i pochodne, ten miał możliwość się pochwalić równie dobrymi systemami, z wielowątkowymi włącznie

paroos

  • *****
  • Wiadomości: 693
  • Miejsce pobytu:
    BB
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #3 dnia: 2025.04.12, 22:28:50 »
Tak naprawdę DOS nie był dosłownie klonem CP/M.
Żaden kod nie został skopiowany, więc nie doszło do kradzieży własności intelektualnej.
Ale cała struktura i zasada działania zostały odwzorowane.
To był pewnie pierwszy w historii remake  ;D


Z80 --> 48K, 48K+, 128K+2/+3, CPC 464/6128, C128D, Canon V-20, Panasonic FS-A1F, Sega SC-1000, Enterprise 64, NEC PC-6601/PC-8001/PC-8801mkII SR, Sharp MZ-700/MZ-2521, Sharp-X1C, Toshiba Pasopia 7, Sord M5 :)

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #4 dnia: 2025.04.13, 09:36:49 »
Tu miałem na myśli, że żadne nowe rozszerzenia nie były już dodawane, jak obsługa kart graficznych a nawet wsparcie dla ANSI. Ten system pozostał w takiej formie jak w momencie jego premiery. Niewielki skok nastąpił z wydaniem BDOS3, ale ten był związany z obsługą dysków (CP/M 2.2 to epoka dyskietek), czasu i obsługi większej pamięci niż domyślne 64kB.

A, jeśli o to chodzi to jestem w stanie się zgodzić. Nie ma najmniejszych wątpliwości co do tego, że systemy od Digital Research odpadły z wyścigu o segment zastosowań profesjonalnych i biznesowych. Jednak jeśli chodzi o zastosowania amatorskie jeszcze przez jakiś czas robiły wrażenie. Dyskowy system operacyjny pozwalający na uruchamianie tego samego oprogramowania pomiędzy systemami to ewenement w świecie ośmiobitowych komputerów, a sam interfejs użytkownika (ze względu na podobieństwo do DOS-a) dużo bardziej przywodzi na myśl późniejsze pecety, niż prostą protezę w postaci dyskowych poleceń dodanych do jakiegoś interpretera BASIC-a.
No i trzeba też przyznać, że kwestia standardów w zakresie grafiki nie wyglądała tak dobrze w latach osiemdziesiątych. Kolejne komputery od tego samego producenta potrafiły się tutaj różnić diametralnie. Tak wiec przenośność programów tekstowych pomiędzy różnymi systemami pracującymi z CP/M (pomijając kwestię rozszerzonej listy poleceń Z80) i tak robiła wrażenie.


Cytuj
zaś MP/M+CP/Net dało początek Netware.

MP/M szczególnie ciekawi mnie dlatego, że ten system jedna nogą zdaje się jeszcze siedzieć w czasach wielowątkowych i wieloużytkownikowych systemów na minikomputery i mainframe'y, gdzie poszczególni użytkownicy łączyli się przez swój własny terminal, otrzymując swój własny przydział czasu procesora na wykonanie swojego własnego programu. Dlatego mam na liście projektów zbudowanie komputerka na Z80182, właśnie z myślą o uruchomieniu tego systemu. ;)

Cytuj
brak obsługi katalogów, tu FAT okazał się zdecydowanie lepszym rozwiązaniem.

Tu przyznaję - to faktycznie boli podczas używania tych systemów. Chociaż znowu - skok w porównaniu do obsługi taśmy (czy nawet dysków) z poziomu BASIC-a na typowych komputerach ośmiobitowych.

Cytuj
Lepszy los spotkał 6800 i pochodne, ten miał możliwość się pochwalić równie dobrymi systemami, z wielowątkowymi włącznie

Jeśli już o tym mowa... Jest jakiś w miarę dobry system pod 6800, który miałby dostępne źródła i dawał się łatwo zaadaptować do różnych komputerów (podobnie jak CP/M)? Pytam, bo jakiś czas temu złożyłem komputerek na MC6802. W EPROM-ie ma w tej chwili jakieś monitory pamięci o bootloader pozwalający na ładowanie softu przez port szeregowy. Na płytce przewidziałem miejsce na kartę CF, ale jeszcze jej nie wykorzystywałem. Gdyby tak napisać bootloader, może udałoby się załadować jakiś dyskowy system operacyjny, korzystający z karty CF. Analogicznie do moich projektów z CP/M.

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #5 dnia: 2025.04.13, 12:23:40 »
Tak, MP/M to fascynujący system operacyjny jak na swoje lata. Pamiętam swoje pierwsze wrażenia, gdy trakcie prac nad CP/Net zmuszony byłem go wdrożyć na jednym ze swoich komputerów jako serwer tej sieci (nie przekonywały mnie dostępne rozwiązania, w których tą rolę pełnił PC), i w trakcie poznawania jego funkcji dotarło do mnie "Chole.a, przecież ja siedzę przez 8-bitowcem!". Możliwość uruchamiania wielu programów, przełączanie się pomiędzy nimi, używanie kolejnej konsoli w podobny sposób robiło wrażenie, którego nigdy nie doświadczyłem używając "czystego" DOS na znacznie potężniejszych komputerach wiele lat później (na maszyny x86 istniało oprogramowanie, oraz systemy, które taką funkcjonalność oferowały). System ten oferuje wszystkie elementy współcześnie używane w systemach wielowątkowych, nieblokujące procedury obsługi sprzętu, kolejki, semafory, programowe przerwania, priorytety zadań, pewne elementy ochrony działających zadań, a zarazem zapewnia on możliwość uruchamiania oprogramowania przeznaczonego dla jednowątkowego CP/M. Kolejna sprawa to łatwość dostosowania go do własnego sprzętu, budowa BIOS jest podobna do tej z CP/M 2.2, więc uruchomienie nie powinno sprawiać większych trudności. Uzyskano to dzięki okrojeniu BDOS3 z obsługi dysków, więc ich użycie wymaga dodania procedur deblock.
Teraz łyżka dziegciu w tej beczce miodu, data jego powstania to czasy gdy komputery posiadały niewiele pamięci (pełne swoje możliwości MP/M oferuje z 512kB RAM) więc jej obsługa jest mocno uproszczona w postaci banków, co realnie ogranicza możliwość uruchomienia do siedmiu programów CP/M z dostępnym TPA w wielkości 48kB, a to często bywa za mało (programy przeznaczone tylko dla MP/M są tylko ograniczone są dostępną pamięcią, więc tych może być ich uruchomionych więcej). MP/M to też większe wymagania sprzętowe niż w przypadku CP/M, obowiązkowa jest obecność układu typu CTC, podobnie jak menadżera pamięci obsługującego 16kB bloki lub MMU znanego z Z180.

PS. Z rodziną 6800 miałem krótką styczność, zbudowałem tylko moduł CPU na HD63C09, jeszcze w formacie RC2014 i nie próbowałem tam instalować żadnego z dostępnych dla tych procesorów systemów operacyjnych. Zadowoliłem się tylko BASIC. Niestety doba wprowadza pewne ograniczenia z ilością dostępnego wolnego czasu ;)

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #6 dnia: 2025.04.14, 08:00:24 »
Tak, MP/M to fascynujący system operacyjny jak na swoje lata. Pamiętam swoje pierwsze wrażenia, gdy trakcie prac nad CP/Net zmuszony byłem go wdrożyć na jednym ze swoich komputerów jako serwer tej sieci (nie przekonywały mnie dostępne rozwiązania, w których tą rolę pełnił PC), i w trakcie poznawania jego funkcji dotarło do mnie "Chole.a, przecież ja siedzę przez 8-bitowcem!". Możliwość uruchamiania wielu programów, przełączanie się pomiędzy nimi, używanie kolejnej konsoli w podobny sposób robiło wrażenie, którego nigdy nie doświadczyłem używając "czystego" DOS na znacznie potężniejszych komputerach wiele lat później

Ja miałem bardzo podobne wrażenie, gdy po raz pierwszy dotarło do mnie jak wyglądało korzystanie z wieloużytkownikowych systemów operacyjnych do time sharingu, odpalanych na minikomputerach. Tylko to można jeszcze zrozumieć - duży komputer, w którym procesor zajmował cały moduł na sporej PCB (a więc nie był ograniczony tym, co można było upchnąć na kawałku krzemu na przełomie lat siedemdziesiątych i osiemdziesiątych) mógł naprawdę zaoferować sporo mocy obliczeniowej. MP/M przenosi to zaskoczenie na zupełnie inny poziom, bo uzyskujemy bardzo podobny efekt za pomocą tego samego procesora, który był używany w milionach komputerów domowych (w przypadku systemów z Z80 z zewnętrznym MMU) albo jego nieco nowszej wersji (Z180).

Cytuj
Kolejna sprawa to łatwość dostosowania go do własnego sprzętu, budowa BIOS jest podobna do tej z CP/M 2.2, więc uruchomienie nie powinno sprawiać większych trudności. Uzyskano to dzięki okrojeniu BDOS3 z obsługi dysków, więc ich użycie wymaga dodania procedur deblock.

Czyli rozumiem, że kartę CF obsłużę w taki sam sposób, jak w moich obecnych komputerkach pod CP/M?


Cytuj
Teraz łyżka dziegciu w tej beczce miodu, data jego powstania to czasy gdy komputery posiadały niewiele pamięci (pełne swoje możliwości MP/M oferuje z 512kB RAM) więc jej obsługa jest mocno uproszczona w postaci banków, co realnie ogranicza możliwość uruchomienia do siedmiu programów CP/M z dostępnym TPA w wielkości 48kB, a to często bywa za mało (programy przeznaczone tylko dla MP/M są tylko ograniczone są dostępną pamięcią, więc tych może być ich uruchomionych więcej).

Na ten problem generalnie się nadziałem projektując moje komputerki pod CP/M. Naiwnie założyłem, że 48kB RAM-u w zupełności wystarczy i postanowiłem zostawić sobie 16kB EPROM w górnej ćwiartce przestrzeni adresowej. Założenie było takie, że będę tam trzymał bibliotekę procedur, z których będzie mógł korzystać BIOS, tym samym oszczędzając pamięć. Rzeczywiste oszczędności okazały się złudne, a ja zablokowałem sobie możliwość uruchamiania części software'u (nie działało m.in. Collosal Cave Adventure, na którym mi dość mocno zależało). Finalnie większość konstrukcji została potem przerobiona pod kątem ROM shadowingu.
To, że w MP/M nie będę w stanie uruchamiać tych programów to tylko drobna niedogodność - mam już do tego odpowiedni sprzęt. :)


Cytuj
MP/M to też większe wymagania sprzętowe niż w przypadku CP/M, obowiązkowa jest obecność układu typu CTC, podobnie jak menadżera pamięci obsługującego 16kB bloki lub MMU znanego z Z180.

Generalnie w każdej swojej konstrukcji staram się umieszczać jakiś timer zdolny do generowania przerwań. Nawet jeśli w chwili obecnej nie jest używany przez sam system, to może się przydać np. w jakiś programie.
Zresztą... Raczej nie będę się bawił w przystosowywanie którejś z moich obecnych konstrukcji na 8080/8085/Z80 do obsługi MP/M. Raczej zbuduję w tym celu zupełnie nowy komputerek. Właśnie na Z180, HD64180 albo (co najbardziej prawdopodobne) Z8018233ASC. Chyba nie chciałoby mi się po raz kolejny przebudowywać istniejących projektów z myślą o dodaniu MMU i większej pamięci.

Swoją drogą, czy MP/M może być bootowany bezpośrednio po starcie systemu? Pytam, bo niektóre materiały jakie znalazłem w sieci wskazywały, że był on odpalany z poziomu CP/M, już po jego uruchomieniu. No chyba, że to ja niewłaściwie zinterpretowałem jakiś fragment.

[/quote]PS. Z rodziną 6800 miałem krótką styczność, zbudowałem tylko moduł CPU na HD63C09, jeszcze w formacie RC2014 i nie próbowałem tam instalować żadnego z dostępnych dla tych procesorów systemów operacyjnych. Zadowoliłem się tylko BASIC. Niestety doba wprowadza pewne ograniczenia z ilością dostępnego wolnego czasu ;)
[/quote]

Wydaje mi się, że mogłem kiedyś złożyć tę twoja płytkę na HD63C09. Ciągle czeka na eksperymenty. :)
Przy czym 6809 to już dość zaawansowany procesor z tej rodziny. Moja konstrukcja jest oparta na znacznie bardziej prymitywnym MC6802, który posiada właściwie identyczną architekturę i zbiór instrukcji z klasycznym MC6800. Tak więc w zakresie systemów i oprogramowania będę musiał szukać raczej wśród znacznie starszych i bardziej prymitywnych rozwiązań. :) Na razie udało mi się na tym odpalić jakieś monitory pamięci, BASIC i trochę gier tekstowych po załadowaniu przez bootloader używający portu szeregowego.

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #7 dnia: 2025.04.14, 09:07:03 »
Zdaje się, że moje wypowiedzi wprowadziły spory off-topic głównego, bardzo interesującego tematu wątku, więc się streszczę tylko do odpowiedzi na zadane pytania.
- Digital Research sugerowała przeróbkę BIOS CP/M 2.2 na XIOS MP/M, więc działające procedury obsługi sprzętu można wykorzystać. Należało je przerobić na nieblokujące, wszystkie pętle oczekiwania na gotowość sprzętu, dostępnego znaku nie mogły być używane, należało zwolnić CPU do procesu dyspozytora systemu z zaznaczeniem, że taki proces oczekuje na zdarzenie.
- Tak, można uruchamiać MP/M bezpośrednio z dysku. Moja implementacja jest uruchamiana z poziomu CP/M tylko z jednego powodu, opisana powyżej procedura obsługi sprzętu praktycznie wyklucza możliwość użycia oprogramowania komunikacyjnego (np. XModem) poprzez systemowe procedury obsługi konsoli, więc wygodniej jest za pomocą CP/M przesłać coś na dysk. Zegary procesorów są zbyt wolne, by to było w ten sposób możliwe. Próbowałem użyć przerwań i niewielkiego buforu w kolejce, ale to nie pomogło, procesor obsługujący wiele wątków nie nadąża. Mam w planach spróbować użyć kolejki LIFO z kontrolą przepływu, jako plan B moduł jądra do obsługi xmodem. Ostatecznością będzie zastosowanie jakiegoś układu, który sprzętowo realizuje kontrolę przepływu. Obecnie są to tylko plany na przyszłość.

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Odp: Karty graficzne do komputerów pod CP/M
« Odpowiedź #8 dnia: 2025.04.15, 10:35:10 »
- Digital Research sugerowała przeróbkę BIOS CP/M 2.2 na XIOS MP/M, więc działające procedury obsługi sprzętu można wykorzystać. Należało je przerobić na nieblokujące, wszystkie pętle oczekiwania na gotowość sprzętu, dostępnego znaku nie mogły być używane, należało zwolnić CPU do procesu dyspozytora systemu z zaznaczeniem, że taki proces oczekuje na zdarzenie.

Ok, czyli powinienem być w stanie odpalić MP/M na swoich konstrukcjach. Przy czym w obecnej wersji wiele na nich nie zdziałam, bo wszystkie komputerki posiadają co najwyżej 64kB pamięci RAM. W dodatku obecnie mój BIOS jest napisany w asemblerze 8080 (powstawał z myślą o projekcie na MCY7880) i musiałbym go przepisać na asembler Z80.
Nie wiem czy projektując komputer z Z180/HD64180/Z8018233ASC nie zastosuję odwrotnego podejścia, budując go w taki sposób, aby był kompatybilny w jakimś istniejącym firmware. Pewnie coś powinno się znaleźć w świecie konstrukcji na RCBus. ;)

Swoją drogą... Wydaje mi się, że kiedyś wspominałeś o projektach na Z8000 oraz Z280. Mogę zapytać gdzie udało Ci się kupić te układy? Z280 nie widzę w ogóle u polskich sprzedawców, jest jakaś oferta na Aliexpress. W przypadku Z8000 widzę tylko Z8002 (wersja z okrojoną, szesnastobitową magistralą adresową), wersji Z8001 nie widzę nigdzie.
Chciałem uzupełnić podręczny zapas części do przyszłych projektów bo wiem, że pewnie z ich dostępnością będzie już tylko trudniej. :)

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Historia CP/M, jego odmiany oraz wersje.
« Odpowiedź #9 dnia: 2025.04.15, 16:34:59 »
MP/M możesz uruchomić na 8080 z 64kB, w dokumentacji jest napisane, że wystarczy tylko 32kB :) Co prawda, nie wspominają już o tym, że można zapomnieć o uruchomieniu kilku programów zgodnych z CP/M, tylko ograniczy się do małych aplikacji dedykowanym MP/M. Puryści CP/M nie uznają rozszerzeń jakie wprowadzają 8085 i Z80, uważając poniekąd słusznie, że aplikacje dla tego systemu powinny uruchomić się na każdym, zgodnym z CP/M komputerze.

W kwestii firmware to nie warto wywarzać otwartych drzwi i powinno się korzystać z istniejących rozwiązań, zachowując pewną czujność w kwestii często stosowanych w nich uproszczeń i zaniechań w celu ich poprawienia.

Procesory Z280 które posiadam to import Chin, nigdy ich nie spotkałem w polskich sklepach. W naszym kraju (i nie tylko) są one praktycznie nieznane, nie cieszą się popytem więc też nie są obiektem procederu "malowanek". Z rodziną Z8000 to bardziej skomplikowany temat, ponieważ rzadko były stosowane w konsumenckim sprzęcie więc trudno znaleźć jakieś elementy wchodzące w jej skład. Swoją, nadal niepełną, "kolekcję" mozolnie gromadziłem przez kilka lat kupując te scalaki po całym świecie, z momentami zwątpienia, czy opisane w katalogach układy scalone zostały kiedykolwiek wyprodukowane (takim był, cudem zdobyty w Hiszpanii, Z8016 DTC czyli DMA dla Z8K). Skupiłem się tylko na klasycznej wersji Z8000, do tej z obsługa pamięci wirtualnej nawet nie podchodziłem - procesory Z8003/4 są do zdobycia, ale układu Z8015 PMMU, by te poszukiwania miały sens, to nawet nie znalazłem zdjęcia w Internecie. Duże szanse są na zakup klonów made DDR, we włoskich sklepach można znaleźć układy SGS z tej rodziny.

Obecnie bawię się takim modułem, który jest zalążkiem do budowy pełnego modułowego komputera dla szyny 16-bitowej szyny ZBUS dla procesorów Z8000 i Z280 w trybie 16-bit.
 

Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Historia CP/M, jego odmiany oraz wersje.
« Odpowiedź #10 dnia: 2025.04.29, 09:28:24 »
MP/M możesz uruchomić na 8080 z 64kB, w dokumentacji jest napisane, że wystarczy tylko 32kB :) Co prawda, nie wspominają już o tym, że można zapomnieć o uruchomieniu kilku programów zgodnych z CP/M, tylko ograniczy się do małych aplikacji dedykowanym MP/M.

Tak w sumie przyszło mi do głowy, że mógłbym zmodyfikować swój projekt komputera na MCY7880 z myślą o uruchomieniu na nim MP/M. W kwestii RAM-u i tak poszedłem na pewien kompromis, używając dwóch statycznych pamięci 62256. Równie dobrze mógłbym dać jeszcze większy chip SRAM + jakiś układ do przełączania bankami. Mógłbyś zaproponować jakieś relatywnie proste rozwiązanie kompatybilne z MP/M? Powinienem użyć 74HCT612? A może jakiejś konstrukcji z układów logicznych?


Cytuj
Puryści CP/M nie uznają rozszerzeń jakie wprowadzają 8085 i Z80, uważając poniekąd słusznie, że aplikacje dla tego systemu powinny uruchomić się na każdym, zgodnym z CP/M komputerze.

W przypadku 8085 aż tak wielu rozszerzeń nie było. Z tego co pamiętam tych kilka dodatkowych instrukcji odnosiło się do nowych funkcji związanych z przerwaniami i pinami do transmisji szeregowej. Raczej mocno sprzętowa specyfika - coś, co będzie używane przez BIOS, a nie soft uruchamiany przez użytkownika. Dopiero Z80 mocno tutaj namieszał z rozszerzoną listą instrukcji.
I z jednej strony zgoda - fakt, że program się crashuje bo został przygotowany na Z80 bywa irytujący. Z drugiej nawet na współczesnych komputerach zdarza się, że jakiś program nie chce wystartować z uwgai na fakt, że posidany procesor nie obsługuje jakiegoś rozszerzenia listy instrukcji. Przy czym obecnie przynajmniej system raportuje taką sytuację, nie podejmując próby wykoanania kodu. ;)

Cytuj
Procesory Z280 które posiadam to import Chin, nigdy ich nie spotkałem w polskich sklepach. W naszym kraju (i nie tylko) są one praktycznie nieznane, nie cieszą się popytem więc też nie są obiektem procederu "malowanek".

Jak patrzę na opisy to widzę, że w swojej karcie z Z280 zastosowałeś chyba współczesny ATTiny do obsługi resetu i ładowania jakiegoś specjalnego rejestru konfiguracyjnego przy starcie. Czuję pewien dyskomfortu używając współczesnych mikrokontrolerów w projektach retro. Można to jakoś ogarnąć za pomocą logiki TTL/GAL?

Cytuj
Swoją, nadal niepełną, "kolekcję" mozolnie gromadziłem przez kilka lat kupując te scalaki po całym świecie, z momentami zwątpienia, czy opisane w katalogach układy scalone zostały kiedykolwiek wyprodukowane (takim był, cudem zdobyty w Hiszpanii, Z8016 DTC czyli DMA dla Z8K). Skupiłem się tylko na klasycznej wersji Z8000, do tej z obsługa pamięci wirtualnej nawet nie podchodziłem - procesory Z8003/4 są do zdobycia, ale układu Z8015 PMMU, by te poszukiwania miały sens, to nawet nie znalazłem zdjęcia w Internecie. Duże szanse są na zakup klonów made DDR, we włoskich sklepach można znaleźć układy SGS z tej rodziny.

Ja może nie mam ambicji, żeby budować jakąś kompletną kolekcję. Po prostu uświadomiłem sobie, że za jakiś czas może być problem z zakupem elementów, które obecnie są względnie dostępne (np. wersje NMOS). Miałem tak kiedyś z lampami. Cieszę się, że kilkanaście lat temu zrobiłem pewien zapas lamp do konstrukcji radioamatorskich/krótkofalarskich - dzisiaj na niektóre z nich musiałbym wydać sporo większe kwoty. ;)

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Historia CP/M, jego odmiany oraz wersje.
« Odpowiedź #11 dnia: 2025.04.29, 16:07:10 »
Można zbudować proste MMU dedykowane dla tego systemu na TTL. Jego zaletą będzie szybkie przełączanie pomiędzy bankami, wadą sztywny podział pamięci 48/16kB i powstanie obszarów pamięci nie do wykorzystania (z 512kB użyteczne będzie tylko 400kB). Można rozwinąć tą ideę poprzez użycie 8-bitowy zatrzasku 74HCT273 który pozwoli na dostęp do całej pamięci, ale sztywny podział pozostanie.



8085 posiada wiele interesujących rozszerzeń, które nie zostały opublikowane przez Intela, gdyż mogły zagrażać promocji 8086, a są one dostępne w wszystkich 8085, niezależnie od producenta i wykonanej technologii. Jedynym producentem który umieścił je w swojej dokumentacji technicznej jest kanadyjska firma Tundra, reszta firm przemilczała o tych nowościach. Warto zwrócić uwagę, że te "nieudokumentowane" instrukcje 8085, które służyły do obsługi tablic, przebijały wydajnością i elegancją rozwiązania niezbyt udanych rejestrów indeksowych Z80. Niestety, już tamte czasy zapoczątkowały triumf marketingu nad inżynierią, czego świetnym przykładem jest też nasz ulubiony procesor Z80, lepiej było sprzedać produkt z podwójnym zestawem rejestrów, kosztem szybkiej obsługi przerwań.

W przypadku Z280 to użycie AVR był z mojej strony kompromis pomiędzy możliwościami a dostępną wielkością PCB. Można nie używać żadnego układu ustawiającego rejestr kontrolny procesora i godzić się z połową wydajności szyny zewnętrznej albo użyć drabinki rezystorowej ustawiającej określone bity lub prostej logiki. Sprawy się trochę komplikują gdy chcemy skorzystać z ładowania wstępnego, tu logika staje się bardziej skomplikowana i często sam proces odbywa się za pomocą PC (wspomniane rozwiązania warto prześledzić na projektach Bill Shena). Użycie jednego małego i prostego mikrokontrolera rozwiązuje te problemy i jak komuś AVR wydaje się zbyt nowoczesny, do tego celu można użyć czegoś z "epoki" MCS-48 lub MCS-51. ;)

Określenie "kolekcja" dla Z8000 było dwuznaczne, dopóki te układy nie są obsadzone w systemie, to jest to jednak pewna forma zbieractwa. Chcąc jednak zbudować taki kompletny system należy uzbierać takie fanty by móc cokolwiek z nimi zrobić. Owszem można iść po najniższej linii oporu i zadowolić się samym CPU, ale w przypadku tej architektury geniusz koncepcji Z8K Zilog jest możliwy tylko do osiągnięcia w przypadku posiadania dedykowanych elementów do tego systemu. Intel z 8086 to była tylko ewolucja 8 bitowego ekosystemu, korzystająca z istniejących rozwiązań które były znane na rynku, a Motorola spoczęła na laurach po wydaniu rewelacyjnego 68000 zapominając o jego otoczeniu. Dopiero trzecie wersje tych producentów (80386, 68030) osiągnęły możliwości pierwszej i jedynej iteracji Ziloga, ale też to już były w pełni 32 bitowe środowiska i pojawiły się na rynku prawie dekadę później. 




Atlantis

  • ****
  • Wiadomości: 319
  • Miejsce pobytu:
    Kraków
Odp: Historia CP/M, jego odmiany oraz wersje.
« Odpowiedź #12 dnia: 2025.04.29, 18:28:06 »
Można zbudować proste MMU dedykowane dla tego systemu na TTL. Jego zaletą będzie szybkie przełączanie pomiędzy bankami, wadą sztywny podział pamięci 48/16kB i powstanie obszarów pamięci nie do wykorzystania (z 512kB użyteczne będzie tylko 400kB). Można rozwinąć tą ideę poprzez użycie 8-bitowy zatrzasku 74HCT273 który pozwoli na dostęp do całej pamięci, ale sztywny podział pozostanie.

Wyjaśnisz w jaki sposób podłączyć 74HCT273 i ilu linii będę potrzebował? Bo jakoś na szybko nie mogę sobie tego zwizualizować w głowie. ;)
Mam w tej chwili w projekcie port wyjściowy zrealizowany na 8212, który na chwilę obecną jest wykorzystywany jedynie do aktywowania ROM shadowingu i sterowania dwiema diodami (które na dobrą chwilę obecnie nie są mi do niczego potrzebne, oryginalnie wykorzystywałem je do debugowania). Mogę wykorzystać ten port zamiast 74HCT273?
I jak wygląda kwestia ROM shadowingu w przypadku zastosowania takiego prostego MMU? W końcu po resecie EPROM powinien się znaleźć pod adresem 0x0000.

Cytuj
8085 posiada wiele interesujących rozszerzeń, które nie zostały opublikowane przez Intela, gdyż mogły zagrażać promocji 8086, a są one dostępne w wszystkich 8085, niezależnie od producenta i wykonanej technologii. Jedynym producentem który umieścił je w swojej dokumentacji technicznej jest kanadyjska firma Tundra, reszta firm przemilczała o tych nowościach. Warto zwrócić uwagę, że te "nieudokumentowane" instrukcje 8085, które służyły do obsługi tablic, przebijały wydajnością i elegancją rozwiązania niezbyt udanych rejestrów indeksowych Z80.

A, ok - w ten sposób. Przyznam, że nigdy jakoś bardziej nie interesowałem się tematem nieudokumentowanych rozkazów. Może kiedyś bliżej im się przyjrzę i użyję do zoptymalizowania BIOS-u w moich projektach z CP/M.

Cytuj
Określenie "kolekcja" dla Z8000 było dwuznaczne, dopóki te układy nie są obsadzone w systemie, to jest to jednak pewna forma zbieractwa. Chcąc jednak zbudować taki kompletny system należy uzbierać takie fanty by móc cokolwiek z nimi zrobić. Owszem można iść po najniższej linii oporu i zadowolić się samym CPU, ale w przypadku tej architektury geniusz koncepcji Z8K Zilog jest możliwy tylko do osiągnięcia w przypadku posiadania dedykowanych elementów do tego systemu.

U mnie generalnie jest podobnie. Generalnie kolekcjonuję starą technikę - głównie komputery i konsole, ale też np. sprzęt radiowy i telekomunikacyjny. Sporo z tego staram się uruchomić. Części elektroniczne pełnią podwójną rolę. Część to po prostu elementy kolekcji, ale niektóre trzymam z myślą o zbudowaniu na nich czegoś w przyszłości. Lista projektów jest dość długa, czasu mniej. Jednak zdaję sobie sprawę, że za kilka lat nabycie niektórych części retro może być większym problemem niż obecnie, dlatego wolę zawczasu uzupełnić zapasy. ;)


Cytuj
Intel z 8086 to była tylko ewolucja 8 bitowego ekosystemu, korzystająca z istniejących rozwiązań które były znane na rynku, a Motorola spoczęła na laurach po wydaniu rewelacyjnego 68000 zapominając o jego otoczeniu. Dopiero trzecie wersje tych producentów (80386, 68030) osiągnęły możliwości pierwszej i jedynej iteracji Ziloga, ale też to już były w pełni 32 bitowe środowiska i pojawiły się na rynku prawie dekadę później.

Będę musiał przyjrzeć się temu Z8000 w takim razie. Może gdzieś uda mi się kupić procesor i dodatkowe elementy.
Na razie będę chciał dopracować obecne projekty na 8080/8085/Z80 (zostało przede wszystkim zaprojektowanie i wykonanie karty graficznej.
Potem będę chciał zbudować komputerek na Z8018288ASC oraz coś na MC68008. W dalszej kolejności chciałbym też zbudować coś np. na 68030, zdolnego do odpalenia Linuksa (tutaj może jednak skorzystam z któregoś z istniejących projektów i nie będę wyważał otartych drzwi).
A to tylko pomysły na projekty dotyczące retro komputerów. W kolejce czeka jeszcze kilka "użytecznych" konstrukcji opartych na współczesnych mikrokontrolerach.

tapy

  • ****
  • Wiadomości: 295
  • Z80 & CP/M
Odp: Historia CP/M, jego odmiany oraz wersje.
« Odpowiedź #13 dnia: 2025.04.29, 20:21:28 »
Jak dobrze pamiętam, to 8212 ma wejście zerujące (to kluczowe w takim projekcie) więc każdą wyjściową linię należy podłączyć do multipleksera 157 (dolna połówka tak jak na schemacie, zaś górna zastępuje wymuszone stałe poziomy). Schemat zawiera błąd, zamiast bramki OR powinna być tam AND, tak robiony na szybko szkic nie zawsze jest dobrym pomysłem :) Podział pamięci, pierwsze 512kB to ROM, kolejne to RAM. Po RESET zawsze masz odniesienie do 64kB ROM i jedną z pierwszych instrukcji przed użyciem RAM musi być ustawienie linii A19 dla części powyżej 48kB by móc załadować do niej system.

W systemie Z8000 poza budową samego CPU jest kluczowe posiadanie dedykowanego MMU (a najlepiej dwóch ;) ), by w pełni cieszyć się możliwościami tej architektury. Pozostałe układy które zbierałem, to już był mój kaprys, choć uważam że DMA również się przydaje. Jak wspomniałem samo CPU również daje pewne pojęcie o jego możliwościach i jest najłatwiejszym do zdobycia elementem. W Polsce można bez problemu zaopatrzyć się w ciekawy i dość rzadki układ z tej rodziny Z16C20 GLU (ciekawe czy ktoś wie, że dla Z80 też taki układ istniał? - Z84C80/81) za pomocą którego można zbudować kompletny komputer Z8K, dostępne też są typowe peryferia wraz z interesującym układem Z8038 FIO który może służyć jako brama do połączenia z Z80 jako procesora pomocniczego/komunikacyjnego/...