CP/M -CP/M

CP/M
BGBM-86.png
CP/M-86'nın ekran görüntüsü
Geliştirici Digital Research, Inc. , Gary Kildall
Yazılmış PL/M , Assembly dili
çalışma durumu Tarihi
kaynak modeli Başlangıçta kapalı kaynak , şimdi açık kaynak
İlk sürüm 1974 ; 49 yıl önce ( 1974 )
En son sürüm 3.1 / 1983 ; 40 yıl önce ( 1983 )
Uygun İngilizce
Güncelleme yöntemi yeniden yükleme
Paketleme yöneticisi Hiçbiri
Platformlar Intel 8080 , Intel 8085 , Zilog Z80 , Zilog Z8000 , Intel 8086 , Motorola 68000
çekirdek türü yekpare çekirdek
Tarafından etkilenmiş RT-11 , OS/8
Varsayılan
kullanıcı arabirimi
Komut satırı arabirimi (CCP.COM)
Lisans Başlangıçta tescilli , şimdi BSD benzeri
tarafından başarıldı MP/M , CP/M-86
Resmi internet sitesi Dijital Araştırma CP/M sayfası

Başlangıçta Control Program/Monitor ve daha sonra Control Program for Microcomputers anlamına gelen CP/M , Digital Research, Inc.'den Gary Kildall tarafından Intel 8080/85 tabanlı mikro bilgisayarlar için 1974 yılında oluşturulan bir kitlesel pazar işletim sistemidir . 8 bit işlemcilerde görev yapan ve 64 kilobayttan fazla olmayan bellekte, CP/M'nin sonraki sürümleri çok kullanıcılı varyasyonlar ekledi ve 16 bit işlemcilere taşındı .

CP/M ve S-100 veri yolu bilgisayarlarının kombinasyonu, mikrobilgisayar endüstrisinde erken bir standart haline geldi. Bu bilgisayar platformu, 1970'lerin sonlarından 1980'lerin ortalarına kadar iş dünyasında yaygın olarak kullanıldı. CP/M, yeni bir üreticinin bilgisayarına uygulama yüklemek için gereken programlama miktarını büyük ölçüde azaltarak hem donanım hem de yazılım için pazar büyüklüğünü artırdı. Yazılım inovasyonunun önemli bir itici gücü, bağımsız programcılar ve bilgisayar korsanları tarafından satın alınan ve yarattıklarını kullanıcı gruplarında paylaşan CP/M çalıştıran (nispeten) düşük maliyetli mikro bilgisayarların ortaya çıkışıydı . 1981'de IBM PC'nin tanıtılmasının ardından CP/M'nin yerini DOS aldı .

Tarih

InfoWorld dergisinin 29 Kasım 1982 tarihli sayısında CP/M reklamı

Erken tarih

Gary Kildall, CP/M'yi ilk olarak 1974'te, özel bir disket denetleyicisi aracılığıyla arayüzlenen bir Shugart Associates 8 inçlik disket sürücüsü ile donatılmış bir Intel Intellec-8 geliştirme sistemi üzerinde çalışacak bir işletim sistemi olarak geliştirdi . Kildall'ın kendi PL/M'sinde ( Mikrobilgisayarlar için Programlama Dili ) yazılmıştır . CP/M'nin çeşitli yönleri , Kildall'ın bir geliştirme ortamı olarak kullandığı DECsystem-10 ana bilgisayar bilgisayarının TOPS-10 işletim sisteminden etkilenmiştir . CP/M'nin ilk dış lisans sahibi , San Diego, California'dan erken bir mikrobilgisayar geliştiricisi olan Gnat Computers idi . 1977'de şirkete, 90 $ karşılığında istedikleri herhangi bir mikro için CP/M 1.0 kullanma lisansı verildi. Yıl içinde CP/M'ye olan talep o kadar yüksekti ki Digital Research lisansı on binlerce dolara çıkarmayı başardı.

Kildall'ın yönlendirmesi altında, CP/M 2.0'ın geliştirilmesi çoğunlukla 1978'de John Pierce tarafından gerçekleştirildi. Kildall'ın Donanma Yüksek Lisans Okulu'ndan (NPS) bir arkadaşı olan Kathryn Strutynski , 1979'un başlarında Digital Research Inc.'in dördüncü çalışanı oldu. CP/M 2.0'da hata ayıklayarak başladı ve daha sonra CP/M 2.2 ve CP/M Plus için kilit geliştirici olarak etkili oldu. CP/M üssünün diğer ilk geliştiricileri arasında Robert "Bob" Silberstein ve David "Dave" K. Brown vardı.

CP/M başlangıçta "Kontrol Programı/Monitör" anlamına geliyordu; bu ad, işletim sisteminin ilkel bir öncüsü olan yerleşik bir monitörü ima eder. Ancak CP/M'nin ticari bir ürüne dönüştürülmesi sırasında Kasım 1977'de dosyalanan marka tescil belgelerinde ürüne "Mikrobilgisayarlar İçin Kontrol Programı" adı verildi. CP/M adı, Kildall'ın PL/M dilinde ve Prime Computer'ın PL/P'sinde ( Prime için Programlama Dili ) olduğu gibi, her ikisi de IBM'in PL/I'sini akla getiren , zamanın geçerli bir adlandırma şemasını takip eder ; ve Kildall'ın NPS'de çalışırken kullandığı IBM'in CP/CMS işletim sistemi. CP/M'nin bu yeniden adlandırılması, Kildall ve eşi ve iş ortağı Dorothy McEwen'in Kildall'ın kişisel CP/M projesini ve Intel sözleşmeli PL/M derleyicisini ticari bir işletmeye dönüştürmeye yönelik daha büyük çabalarının bir parçasıydı. Kildalls, IBM ve Microsoft'un daha sonra "kişisel bilgisayarı" ürün teklifleriyle eşanlamlı hale getirmeyi başarıyla başardıkları gibi, Digital Research markasını ve ürün hatlarını tüketicinin zihninde "mikro bilgisayar" ile eşanlamlı hale getirmeyi amaçladı. Intergalactic Digital Research, Inc. daha sonra bir şirket isim değişikliği başvurusu yoluyla Digital Research, Inc. olarak yeniden adlandırıldı.

İlk başarı

Kılavuzlu Apple CP/M Kartı

Eylül 1981'de Digital Research, birden fazla satmıştı.260 000 CP/M lisansı; InfoWorld, alt lisanslar nedeniyle gerçek pazarın muhtemelen daha büyük olduğunu belirtti. Birçok farklı şirket, birçok farklı pazar için CP/M tabanlı bilgisayarlar üretti; dergi, "CP / M'nin kendisini küçük bilgisayar işletim sistemi olarak kurma yolunda ilerlediğini" belirtti . Şirketler, geniş yazılım kitaplığı nedeniyle CP/M'yi desteklemeyi seçti. Xerox 820, işletim sistemini çalıştırıyordu çünkü "onun için yazılmış binlerce programın olduğu yerde, ondan yararlanmamak akıllıca olmaz" dedi Xerox. (Xerox , 1982'de InfoWorld'ün korkunç olarak tanımladığı Digital Research belgelerinin telafisi olarak bir Howard W. Sams CP/M kılavuzu ekledi.) 1984'te Columbia Üniversitesi , bir düzineden fazla farklı CP için Kermit ikili dosyaları oluşturmak için aynı kaynak kodunu kullandı. M sistemleri, artı genel bir sürüm. İşletim sistemi , birden çok programın farklı donanımlarla standartlaştırılmış bir şekilde etkileşime girmesine izin veren bir " yazılım veri yolu " olarak tanımlandı . CP/M için yazılan programlar tipik olarak farklı makineler arasında taşınabilirdi ve genellikle yalnızca ekran ve yazıcının kontrolü için kaçış dizilerinin belirtilmesini gerektiriyordu . Bu taşınabilirlik, CP/M'yi popüler hale getirdi ve CP/M için yalnızca bir donanım markası üzerinde çalışan işletim sistemlerinden çok daha fazla yazılım yazıldı. Taşınabilirlik üzerindeki kısıtlamalardan biri, belirli programların Z80 işlemcinin genişletilmiş yönerge setini kullanması ve 8080 veya 8085 işlemci üzerinde çalışmamasıydı. Bir diğeri, özellikle hız için doğrudan donanım erişimi kullandıklarından, işletim sistemini ve BIOS'u atlayarak genellikle makineye özgü olan oyunlarda ve grafik programlarındaki grafik rutinleriydi (bu aynı zamanda erken DOS makinelerinde de yaygın bir sorundu).

