CP/M i 64kB

Feb 24, 2019 126 Replies

Chodzi o to że jeśli w CP/M nie ma czegoś w API to tego nie ma i nie wolno używać.

W przypadku Atari/Commodore powszechne było grzebanie w hardware wprost choć prawda jest taka że oba OSy miały możliwości pi x drzwi jak CP/M tylko CPU i API nieco inne. Mimo to programy traktowały DOS tylko jako loader a potem hulaj dusza, dosa nie ma.

Co ciekawe x86 MSDOS to było coś pośredniego, niby był to taki "nieprzypominający wcale a wcale jak bum cyk cyk" CP/Ma a jednak wiele programów grzebało wprost w sprzęcie dzięki czemu do dzisiaj ciągniemy takie debilizmy jak bramka A20 i mase innych.

Profesjonalizm znowu wygrał ;)

Użytkownik "Sebastian Biały" napisał w wiadomości grup dyskusyjnych:q51irv$lji$ snipped-for-privacy@node1.news.atman.pl...

No jak nie, jak tak - to mial byc CP/M na 8088, bardzo duzo bylo podobne, chyba nawet nr funkcji BDOS.

Bo co by nie mowic - do niczego sie te funkcje BIOS nie nadawaly :-(

J.

Nie wolno tylko jeśli chcesz, żeby dany program działał teroretycznie na każdym komputerze, dla którego CP/M był zrobiony - a "zrobić" musiał producent kompa, bo sam Digital Research sprzedawał tylko wersję na "generyczny" komputer. Cały dynks polegał na tym, że "zrobić" trzeba było tylko te kilka wymaganych funcji BIOS - bo BDOS, CCP oraz pozostałe programy były takie same - i dzięki temu nowo wyprodukowany komputer miał gotową bibliotekę oprogramowania, a nie padał z braku softu jak C-16, C-116 czy C+4 - mimo, że o wiele tańsze niż C-64, zdechły, bo nie było gier. Ten sam model działał później w klonach PC.

Ale nic nie zabrania korzystać jednocześnie z funkcji CP/M - czyli np. obsługi dysków i systemu plików - i jednocześnie hackowania "na poziomie sprzętu".

Ciężko by było też wymyślić API do takiego pseudo-stronicowania (choc bliżej temu do EMS) oraz mechanizmy w języku programowania sprawdzające, który obecnie fragment obszaru kodu czy danych jest w przestrzeni adresowej. Z dodatkowej pamięci można było za to zrobić RAMdysk - i to chyba było dostępne - i API identyczne jak dla dyskietek.

CPU to akurat podstawa do CP/M - właśnie dlatego C-128 miał i MOS6510 i Z80, żeby można było używać CP/M - ciekawy jestem, jak to było zrobione, czy rzeczywiście się jakoś CPU "przełączało", czy działało to jak zestaw spectrum+FDD3000 - ale wtedy musiałoby mieć też dwie osobne pamięci - choć w gruncie rzeczy miało 128kB, więc jedne 64kB dla MOS6510 i programu terminala - i nie trzeba nic "przełączać" a drugie 64kB dla Z80 i CP/M - jeszcze tylko jakaś emulacja połączenia szeregowego potrzebna. W sumie pamięci na jednej szynie, więc do rozwiązania jedynie arbitraż i można robić wyświetlanie itp. poprzez pamięć dzieloną.

Akurat bramka A20 przestała być już od jakiegoś czasu przez najnowsze procesory obsługiwana. HIMEM.SYSa nie odpalisz :(

W temacie jeszcze:

formatting link

Pogadaj w latach 90 z przeciętnym posiadaczem PeCeta. Najpierw się czerwienił a nastepnie używając machania rękami wyjaśniał że jesteś debilem jeśli twierdzisz że DOS ma coś wspólnego z CP/M ;) Przecież one były ... były ... zupełnie inne.

Odbyłem kilka takich rozmów i zawsze mi się podobała reakcja profesjonalisty który nie mógł zaakcpetować że korzenie dosa były w komputerach pokroju ZX Spectrum i kopiowanie plików z lewa na prawo w NC to nie jest profesjonalna praca.

Do dzisiaj niektórzy są w stanie bronić 8+3 jak niepodległości. Ot, jednostka chorobowa.

Do obliczeń naukowych typu pole kwadratu, do pisania tekstu, do "dicking around" się nadawały. Widać wielu było nadto ;)

