CP/M -CP/M

CP/M
CPM-86.png
O captură de ecran a CP/M-86
Dezvoltator Digital Research, Inc. , Gary Kildall
Scris in PL/M , limbaj de asamblare
Stare de lucru Istoric
Model sursă Sursă inițial închisă , acum sursă deschisă
Lansare inițială 1974 ; acum 49 de ani ( 1974 )
Ultima lansare 3,1 / 1983 ; acum 40 de ani ( 1983 )
Disponibil in Engleză
Metoda de actualizare Reinstalare
Manager de pachete Nici unul
Platforme Intel 8080 , Intel 8085 , Zilog Z80 , Zilog Z8000 , Intel 8086 , Motorola 68000
Tip kernel Miez monolitic
Influențată de RT-11 , OS/8

Interfață de utilizator implicită
Interfață de linie de comandă (CCP.COM)
Licență Inițial proprietar , acum asemănător BSD
urmat de MP/M , CP/M-86
Site oficial Pagina Digital Research CP/M

CP/M , care inițial înseamnă Control Program/Monitor și ulterior Control Program for Microcomputers , este un sistem de operare de masă creat în 1974 pentru microcalculatoarele bazate pe Intel 8080/85 de Gary Kildall de la Digital Research, Inc. Inițial limitat la un singur sarcini pe procesoare pe 8 biți și nu mai mult de 64 de kiloocteți de memorie, versiunile ulterioare ale CP/M au adăugat variații multi-utilizator și au fost migrate la procesoare pe 16 biți .

Combinația de calculatoare cu magistrală CP/M și S-100 a devenit un standard timpuriu în industria microcalculatoarelor. Această platformă de computer a fost utilizată pe scară largă în afaceri până la sfârșitul anilor 1970 și până la mijlocul anilor 1980. CP/M a crescut dimensiunea pieței atât pentru hardware cât și pentru software, reducând foarte mult cantitatea de programare necesară pentru a instala o aplicație pe computerul unui nou producător. Un factor important al inovației software a fost apariția microcalculatoarelor (comparativ) cu costuri reduse care rulează CP/M, deoarece programatorii independenți și hackeri le-au cumpărat și și-au împărtășit creațiile în grupuri de utilizatori . CP/M a fost în cele din urmă înlocuit de DOS după introducerea în 1981 a IBM PC .

Istorie

Reclamă CP/M în numărul din 29 noiembrie 1982 al revistei InfoWorld

Istoria timpurie

Gary Kildall a dezvoltat inițial CP/M în 1974, ca sistem de operare pentru a rula pe un sistem de dezvoltare Intel Intellec-8 , echipat cu o unitate de dischetă Shugart Associates de 8 inchi interfațată printr-un controler personalizat de dischetă . A fost scris în propriul PL/M ( Limbajul de programare pentru microcalculatoare ) al lui Kildall. Diverse aspecte ale CP/M au fost influențate de sistemul de operare TOPS-10 al computerului mainframe DECsystem-10 , pe care Kildall l-a folosit ca mediu de dezvoltare. Un prim licență extern al CP/M a fost Gnat Computers , un dezvoltator timpuriu de microcalculatoare din San Diego, California . În 1977, companiei i s-a acordat licența de a utiliza CP/M 1.0 pentru orice microfon dorit pentru 90 USD. În decursul anului, cererea pentru CP/M a fost atât de mare încât Digital Research a putut crește licența la zeci de mii de dolari.

Sub conducerea lui Kildall, dezvoltarea CP/M 2.0 a fost realizată în cea mai mare parte de John Pierce în 1978. Kathryn Strutynski , o prietenă a lui Kildall de la Naval Postgraduate School (NPS), a devenit al patrulea angajat al Digital Research Inc. la începutul anului 1979. Ea a început prin depanarea CP/M 2.0, iar mai târziu a devenit influentă ca dezvoltator cheie pentru CP/M 2.2 și CP/M Plus. Alți dezvoltatori timpurii ai bazei CP/M au inclus Robert „Bob” Silberstein și David „Dave” K. Brown.

CP/M a reprezentat inițial „Program de control/Monitor”, un nume care implică un monitor rezident — un precursor primitiv al sistemului de operare. Cu toate acestea, în timpul conversiei CP/M într-un produs comercial, documentele de înregistrare a mărcii înregistrate depuse în noiembrie 1977 au dat numele produsului ca „Program de control pentru microcalculatoare”. Numele CP/M urmează o schemă de denumire predominantă a vremii, ca în limbajul PL/M al lui Kildall și PL/P al lui Prime Computer ( Limbaj de programare pentru Prime ), ambele sugerând PL/I de la IBM ; și sistemul de operare CP/CMS al IBM , pe care Kildall îl folosise când lucra la NPS. Această redenumire a CP/M a făcut parte dintr-un efort mai amplu depus de Kildall și soția sa împreună cu partenerul de afaceri, Dorothy McEwen, de a converti proiectul personal al lui Kildall de CP/M și compilatorul PL/M contractat de Intel într-o întreprindere comercială. Kildalls intenționau să stabilească marca Digital Research și liniile sale de produse ca sinonime cu „microcomputer” în mintea consumatorului, similar cu ceea ce IBM și Microsoft împreună au realizat mai târziu cu succes făcând „computer personal” sinonim cu ofertele lor de produse. Ulterior, Intergalactic Digital Research, Inc. a fost redenumită printr-un dosar de schimbare a numelui corporației în Digital Research, Inc.

Succes inițial

Card Apple CP/M cu manual

Până în septembrie 1981, Digital Research a vândut mai mult de260 000 licențe CP/M; InfoWorld a declarat că piața reală a fost probabil mai mare din cauza sublicențelor. Multe companii diferite au produs computere bazate pe CP/M pentru multe piețe diferite; revista a declarat că „CP/M este pe cale să se impună ca sistem de operare pentru computere mici”. Companiile au ales să susțină CP/M datorită bibliotecii sale mari de software. Xerox 820 a rulat sistemul de operare pentru că „acolo unde există literalmente mii de programe scrise pentru el, nu ar fi înțelept să nu profităm de el”, a spus Xerox. (Xerox a inclus un manual Howard W. Sams CP/M ca compensare pentru documentația Digital Research, pe care InfoWorld în 1982 a descris-o ca fiind atroce.) Până în 1984, Universitatea Columbia a folosit același cod sursă pentru a construi fișiere binare Kermit pentru mai mult de o duzină de CP/ sisteme M, plus o versiune generică. Sistemul de operare a fost descris ca o „ autobuz software ”, permițând mai multor programe să interacționeze cu diferite hardware într-un mod standardizat. Programele scrise pentru CP/M erau de obicei portabile între diferite mașini, necesitând de obicei doar specificarea secvențelor de evadare pentru controlul ecranului și imprimantei. Această portabilitate a făcut ca CP/M să fie popular și a fost scris mult mai mult software pentru CP/M decât pentru sistemele de operare care rulau doar pe o singură marcă de hardware. O restricție privind portabilitatea a fost că anumite programe foloseau setul de instrucțiuni extins al procesorului Z80 și nu ar funcționa pe un procesor 8080 sau 8085. Un altul era rutinele grafice, în special în jocuri și programe de grafică, care erau în general specifice mașinii, deoarece foloseau acces direct hardware pentru viteză, ocolind sistemul de operare și BIOS (aceasta era și o problemă comună la mașinile DOS timpurii).