Bill Gates , Z-80 SoftCard'lı Apple II serisinin en popüler tek CP/M donanım platformu olduğunu iddia etti . Birçok farklı makine markası işletim sistemini çalıştırıyordu, bazı önemli örnekler Altair 8800 , IMSAI 8080 , Osborne 1 ve Kaypro luggables ve MSX bilgisayarlarıdır. Tüm zamanların en çok satan CP/M özellikli sistemi muhtemelen Amstrad PCW idi . Birleşik Krallık'ta CP/M, Research Machines eğitim bilgisayarlarında (bir eğitim kaynağı olarak yayınlanan CP/M kaynak kodu ile) ve bir Z80 yardımcı işlemci ile donatıldığında BBC Micro için de mevcuttu. Ayrıca Amstrad CPC serisi, Commodore 128 , TRS-80 ve sonraki ZX Spectrum modelleri için mevcuttu . CP/M 3, AC Nielsen'in 1 MB SSD belleğe sahip dahili kullanımı  için tasarlanmış özel bir el bilgisayarı olan NIAT'ta da kullanıldı .

çok kullanıcılı

1979'da, CP/M'nin çok kullanıcılı uyumlu bir türevi piyasaya sürüldü. MP/M, her kullanıcıya bir ekran ve klavye sağlamak için birden çok terminal kullanarak birden çok kullanıcının tek bir bilgisayara bağlanmasına izin verdi . Daha sonraki sürümler 16 bit işlemcilerde çalıştı.

CP/M Artı

CP/M Plus (CP/M 3) Sistem Kılavuzu

CP/M'nin son 8 bitlik sürümü, genellikle CP/M Plus olarak adlandırılan ve 1983'te piyasaya sürülen sürüm 3'tü. BDOS'u Brown tarafından tasarlandı. CP/M 2.2 uygulamalarıyla uyumlu, tek kullanıcılı, tek görevli bir işletim sisteminde MP/M'nin banka anahtarlamalı bellek yönetimini birleştirdi . Bu nedenle CP/M 3, bir 8080 veya Z80 işlemcide 64 KB'den fazla bellek kullanabilir. Sistem, dosyaların tarih damgasını desteklemek için yapılandırılabilir. İşletim sistemi dağıtım yazılımı ayrıca bir yer değiştiren birleştirici ve bağlayıcı da içeriyordu. CP/M3, özellikle Amstrad PCW , Amstrad CPC , ZX Spectrum +3 , Commodore 128 , MSX makineleri ve Radio Shack TRS-80 Model 4 gibi son nesil 8 bit bilgisayarlar için mevcuttu .

16 bit sürümler

DEC Professional 3xx serisindeki Z80-A yardımcı işlemci için DEC PRO-CP/M-80 disket dağıtımı

Bazı 16 bit CPU'lar için de CP/M sürümleri vardı .

16 bit ailesindeki ilk sürüm, Kasım 1981'de Intel 8086 için CP/M-86 idi. Kathryn Strutynski, gelişen CP/M-86 işletim sistemleri serisinin proje yöneticisiydi. Bu noktada, orijinal 8 bitlik CP/M, karışıklığı önlemek için CP/M-80 retronimiyle tanındı .

CP/M-86'nın yeni IBM PC'lerinin standart işletim sistemi olması bekleniyordu , ancak DRI ve IBM, geliştirme ve lisanslama koşullarını müzakere edemedi. IBM bunun yerine Microsoft'a döndü ve Microsoft, 86-DOS'a dayalı PC DOS'u sağladı . CP/M-86, DRI yasal işlemle tehdit ettikten sonra IBM PC için bir seçenek haline gelse de, Microsoft'un sistemini hiçbir zaman geride bırakmadı. Çoğu müşteri, IBM'in PC DOS üzerinden CP/M-86 için aldığı önemli ölçüde daha yüksek fiyattan ( sırasıyla 240 ABD Doları ve 40 ABD Doları) rahatsız oldu.

Digital Equipment Corporation (DEC) , IBM ile rekabet etmek için Rainbow 100'ü piyasaya sürdüğünde , bir Z80 çipi kullanan CP/M-80, 8088 mikroişlemci kullanan CP/M-86 veya MS-DOS veya CP/M-86 ile geldi. /80 her ikisini de kullanarak. Z80 ve 8088 CPU'ları aynı anda çalıştı. Rainbow'un bir avantajı, 8-bit CP/M yazılımını çalıştırmaya devam edebilmesi ve kullanıcının MS-DOS'un 16-bit dünyasına geçerken muhtemelen oldukça büyük yatırımını koruyabilmesiydi. CompuPro System 816  [ sr ] için benzer bir çift işlemci uyarlaması, CP/M 8-16 olarak adlandırıldı . 8085/8088 tabanlı Zenith Z-100 için CP/M-86 uyarlaması da her iki CPU'su için çalışan programları destekledi.

CP/M-86'nın hemen ardından, Motorola 68000 için CP/M'nin bir diğer 16-bit versiyonu CP/M-68K idi . CP/M-68K'nin 1982'deki orijinal versiyonu Pascal/MT+68k ile yazılmıştır , ancak daha sonra C'ye taşınmıştır. Halihazırda Motorola EXORmacs sistemlerinde çalışan CP/M-68K, başlangıçta Atari ST bilgisayarında kullanılacaktı , ancak Atari, GEMDOS adlı daha yeni bir disk işletim sistemi kullanmaya karar verdi . CP/M-68K, SORD M68 ve M68MX bilgisayarlarda da kullanıldı.

1982'de, Olivetti M20 için CP/M-68K'dan 16-bit Zilog Z8000'e , C ile yazılmış , CP/M-8000 adlı bir bağlantı noktası da vardı .

CP/M'nin bu 16 bit sürümleri, uygulama programlarının yeni CPU'lar için yeniden derlenmesini gerektiriyordu. Assembly dilinde yazılan bazı programlar, yeni bir işlemci için otomatik olarak çevrilebilir . Bunun için bir araç, Intel 8080 işlemci için .ASM kaynak kodunu Intel 8086 için .A86 kaynak koduna çeviren Digital Research'ün XLT86'sıydı. Çevirmen ayrıca çıktıyı kod boyutu için optimize eder ve çağrı kurallarını hallederdi, böylece CP /M-80 ve MP/M-80 programları, CP/M-86 ve MP/M-86 platformlarına otomatik olarak taşınabilir . XLT86'nın kendisi PL/I-80'de yazılmıştı ve CP/M-80 platformlarının yanı sıra VAX/VMS için mevcuttu .

