한국   대만   중국   일본 
CP/M ? Wikipedie P?esko?it na obsah

CP/M

Z Wikipedie, otev?ene encyklopedie
CP/M
Vyviji Digital Research, Inc. / Gary Kildall
Rodina OS CP/M
Aktualni verze 3.1 / 1982
Podporovane platformy Intel 8080 , Intel 8085 , Zilog Z80 , Intel 8086 , Motorola 68000
Typ  jadra Monoliticke jadro
Vychozi u?ivatelske rozhrani P?ikazovy ?adek
Licence p?vodn? proprietarni , nyni pod licenci podobnou BSD
Stav Historicky
Oficialni web www.digitalresearch.biz/CPM.HTM

CP/M (p?vodn? C ontrol P rogram /M onitor, pozd?ji zm?n?no na C ontrol P rogram for M icrocomputers) je jednou?ivatelsky jednoulohovy opera?ni system pro mikropo?ita?e osmibitovymi mikroprocesory Intel 8080 / 85 , ktery vytvo?il Gary Kildall z firmy Digital Research, Inc v roce 1974 . Existovala i jeho roz?i?eni pro vice ne? 64  kilobajt? pam?ti, viceu?ivatelske varianty i varianty pro 16bitove procesory .

System CP/M a po?ita?e se sb?rnici S-100 bus vyvinute podle vzoru po?ita?e Altair 8800 p?edstavovaly rany ?pr?myslovy standard“ mikropo?ita??, a tato platforma byla od konce 70. let do poloviny 80. let 20. stoleti ?asto dodavana r?znymi vyrobci mikropo?ita??.

Historie [ editovat | editovat zdroj ]

Autorem systemu CP/M je Gary Kildall , ktery za?al tento system vytva?et pro spole?nost Intel a po neshodach s touto spole?nosti ho tvo?il dale na vlastni p?st. [1] Prototyp systemu schopny pracovat s ?adi?em disketovych jednotek Digital Systems vzbudil pozitivni ohlas. Proto?e ale existovaly r?zne mikropo?ita?ove sestavy, Gary Kildall rozd?lil system na ?ast technicky nezavislou a ?ast technicky zavislou, kterou jako jedinou bylo nutne p?izp?sobit technickemu vybaveni mikropo?ita?ove sestavy. Prvni zve?ejn?na verze systemu CP/M byla verze 1.3, verze 1.4 u? um?la pracovat s ?adi?em disketovych jednotek IBM .

Se vznikem pevnych disk? vznikla verze 2.2, ktera v technicky zavisle ?asti obsahovala tabulky vlastnosti pevnych disk?. Tato verze byla nejroz?i?en?j?i verzi v byvalem ?eskoslovensku , znama pod ozna?enim Mikros .

Verze 3.1 um?la ovladat strankovanou pam??. Krom? standardni varianty CP/M existovala i varianta CP/M umo??ujici spou?t?ni vice uloh ( Concurrent CP/M ), CP/M s mo?nosti p?istupu vice u?ivatel? sou?asn? ( MP/M ) a varianta umo??ujici vyu?iti sdilenych si?ovych prost?edk? ( CP/NET ).

Minimalni technicke vybaveni [ editovat | editovat zdroj ]

Minimalni po?adavky systemu CP/M na technicke vybaveni jsou nasledujici:

Originalni system CP/M, ktery prodavala firma Digital Research pou?ival mikroprocesor Intel 8080 . Vyrobci system? kompatibilnich s CP/M upravovali ?asti systemu pro sve vlastni kombinace pam?ti, diskovych jednotek, a terminal?. CP/M take b??i na systemech s mikroprocesorem Zilog Z80 , proto?e strojovy kod Z80 je roz?i?enim strojoveho kodu 8080. Zatimco system od Digital Research pou?ival pouze instrukce pro Intel 8080, mnoho system? pro Z80 pou?ivalo instrukce pro Z80, tak?e tyto programy na po?ita?ich s procesory Intel nefungovaly.

CP/M pou?iva 7bitovou znakovou sadu ASCII. Pou?iti kod? 128?255 neni standardizovano. Po?ita?e Osborne je pou?ivaly pro podtr?ene znaky, po?ita?e Kaypro pro ?ecke znaky. Mezinarodni systemy CP/M obvykle pou?ivaly normu ISO 646 pro lokalizovane narodni znakove sady, ktere misto pou?ivani kod? 128?255 nahrazuji n?ktere ASCII znaky narodnimi znaky.