Bill Gates a susținut că seria Apple II cu un Z-80 SoftCard a fost cea mai populară platformă hardware CP/M. Sistemul de operare rulează multe mărci diferite de mașini, unele exemple notabile fiind Altair 8800 , IMSAI 8080 , bagaje Osborne 1 și Kaypro și computerele MSX . Cel mai bine vândut sistem compatibil CP/M din toate timpurile a fost probabil Amstrad PCW . În Marea Britanie, CP/M era disponibil și pe computerele educaționale Research Machines (cu codul sursă CP/M publicat ca resursă educațională) și pentru BBC Micro atunci când este echipat cu un co-procesor Z80. Mai mult, a fost disponibil pentru seria Amstrad CPC , Commodore 128 , TRS-80 și modelele ulterioare ale ZX Spectrum . CP/M 3 a fost folosit și pe NIAT, un computer portabil personalizat conceput pentru uzul intern  AC Nielsen cu 1 MB de memorie SSD .

Multi utilizator

În 1979, a fost lansat un derivat compatibil multi-utilizator al CP/M. MP/M a permis mai multor utilizatori să se conecteze la un singur computer, folosind mai multe terminale pentru a oferi fiecărui utilizator un ecran și o tastatură. Versiunile ulterioare au rulat pe procesoare pe 16 biți.

CP/M Plus

Ghid de sistem CP/M Plus (CP/M 3).

Ultima versiune pe 8 biți a CP/M a fost versiunea 3, numită adesea CP/M Plus, lansată în 1983. BDOS-ul său a fost proiectat de Brown. Acesta a încorporat gestionarea memoriei de comutare bancară a MP/M într-un sistem de operare cu un singur utilizator, compatibil cu aplicațiile CP/M 2.2. Prin urmare, CP/M 3 ar putea folosi mai mult de 64 KB de memorie pe un procesor 8080 sau Z80. Sistemul ar putea fi configurat să accepte ștampilarea datei fișierelor. Software-ul de distribuție a sistemului de operare a inclus, de asemenea, un asamblator și un linker de relocare. CP/M 3 a fost disponibil pentru ultima generație de computere pe 8 biți, în special pentru Amstrad PCW , Amstrad CPC , ZX Spectrum +3 , Commodore 128 , mașini MSX și Radio Shack TRS-80 Model 4 .

versiuni pe 16 biți

Distribuție de dischete DEC PRO-CP/M-80 pentru coprocesorul Z80-A dintr-o serie DEC Professional 3xx

Au existat versiuni de CP/M și pentru unele procesoare pe 16 biți .

Prima versiune din familia pe 16 biți a fost CP/M-86 pentru Intel 8086 în noiembrie 1981. Kathryn Strutynski a fost managerul de proiect pentru linia de sisteme de operare în evoluție CP/M-86. În acest moment, originalul CP/M pe 8 biți a devenit cunoscut sub retronimul CP/M-80 pentru a evita confuzia.

Se aștepta ca CP/M-86 să fie sistemul de operare standard al noilor PC-uri IBM , dar DRI și IBM nu au putut negocia termenii de dezvoltare și de licență. IBM a apelat la Microsoft, iar Microsoft a livrat PC DOS bazat pe 86-DOS . Deși CP/M-86 a devenit o opțiune pentru PC-ul IBM după ce DRI a amenințat cu acțiuni legale, nu a depășit niciodată sistemul Microsoft. Majoritatea clienților au fost respinsi de prețul semnificativ mai mare pe care IBM l-a perceput pentru CP/M-86 față de PC DOS ( 240 USD și, respectiv, 40 USD).

Când Digital Equipment Corporation (DEC) a lansat Rainbow 100 pentru a concura cu IBM, acesta a venit cu CP/M-80 folosind un cip Z80, CP/M-86 sau MS-DOS folosind un microprocesor 8088 sau CP/M- 86 /80 folosind ambele. Procesoarele Z80 și 8088 au funcționat simultan. Un beneficiu al Rainbow a fost faptul că ar putea continua să ruleze software CP/M pe 8 biți, păstrând investiția posibilă considerabilă a unui utilizator pe măsură ce acesta a trecut în lumea pe 16 biți a MS-DOS. O adaptare similară cu dublu procesor pentru CompuPro System 816  [ sr ] a fost numită CP/M 8-16 . Adaptarea CP/M-86 pentru Zenith Z-100 bazat pe 8085/8088 a suportat, de asemenea, programe de rulare pentru ambele procesoare ale sale.

Curând după CP/M-86, o altă versiune pe 16 biți a CP/M a fost CP/M-68K pentru Motorola 68000 . Versiunea originală a CP/M-68K în 1982 a fost scrisă în Pascal/MT+68k , dar a fost portată în C mai târziu. CP/M-68K, care rulează deja pe sistemele Motorola EXORmacs , urma să fie utilizat inițial pe computerul Atari ST , dar Atari a decis să folosească un sistem de operare pe disc mai nou numit GEMDOS . CP/M-68K a fost folosit și pe computerele SORD M68 și M68MX.

În 1982, a existat și un port de la CP/M-68K la Zilog Z8000 pe 16 biți pentru Olivetti M20 , scris în C , numit CP/M-8000 .

Aceste versiuni pe 16 biți ale CP/M au necesitat ca programele de aplicație să fie recompilate pentru noile procesoare. Unele programe scrise în limbaj de asamblare ar putea fi traduse automat pentru un procesor nou. Un instrument pentru aceasta a fost XLT86 de la Digital Research , care a tradus codul sursă .ASM pentru procesorul Intel 8080 în cod sursă .A86 pentru Intel 8086. Traducatorul va optimiza, de asemenea, rezultatul pentru dimensiunea codului și se va ocupa de convențiile de apelare, astfel încât CP Programele /M-80 și MP/M-80 ar putea fi portate automat pe platformele CP/M-86 și MP/M-86 . XLT86 în sine a fost scris în PL/I-80 și a fost disponibil pentru platformele CP/M-80, precum și pentru VAX/VMS .