MS-DOS ile yer değiştirme

Birçoğu CP/M'nin 16-bit bilgisayarlar için standart işletim sistemi olmasını bekliyordu. 1980'de IBM, Bill Gates'in önerisi üzerine, yeni ürünü IBM Kişisel Bilgisayar için CP/M'nin yakında çıkacak bir sürümünü lisanslamak üzere Digital Research'e başvurdu . İmzalı bir gizlilik sözleşmesi alınamaması üzerine görüşmeler başarısız oldu ve bunun yerine IBM, bir işletim sistemi sağlamak için Microsoft ile sözleşme yaptı. Ortaya çıkan ürün, MS-DOS kısa sürede CP/M'den daha fazla satmaya başladı.

MS-DOS'un ilk sürümlerindeki temel kavramların ve mekanizmaların çoğu, CP/M'ninkilere benziyordu. Dosya işleme veri yapıları gibi dahili öğeler aynıydı ve her ikisi de disk sürücülerine bir harfle ( A:, B:, vb.) atıfta bulunuyordu. MS-DOS'un ana yeniliği, FAT dosya sistemiydi . Bu benzerlik, WordStar ve dBase gibi popüler CP/M yazılımlarının taşınmasını kolaylaştırdı . Ancak, CP/M'nin aynı diskteki dosyalar için ayrı kullanıcı alanları kavramı hiçbir zaman MS-DOS'a taşınmadı. MS-DOS'un daha fazla belleğe erişimi olduğundan (64 KB'den daha az bellekle birkaç IBM PC satıldığı için, gerekirse CP/M 16 KB'de çalışabildiğinden), komut satırı kabuğuna daha fazla komut yerleştirildi ve MS -DOS biraz daha hızlı ve disket tabanlı bilgisayarlarda kullanımı daha kolay.

IBM PC için ilk çevre birimlerinden biri, 8-bit CP/M yazılımını çalıştırmasına izin veren SoftCard benzeri bir genişletme kartı olmasına rağmen, InfoWorld 1984'te CP/M'yi iç pazara sunma çabalarının büyük ölçüde başarısız olduğunu ve çoğunun başarısız olduğunu belirtti. CP/M yazılımı ev kullanıcıları için çok pahalıydı. 1986'da dergi, diğer satıcıların çoğu CP/M için yeni ekipman ve yazılım üretimini durdurduktan çok sonra, Kaypro'nun MS-DOS uyumlu sistemlerin satışına odaklanmak için 8-bit CP/M tabanlı modellerin üretimini durdurduğunu bildirdi. Mikro bilgi işlem pazarı IBM uyumlu platforma geçtikçe CP/M pazar payını hızla kaybetti ve eski popülaritesini bir daha asla geri kazanamadı. O zamanlar mikrobilgisayarlar için önde gelen endüstri dergilerinden biri olan Byte dergisi, IBM PC'nin piyasaya sürülmesinden sonraki birkaç yıl içinde CP/M ürünlerini yayınlamayı bıraktı. Örneğin, 1983'te hala S-100 panoları için birkaç reklam ve CP/M yazılımıyla ilgili makaleler vardı, ancak 1987'de bunlar artık dergide bulunmuyordu.

CP/M-86'nın sonraki sürümleri, performans ve kullanılabilirlik açısından önemli ilerlemeler kaydetti ve MS-DOS ile uyumlu hale getirildi. Bu uyumluluğu yansıtmak için ad değiştirildi ve CP/M-86, DOS Plus oldu ve bu da DR-DOS oldu .

ZCPR

ZCPR (Z80 Komut İşlemcisinin Değiştirilmesi), 2 Şubat 1982'de standart Dijital Araştırma konsolu komut işlemcisinin (CCP) yerini alması için tanıtıldı ve başlangıçta kendilerine "ÇKP Grubu" adını veren bir grup bilgisayar meraklısı tarafından yazıldı. Frank Wancho, Keith Petersen (o sırada Simtel'in arkasındaki arşivci ) , Ron Fowler, Charlie Strom, Bob Mathias ve Richard Conn'du. Aslında Richard, bu gruptaki itici güçtü (hepsi e-posta yoluyla iletişim halindeydi). ).

ZCPR1, New Jersey Amatör Bilgisayar Kulübü'nün bir parçası olan SIG/M (Special Interest Group/Microcomputers) tarafından çıkarılan bir diskte yayınlandı .

ZCPR2, 14 Şubat 1983'te piyasaya sürüldü. SIG/M'den on disklik bir set olarak piyasaya sürüldü. ZCPR2, 2.3'e yükseltildi ve ayrıca 8080 kodunda yayınlandı ve ZCPR2'nin 8080 ve 8085 sistemlerinde kullanılmasına izin verdi.

ZCPR3, 14 Temmuz 1984'te SIG/M'den dokuz disk seti olarak piyasaya sürüldü. ZCPR3 kodu, 8080 için de derlenebilir (azaltılmış özelliklerle) ve gerekli Z80 mikroişlemciye sahip olmayan sistemlerde çalışabilir. Sürüm 3 itibariyle ZCPR'nin özellikleri arasında kabuklar, takma adlar, G/Ç yönlendirmesi, akış kontrolü, adlandırılmış dizinler, arama yolları, özel menüler, parolalar ve çevrimiçi yardım yer alır. Ocak 1987'de Richard Conn, ZCPR'yi geliştirmeyi bıraktı ve Echelon (zaten özel olarak geliştirilmiş bir ZCPR 3.1'e sahip olan) Jay Sage'den üzerinde çalışmaya devam etmesini istedi. Böylece ZCPR 3.3 geliştirilmiş ve yayınlanmıştır. ZCPR 3.3 artık 8080 serisi mikroişlemcileri desteklemiyordu ve ZCPR serisindeki herhangi bir yükseltmenin en çok özelliğini ekledi. ZCPR 3.3 ayrıca önemli ölçüde genişletilmiş yeteneklere sahip eksiksiz bir yardımcı program paketini de içermektedir. Zamanın CP/M kullanıcı tabanı tarafından coşkuyla desteklense de, ZCPR tek başına CP/M'nin düşüşünü yavaşlatmak için yetersizdi.

Donanım modeli

CP/M 2.2 (1982) altında çalışan Sanco 8001 bilgisayarı
Commodore 64 için CP/M kartuşu

Minimum 8 bitlik bir CP/M sistemi aşağıdaki bileşenleri içerecektir:

  • ASCII karakter setini kullanan bir bilgisayar terminali
  • Bir Intel 8080 (ve daha sonra 8085) veya Zilog Z80 mikroişlemci
    • NEC V20 ve V30 işlemciler, bu şekilde donatılmış bir PC DOS/MS-DOS bilgisayarında 8 bit CP/M çalıştırabilen bir 8080 öykünme modunu destekler, ancak herhangi bir bilgisayar 16 bit CP/M-86'yı da çalıştırabilir.
  • 0 adresinden başlayan en az 16 kilobayt RAM
  • Disketin ilk sektörünü önyüklemek için bir araç
  • En az bir disket sürücüsü