Struktura opera?niho systemu [ editovat | editovat zdroj ]

Opera?ni system CP/M se sklada ze t?i zakladnich sou?asti:

  • Basic Input/Output System ? BIOS
  • Basic Disk Operating System ? BDOS
  • Console Command Processor ? CCP

BIOS a BDOS byly rezidentni ? trvale zavedeny do pam?ti, zatimco CCP byl tranzientni ? mohl byt p?epsan spou?t?nym programem. Pokud k tomu do?lo, byl CCP po ukon?eni programu znovu na?ten z disku. System byl dodavan i s n?kolika tranzientnimi pomocnymi programy, ktere byly ulo?eny jako soubory s p?iponou .COM na disku.

Modul BIOS obsahoval podprogramy pro obsluhu vstupnich a vystupnich za?izeni, jako nap?iklad funkce pro ?teni znaku z klavesnice, vypis znaku na obrazovku, ?teni sektoru z diskety a zapis sektoru na disketu. Tato ?ast byla zavisla na technickem vybaveni po?ita?e.

Modul BDOS implementoval system soubor? a abstrakce pro vstupni a vystupni operace s vyu?itim funkci poskytovanych modulem BIOS.

Naproti tomu BDOS, CCP a standardni tranzientni p?ikazy byly (v idealnim p?ipad?) nezavisle na technickem vybaveni. Diky omezenym adresovacim mo?nostem pou?itych procesor? bylo v?ak nutne p?einstalovat system p?i zm?n? velikosti opera?ni pam?ti. Nainstalovany system (BIOS, BDOS a CCP) byl ulo?eny v rezervovanych oblastech na systemovem disku, odkud je po zapnuti po?ita?e zavad?? systemu (zpravidla ulo?eny v pam?ti ROM) na?etl z diskety v jednotce A: .

V porovnani s modernimi opera?nimi systemy byl CP/M velmi primitivni, zejmena kv?li velmi omezenemu rozsahu opera?ni pam?ti. Ve verzi 1.0 neum?l detekovat, ?e u?ivatel vym?nil disketu, tak?e mohlo snadno dojit k p?epsani dat na disket?. Ve verzi 1.1 a 1.2 zp?sobil pokus o zapis na vym?n?nou disketu kritickou chybu a bylo nutne restartovat system, tak?e do?lo ke ztrat? dat, ktere cht?l u?ivatel ulo?it.

Nejslo?it?j?i ?ast CP/M byla izolovana v BDOS, a v men?i mi?e v CCP a tranzientnich p?ikazech. P?i p?enosu systemu na novy hardware sta?ilo p?epsat pouze relativn? jednoduche hardwarov? zavisle funkce v BIOSu, co? zna?n? zkracovalo dobu pot?ebnou pro p?enos systemu na novy hardware a p?isp?lo k velkemu roz?i?eni systemu.

Console Command Processor [ editovat | editovat zdroj ]

Obrazovka systemu CP/M

Console Command Processor (CCP) zobrazuje pismeno aktualni diskove jednotky a znak ?v?t?i ne?“ (nap?iklad A> ) jako vyzvu systemu, na?ita p?ikazy zadavane u?ivatelem na klavesnici, bu? je p?imo provadi nebo pro jejich provedeni spusti tranzientni program a zobrazuje vysledky na terminalu. Jako terminal se pou?ival bu? elektricky psaci stroj nebo obrazovkovy displej.

Interni p?ikazy provad?ne p?imo programem CCP:

P?ikaz Pou?iti
A: zm?ni aktualni diskovou jednotku
ERA zru?i soubor
DIR vypi?e obsah adresa?e
REN p?ejmenuje soubor
SAVE ulo?i zadany po?et stranek (256 byt?) pam?ti od adresy 100h do souboru
TYPE vypi?e obsah souboru na obrazovku

Externi p?ikazy dostupne v CP/M jako samostatne programy zavad?ne do TPA: [2]

P?ikaz Pou?iti
ASM p?elo?i program v jazyce symbolickych adres do strojoveho kodu
DDT spusti ladici program (debugger)
DUMP vypi?e obsah souboru v hexadecimalnim formatu
ED textovy editor
LOAD na?te soubor ve formatu kodu po?ita?e HEX a vytvo?i spustitelny soubor, ktery lze na?ist do pam?ti
MOVCPM p?izp?sobi system CP/M pro konkretni velikost pam?ti RAM
PIP kopiruje soubory mezi disky a za?izenimi (Peripheral Interchange Program)
STAT zobrazi volne misto (v bajtech) na aktualnim disku, poskytuje statisticke informace o ur?itych souborech a zobrazi nebo zm?ni p?id?leni za?izeni
SUBMIT spusti davkovy soubor
SYSGEN vytvo?i zavad?ci disk systemu CP/M