A całkiem serio, CP/M jak na niego patrzę to robota dla zdolnego studenta na jakieś ferie, może wakacje. Zastanawiające że ta mikroskopijna ilość kodu robiła kiedyś różnice z okolic kto będzie rządził światem OSów czy CP/M czy CP/M z domalowanym FATem ;).

Co Ty za bzdury opowiadasz? ZX Spectrum nie miał ŻADNEGO systemu operacyjnego. W ROM miał wbudowany interpreter Basica i na tym koniec. Ma tyle wspólnego z DOSem co ja z ufoludkami.

[...]

Troche w temacie:

8bitguy z YT ogłosił stworzenie 8bitowego komputera marzeń (tak na prawidę to 16bit bo zamierza uzyc 65c816)

Jest szansa ze projekt się uda bo ma on dośc duzy rogłos. Grupa na FB ma juz ok 6000 członków i rośnie.

Na razie jest dyskusja co użyć do grafiki i wygląda na to ze będzie to FPGA ... bo tak na prawdę nie ma innej alternatywy.

formatting link

c.

DOS to ukradziony koncept CP/M (prawie 100% API). CP/M pierwotnie działał na komputerach x80. Najbliższe komputerom z x80 w PL były komputery z Z80. Czyli ZX Spectrum był chyba najpopularniejszy choć fakt że CP/M na nim nie mógł działać to liczy się architektura.

DOS ma więcej wspólnego z hardware ZX Spectrum niż profesjonalistom się wydawało. Że wspomnę nie bez satysfakcji że kody źródowe z 8080 dało radę translować prawie automatycznie do 8086 i w zasadzie tak właśnie robiono tworząc biblotekę kodu dla DOSa. Ot, profesjonalizm 8 bitów translowany do prawie 16 ;)

Widziałem. Widziałem też jak się do tego zabrał, np mając w nosie przepustowość tego doszytego kawałka hardware. To ja może jednak ciasto na pierogi zrobie ...

Jest. Np. Propeller. Ale już chyba nie produkują.

Pomysł komputera z basicem jest ok, ale zabieranie się do tego przez zrobienie znacznie gorszej wersji C64 jakoś mnie zastanowił. To już wole zrobić Gigatrona, przynajmniej to coś zdumiewającego. Kolejny nudny projekt w FPGA naprawdę nie jest już ludzkości potrzebny, są takich setki.

Albo na legacy IC albo nuda.

Patrze na te moje Z80 i w przypływie głupoty zamówiłem u chinoli dzisiaj wersje 20MHz w DIP. No i to będzie zabawa dopiero ...

Nie Z80 tylko Intel 8080. To, że Z80 mógł udawać Intela nie czyni z niego 8080. NEC V20 też mógł udawać 8080. I co z tego?

Liczy się architektura. CP/M wymaga dostępu do RAM od adresu 0000. ZX Spectrum ma sztywno podpięty pod tym adresem ROM.

BZDURY! ZERO WSPÓLNEGO!

Spectrum korzystało z Z80, którego kod NIE DAWAŁ się tłumaczyć automagicznie do 8086. Te procesory szły w zupełnie inną stronę!

Nazywany też x80. Podobnie jak 8086 nazywany jest x86. Gdzie ty widzisz Z?

Nigdzie nie napisałem że na nim banglał CP/M tylko że architektura po której dziedziczył DOS była tylko o centymetry od ZX Spectrum. Gdyby nie felerne umiejscowanie ROMu to witaj w klubie CP/M. Całe szczęscie bo obciach były jeszcze większy.