Digital Research tarafından satıldığı şekliyle CP/M'nin destekleyeceği tek donanım sistemi Intel 8080 Geliştirme Sistemi idi. CP/M uyumlu sistemlerin üreticileri, işletim sisteminin bazı kısımlarını kendi kurulu bellek, disk sürücüleri ve konsol aygıtları kombinasyonları için özelleştirdiler. Z80, 8080 koduyla uyumlu olduğundan, CP/M Zilog Z80 işlemci tabanlı sistemlerde de çalışırdı. Digital Research dağıtılan CP/M çekirdeği (BDOS, CCP, çekirdek geçici komutları) Z80'e özgü talimatların hiçbirini kullanmazken, birçok Z80 tabanlı sistem, sisteme özel BIOS'ta Z80 kodunu kullandı ve birçok uygulama tahsis edildi Z80 tabanlı CP/M makinelerine.

Digital Research daha sonra Zilog ve American Microsystems ile ortaklık kurarak potansiyel olarak disk sürücüleri olmadan donatılabilecek daha düşük maliyetli sistemleri hedefleyen işletim sisteminin ROM tabanlı bir sürümü olan Personal CP/M'yi üretti. İlk olarak isteğe bağlı disk sürücülerine sahip kaset tabanlı bir sistem olan Sharp MZ-800'de yer alan Personal CP/M, 8080 ile taşınabilirliği korumak yerine "geliştirilmiş Z-80 talimat setinden yararlanmak için yeniden yazılmış" olarak tanımlandı. American Microsystems, işletim sistemi ve BIOS için 8 KB paket içi ROM'a ve 64 kilobitlik dinamik RAM cihazlarıyla arayüz oluşturmak için kapsamlı mantığa sahip Z80 uyumlu bir mikroişlemci olan S83'ü duyurdu.

Çoğu makinede, önyükleme, ROM'da minimum bir önyükleyiciydi ve bazı minimum sıra değiştirme araçlarıyla veya veri yoluna kod enjekte etme araçlarıyla birleştirildi (çünkü 8080'in başlatma için Adres 0'da önyükleme kodunu görmesi gerekirken, CP/M'nin ihtiyacı var ) RAM var); diğerleri için bu önyüklemenin, sistem her başlatıldığında ön panel kontrolleri kullanılarak belleğe girilmesi gerekiyordu .

CP/M, 7 bitlik ASCII setini kullandı. 8 bitlik baytın mümkün kıldığı diğer 128 karakter standartlaştırılmamıştı. Örneğin, bir Kaypro bunları Yunanca karakterler için kullandı ve Osborne makineleri, altı çizili bir karakteri belirtmek için 8. bit kümesini kullandı. WordStar, 8. biti kelime sonu işaretleyicisi olarak kullandı. Uluslararası CP/M sistemleri, yerelleştirilmiş karakter kümeleri için en yaygın olarak ISO 646 normunu kullandı ve belirli ASCII karakterlerini 7 bitlik sınırın ötesine eklemek yerine yerelleştirilmiş karakterlerle değiştirdi.

Bileşenler

8 bitlik sürümlerde, çalışırken belleğe yüklenen CP/M işletim sisteminin üç bileşeni vardır:

  • Temel Giriş/Çıkış Sistemi (BIOS),
  • Temel Disk İşletim Sistemi (BDOS),
  • Konsol Komut İşlemcisi (CCP).

BIOS ve BDOS, bellekte yerleşikken, ÇKP, bir uygulama tarafından üzerine yazılmadıkça bellekte yerleşikti; bu durumda, uygulama çalışmayı bitirdikten sonra otomatik olarak yeniden yüklendi. Standart yardımcı programlar için bir dizi geçici komut da sağlandı. Geçici komutlar, diskteki .COM uzantılı dosyalarda bulunuyordu.

BIOS, CPU ve ana bellek dışındaki donanım bileşenlerini doğrudan kontrol eder. Karakter girişi ve çıkışı ve disk sektörlerinin okunması ve yazılması gibi işlevleri içeriyordu. BDOS, BIOS üzerinde CP/M dosya sistemini ve bazı giriş/çıkış soyutlamalarını (yeniden yönlendirme gibi) uyguladı. ÇKP, kullanıcı komutlarını alır ve bunları doğrudan yürütür (bir dizini göstermek için DIR veya bir dosyayı silmek için ERA gibi dahili komutlar) veya verilen ada sahip yürütülebilir bir dosyayı yükleyip başlatır (dosyaları kopyalamak için PIP.COM gibi geçici komutlar veya Çeşitli dosya ve sistem bilgilerini göstermek için STAT.COM). CP/M için üçüncü taraf uygulamaları da temelde geçici komutlardı.

BDOS, CCP ve standart geçici komutlar, belirli bir CP/M revizyonunun tüm kurulumlarında aynıydı, ancak BIOS kısmı her zaman belirli bir donanıma uyarlandı.

Örneğin, bir bilgisayara bellek eklenmesi, geçici programların ek bellek alanını kullanmasına izin vermek için CP/M sisteminin yeniden yüklenmesi gerektiği anlamına geliyordu. Nesne kodunun farklı bellek alanlarına yeniden yerleştirilmesine izin veren sistem dağıtımına sahip bir yardımcı program (MOVCPM) sağlandı. Yardımcı program, mutlak atlama ve alt program çağrı yönergelerindeki adresleri, işletim sisteminin işlemci belleğindeki yeni konumunun gerektirdiği yeni adreslere ayarladı. Bu yeni yamalı sürüm daha sonra yeni bir diske kaydedilerek, uygulama programlarının sistem bileşenlerinin taşınmasıyla sağlanan ek belleğe erişmesine izin verilebilir. Kurulduktan sonra işletim sistemi (BIOS, BDOS ve CCP), sistemi başlatmak için kullanılacak herhangi bir diskin başında ayrılmış alanlarda saklanıyordu. Başlatma sırasında, önyükleyici (genellikle bir ROM üretici yazılımı yongasında bulunur), işletim sistemini sürücüdeki diskten yükler A:.

Modern standartlara göre CP/M, program boyutundaki aşırı kısıtlamalar nedeniyle ilkeldi. 1.0 sürümünde, değiştirilmiş bir diski algılamak için herhangi bir hüküm yoktu. Bir kullanıcı, disk dizinini manuel olarak yeniden okumadan diskleri değiştirirse, sistem eski diskin dizin bilgilerini kullanarak yeni diske yazar ve diskte depolanan verileri bozar. 1.1 veya 1.2 sürümünden itibaren, bir diski değiştirdikten sonra dizini okunmadan ona yazmaya çalışmak, ölümcül bir hatanın bildirilmesine neden olur. Bu, diskin üzerine yazılmasını önledi, ancak yeniden başlatmayı ve diskte depolanacak verilerin kaybolmasını gerektirdi.

CP/M'deki karmaşıklığın çoğu BDOS'ta ve daha az ölçüde ÇKP ve geçici komutlarda izole edildi. Bu, BIOS'taki sınırlı sayıda basit rutini belirli bir donanım platformuna taşıyarak tüm işletim sisteminin çalışacağı anlamına geliyordu. Bu, yeni makineleri desteklemek için gereken geliştirme süresini önemli ölçüde azalttı ve CP/M'nin yaygın kullanımının ana nedenlerinden biri oldu. Bugün bu tür bir soyutlama, çoğu işletim sisteminde (bir donanım soyutlama katmanı ) ortaktır , ancak CP/M'nin doğuşu sırasında, işletim sistemlerinin tipik olarak yalnızca bir makine platformunda çalışması amaçlanmıştı ve çok katmanlı tasarımlar gereksiz görülüyordu.