Deplasare prin MS-DOS

Mulți se așteptau ca CP/M să fie sistemul de operare standard pentru computerele pe 16 biți. În 1980, IBM a abordat Digital Research, la sugestia lui Bill Gates , pentru a licenția o viitoare versiune a CP/M pentru noul său produs, IBM Personal Computer . După eșecul de a obține un acord semnat de confidențialitate , discuțiile au eșuat, iar IBM a contractat în schimb cu Microsoft să furnizeze un sistem de operare. Produsul rezultat, MS-DOS , a început în curând să vândă mai mult decât CP/M.

Multe dintre conceptele și mecanismele de bază ale versiunilor timpurii ale MS-DOS semănau cu cele ale CP/M. Elementele interne precum structurile de date de gestionare a fișierelor erau identice și ambele se refereau la unitățile de disc cu o literă ( A:, B:, etc.). Principala inovație a MS-DOS a fost sistemul său de fișiere FAT . Această similitudine a făcut mai ușoară portarea software-ului popular CP/M precum WordStar și dBase . Cu toate acestea, conceptul CP/M de zone de utilizator separate pentru fișierele de pe același disc nu a fost niciodată portat pe MS-DOS. Deoarece MS-DOS avea acces la mai multă memorie (deoarece puține PC-uri IBM au fost vândute cu mai puțin de 64 KB de memorie, în timp ce CP/M putea rula în 16 KB dacă era necesar), mai multe comenzi au fost încorporate în shell-ul liniei de comandă, făcând MS -DOS ceva mai rapid și mai ușor de utilizat pe computere bazate pe dischete.

Deși unul dintre primele periferice pentru PC-ul IBM a fost o placă de expansiune de tip SoftCard, care îi permitea să ruleze software CP/M pe 8 biți, InfoWorld a declarat în 1984 că eforturile de a introduce CP/M pe piața internă au fost în mare parte nereușite și majoritatea Software-ul CP/M era prea scump pentru utilizatorii casnici. În 1986, revista a declarat că Kaypro a oprit producția de modele bazate pe CP/M pe 8 biți pentru a se concentra pe vânzările de sisteme compatibile MS-DOS, mult după ce majoritatea celorlalți furnizori au încetat producția de noi echipamente și software pentru CP/M. CP/M a pierdut rapid cota de piață pe măsură ce piața de microcalculatoare s-a mutat pe platforma compatibilă cu IBM și nu și-a recăpătat niciodată popularitatea anterioară. Revista Byte , la acea vreme una dintre cele mai importante reviste din industrie pentru microcalculatoare, a încetat, în esență, să mai acopere produsele CP/M în câțiva ani de la introducerea PC-ului IBM. De exemplu, în 1983 mai existau câteva reclame pentru plăci S-100 și articole despre software-ul CP/M, dar până în 1987 acestea nu se mai găseau în revistă.

Versiunile ulterioare ale CP/M-86 au făcut progrese semnificative în performanță și utilizare și au fost făcute compatibile cu MS-DOS. Pentru a reflecta această compatibilitate, numele a fost schimbat, iar CP/M-86 a devenit DOS Plus , care la rândul său a devenit DR-DOS .

ZCPR

ZCPR (Înlocuirea procesorului de comandă Z80) a fost introdus la 2 februarie 1982 ca înlocuitor pentru procesorul de comandă standard al consolei Digital Research (CCP) și a fost scris inițial de un grup de pasionați de computere care s-au numit „Grupul CCP”. Aceștia erau Frank Wancho, Keith Petersen (arhivistul din spatele Simtel la acea vreme), Ron Fowler, Charlie Strom, Bob Mathias și Richard Conn. Richard a fost, de fapt, forța motrice a acestui grup (toți au menținut contactul prin e-mail). ).

ZCPR1 a fost lansat pe un disc scos de SIG/M (Special Interest Group/Microcomputers), o parte a Amateur Computer Club of New Jersey .

ZCPR2 a fost lansat pe 14 februarie 1983. A fost lansat ca un set de zece discuri de la SIG/M. ZCPR2 a fost actualizat la 2.3 și, de asemenea, a fost lansat în codul 8080, permițând utilizarea ZCPR2 pe sistemele 8080 și 8085.

ZCPR3 a fost lansat pe 14 iulie 1984, ca un set de nouă discuri de la SIG/M. Codul pentru ZCPR3 ar putea fi, de asemenea, compilat (cu caracteristici reduse) pentru 8080 și ar rula pe sisteme care nu au microprocesorul Z80 necesar . Caracteristicile ZCPR începând cu versiunea 3 au inclus shell-uri, aliasuri, redirecționare I/O, controlul fluxului, directoare denumite, căi de căutare, meniuri personalizate, parole și ajutor online. În ianuarie 1987, Richard Conn a încetat să dezvolte ZCPR, iar Echelon i-a cerut lui Jay Sage (care avea deja un ZCPR 3.1 îmbunătățit privat) să continue lucrul la el. Astfel, ZCPR 3.3 a fost dezvoltat și lansat. ZCPR 3.3 nu mai suporta seria 8080 de microprocesoare și a adăugat cele mai multe funcții din orice upgrade din linia ZCPR. ZCPR 3.3 a inclus, de asemenea, o gamă completă de utilități cu capabilități considerabil extinse. Deși a fost susținut cu entuziasm de baza de utilizatori CP/M din acea vreme, ZCPR singur a fost insuficient pentru a încetini dispariția CP/M.

Model hardware

Computer Sanco 8001, care rulează sub CP/M 2.2 (1982)
Cartuș CP/M pentru Commodore 64

Un sistem CP/M minim pe 8 biți ar conține următoarele componente:

  • Un terminal de computer care utilizează setul de caractere ASCII
  • Un microprocesor Intel 8080 (și mai târziu 8085) sau Zilog Z80
    • Procesoarele NEC V20 și V30 acceptă un mod de emulare 8080 care poate rula CP/M pe 8 biți pe un computer PC DOS/MS-DOS echipat astfel, deși orice PC poate rula și CP/M-86 pe 16 biți.
  • Cel puțin 16 kilobytes de RAM , începând cu adresa 0
  • Un mijloc de a bootstrap primul sector al dischetei
  • Cel puțin o unitate de dischetă

Singurul sistem hardware pe care CP/M, vândut de Digital Research, l-ar suporta a fost sistemul de dezvoltare Intel 8080. Producătorii de sisteme compatibile CP/M au personalizat porțiuni ale sistemului de operare pentru propria lor combinație de memorie instalată, unități de disc și dispozitive de consolă. CP/M ar rula și pe sisteme bazate pe procesorul Zilog Z80, deoarece Z80 era compatibil cu codul 8080. În timp ce nucleul distribuit de Digital Research al CP/M (BDOS, CCP, comenzi tranzitorii de bază) nu a folosit niciuna dintre instrucțiunile specifice Z80, multe sisteme bazate pe Z80 au folosit codul Z80 în BIOS-ul specific sistemului și multe aplicații erau dedicate la mașinile CP/M bazate pe Z80.