System soubor? [ editovat | editovat zdroj ]

Ka?da diskova jednotka byla identifikovana pismenem a dvojte?kou ( A: , B: , atd.).

CP/M nem?lo adresa?e. Jmena soubor? mohou mit a? 8 znak? nasledovanych te?kou a max. 3 znaky p?ipony. P?ipona se pou?iva pro ur?eni typu souboru. Programy maji p?iponu .COM a textove soubory m?ly p?iponu .TXT . Plne jmeno souboru mohlo byt nap?iklad A:CCP.COM nebo A:README00.TXT . Tento format jmen byl beze zm?ny p?evzat do opera?niho system MS-DOS a PC-DOS. Ve verzi MS-DOS/PC-DOS 2.0 byl dopln?n jmeny adresa??.

Velikost souboru byla udr?ovana jako po?et 128bytovych zaznam? (odpovidajicich sektor?m na osmipalcovych disketach). Neexistence p?esne delky soubor? v bytech se obchazela v textovych souborech pou?itim znak? konce souboru ( ASCII SUB , hexadecimal 1A, control-Z ). Pomoci Ctrl + Z bylo mo?ne docilit i zkraceni souboru.

Udr?ovani ?as? modifikace souboru bylo podporovano pouze v n?kterych pozd?j?ich variantach CP/M.

Chyb?jici adresa?ovou strukturu obchazela CP/M verze 2.2 pomoci a? 16 u?ivatelskych oblasti na disku. Pro p?epinani mezi u?ivateli slou?i p?ikaz USER x , kde x je ?islo 0 a? 15.

Transient program area [ editovat | editovat zdroj ]

Oblast pam?ti od adresy 256 (?estnactkov? 0100) a za?atkem modulu BDOS se nazyva transient program area (TPA) se pou?iva pro zavad?ni aplika?nich program?. Procesory Z80 a 8080 mohou adresovat 64 kibibyt? pam?ti, ale ne u v?ech po?ita?? byla pam?? teto velikosti k dispozici. N?ktere po?ita?e take maji v adresnim prostoru dal?i pam?? jako BIOS ROM, nebo videopam??. Diky tomu m?ly r?zne po?ita?e r?zn? velkou oblast TPA. N?ktere pozd?j?i po?ita?e m?ly vice ne? 64 KiB pam?ti a pou?ivaly techniku p?epinani stranek pam?ti. CP/M 3.0 umo??uje, aby v p?epinane ?asti pam?ti byly i n?ktere ?asti BDOSu.

Po?adavky opera?niho systemu [ editovat | editovat zdroj ]

Opera?ni system CP/M po?aduje pam?? RAM u? od adresy 0000. Po?ita?e, ktere nebyly navr?eny pro spou?t?ni opera?niho systemu CP/M m?ly v?t?inou v t?chto mistech pam?? ROM a tak byly nutne upravy. Pro textovy vystup bylo po?adovano 80 znak? na ?adku. U po?ita??, ktere m?ly standardn? jenom 40 znak? na ?adku, se toto ?e?ilo vlastnimi ovlada?i umo??ujici zobrazovat pismo s polovi?ni ?i?kou znak?. Zvla?tni ?e?eni bylo pou?ito u CP/M pro Sinclair ZX Spectrum +3. Jeliko? po?ita?e ZX Spectrum m?ly pouze 32 znak? na ?adek, bylo u ZX Spectra +3 mo?ne vyu?it jeho obou videoRAM . Pomoci prvni videoRAM se zobrazovaly znaky 1?64, pomoci druhe videoRAM se zobrazovaly znaky 16?80. Proto?e takoveto ?e?eni omezovalo ?teni souvisleho textu, nebylo aktivovano automaticky, ale pomoci p?ikazu. Klavesami pak bylo mo?ne p?epinat mezi ?astmi obrazovky.