Konsol Komut İşlemcisi

DIRBir Commodore 128 ev bilgisayarında komutu kullanan bir CP/M 3.0 dizin listesini gösteren ekran görüntüsü

Konsol Komut İşlemcisi veya ÇKP, klavyeden girişi kabul etti ve sonuçları terminale iletti. CP/M'nin kendisi, bir yazdırma terminali veya bir video terminali ile çalışır. Tüm CP/M komutlarının komut satırına yazılması gerekiyordu . Konsol, çoğunlukla A>geçerli varsayılan disk sürücüsünü belirtmek için istemi görüntüler. Bir video terminali ile kullanıldığında, bunu genellikle terminal tarafından sağlanan yanıp sönen bir imleç takip eder. ÇKP, kullanıcıdan girdi bekleyecektir. Sürücü harfi ve ardından iki nokta üst üste gelen formdaki bir CCP dahili komutu, varsayılan sürücüyü seçmek için kullanılabilir. Örneğin, B:komut isteminde yazıp enter tuşuna basmak, varsayılan sürücüyü B olarak değiştirir ve ardından komut istemi B>bu değişikliği gösterecek hale gelir.

CP/M'nin komut satırı arabirimi, PDP -11 için RT- 11 ve PDP-8 için OS/8 gibi Digital Equipment işletim sistemlerinden sonra modellendi . Komutlar, boşluklarla veya özel karakterlerle ayrılmış bir parametre listesi tarafından takip edilen bir anahtar kelime biçimini aldı. Bir Unix kabuk yerleşimine benzer şekilde , dahili bir komut tanınırsa, ÇKP'nin kendisi tarafından gerçekleştirilir. Aksi takdirde, o anda oturum açmış olan disk sürücüsünde ve (sonraki sürümlerde) kullanıcı alanında yürütülebilir bir dosya bulmaya çalışır, onu yükler ve komut satırından herhangi bir ek parametre iletir. Bunlara "geçici" programlar deniyordu. Tamamlandığında, CP/M, CCP'nin uygulama programları tarafından üzerine yazılan kısmını yeniden yükleyecekti - bu, geçici programların daha büyük bir bellek alanına izin verdi.

Komutların kendileri bazen belirsiz olabilir. Örneğin, dosyaları çoğaltma komutu, bu amaçla kullanılan eski DECPIP yardımcı programının adı olan (Peripheral-Interchange-Program) olarak adlandırıldı. Bir programa verilen parametrelerin formatı standartlaştırılmamıştı, bu nedenle seçenekleri dosya adlarından ayıran tek bir seçenek karakteri yoktu. Farklı programlar farklı karakterler kullanabilirdi ve kullanıyordu.

CP/M Konsol Komut İşlemcisi yerleşik komutlar olarak DIR , ERA , REN , SAVE , TYPE ve USER içerir . CP/M'deki geçici komutlar arasında ASM , DDT , DUMP , ED , LOAD , MOVCPM  [ pl ] , PIP , STAT , SUBMIT ve SYSGEN bulunur .

CP/M Plus (CP/M Sürüm 3), DIR (SYS özniteliğiyle işaretlenenler dışında bir dizindeki dosyaların listesini görüntüle), DIRSYS / DIRS (dizinde SYS özniteliğiyle işaretlenmiş dosyaları listele), ERASE / ERA ( bir dosyayı silin), RENAME / REN (bir dosyayı yeniden adlandırın), TYPE / TYP (bir ASCII karakter dosyasının içeriğini görüntüleyin) ve USER / USE (kullanıcı numarasını değiştirin) yerleşik komutlar olarak: CP/M 3, kullanıcının Yerleşik komutları kısaltın. CP/M3'teki geçici komutlar şunları içerir: COPYSYS , DATE , DEVICE , DUMP , ED , GET , HELP , HEXCOM , INITDIR , LINK , MAC , PIP , PUT , RMAC , SET , SETDEF , SHOW , SID , SUBMIT ve XREF .

Temel Disk İşletim Sistemi

Temel Disk İşletim Sistemi veya BDOS, dosya açma, konsola çıktı alma veya yazdırma gibi işlemlere erişim sağlıyordu. Uygulama programları, işlem için bir işlev kodu ile işlemci kayıtlarını ve parametreler veya bellek arabellekleri için adresleri yükler ve bellekte sabit bir adresi çağırır. Adres, sistemdeki bellek miktarından bağımsız olarak aynı olduğu için, uygulama programları herhangi bir donanım türü veya yapılandırması için aynı şekilde çalışırdı.

Temel Giriş Çıkış Sistemi

InfoWorld dergisinin 11 Aralık 1978 sayısındaki CP/M reklamı

Temel Giriş Çıkış Sistemi veya BIOS, işletim sisteminin gerektirdiği en düşük düzey işlevleri sağladı.

Bunlar arasında sistem konsoluna tek karakterlerin okunması veya yazılması ve diskten bir veri kesiminin okunması veya yazılması yer alıyordu. BDOS, disketteki verilerin arabelleğe alınmasının bir kısmını halletti, ancak CP/M 3.0'dan önce, tek yoğunluklu 8 inçlik disketlerde kullanıldığı gibi, 128 bayta sabitlenmiş bir disk sektörü boyutunu varsayıyordu. Çoğu 5,25 inçlik disk formatı daha büyük sektörler kullandığından, engelleme ve engellemeyi kaldırma ve bir disk arabellek alanının yönetimi BIOS'taki modele özgü kodla gerçekleştirildi.

Özelleştirme gerekliydi, çünkü donanım seçenekleri herhangi bir popüler standartla uyumluluğa bağlı değildi. Örneğin, bazı üreticiler ayrı bir bilgisayar terminali kullanırken diğerleri yerleşik bir entegre video görüntüleme sistemi tasarladı. Yazıcılar ve modemler için seri bağlantı noktaları, farklı türde UART yongaları kullanabilir ve bağlantı noktası adresleri sabitlenmemiştir. Bazı makineler, 8080 G/Ç adres alanı yerine bellek eşlemeli G/Ç kullandı. Donanımdaki tüm bu varyasyonlar, karakter G/Ç veya bir disk bloğuna erişim gibi CP/M'yi çalıştırmak için gereken hizmetler için standart giriş noktalarını kullanan BIOS kullanılarak sistemin diğer modüllerinden gizlendi. Bir modeme seri iletişim desteği BIOS'ta çok ilkel olduğundan veya hiç bulunmayabileceğinden, modem kullanan CP/M programlarında, belirli bir makinenin bilgisayarına erişmek için gereken tüm kodu içeren, kullanıcı tarafından yüklenmiş bir yer paylaşımına sahip olmak yaygın bir uygulamaydı. seri port.

Uygulamalar

Dağıtım 5+14 inçlik disketler ve 8-bit CP/M için yayınlanan WordStar kelime işlem programının son sürümü (sürüm 4) için paketleme