Digital Research a colaborat ulterior cu Zilog și American Microsystems pentru a produce Personal CP/M, o versiune bazată pe ROM a sistemului de operare care vizează sisteme cu costuri mai mici care ar putea fi echipate fără unități de disc. Prezentat pentru prima dată în Sharp MZ-800, un sistem bazat pe casete cu unități de disc opționale, Personal CP/M a fost descris ca fiind „rescris pentru a profita de setul de instrucțiuni îmbunătățit Z-80”, spre deosebire de păstrarea portabilității cu 8080. American Microsystems a anunțat un microprocesor compatibil cu Z80, S83, care include 8 KB de ROM în pachet pentru sistemul de operare și BIOS, împreună cu o logică cuprinzătoare pentru interfața cu dispozitive RAM dinamice de 64 de kilobiți.

Pe majoritatea mașinilor, bootstrap-ul a fost un bootloader minim în ROM , combinat cu unele mijloace de comutare minimă a băncilor sau un mijloc de injectare a codului pe magistrală (deoarece 8080 trebuie să vadă codul de pornire la adresa 0 pentru pornire, în timp ce CP/M are nevoie de RAM acolo); pentru alții, acest bootstrap a trebuit să fie introdus în memorie folosind comenzile de pe panoul frontal de fiecare dată când sistemul a fost pornit.

CP/M a folosit setul ASCII pe 7 biți. Celelalte 128 de caractere posibile de octetul de 8 biți nu au fost standardizate. De exemplu, un Kaypro le-a folosit pentru caractere grecești, iar mașinile Osborne au folosit al 8-lea set de biți pentru a indica un caracter subliniat. WordStar a folosit al 8-lea bit ca marcator de sfârșit de cuvânt. Sistemele internaționale CP/M au folosit cel mai frecvent norma ISO 646 pentru seturile de caractere localizate, înlocuind anumite caractere ASCII cu caractere localizate, în loc să le adauge dincolo de limita de 7 biți.

Componente

În versiunile pe 8 biți, în timpul rulării, sistemul de operare CP/M încărcat în memorie avea trei componente:

  • Sistem de bază de intrare/ieșire (BIOS),
  • Sistem de operare pe disc (BDOS),
  • Procesor de comandă consolă (CCP).

BIOS-ul și BDOS erau rezidente în memorie, în timp ce CCP-ul era rezident în memorie, cu excepția cazului în care a fost suprascris de o aplicație, caz în care a fost reîncărcat automat după ce aplicația a terminat de rulat. Au fost furnizate și o serie de comenzi tranzitorii pentru utilitare standard. Comenzile tranzitorii se aflau în fișiere cu extensia .COM de pe disc.

BIOS-ul controla direct componentele hardware, altele decât CPU și memoria principală. Conținea funcții precum introducerea și ieșirea caracterelor și citirea și scrierea sectoarelor de disc. BDOS a implementat sistemul de fișiere CP/M și unele abstracții de intrare/ieșire (cum ar fi redirecționarea) deasupra BIOS-ului. CCP a preluat comenzile utilizatorului și fie le-a executat direct (comenzi interne, cum ar fi DIR pentru a afișa un director sau ERA pentru a șterge un fișier), fie a încărcat și a pornit un fișier executabil cu numele dat (comenzi tranzitorii precum PIP.COM pentru a copia fișiere sau STAT.COM pentru a afișa diverse informații despre fișiere și sistem). Aplicațiile de la terți pentru CP/M au fost, de asemenea, comenzi tranzitorii.

Comenzile BDOS, CCP și tranzitorii standard au fost aceleași în toate instalările unei anumite versiuni a CP/M, dar porțiunea BIOS a fost întotdeauna adaptată la hardware-ul specific.

Adăugarea memoriei la un computer, de exemplu, a însemnat că sistemul CP/M trebuia reinstalat pentru a permite programelor tranzitorii să utilizeze spațiul de memorie suplimentar. Un program utilitar (MOVCPM) a fost furnizat cu distribuție de sistem care a permis relocarea codului obiect în diferite zone de memorie. Programul utilitar a ajustat adresele din instrucțiunile de apel absolut de salt și subrutine la noile adrese cerute de noua locație a sistemului de operare în memoria procesorului. Această versiune nou corecţionată ar putea fi apoi salvată pe un disc nou, permiţând programelor de aplicaţie să acceseze memoria suplimentară pusă la dispoziţie prin mutarea componentelor sistemului. Odată instalat, sistemul de operare (BIOS, BDOS și CCP) a fost stocat în zone rezervate la începutul oricărui disc care ar fi folosit pentru a porni sistemul. La pornire, bootloader-ul (conținut de obicei într-un cip de firmware ROM) ar încărca sistemul de operare de pe discul din unitate A:.

Conform standardelor moderne, CP/M era primitiv, din cauza constrângerilor extreme asupra dimensiunii programului. Cu versiunea 1.0 nu exista nicio prevedere pentru detectarea unui disc schimbat. Dacă un utilizator a schimbat discurile fără a reciti manual directorul de disc, sistemul ar scrie pe noul disc folosind informațiile despre directorul vechiului disc, distrugând datele stocate pe disc. Începând cu versiunea 1.1 sau 1.2, schimbarea unui disc și încercarea de a scrie pe acesta înainte ca directorul său să fie citit ar cauza semnalarea unei erori fatale. Acest lucru a evitat suprascrierea discului, dar a necesitat o repornire și pierderea datelor care urmau să fie stocate pe disc.

Majoritatea complexității din CP/M a fost izolată în BDOS și, într-o măsură mai mică, CCP și comenzile tranzitorii. Aceasta însemna că, prin portarea numărului limitat de rutine simple din BIOS pe o anumită platformă hardware, întregul sistem de operare ar funcționa. Acest lucru a redus semnificativ timpul de dezvoltare necesar pentru a susține noile mașini și a fost unul dintre principalele motive pentru utilizarea pe scară largă a CP/M. Astăzi, acest tip de abstracție este comun pentru majoritatea sistemelor de operare (un strat de abstracție hardware ), dar la momentul nașterii CP/M, sistemele de operare erau de obicei destinate să ruleze pe o singură platformă de mașină, iar proiectele multistrat erau considerate inutile.

Procesor de comandă consolă

Captură de ecran care arată o listă de director CP/M 3.0 folosind DIRcomanda de pe un computer de acasă Commodore 128