Jeden ze zp?sob?, jak zajistit pam?? RAM od adresy 0000, je navrhnout po?ita? tak, aby obsahoval v celem adresnim prostoru procesoru pam?? RAM. Proto?e ale takovy po?ita? sam o sob? neni mo?ne spustit, je nutne po spu?t?ni po?ita?e do?asn? odpojit procesor od sb?rnice a opera?ni system CP/M nahrat do pam?ti z vn?j?iho pam??oveho media pomoci pomocneho procesoru. [3]

Struktura opera?niho systemu [ editovat | editovat zdroj ]

Existovalo n?kolik nekompatibilnich architektur po?ita?? ( Sinclair ZX Spectrum , Sharp, Atari, Amstrad-Schneider), kdy ka?da architektura m?la jinak ovladany hardware (klavesnice, joysticky , videopam??), jinou organizaci pam?ti (umist?ni pam?ti RAM a ROM v adresovatelnem rozsahu procesoru, p?ipojovani pam?ti v?t?iho rozsahu ne? je adresovatelny rozsah procesoru a podobn?) a nekompatibilni periferie. Nekompatibilita periferii nebyla jenom mezi r?znymi architekturami, ale i v ramci jedne architektury. Nap?. pro po?ita? Sinclair ZX Spectrum existuje n?kolik r?znych disketovych systemu ( Beta Disk Interface , Disciple , +D , Opus Discovery , Wafadrive , system pou?ity v po?ita?ich ZX Spectrum +3 , Didaktik 40/80 , Dataputer , Timex FDD3000 , Kempston Disc Interface , Byte Drive 500 , …). Opera?ni system CP/M pak umo??oval psat programy pou?itelne na r?znych architekturach a ve spojeni s r?znymi periferiemi. Samoz?ejm? existovaly i jine procesory nap?. MOS Technology 6510 pou?ity v  Commodore C64 . Pro tyto procesory opera?ni system CP/M neexistoval, proto Commodore C128 obsahoval 2 procesory: MOS Technology 8502 (nov?j?i verze procesoru 6510, pro re?imy C64 a C128) a Z80 (pro re?im CP/M). Pro po?ita?e Apple II , ktery byl zalo?en na procesoru MOS Technology 6502 , existovala specialni karta pro provoz opera?niho systemu CP/M s procesorem Z80 .

Pam??ova media [ editovat | editovat zdroj ]

Opera?ni system CP/M umi obslou?it a? 16 p?ipojenych externich pam??ovych jednotek (disketove jednotky, pevne disky , RAM disky ). Jednotky byly ozna?eny pismeny A: a? P: . Media m?la pouze ko?enovy adresa? . Aby byla mo?na jista strukturovanost ulo?enych dat, bylo mo?ne data ukladat pod ?isly u?ivatel? 0?15 (jako by na jednom mediu existovalo 16 ko?enovych adresa?? a v ka?dem byly ulo?eny jine soubory). Bylo mo?ne pou?ivat media a? do velikosti 32 MiB, p?i?em? velikost souboru mohla byt a? 16 MiB (verze CP/M pro Sinclair ZX Spectrum +3 mohla pou?ivat media a? do velikosti 16 MiB, p?i?em? velikost souboru mohla byt a? 8 MiB), co? v te dob? znamenalo je?t? dostate?nou rezervu, nebo? kapacita disket byla obvykle 360 nebo 720 KiB (dvojita hustota, Double Density, DD), resp. 1,2 nebo 1,4 MiB p?i pou?iti zaznamu o vysoke hustot? (High Density ? HD). Existovala i verze CP/M pracujici se ZX Microdrive .

Programy [ editovat | editovat zdroj ]

Odkazy [ editovat | editovat zdroj ]

Externi odkazy [ editovat | editovat zdroj ]

Reference [ editovat | editovat zdroj ]

  1. LAMA?, Ji?i. Opera?ni system CP/M 2.2 . Praha: [s.n.], 1989. Dostupne online . Kapitola 2.2 Vznik CP/M.  
  2. CP/M Operating System Manual [online]. Pacific Grove, California: Digital Research, 1983 [cit. 2019-01-18]. Dostupne online .  
  3. Combining a Z80 and an ATmega644P to boot CP/M. Ben Ryves Journal [online]. 14th June 2010. Dostupne online .  

Literatura [ editovat | editovat zdroj ]

  • Kvaksoft. CP/M dil ?tvrty. ZX Magazin . 1998, ?is. 3/98, s. 14?16.  
  • ?abensky, P. Opera?ni system CP/M popate. ZX Magazin . 1999, ?is. 4/98?1/99, s. 14?15.