Yaygın olarak kullanılan ilk kelime işlemcilerden biri olan WordStar ve mikrobilgisayarlar için eski ve popüler bir veritabanı programı olan dBase orijinal olarak CP/M için yazılmıştır. İki eski ana hat , KAMAS (Bilgi ve Zihin Büyütme Sistemi) ve onun kısaltılmış halefi Out-Think (programlama olanakları olmadan ve 8080/V20 uyumluluğu için yeniden donatıldı) da CP/M için yazılmıştı, ancak daha sonra MS-DOS için yeniden yazıldı. Borland Delphi'nin atası Turbo Pascal ve Microsoft Excel'in atası Multiplan da MS-DOS sürümleri kullanıma sunulmadan önce CP/M'de çıkış yaptı. İlk elektronik tablo programı olan VisiCalc , CP/M için kullanıma sunuldu. Başka bir şirket olan Sorcim , CP/M için pazar lideri ve fiilen CP/M standardı haline gelecek olan SuperCalc elektronik tablosunu oluşturdu . Supercalc, MS-DOS dünyasında elektronik tablo pazarında bir rakip olmaya devam edecekti. Autodesk'in bir CAD uygulaması olan AutoCAD , CP/M'de kullanıma sunuldu. Zamanın popüler programlama dilleri için (örneğin BASIC , Borland'ın Turbo Pascal , FORTRAN ve hatta PL / I ) bir dizi derleyici ve tercüman mevcuttu ve aralarında en eski Microsoft ürünlerinden birkaçı vardı.

CP/M yazılımı genellikle onu çok çeşitli bilgisayarlara uyarlayan yükleyicilerle birlikte gelir . BASIC programlarının kaynak koduna kolayca erişilebilirdi ve çoğu kopya koruma biçimi işletim sistemi üzerinde etkisizdi. Örneğin bir Kaypro II sahibi, Xerox 820 formatında bir yazılım edinir, ardından onu Kaypro formatındaki disklere kopyalar ve buradan çalıştırır.

Standartlaştırılmış grafiklerin olmaması sınırlı video oyunlarını destekler, ancak Telengard , Gorillas , Hamurabi , Lunar Lander gibi çeşitli karakter ve metin tabanlı oyunların yanı sıra Zork serisi ve Colossal Cave Adventure dahil olmak üzere erken dönem etkileşimli kurgu da taşındı . Metin macerası uzmanı Infocom, oyunlarını tutarlı bir şekilde CP/M formatında yayınlayan birkaç yayıncıdan biriydi. Lifeboat Associates, kullanıcı tarafından yazılan "ücretsiz" yazılımları toplamaya ve dağıtmaya başladı. Bunlardan ilki , modem ve telefon hattı üzerinden güvenilir dosya aktarımlarına izin veren XMODEM idi . CP/M'ye özgü başka bir program da ana hat işlemcisi KAMAS'tı .

Geçici Program Alanı

0100 onaltılık adres ile BDOS'un en düşük adresi arasındaki okuma/yazma belleği, CP/M uygulama programları için kullanılabilen Geçici Program Alanı (TPA) idi. Tüm Z80 ve 8080 işlemciler 64 kilobayt belleği adresleyebilse de, uygulama programları için kullanılabilen miktar, belirli bilgisayarın tasarımına bağlı olarak değişebilir. Bazı bilgisayarlar, BIOS ROM'lar veya video görüntüleme belleği gibi şeyler için adres alanının büyük bölümlerini kullandı. Sonuç olarak, bazı sistemler diğerlerinden daha fazla kullanılabilir TPA belleğine sahipti. Sıra değiştirme, gerektiğinde ROM veya video bellek alanını değiştirirken sistemlerin büyük bir TPA'ya sahip olmasına izin veren yaygın bir teknikti. CP/M 3.0, BDOS'un bazı bölümlerinin de banka anahtarlamalı bellekte olmasına izin verdi.

Hata ayıklama uygulaması

CP/M , bellek ve program modüllerinin incelenmesine ve manipüle edilmesine ve bir programın her seferinde bir adım yürütülmesine izin veren DDT (böcek ilacı, yani bir böcek öldürücüden sonra ) lakaplı bir Dinamik Hata Ayıklama Aracı ile birlikte geldi .

Yerleşik programlar

CP/M başlangıçta, DOS altında olduğu gibi sonlandır ve yerleşik kal (TSR) programlarının eşdeğerini desteklemiyordu . Programcılar, belirli işletim sistemi çağrılarını engelleyebilecek ve işlevlerini genişletebilecek veya değiştirebilecek yazılımlar yazabilir. Programcılar bu yeteneği kullanarak, herhangi bir bayt dizisini herhangi bir tuşa atamak için bir klavye yardımcı programı olan SmartKey gibi yardımcı masa aksesuar programları geliştirdi ve sattı. Ancak CP/M 3, dinamik olarak yüklenebilen Yerleşik Sistem Uzantıları (RSX) için destek ekledi. CCP'nin geçici bir program olmadan bir RSX yüklemesine izin vermek için boş bir komut dosyası kullanılabilir. RSM'ler ( Yerleşik Sistem Modülleri için ) gibi benzer çözümler de üçüncü taraflarca CP/M 2.2 sistemlerine uyarlandı.

Yazılım yükleme

CP/M, arabirimi disk G/Ç'ye veya konsol G/Ç'ye standart hale getirmek için bazı donanım soyutlamaları sağlasa da, uygulama programları, yazıcılar ve terminaller gibi ekipmanın tüm özelliklerinden yararlanmak için tipik olarak yine de kurulum gerektiriyordu. Genellikle bunlar , farklı cihazlar için değiştirilmesi gereken kaçış dizileri tarafından kontrol ediliyordu . Örneğin, bir yazıcıda kalın yüzü seçme kaçış sırası, üreticiler arasında ve bazen de bir üreticinin aralığındaki modeller arasında farklılık gösterebilirdi. Bu prosedür işletim sistemi tarafından tanımlanmadı; bir kullanıcı tipik olarak ya bir dizi cihaz arasından seçime izin veren ya da bir işleve erişmek için gereken kaçış sıralarının özellik bazında düzenlenmesine izin veren bir yükleme programı çalıştırır. Bu cihazlar için herhangi bir merkezi işletim sistemi hizmeti sağlanmadığı için, bunun her uygulama programı için tekrarlanması gerekiyordu.

Her yazıcı modeli için başlatma kodlarının uygulamaya yazılması gerekiyordu. Wordstar gibi bir programı birden fazla yazıcıyla (örneğin, hızlı bir nokta vuruşlu yazıcı veya daha yavaş ancak sunum kalitesinde papatya çarklı yazıcı ) kullanmak için, Wordstar'ın ayrı bir sürümünün hazırlanması ve birinin Wordstar'ı yüklemesi gerekiyordu. seçilen yazıcıya karşılık gelen sürüm (ve yazıcıları değiştirmek için çıkılıyor ve yeniden yükleniyor).

Disk biçimleri

IBM System/34 ve IBM 3740'ın tek yoğunluklu, tek taraflı biçimi, CP/M'nin standart 8 inçlik disket biçimidir . Kaypro, Morrow Designs , Osborne ve diğerlerinin her birinin kendi diskini kullandığı standart bir 5,25 inçlik CP/M disk biçimi yoktur . InfoWorld, Eylül 1981'de "yaklaşık iki düzine formatın yeterince popüler olduğunu ve yazılım yaratıcılarının mümkün olan en geniş pazara ulaşmak için bunları dikkate almaları gerektiğini" tahmin etti. Örneğin JRT Pascal , North Star , Osborne, Apple, Heath hard sektör ve soft sektör ve Superbrain için 5,25 inç diskte sürümler ve bir adet 8 inçlik sürüm sağladı. Ellis Computing ayrıca yazılımını hem Heath formatları hem de iki farklı TRS-80 CP/M modifikasyonu dahil olmak üzere 16 diğer 5,25 inç format için sundu.