Całkiem sporo licząć *prawie* kompatybilność DOSa w dół z kodem

*źródłowym* w ameblerze 8080 i Z80 po automatycznej i prostackiej translacji z dokładnością do większości wywołań "systemowych" :D

formatting link

A gdzie ja napisałem że na ZX działał CP/M? Napisałem że ZX miał taką architekturę która dziwnym trafem translowała się bez wazeliny na profesjonalnego DOSa 1.0. Troche siara jak na profesjonalny sprzet, nie? Tak żeby mieć korzenie w 8 bitowym złomie do grania z okolic TRS-80.

Nie nadymaj się tak, znam ZX jak własną kieszeń. ZX pojawił się w dyskusji aby ośmieszyć nadętych profesjonalistów z DOSa którzy myśleli że używanie Pascala i NC to szczyt profesjonalizmu, a pod spodem straszył duch ZX Spectrum odpicowany do prawie 16 bitów ze śliczną segmentacją i zawijaniem FFFF:FFFF i mający podejrzanie dużo wspólnego z CP/M.

ROM to nie wszystko. Dyski musial by miec. A przeciez mial byc tani komputer. Pamieci przydaloby sie wiecej niz 16kB ..

Ale gdzie tu masz ZX Spectrum ?

Kompatybilnosc kodu zrodlowego 8080 i 8088 byla taka sobie. Translacja binariow zadna ..

Hm, o jakim kodzie mowa ? Bo jesli CP/M na Z80, to uzywalo sie instrukcji 8080. O specyficzne instrukcje Z80 chodzi ?

I jeszcze niuans - w asemblerze 8086 mogles napisac MOV BX, 1000 MOV AL, BL ADD AL, 5 itp.

W Z80 bylo podobnie, tylko ze LD zamiast MOV.

A w 8080 ? LXI B, 1000 MOV AL,BL ADI 5

- co chwila inna instrukcja

Ale na msdos, czy na CPM ? I czemu siara ?

To przytocz jeszcze przyklad Atari 800, i ... MSX to sie nazywalo ?

Ale o co chodzi z tym duchem Spectrum ?

Z jednej strony podobne, jak wiekszosc systemow uP, z drugiej - calkiem inne. Spectrum, bo tez mial pamiec video ?

Juz sama cena pierwszych IBM PC mowila, ze to profesjonalny sprzet, a nie zabawka dla dzieci :-)

J.

Użytkownik "RoMan Mandziejewicz" napisał w wiadomości grup dyskusyjnych:7409391785$ snipped-for-privacy@squadack.com... Hello Sebastian,

No jak - korzenie DOS byly w CP/M, a CP/M byl przed ZX . I chyba nawet przed ZX80.

No jak nie, jak tak :-)

No, fachowcy znali troche adresow z uzytecznymi API :-)

Z DOS oczywiscie nie mial nic wspolnego, bo D to Disk. Ale bodajze po podlaczeniu microdrive pojawialo sie troche dodatkowych API :-)

J.

IMO - przecietny posiadacz peceta nie mial pojecia co to jest CP/M.

Poza waskim gronem specjalistow w kraju w zasadzie nieznany.

Ale co to ma ze Spectrum wspolnego ? Tam zadnych plikow nie bylo, zadnych 8+3 ...

ale jak chcesz obliczac ? Przydalby sie arkusz kalkulacyjny, albo choc (Q)Basic ... nie dobieraly sie wprost do sprzetu ?

Jakos tak, ale dzieki temu miales komputer, na ktorym mozna bylo uruchamiac "profesjonalne programy", a nie tylko zabawke do grania :-)

J.

A jakbym powiedzial ze amigaOS to taki unix? No bo dyski sie montowalo, emacs byl, katalogi libs i devs byly. I Cli bylo.

I duzo innych uniksiatych rzeczy bylo.

Ale nikt nie nazywa amigaOS unixem.

IMHO, letko przesadziles z porownaniem ale rozumiem co miales na mysli.

