CP/M i 64kB

Cześć.

Ja bez żadnego trybu, archeologicznie.

Patrze sobie na mapę pamięci CP/M i widzę że w końcówce RAM znajduje się zarówno CP/M jak i BIOS.

Widzę po necie że istniały komputery CP/M z 64kB RAM. Zakładając że choć troche tego ram było zastapione ROM (np. bios) to pytanie brzmi: czy w CP/M dało się w jakiś sposób uzyskać te *prawie* 64kB dla programu usera czy też BIOS, BDOS i interpreter zajmowały zawsze swoje i dla programów zostawało mniej?

Szukam sobie po stronach o cp/m i jakoś nie znalazłem informacji że np. istniało jakieś api do stronicowania pamięci.

Wstępnie zakładam że BIOS mógł być w ROM ale BDOS i interpreter były w ramie i nie dało się ich wyłączyć.

Reply to
Sebastian Biały
Loading thread data ...

Pfff, zapomnialem najważniejszego. 2.2. Wersja 3 mnie nie interesuje.

Reply to
Sebastian Biały

OIDP to dopiero 3 miała tę możliwość.

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz

Tak własnie koncypuje.

Kupiłem u chinoli kilka szuk Z80. Harlequin poskładany i teraz zastanawiam się co dalej ;)

Reply to
Sebastian Biały

A pliki masz ? BIOS musisz napisac, CP/M trzeba jakos zdobyc.

Do tego Wordstar, TurboPascal, DBase, M80, L80, Basic ... zeby bylo co pokazac :-)

J.

Reply to
J.F.

BIOS mogę napisać sam, przecież na tym fun polega, ba, emulator mogę napisać zanim w ogóle hardware dotknę (hackując MAME albo robiąc od 0).

Oglądałem dokumetację z DigitalResearch i wyglada na to że BIOS jest absurdalnie prosty. Z 10 wektórów w BIOSie do przepisania z gatunku "odczytaj sektor" / "odczytaj znak". Z Z80 asm już nie pamiętam za dużo, ale to takie samo dziadostwo jak z x86, kwestia łyknięcia setki zanim przystapie do babrania się w tym g... bo na trzeźwo szlag trafia.

CP/M w wersjach 2.x jest dostepny jako źrodła i binaria, oficjalnie i legalnie.

formatting link

Powinny ruszyć od strzału. Nigdy nie miałem maszyny z CP/M w rękach i jestem ciekawy o co chodzi z tym profesjonalizmem, chwilowo zakładam że chodzi o te 80 kolumn i nic więcej bo reszte "ficzerów" i w Atari można było zobaczyć ;). Jak by jeszcze miał S-100 bus to łomatko :)

A jak by jeszcze dorzucić GSX...

Reply to
Sebastian Biały

A nawet musisz.

Ba, nie musisz pisac, sa napisane :-)

Owszem, jest prosty.

Ale jeszcze przydaloby sie emulacje terminala, np VT-52.

Powinny. Wordstar wymagal konfiguracji terminala.

Ale ... masz je ?

Mozliwe, ze profesjonalna byla cena :-) Na pewno profesjonalizmu dodawaly dyskietki (i kosztow).

No ale jak byl DBase ... proste programy bazodanowe mozna pisac.

J.

Reply to
J.F.

W dniu niedziela, 24 lutego 2019 10:11:23 UTC-6 użytkownik Sebastian Biały napisał:

W CP/M to nie wiem. W c64 bylo mozna przelaczyc jaka pamiec byla podlaczona do szyny i tym samym wylaczyc rom/pamiec ekranu z pamieci i wykorzystac prawie cale 64kb.

Nie wiem czy ktos z tego korzystal w konkretnym zastosowaniu.

Reply to
sczygiel

A no to faktycznie dobre pytanie ;) Nie znam tego, ale jakie są wyjścia do peryferiów?

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz

W Atari też. Ale CP/M to taki procesor z abstrakcją sprzętu i musiało by do tego istnieć API.

Reply to
Sebastian Biały

Terminalowe (znakowe) i blokowe (dyskietka).

Szukam info jak to obsługuje dyski twarde ale wygąda na to że podobnie jak dyskietki.

Goły CP/M to bieda, tylko powolny terminal znakowy i mierny fiesystem na dyskietce, Atari i C64 miały tony więcej ficzerów. Grafika prawie nie istnieje choć pod koniec był na to jakiś wczesny GEM.

Ale to jednak uważane jest za "profesjonalne". Wychodzi na to że to słowo jest kłopotliwe w definicji ;)

Reply to
Sebastian Biały

W dniu niedziela, 24 lutego 2019 17:11:23 UTC+1 użytkownik Sebastian Biały napisał:

CP/M był cudem, oczywiście mając proporcjum, mocium panie, co do wymaganego komputera i tym samym spodziewanych możliwości, na miarę UNIXa, mimo swoich nieprzyjemnych wad, czyli wymagania dyskietek i działania (przenośnego) wyłącznie w txt (przecież nawet spectrum jakąś tam grafikę miał). Ja znam jedynie z fascynującej lektury, bo jak Kildall to wypuścił, to ja jeszcze w planach nie byłem nawet ;>