Bazı disk formatları diğerlerinden daha popülerdi. Çoğu yazılım Xerox 820 formatında mevcuttu ve Kaypro II gibi diğer bilgisayarlar onunla uyumluydu. Bununla birlikte, CP/M kullanımının 5,25 inç çağında tek bir üretici galip gelmedi ve disk formatları genellikle donanım üreticileri arasında taşınabilir değildi. Bir yazılım üreticisinin, üzerinde çalışacağı her donanım markası için programın ayrı bir sürümünü hazırlaması gerekiyordu. Bazı üreticilerle (Kaypro bir örnektir), şirketin farklı modellerinde bile standardizasyon yoktu. Bu durum nedeniyle, bir makinenin birçok farklı formatı okumasına izin veren disk formatı çeviri programları popüler hale geldi ve karışıklığı azalttı, Kermit gibi seri portları kullanarak bir makineden diğerine veri ve program aktarımına izin veren programlar gibi. çoğu CP/M makinesinde vardı.

Belirli sistemlerin özelliklerine ve bir dereceye kadar tasarımcıların tercihlerine bağlı olarak çeşitli formatlar kullanıldı. Diskteki ayrılmış alanların ve dizin alanlarının boyutunu ve mantıksal disk sektörleri (CP/M programları tarafından görüldüğü gibi) ile diskte tahsis edilen fiziksel sektörler arasındaki eşlemeyi kontrol etmek için CP/M destekli seçenekler. Bu parametreleri her sistem için özelleştirmenin birçok yolu vardı, ancak bir kez ayarlandıktan sonra, bir sistemin başka bir sistemde biçimlendirilmiş bir diskten parametreleri yüklemesi için standartlaştırılmış bir yol yoktu.

Farklı CP/M makineleri arasındaki taşınabilirlik derecesi, CP/M çağında hem 8 inç hem de 5,25 inç formatında birçok farklı disket türü bulunduğundan, kullanılan disk sürücüsü ve denetleyici türüne bağlıydı. Diskler sert veya yumuşak sektörlü, tek veya çift yoğunluklu, tek veya çift taraflı, 35 izli, 40 izli, 77 izli veya 80 izli olabilir ve sektör düzeni, boyutu ve serpiştirmesi de büyük ölçüde değişebilir. Çeviri programları, kullanıcının farklı makinelerden disk türlerini okumasına izin verse de, sürücü türü ve denetleyici de faktörlerdi. 1982'ye gelindiğinde, soft-sector, tek taraflı, 40 izli 5,25 inçlik diskler, o zamanın en yaygın tüketici düzeyindeki makineleri tarafından kullanıldıklarından, CP/M yazılımını dağıtmak için en popüler biçim haline geldi. Apple II, TRS-80, Osborne 1, Kaypro II ve IBM PC. Bir çeviri programı, kullanıcının makinesinde benzer biçime sahip tüm diskleri okumasına izin verdi; örneğin, Kaypro II, TRS-80 , Osborne , IBM PC ve Epson disklerini okuyabiliyordu. 80 izli veya sabit sektörlü gibi diğer disk türlerinin okunması tamamen imkansızdı. Çift taraflı disklerin ilk yarısı (Epson QX-10'dakiler gibi) okunabilir, çünkü CP/M disk izlerine sırayla erişir, 0 izi 1. tarafın ilk (en dıştaki) izi ve 79 izi (40- iz diski) 2. tarafın son (en içteki) izidir. Apple II kullanıcıları, Apple'ın GCR biçiminden başka bir şey kullanamadılar ve bu nedenle Apple biçimli disklerde CP/M yazılımı edinmek veya seri bağlantı yoluyla aktarmak zorunda kaldılar.

Daha standartlaştırılmış IBM PC disk biçimleriyle karşılaştırıldığında, distribütörlerin birden çok disk biçimini stoklamalarını veya çok biçimli çoğaltma ekipmanına yatırım yapmalarını gerektiren parçalanmış CP/M pazarı, 1981'den sonra CP/M'nin hızla eskimesine katkıda bulunan bir faktördü.

CP/M özellikli son dikkate değer makinelerden biri, 1985'te, 6502 türevli bir CPU kullanan yerel moduna ek olarak CP/M desteği için bir Z80'e sahip olan Commodore 128 idi. CP/M kullanmak, yumuşak sektörlü 40 izli MFM biçimli diskleri okuyabilen bir 1571 veya 1581 disk sürücüsü gerektiriyordu.

3,5 inç disket sürücü kullanan ilk bilgisayar olan Sony SMC-70 , CP/M 2.2 çalıştırıyordu. Commodore 128 , Bondwell-2 dizüstü bilgisayar, Micromint/Ciarcia SB-180, MSX ve TRS-80 Model 4 (Montezuma CP/M 2.2 çalıştıran), 3,5 inç disketlerle CP/M kullanımını da destekledi. CP/AM, Applied Engineering'in Apple II için CP/M sürümü, ayrıca 3,5 inçlik diskleri (ayrıca Apple II Bellek Genişletme Kartı ile uyumlu RAM kartlarındaki RAM diskleri) destekledi. Amstrad PCW, CP/M'yi ilk başta 3 inçlik disket sürücüleri kullanarak çalıştırdı ve daha sonra 3,5 inçlik sürücülere geçti.

Dosya sistemi

Dosya adları, sekiz karaktere kadar bir dizi, ardından bir nokta ve ardından üç karaktere kadar bir dosya adı uzantısı ( "8.3" dosya adı biçimi ) olarak belirtildi. Uzantı genellikle dosyanın türünü tanımlar. Örneğin, .COMyürütülebilir bir program dosyasını ve ASCII.TXT metni içeren bir dosyayı belirtti . Komut isteminde girilen dosya adlarındaki karakterler büyük harfe dönüştürüldü, ancak bu işletim sistemi tarafından zorunlu kılınmadı. Programlar ( MBASIC dikkate değer bir örnektir), daha sonra komut satırında kolayca başvurulamayan küçük harfler içeren dosya adları oluşturabildi.

Her disk sürücüsü, sürücü ve sürücü gibi bir sürücü harfiyle tanımlandı . Belirli bir sürücüdeki bir dosyaya atıfta bulunmak için, sürücü harfi iki nokta üst üste ile ayrılmış olarak dosya adının önüne eklenmiştir, örn . Ön ekli bir sürücü harfi olmadan, geçerli varsayılan sürücüdeki dosyalara erişim sağlanıyordu. ABA:FILE.TXT

Dosya boyutu , diskteki bir dosyanın işgal ettiği 128 baytlık kayıt sayısı (doğrudan 8 inçlik sürücülerdeki disk sektörlerine karşılık gelir) olarak belirtildi . Tam bayt dosya boyutlarını belirtmenin genel olarak desteklenen bir yolu yoktu. Bir dosyanın mevcut boyutu , işletim sistemi tarafından dosyanın Dosya Kontrol Bloğunda (FCB) tutuldu. Birçok uygulama programı ( metin editörleri gibi ) dosyalarla kayıt dizileri yerine karakter dizileri olarak ilgilenmeyi tercih ettiğinden, kural gereği metin dosyaları bir kontrol-Z karakteriyle ( ASCII SUB , onaltılık 1A) sonlandırılmıştır. Bu nedenle, bir metin dosyasının sonunun belirlenmesi, sonlandırıcı kontrol-Z'yi bulmak için dosyanın son kaydının incelenmesini içeriyordu. Bu aynı zamanda bir dosyanın ortasına bir kontrol-Z karakteri eklemenin genellikle dosyanın metin içeriğini kesme etkisine sahip olduğu anlamına geliyordu.