Procesorul de comandă al consolei, sau CCP, a acceptat intrarea de la tastatură și a transmis rezultatele către terminal. CP/M în sine ar funcționa fie cu un terminal de imprimare, fie cu un terminal video. Toate comenzile CP/M trebuiau introduse pe linia de comandă . Consola ar afișa cel mai adesea A>promptul, pentru a indica unitatea de disc implicită curentă. Când este utilizat cu un terminal video, acesta ar fi de obicei urmat de un cursor intermitent furnizat de terminal. CCP ar aștepta informații de la utilizator. O comandă internă CCP, cu litera unității de formular urmată de două puncte, ar putea fi utilizată pentru a selecta unitatea implicită. De exemplu, tastând B:și apăsând enter la promptul de comandă ar schimba unitatea implicită la B, iar promptul de comandă ar deveni apoi B>pentru a indica această modificare.

Interfața de linie de comandă a CP/M a fost modelată după sistemele de operare de la Digital Equipment , cum ar fi RT-11 pentru PDP-11 și OS/8 pentru PDP-8 . Comenzile au luat forma unui cuvânt cheie urmat de o listă de parametri separați prin spații sau caractere speciale. Similar cu un shell încorporat Unix , dacă o comandă internă a fost recunoscută, aceasta a fost efectuată chiar de CCP. În caz contrar, ar încerca să găsească un fișier executabil pe unitatea de disc conectată în prezent și (în versiunile ulterioare) în zona de utilizator, să îl încarce și să-i transmită orice parametri suplimentari din linia de comandă. Acestea au fost denumite programe „tranzitorii”. La finalizare, CP/M ar reîncărca partea CCP care a fost suprascrisă de programele de aplicație - acest lucru a permis programelor tranzitorii un spațiu de memorie mai mare.

Comenzile în sine ar putea fi uneori obscure. De exemplu, comanda de duplicare a fișierelor a fost numită PIP(Peripheral-Interchange-Program), numele vechiului utilitar DEC folosit în acest scop. Formatul parametrilor dați unui program nu a fost standardizat, astfel încât nu exista un singur caracter de opțiune care să diferențieze opțiunile de numele fișierelor. Programe diferite au putut și au folosit caractere diferite.

Procesorul de comandă al consolei CP/M include DIR , ERA , REN , SAVE , TYPE și USER ca comenzi încorporate . Comenzile tranzitorii în CP/M includ ASM , DDT , DUMP , ED , LOAD , MOVCPM  [ pl ] , PIP , STAT , SUBMIT și SYSGEN .

CP/M Plus (CP/M Versiunea 3) include DIR (afișează lista fișierelor dintr-un director, cu excepția celor marcate cu atributul SYS), DIRSYS / DIRS (listează fișierele marcate cu atributul SYS în director), ERASE / ERA ( ștergeți un fișier), RENAME / REN (redenumiți un fișier), TYPE / TYP (afișați conținutul unui fișier cu caractere ASCII) și USER / USE (modificați numărul de utilizator) ca comenzi încorporate: CP/M 3 permite utilizatorului să abreviați comenzile încorporate. Comenzile tranzitorii din CP/M 3 includ COPYSYS , DATE , DEVICE , DUMP , ED , GET , HELP , HEXCOM , INITDIR , LINK , MAC , PIP , PUT , RMAC , SET , SETDEF , SHOW , SID , XREFMIT , și XREFMIT .

Sistem de operare pe disc de bază

Sistemul de operare pe disc de bază, sau BDOS, a oferit acces la operațiuni precum deschiderea unui fișier, ieșirea în consolă sau imprimarea. Programele de aplicație ar încărca registrele procesorului cu un cod de funcție pentru operație și adrese pentru parametrii sau bufferele de memorie și ar apela o adresă fixă ​​în memorie. Deoarece adresa era aceeași, independent de cantitatea de memorie din sistem, programele de aplicație ar rula în același mod pentru orice tip sau configurație de hardware.

Sistem de bază de intrare ieșire

Reclamă CP/M în numărul din 11 decembrie 1978 al revistei InfoWorld

Sistemul de intrare și ieșire de bază sau BIOS a furnizat funcțiile de cel mai scăzut nivel cerute de sistemul de operare.

Acestea includ citirea sau scrierea de caractere individuale pe consola sistemului și citirea sau scrierea unui sector de date de pe disc. BDOS gestiona o parte din stocarea datelor de pe dischetă, dar înainte de CP/M 3.0 a presupus o dimensiune a sectorului de disc fixată la 128 de octeți, așa cum se folosește pe dischetele de 8 inci cu densitate unică . Deoarece majoritatea formatelor de disc de 5,25 inchi foloseau sectoare mai mari, blocarea și deblocarea și gestionarea unei zone tampon de disc a fost gestionată de codul specific modelului din BIOS.

Personalizarea a fost necesară deoarece alegerile hardware nu au fost limitate de compatibilitatea cu niciun standard popular. De exemplu, unii producători au folosit un terminal de computer separat, în timp ce alții au proiectat un sistem de afișare video integrat încorporat. Porturile seriale pentru imprimante și modemuri puteau folosi diferite tipuri de cipuri UART , iar adresele porturilor nu au fost fixate. Unele mașini au folosit I/O mapat în memorie în loc de spațiul de adrese 8080 I/O. Toate aceste variații ale hardware-ului au fost ascunse de alte module ale sistemului prin utilizarea BIOS-ului, care a folosit puncte de intrare standard pentru serviciile necesare pentru a rula CP/M, cum ar fi I/O caractere sau accesarea unui bloc de disc. Deoarece suportul pentru comunicarea în serie cu un modem era foarte rudimentar în BIOS sau poate să fi lipsit cu totul, era o practică obișnuită ca programele CP/M care foloseau modemuri să aibă o suprapunere instalată de utilizator care să conțină tot codul necesar pentru a accesa o anumită mașină. port serial.

Aplicații

Distribuția 5+Dischete de 14 inchi și ambalaj pentru ultima versiune (versiunea 4) a programului de procesare de text WordStar lansat pentru CP/M pe 8 biți