Wiec nie jest spełnione głowne założenie: Elementy muszą być na półce. Wiele ludzi proponuje nawet

formatting link
mi się bardziej podoba.

Jestem tego sameg zdania ale jak przyjmiemy że FPGA to tylko tańszy (w małej serii) odpowiednik ASICa to jestem w stanie to zaakceptować. Gigatron to tylko ciekawostka - wystąpił na kilku kanałach YT i koniec możliwości.

jak będzie legacy to już nie "Dream" zbyt dużo ograniczeń.

Jak się pojawi na kikstarterze lub innym crowdsupply to na pewno wspomogę...

c.

Użytkownik "RoMan Mandziejewicz" snipped-for-privacy@pik-net.pl.invalid> napisał w wiadomości news:7409391785$ snipped-for-privacy@squadack.com...

To już Commodore 64, a tym bardziej 128(D) lepszy, bo system operacyjny miał, wbudowany, w innym segmencie ROM, niż BASIC, nawet z nazwą podobną do tego, co spotyka się od W... któregoś nisko z linii 9x, do obecnego W10... Różnica w jednej literce nazwy... C64 - Kernal, Windy - kernel.

A procedury I/O? Przecież jakoś musiał się komunikować ze światem zewnętrznym. Choćby w sieci, którą... pamiętasz, jak się zestawiało :) ? Że BASIC? Może powiedzmy, że to szczątek, ale nie spychałbym takich rzeczy na interpreter.

Moglibyśmy się zdziwić, jeśli dalibyśmy się porównać.

Soraski, ale to ty się nadymasz. Co by nie mówić o MS, to on pierwszy zrozumiał, na masowym rynku, że kompatybilność i biblioteka programów jest najważniejsza, czym wygrał nad konkurentami, mając na desktopach za jedynego realnego konkurenta MacOSa. Nawet procesory, będąc wewnętrznie całkiem zaawansowanymi RISCami udają ciągle ten zabytek x86. Takie twoje narzekanie to pasuje na late 80. Już w latach 90 Windows stawał się de-facto-standardem a ubicie OS/2 tylko to potwierdziło.

Dla bardziej technicznych użytkowników jest Linux.

[...]

Nic się nie pojawiało. Nawet strumieni nie było. Po prostu komendy LOAD i SAVE działały z microdrive.

Użytkownik "RoMan Mandziejewicz" napisał w wiadomości grup dyskusyjnych:9624182317$ snipped-for-privacy@squadack.com... Hello J.F., [...]

Juz nie pamietam, ale cos mi chodzi po glowie, ze microdrive podkladal wlasny ROM, co zmienialo komendy. I chyba cos do sterowania tasma bylo potrzebne - jakies przewiniecia, przeskoki ... to juz wyglada na poczatki S.O. Takie bardzo poczatkowe poczatki :-)

Tak dla porownania - Atari 800 sobie zrobilo strumienie. Bylo ich kilka, mozna bylo podczepic pod nie klawiature, ekran, magnetofon, cartridge z wlasnym ROM mogly tez sie podczepiac, a takze dyski byly obslugiwane. No i Basic to byl osobny ROM, a system, mozna by rzec BIOS - drugi. Basic nie byl obowiazkowy.

Po co takie komplikacje w komputerku tej klasy ? W Apple sie zapatrzyli, czy mieli profesjonalne plany ? W dodatku system dosc zgrabnie to stronnicowal, i mozna bylo wykorzystac 64KB RAM i jeszcze kilka KB ROM ...

Tylko cos mi chodzi po glowie, ze wlasciwy DOS byl w stacji, komputer przesylal do stacji komendy wyzszego poziomu. Hm, a moze mi sie pomylilo z C64 - stacja do Atari miala 256B pamieci, duzo sie tam nie zmiescilo, a 128B bylo potrzebne na bufor sektora.

No i pamietam NDOS - taki maly systemik do startowania gier ... chyba faktycznie wiekszego DOS tez sie ladowalo z dysku do RAM.

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required