Ogólnie wymaganie jest jedno - żeby można było załadować komputerowi do pamięci 3 bajty pod adresem 0 - była to dokładnie instrukcja skoku do CP/M, czyli system call - a parametry szły w rejestrach. To, do jakiego adresu był skok, ustalało się w czasie kompilacji dla danej maszyny - czy wręcz jej konfiguracji, bo np. dla zamontowanych 32kB RAM trzeba było zrobić jedną kompilację, które też działałaby na 64kB RAM, oczywiście pozwalając korzystać tylko z 32kB (a kompilacja dla 64kB RAM nie działałaby na 32kB).

Więc wracając do tematu, komputer jakiś ROM musiał mieć, taki, który choć potrafiłby odczytać pierwszy sektor dyskietki pod jakiś adres i potem pod ten adres skoczyć. Po skoku można już odłączyć ROM i w to miejsce załączyć RAM - analogicznie jak robiło się to w C64, tyle że z Z80 będzie trochę trudniej niż z 6410, bo 6410 miał w tym celu bodajże 3 końcówki działające jak porty I/O w mikrokontrolerze - dlatego też na C64 nie można nigdy było mieć pełnych 65536 bajtów RAM do dyspozycji, bo bodajże jeden (a możę 2 lub 3) adres zawsze był memory mapped i/o dla rejestru sterującego tymi końcówkami. Wszystko zależy od tego, jak sobie komputer skonstruujesz.

Np. na spectrum nie można było uruchomić CP/M, bo pod adresem 0 miał na stałe ROM, RAM było dopiero od 16kB. Więc nawet nic nie pomagała przeróbka na 80kB RAM (16kB+2*32kB - bo 16kB RAM było w jednym typie układów - i tylko te były montowane w spectrum 16kB - a pozostałe 32kB to były tak naprawdę 64kB, ale złożone z chipów, które miały uszkodzone po jednym z dwóch 16kB banków). Jak miałeś FDD3000, to tak naprawdę CP/M działał na FDD3000 - to był cały komputer z Z80 (i to chyba 4MHz, nie 3,5MHz jak w spektrusiu), 64kB RAM (choć tu być może trzeba było uzupełnić, bo TOS działał już przy 16kB, jak w FDD3) i stacjami dyskietek - a spectrum robił tylko za terminal, uruchamiając program z ROMu podłączonego do złącza krawędziowego...

Reply to
drutkow1

Nie, mógłbym odtworzyć jeden z tamtych komputerów, np. jakąś stację dysków któa działała jako komputer CP/M.

Sympatyczniej będzie napisac jednak od 0.

To już detale bez znaczenia.

Akurat te? Nie wiem czy są, ale jest miliard języków programowania do pobrania albo jako abadonware albo free.

Reply to
Sebastian Biały

Mam wrazenie, ze wcale nie obsluguje. Moze 3.0.

Tzn jak sie uda oprogramowac twardziela jak dyskietke, to bedzie obslugiwal, tylko kwestia rozmiaru.

Atari moze i mialy tony ficzerow, ale one byly do grania, nie do pracy :-)

J.

Reply to
J.F.

Użytkownik drutkow1 napisał w wiadomości grup dyskusyjnych: snipped-for-privacy@googlegroups.com...

Nie pamietam juz jak sie bootowal ... moze ROM musial BDOS przeczytac.

Wrecz trzeba bylo. Bo jak pisales - CPM wymagal od adresu 0 RAM, a 8080 na starcie - ROM. Po starcie trzeba bylo przelaczyc.

I to bardzo kiepski terminal, bo tylko 32 znaki, zamiast 80. Timex byl lepszy, bo jednak 64.

J.

Reply to
J.F.

Chyba sobie nie przypominam HDD pod CP/M. Nawet system plików sprawiałby problem bo zdaje się że był problem z katalogami. Nie pamiętam szczegółów a przypominać sobie to chyba nie mam już ochoty.

Przeznaczenie. To był system przeznaczony do pracy i niczego więcej i jego możliwości były adekwatne do tego celu. Ale przede wszystkim można go (i aplikacje) było uruchamiać na różnych komputerach z różnych firm, a programy na Atari i C64 tylko na nich.

Pozdrawiam

DD

Reply to
Dariusz Dorochowicz

OIDP - przed wersja 3.0 nie bylo. Po prostu nie przewidywano stronnicowania w systemie.

ROM to robil na starcie, potem juz nie bylo.

J.

Reply to
J.F.

Katalogow nie bylo, ale byl jakis nr uzytkownika.

Katalogow nie bylo tez w MS DOS - bo to byl taki CP/M na 8086. Tzn w wersji 1.0 i 1.1 - popatrzyli na unixa i dodali od 2.0

J.

Reply to
J.F.

W Commodore 128, dla CP/M istnieje przełączanie procków. Ale reszta sprzętu zostaje ta sama, więc to chyba nie jest jakiś straszliwy problem?

Reply to
HF5BS

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.