WordStar , unul dintre primele procesoare de text utilizate pe scară largă și dBase , un program de baze de date timpuriu și popular pentru microcalculatoare, au fost scrise inițial pentru CP/M. Două modele timpurii , KAMAS (Knowledge and Mind Amplification System) și succesorul său redus Out-Think (fără facilități de programare și reelaborate pentru compatibilitatea 8080/V20) au fost, de asemenea, scrise pentru CP/M, deși ulterior rescrise pentru MS-DOS. Turbo Pascal , strămoșul lui Borland Delphi , și Multiplan , strămoșul Microsoft Excel , au debutat de asemenea pe CP/M înainte ca versiunile MS-DOS să devină disponibile. VisiCalc , primul program de foi de calcul, a fost pus la dispoziție pentru CP/M. O altă companie, Sorcim , și-a creat foaia de calcul SuperCalc pentru CP/M, care va deveni lider de piață și standard de facto pentru CP/M. Supercalc ar continua să fie un concurent pe piața foilor de calcul din lumea MS-DOS. AutoCAD , o aplicație CAD de la Autodesk a debutat pe CP/M. Au fost disponibile o serie de compilatoare și interpreți pentru limbaje de programare populare ale vremii (cum ar fi BASIC , Turbo Pascal de la Borland , FORTRAN și chiar PL/I ), printre care câteva dintre cele mai vechi produse Microsoft .

Software-ul CP/M a venit adesea cu instalatori care l-au adaptat la o mare varietate de computere. Codul sursă pentru programele BASIC era ușor accesibil, iar majoritatea formelor de protecție împotriva copierii erau ineficiente pe sistemul de operare. Un proprietar de Kaypro II, de exemplu, ar obține software în format Xerox 820, apoi îl va copia și îl va rula de pe discuri în format Kaypro.

Lipsa unei grafice standardizate acceptă jocuri video limitate, dar au fost portate diverse jocuri bazate pe caracter și text , cum ar fi Telengard , Gorillas , Hamurabi , Lunar Lander , împreună cu ficțiunea interactivă timpurie, inclusiv seria Zork și Colossal Cave Adventure . Specialistul în aventuri text Infocom a fost unul dintre puținii editori care și-au lansat în mod constant jocurile în format CP/M. Lifeboat Associates a început să colecteze și să distribuie software „gratuit” scris de utilizator. Unul dintre primele a fost XMODEM , care a permis transferuri fiabile de fișiere prin modem și linie telefonică. Un alt program nativ pentru CP/M a fost procesorul de contur KAMAS .

Zona de program tranzitorie

Memoria de citire/scriere dintre adresa 0100 hexazecimală și cea mai mică adresă a BDOS a fost Zona de program tranzitoriu (TPA) disponibilă pentru programele de aplicație CP/M. Deși toate procesoarele Z80 și 8080 ar putea aborda 64 de kiloocteți de memorie, cantitatea disponibilă pentru programele de aplicație poate varia, în funcție de designul computerului respectiv. Unele computere au folosit părți mari din spațiul de adrese pentru lucruri precum ROM-urile BIOS sau memoria de afișare video. Drept urmare, unele sisteme aveau mai multă memorie TPA disponibilă decât altele. Schimbarea băncilor a fost o tehnică obișnuită care a permis sistemelor să aibă un TPA mare în timp ce schimbau spațiul de memorie ROM sau video după cum era necesar. CP/M 3.0 a permis ca părți ale BDOS să fie, de asemenea, în memoria comutată de bancă.

Aplicație de depanare

CP/M a venit cu un Dynamic Debugging Tool, poreclit DDT (după insecticid, adică un bug -killer), care permitea examinarea și manipularea modulelor de memorie și de program și a permis ca un program să fie executat pe rând.

Programe pentru rezidenți

CP/M nu a acceptat inițial echivalentul programelor de terminare și rămânere rezident (TSR) ca în DOS. Programatorii ar putea scrie software care ar putea intercepta anumite apeluri ale sistemului de operare și să le extindă sau să le modifice funcționalitatea. Folosind această capacitate, programatorii au dezvoltat și vândut programe auxiliare de birou , cum ar fi SmartKey , un utilitar de tastatură pentru a atribui orice șir de octeți oricărei taste. CP/M 3, totuși, a adăugat suport pentru extensii de sistem rezidenți (RSX) care se pot încărca dinamic . Un așa-numit fișier de comandă nul ar putea fi utilizat pentru a permite CCP să încarce un RSX fără un program tranzitoriu. Soluții similare precum RSM-urile (pentru modulele de sistem rezidente ) au fost, de asemenea, adaptate la sistemele CP/M 2.2 de către terți.

Instalarea software-ului

Deși CP/M a furnizat o oarecare abstracție hardware pentru a standardiza interfața la I/O disc sau I/O consolă, programele de aplicație încă necesitau instalarea pentru a utiliza toate caracteristicile unor astfel de echipamente, cum ar fi imprimante și terminale. Adesea, acestea erau controlate de secvențe de evacuare care trebuiau modificate pentru diferite dispozitive. De exemplu, secvența de evadare pentru a selecta fața îndrăzneață pe o imprimantă ar fi diferit între producători și, uneori, între modelele din gama unui producător. Această procedură nu a fost definită de sistemul de operare; un utilizator ar rula de obicei un program de instalare care ar permite fie selecția dintr-o serie de dispozitive, fie ar permite editarea caracteristică după caracteristică a secvențelor de evadare necesare pentru a accesa o funcție. Acest lucru trebuia repetat pentru fiecare program de aplicație, deoarece nu exista un serviciu central de operare furnizat pentru aceste dispozitive.

Codurile de inițializare pentru fiecare model de imprimantă trebuiau scrise în aplicație. Pentru a utiliza un program precum Wordstar cu mai mult de o imprimantă (de exemplu, o imprimantă rapidă cu matrice de puncte sau o imprimantă mai lentă, dar de calitate de prezentare ) , trebuia pregătită o versiune separată a Wordstar și trebuia să încărcați Wordstar-ul. versiunea care corespundea imprimantei selectate (și ieșirea și reîncărcarea pentru a schimba imprimantele).

Formate de disc

Formatul IBM System/34 și IBM 3740 cu o singură densitate, cu o singură față este formatul standard de dischetă de 8 inchi al CP/M . Nu există un format standard de disc CP/M de 5,25 inchi, Kaypro, Morrow Designs , Osborne și alții folosind fiecare al lor. InfoWorld a estimat în septembrie 1981 că „aproximativ două duzini de formate erau suficient de populare încât creatorii de software trebuiau să le ia în considerare pentru a ajunge pe cea mai largă piață posibilă”. JRT Pascal , de exemplu, a furnizat versiuni pe disc de 5,25 inchi pentru North Star , Osborne, Apple, Heath sector hard și soft , și Superbrain și o versiune de 8 inch. Ellis Computing și-a oferit software-ul pentru ambele formate Heath și alte 16 formate de 5,25 inci, inclusiv două modificări diferite TRS-80 CP/M.