Daha büyük çıkarılabilir ve sabit disk sürücülerinin ortaya çıkmasıyla birlikte, mantıksal dosya ayırma bloğu başına daha fazla disk bloğuyla sonuçlanan disk engelleme formülleri kullanıldı. Bu, daha büyük dosya boyutlarına izin verirken, aynı zamanda ayrılabilen en küçük dosyanın boyutunun 1 KB'den  ( tek yoğunluklu sürücülerde) 2 KB'ye (çift yoğunluklu sürücülerde) ve bu şekilde 32 KB'a kadar artması anlamına geliyordu. yalnızca tek bir bayt içeren bir dosya için. Bu, disk çok sayıda küçük dosya içeriyorsa, disk alanının verimsiz kullanımına neden oluyordu.

Dosya değiştirme zaman damgaları, CP/M 2.2'ye kadar sürümlerde desteklenmiyordu, ancak MP/M ve CP/M 3.0'da isteğe bağlı bir özellikti.

CP/M 2.2'nin dosya yapısında alt dizinleri yoktu, ancak diskteki dosyaları düzenlemek için 16 numaralı kullanıcı alanı sağlıyordu. Kullanıcıyı değiştirmek için, komut isteminde "X Kullanıcısı" yazmanız yeterlidir, X kullanıcı numarasıdır. Kişisel bir bilgisayarda güvenlik yoktu ve gereksiz görülüyordu. Kullanıcı alanı konsepti, CP/M'nin tek kullanıcılı sürümünü çok kullanıcılı MP/M sistemleriyle biraz uyumlu hale getirmekti. CP/M ve türevi işletim sistemleri için ortak bir yama, bir kullanıcı alanını mevcut ayarlı kullanıcı alanından bağımsız olarak kullanıcı tarafından erişilebilir kılmaktı. USER komutu, kullanıcı alanının 0'dan 15'e kadar herhangi bir alanla değiştirilmesine izin verdi. Kullanıcı 0 varsayılandı. Biri, KULLANICI 1 gibi başka bir kullanıcı olarak değiştirilirse, bu kullanıcı için diskte kaydedilen materyal yalnızca KULLANICI 1 tarafından kullanılabilir; KULLANICI 2 bunu göremez veya erişemez. Ancak, KULLANICI 0 alanında saklanan dosyalara diğer tüm kullanıcılar erişebilirdi; KULLANICI 0'ın dosyaları yalnızca KULLANICI 0 olarak oturum açmış biri tarafından görülebildiğinden konumları bir ön hazırlık yolu ile belirtilmişti . sürücüler _ Özelliğin amacı, aynı bilgisayarın farklı görevler için kullanımını kolaylaştırmaktı. Örneğin, bir sekreter veri girişi yapabilir , ardından KULLANICI alanlarını değiştirdikten sonra başka bir çalışan, dosyaları birbirine karışmadan makineyi faturalama yapmak için kullanabilir.

Grafik

O zaman için tipik olan tek renkli bir monitörde görüntülenen MBASIC metin çıktısı

S-100 veri yolunun ticarileştirilmesinden itibaren grafik özellikli S-100 sistemleri mevcut olmasına rağmen , CP/M, GSX (Grafik Sistem Uzantısı) ile 1982 yılına kadar herhangi bir standart grafik desteği sağlamadı . Az miktarda kullanılabilir bellek nedeniyle, grafikler hiçbir zaman 8-bit CP/M işletim sistemleriyle ilişkilendirilen ortak bir özellik olmadı. Çoğu sistem yalnızca temel ASCII sanat çizelgelerini ve diyagramlarını metin modunda veya özel bir karakter seti kullanarak görüntüleyebilir . Kaypro hattındaki ve TRS-80 Model 4'teki bazı bilgisayarlarda, blok grafik karakterlerini destekleyen video donanımı vardı ve bunlara, CHR$ komutunu kullanan montajcı programcıları ve BASIC programcıları erişebilirdi. Model 4, isteğe bağlı yüksek çözünürlüklü bir kartla 640 x 240 piksel grafik görüntüleyebilir.

türevler

Bir Doğu Alman robotron PC 1715 üzerinde çalışan CP/M türevi SCP
Elwro 804 Junior'da çalışan CP/J sürüm 2.21

Eski Doğu Bloku'nda SCP ( Tek Kullanıcı Kontrol Programı  [ de ] ), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB dahil olmak üzere çeşitli adlar altında bir dizi CP/M-80 türevi vardı. , CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM ve diğerleri. SCP1700 , CP/K ve K8918-OS adlı CP/M-86 türevleri de vardı . Doğu Alman VEB Robotron ve diğerleri tarafından üretildiler .

Miras

Microsoft Windows tarafından sergilenen bazı davranışlar, MS-DOS ile geriye dönük uyumluluğun bir sonucudur ve bu da, CP/M ile bir miktar geriye dönük uyumluluk girişiminde bulunmuştur. MS-DOS'taki (ve erken Windows sürümlerindeki) sürücü harfi ve 8.3 dosya adı kuralları, orijinal olarak CP / M'den uyarlanmıştır . Windows tarafından kullanılan joker karakter eşleştirme karakterleri (? ve *), çıktıyı bir yazıcıya ("PRN:") ve konsola ("CON:") yeniden yönlendirmek için kullanılan ayrılmış dosya adları gibi CP/M'ninkine dayalıdır . A ve B sürücü adları, CP/M sistemlerinin tipik olarak kullandığı iki disket sürücüsünü belirtmek için kullanıldı; sabit diskler ortaya çıktığında, MS-DOS'ta komut istemi olarak kalan C olarak adlandırıldılar . Bazı metin dosyalarının sonunu işaretleyen kontrol karakteri de CP/M'ye atfedilebilir. DOS'taki çeşitli komutlar, CP/M komutlarından sonra modellenmiştir; DIR, REN/RENAME veya TYPE (ve DR-DOS'ta ERA/ERASE) gibi bazıları aynı adı taşıyordu. veya gibi dosya uzantıları, birçok işletim sisteminde dosya türlerini tanımlamak için hala kullanılmaktadır. C:\>^Z.TXT.COM

1997 ve 1998'de Caldera , bir açık kaynak lisansı altında bazı CP/M 2.2 ikili dosyaları ve kaynak kodu yayınladı ve ayrıca Tim Olmstead'in "The The 1997'den beri resmi olmayan CP/M Web sitesi. Olmstead'in 12 Eylül 2001'deki ölümünden sonra dağıtım lisansı , bu arada Dijital Araştırma varlıklarının sahibi olan Lineo tarafından 19 Ekim 2001'de yenilendi ve genişletildi. CP/M'nin ilk sunumunun 40. yıldönümünü kutlayan Bilgisayar Tarihi Müzesi , CP/M'nin ilk kaynak kodu sürümlerini yayınladı.

2018 itibariyle, ana işletim sistemi olarak CP/M (çoğunlukla 2.2) kullanan bilgisayar platformlarını hâlâ geliştiren ve destekleyen bir dizi aktif eski model, hobi ve retro bilgisayar kişi ve grupları ile bazı küçük ticari işletmeler bulunmaktadır.

Ayrıca bakınız

Referanslar

daha fazla okuma

Dış bağlantılar