Anumite formate de disc au fost mai populare decât altele. Majoritatea software-ului erau disponibile în format Xerox 820, iar alte computere, cum ar fi Kaypro II, erau compatibile cu acesta. Cu toate acestea, niciun producător nu a predominat în era de 5,25 inci a utilizării CP/M, iar formatele de disc nu erau adesea portabile între producătorii de hardware. Un producător de software trebuia să pregătească o versiune separată a programului pentru fiecare marcă de hardware pe care urma să ruleze. La unii producători (Kaypro este un exemplu), nici măcar nu a existat standardizare între diferitele modele ale companiei. Din cauza acestei situații, programele de traducere în format de disc, care permiteau unei mașini să citească mai multe formate diferite, au devenit populare și au redus confuzia, la fel ca și programe precum Kermit, care permiteau transferul de date și programe de la o mașină la alta folosind porturile seriale care majoritatea aparatelor CP/M aveau.

Au fost utilizate diferite formate în funcție de caracteristicile sistemelor particulare și, într-o oarecare măsură, de alegerile designerilor. Opțiunile acceptate de CP/M pentru a controla dimensiunea zonelor rezervate și de director de pe disc și maparea dintre sectoarele de disc logice (așa cum se vede de programele CP/M) și sectoarele fizice, așa cum sunt alocate pe disc. Au existat multe modalități de a personaliza acești parametri pentru fiecare sistem, dar odată ce au fost setați, nu a existat nicio modalitate standardizată ca un sistem să încarce parametrii de pe un disc formatat pe alt sistem.

Gradul de portabilitate între diferitele mașini CP/M depindea de tipul de unitate de disc și de controler utilizat, deoarece în epoca CP/M existau multe tipuri diferite de dischete atât în ​​format de 8 inchi, cât și în format de 5,25 inci. Discurile pot fi sectorate tari sau moi, cu densitate simplă sau dublă, cu o singură față sau cu două fețe, cu 35 de piste, 40 de piste, 77 de piste sau 80 de piste, iar aspectul sectorului, dimensiunea și intercalarea pot varia, de asemenea, foarte mult. Deși programele de traducere ar putea permite utilizatorului să citească tipuri de discuri de pe diferite mașini, tipul de unitate și controlerul au fost, de asemenea, factori. Până în 1982, discurile soft-sector, cu o singură față, cu 40 de piste de 5,25 inci, deveniseră cel mai popular format pentru a distribui software-ul CP/M, deoarece erau folosite de cele mai comune mașini de consum din acea vreme, cum ar fi Apple II, TRS-80, Osborne 1, Kaypro II și IBM PC. Un program de traducere permitea utilizatorului să citească orice disc de pe computerul său care avea un format similar - de exemplu, Kaypro II putea citi discuri TRS-80 , Osborne , IBM PC și Epson . Alte tipuri de discuri, cum ar fi 80 de piese sau hard sectored, erau complet imposibil de citit. Prima jumătate a discurilor cu două fețe (cum ar fi cele ale Epson QX-10) a putut fi citită deoarece CP/M a accesat piesele de disc secvențial, pista 0 fiind prima pistă (cel mai exterioară) a feței 1 și a piesei 79 (pe un 40- track disk) fiind ultima pistă (cea mai interioară) a feței 2. Utilizatorii Apple II nu au putut folosi nimic în afară de formatul GCR Apple și, prin urmare, au trebuit să obțină software-ul CP/M pe discuri cu format Apple sau să îl transfere prin legătura serial.

Piața fragmentată a CP/M, care le cere distribuitorilor fie să stoceze mai multe formate de discuri, fie să investească în echipamente de duplicare multiformate, în comparație cu formatele de discuri IBM PC mai standardizate , a fost un factor care a contribuit la învechirea rapidă a CP/M după 1981.

Una dintre ultimele mașini notabile capabile CP/M care a apărut a fost Commodore 128 în 1985, care avea un Z80 pentru suport CP/M în plus față de modul său nativ folosind un CPU derivat 6502. Utilizarea CP/M a necesitat fie o unitate de disc 1571, fie 1581 , care să poată citi discuri în format MFM cu 40 de piste din sectorul soft .

Primul computer care a folosit o unitate de dischetă de 3,5 inchi, Sony SMC-70 , rula CP/M 2.2. Commodore 128 , laptopul Bondwell-2 , Micromint/Ciarcia SB-180, MSX și TRS-80 Model 4 (pe care rulează Montezuma CP/M 2.2) au suportat și utilizarea CP/M cu dischete de 3,5 inchi. CP/AM, versiunea Applied Engineering a CP/M pentru Apple II, a acceptat și discuri de 3,5 inchi (precum și discuri RAM pe carduri RAM compatibile cu cardul de expansiune de memorie Apple II). Amstrad PCW a rulat CP/M folosind unități de dischetă de 3 inchi la început, iar mai târziu a trecut la unitățile de 3,5 inchi.

Sistemul de fișiere

Numele fișierelor au fost specificate ca un șir de până la opt caractere, urmat de un punct, urmat de o extensie de nume de fișier de până la trei caractere ( formatul de nume de fișier „8.3” ). Extensia a identificat de obicei tipul fișierului. De exemplu, .COMa indicat un fișier de program executabil și .TXTa indicat un fișier care conține text ASCII . Caracterele din numele fișierelor introduse la promptul de comandă au fost convertite în majuscule, dar acest lucru nu a fost impus de sistemul de operare. Programele ( MBASIC este un exemplu notabil) au putut crea nume de fișiere care conțineau litere mici, care apoi nu puteau fi făcute referință cu ușurință la linia de comandă.

Fiecare unitate de disc a fost identificată printr-o literă de unitate , de exemplu, unitate Ași unitate B. Pentru a face referire la un fișier de pe o anumită unitate, litera unității a fost prefixată la numele fișierului, separate prin două puncte, de exemplu, A:FILE.TXT. Fără nicio literă de unitate prefixată, accesul era la fișierele de pe unitatea implicită curentă.

Dimensiunea fișierului a fost specificată ca numărul de înregistrări de 128 de octeți (corespunzând direct sectoarelor de disc de pe unitățile de 8 inchi) ocupate de un fișier de pe disc. Nu a existat o modalitate acceptată în general de a specifica dimensiunile fișierelor exacte pe octeți. Dimensiunea actuală a unui fișier a fost menținută în Blocul de control al fișierului (FCB) al fișierului de către sistemul de operare. Deoarece multe programe de aplicație (cum ar fi editorii de text ) preferă să trateze fișierele ca secvențe de caractere mai degrabă decât ca secvențe de înregistrări, prin convenție fișierele text au fost terminate cu un caracter de control-Z ( ASCII SUB , hexazecimal 1A). Determinarea sfârșitului unui fișier text a implicat, prin urmare, examinarea ultimei înregistrări a fișierului pentru a localiza controlul de terminare-Z. Acest lucru însemna, de asemenea, că inserarea unui caracter de control-Z în mijlocul unui fișier avea de obicei efectul de a trunchia conținutul text al fișierului.

Odată cu apariția unităților de disc amovibile și fixe mai mari, au fost folosite formule de deblocare a discurilor, ceea ce a dus la mai multe blocuri de disc pe bloc de alocare de fișiere logice. În timp ce acest lucru a permis dimensiuni mai mari de fișiere, a însemnat, de asemenea, că cel mai mic fișier care putea fi alocat a crescut în dimensiune de la 1  KB (pe unități cu densitate simplă) la 2 KB (pe unități cu densitate dublă) și așa mai departe, până la 32 KB pentru un fișier care conține doar un singur octet. Acest lucru a dus la utilizarea ineficientă a spațiului pe disc dacă discul conținea un număr mare de fișiere mici.

Marcajele de timp pentru modificarea fișierelor nu erau acceptate în versiunile până la CP/M 2.2, dar erau o caracteristică opțională în MP/M și CP/M 3.0.

CP/M 2.2 nu avea subdirectoare în structura fișierelor, dar oferea 16 zone de utilizator numerotate pentru a organiza fișierele pe un disc. Pentru a schimba utilizatorul trebuia pur și simplu să tastați „Utilizator X” la promptul de comandă, X fiind numărul utilizatorului. Securitatea a fost inexistentă și considerată inutilă pe un computer personal. Conceptul zonei utilizator a fost de a face versiunea pentru un singur utilizator a CP/M oarecum compatibilă cu sistemele multi-utilizator MP/M. O corecție comună pentru sistemele de operare CP/M și derivate a fost aceea de a face o zonă de utilizator accesibilă utilizatorului independent de zona de utilizator setată în prezent. O comandă USER a permis ca zona utilizatorului să fie schimbată în orice zonă de la 0 la 15. Utilizatorul 0 era implicit. Dacă unul s-a schimbat cu un alt utilizator, cum ar fi UTILIZATOR 1, materialul salvat pe disc pentru acest utilizator ar fi disponibil numai pentru UTILIZATOR 1; UTILIZATORUL 2 nu l-ar putea vedea sau accesa. Cu toate acestea, fișierele stocate în zona UTILIZATOR 0 erau accesibile tuturor celorlalți utilizatori; locația lor a fost specificată cu o cale preliminară , deoarece fișierele UTILIZATOR 0 erau vizibile doar pentru cineva conectat ca UTILIZATOR 0. Caracteristica zonei de utilizator avea, probabil, puțină utilitate pe dischetele mici, dar era utilă pentru organizarea fișierelor pe mașinile cu hard disk . conduce . Intenția funcției a fost de a ușura utilizarea aceluiași computer pentru diferite sarcini. De exemplu, o secretară ar putea face introducerea datelor , apoi, după ce a schimbat zonele UTILIZATOR, un alt angajat ar putea folosi aparatul pentru a face facturarea fără a fi amestecate fișierele.

Grafică

Ieșire de text MBASIC afișată pe un monitor monocrom tipic pentru acea perioadă

Deși sistemele S-100 capabile de grafică au existat de la comercializarea magistralei S-100 , CP/M nu a furnizat niciun suport pentru grafică standardizată până în 1982 cu GSX (Graphics System Extension). Datorită cantității mici de memorie disponibilă, grafica nu a fost niciodată o caracteristică comună asociată cu sistemele de operare CP/M pe 8 biți. Majoritatea sistemelor puteau afișa numai diagrame și diagrame ASCII rudimentare în modul text sau folosind un set de caractere personalizat . Unele computere din linia Kaypro și TRS-80 Model 4 aveau hardware video care suportă caractere grafice în bloc, iar acestea erau accesibile programatorilor de asamblare și programatorilor BASIC folosind comanda CHR$. Modelul 4 ar putea afișa grafică de 640 x 240 pixeli cu o placă opțională de înaltă rezoluție.

Derivate

SCP derivat CP/M care rulează pe un robotron PC 1715 est-german
Versiunea CP/J 2.21 care rulează pe un Elwro 804 Junior

O serie de derivate CP/M-80 au existat în fostul bloc de Est sub diferite denumiri, inclusiv SCP ( Programul de control al utilizatorului unic  [ de ] ), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB , CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM și altele. Au existat și derivate CP/M-86 numite SCP1700 , CP/K și K8918-OS . Au fost produse de est-germanul VEB Robotron și alții.

Moştenire

O serie de comportamente prezentate de Microsoft Windows sunt rezultatul compatibilităţii cu MS-DOS, care la rândul său a încercat o anumită compatibilitate cu CP/M. Litera unității și convențiile de nume de fișier 8.3 în MS-DOS (și versiunile timpurii de Windows) au fost adoptate inițial din CP/M. Caracterele de potrivire wildcard utilizate de Windows (? și *) se bazează pe cele ale CP/M, la fel ca și numele de fișiere rezervate folosite pentru a redirecționa ieșirea către o imprimantă ("PRN:") și către consolă ("CON:"). Numele de unitate A și B au fost folosite pentru a desemna cele două unități de dischetă pe care le foloseau de obicei sistemele CP/M; când au apărut hard disk-urile, acestea au fost desemnate C, care a supraviețuit în MS-DOS ca C:\>prompt de comandă. Caracterul de control^Z care marchează sfârșitul unor fișiere text poate fi, de asemenea, atribuit CP/M. Diverse comenzi în DOS au fost modelate după comenzi CP/M; unele dintre ele chiar purtau același nume, cum ar fi DIR, REN/RENAME sau TYPE (și ERA/ERASE în DR-DOS). Extensiile de fișiere ca .TXTsau .COMsunt încă folosite pentru a identifica tipuri de fișiere pe multe sisteme de operare.

În 1997 și 1998, Caldera a lansat niște binare și cod sursă CP/M 2.2 sub o licență open source , permițând, de asemenea, redistribuirea și modificarea fișierelor Digital Research culese ulterioare legate de familiile CP/M și MP/M prin „The Tim Olmstead” Site web neoficial CP/M" din 1997. După moartea lui Olmstead la 12 septembrie 2001, licența de distribuție a fost reîmprospătată și extinsă de Lineo , care devenise între timp proprietarul acelor active Digital Research, la 19 octombrie 2001. În octombrie 2014, pentru marca a 40 de ani de la prima prezentare a CP/M, Muzeul de Istorie a Calculatoarelor a lansat versiuni timpurii de cod sursă ale CP/M.

Începând cu 2018, există o serie de oameni și grupuri active de epocă, hobby și retro-computer , precum și unele mici întreprinderi comerciale, care încă dezvoltă și susțin platforme informatice care utilizează CP/M (mai ales 2.2) ca sistem de operare gazdă.

Vezi si

Referințe

Lectură în continuare

linkuri externe