Home  Articles  Programs 

CP/M Nedir?

Bir süredir C64 için bir CP/M kartuşu bulunuyor olmasına karşın, çoğu kişi hâlâ bunun ne olduğunu veya ne işe yaradığını bilmiyor. Commodore 64 CP/M sistemi, bir disket ve bir kartuştan oluşur. Diskette asıl CP/M yazılımı bulunuyorken, kartuşta ise Z80 mikroişlemci yer alır. Aslına bakılırsa, CP/M sistemi C64'ünüzü başka bir bilgisayara dönüştürür. Dahili bir Z80 yongasına sahip olan Commodore 128 ise CP/M disketi ile birlikte gelmektedir.

Neden CP/M? Buna yanıt olarak, çalıştırabileceğiniz binlerce programdan oluşan bir yazılım dünyasının kapısını, CP/M donanımı ve işletim sistemi sayesinde açabileceğinizi söyleyebiliriz. Peki bu programlar buna değer mi? Birçok Apple sahibi buna hemen evet diyecektir. Z80 kartları, uzunca bir süre Apple için mevcut en gözde ek kartlardandı. Commodore 64 sahiplerinin de daha düşük bir fiyata bu olanağa sahip isteyecekleri Commodore'a mantıklı gelmişti. Fakat CP/M şimdiye kadar, en azından ev bilgisayarlarında rağbet göremedi.


CP/M Sistemi

CP/M, Mikrobilgisayarlar için Kontrol Programı'nın (Control Program for Microcomputers) kısaltmasıdır. Özünde, CP/M yalnızca bir disk işletim sistemidir aslında. Bir işletim sistemiyse, bilgisayarlarda kullanılan en temel yazılımdır. Rutin sistem görevleriyle ilgilenir ve çalıştırmakta olduğunuz diğer yazılımlar ile bilgisayar arasında bir bağlantı sağlar.

CP/M ilk olarak, o zamanlar Intel için çalışan Gary Kildall'ın küçük 4 bitlik 4004 mikroişlemci için kısa ve öz bir dizi alt program geliştirmesiyle ortaya çıkmıştır. Bu yararlı alt programlar, programcının işini kolaylaştıracak şekilde diğer programlar tarafından kullanılabilmektedir. Teknoloji ilerledikçe CP/M, Intel 8080 mikroişlemcisi için kapsamlı bir işletim sistemi haline gelerek, 8080 uyumlu Zilog Z80 mikroişlemcisine de uyarlandı. İlginçtir ki, 8080'in tasarımcısı Intel, CP/M ile ilgilenmeyerek, CP/M'i kendi başına pazarlaması için Kildall'a izin vermiş, o da Digital Research adında bir şirket kurmuştur. (Dijital hâlâ güçlü; en son, yeni Atari ST bilgisayarları için Macintosh benzeri bir çalışma ortamı sunan GEM'i geliştirdiler.)

CP/M'den önce bu bilgisayarlar için gerçek bir işletim sistemi olmadığından, çoğu Z80 bilgisayar üreticisi ve kullanıcısı tarafından çabucak benimsenmiştir. O zamanlar rakip iyi bir işletim sistemi de bulunmadığından CP/M kolayca standart haline gelmişti. Neredeyse herkeste CP/M olduğu için, Z80 işlemcili makinelerinin birbirleriyle daha fazla ortak noktası vardı. Bir programı birçok farklı bilgisayarda çalıştırmak CP/M sayesinde artık mümkündü.

Çoğu Z80 bilgisayar sisteminde bir klavye ve monitör (veya terminal), bir veya iki disket sürücü ve 48K veya 64K bellek bulunurdu. Bu bilgisayarlar asla birbirleriyle uyumlu olacak şekilde tasarlanmamış, ancak CP/M sayesinde bu mümkün olabilmiştir.


BIOS

CP/M'de, ekrana bir karakter basmak gibi görevleri yerine getiren alt programlardan oluşan bir kütüphane yer alır. Her bilgisayar farklı bir video görüntüleme sistemine sahip olabileceğinden, CP/M'nin bazı bölümleri, yani BIOS (Temel Giriş / Çıkış Alt Sistemi) kısmı her makine için özel yazılmış olsa da BIOS her makinede aynı şekilde davranır. BIOS sayesinde, programcılar kendi bilgisayarlarının video yongasını doğrudan programlamak yerine kendi rutinlerini yazarken bu evrensel alt programlardan yararlanırlar. Bu şekilde düzgün yazılan bir program CP/M yüklü herhangi bir bilgisayarda çalıştırılabilir. Her makineye özgü görevler, CP/M sayesinde standartlaştırılmıştır.

CP/M yazılım pazarı, geliştiriciler birçok farklı bilgisayarda çalışacak tek bir program yazabildiği için gelişmiştir. CP/M'siz bilgisayarlarsa yazılım açısından zayıf kalmıştı. TRS-80 de bir Z80 kullanıyor olmasına karşın, yalnızca üçüncü parti geliştiricilerin çabasıyla CP/M'e kavuşabilmiştir. Bir süre boyunca diğerlerinden ayrı ve daha küçük bir yazılım kütüphanesine bulunan TRS-80 sahipleri kitlesel pazardan kopuktu. CP/M, 8-bit dünyanın lideriydi ve çoğu küçük işletme Z80 CP/M bilgisayarlarını kullanıyordu. Bugün IBM PC ve PC klonlarının kontrol ettiği o alan, eskiden CP/M makinelerin kontrolündeydi.


Artık Kullanılmıyor mu?

Ne yazık ki, CP/M'in yükselişi IBM PC'nin piyasaya sürülmesiyle birlikte sona erdi. CP/M bilgisayarları donanım ve yazılımdaki gelişmelere ayak uyduramadı. IBM PC gerçek anlamda çığır açıcı bir yenilik içermemesine karşın bellek tavanını 64K'dan 640K'ya çıkarmıştı. Disketlerse 100K'dan 370K'ya (çift taraflı disketlerde) kadar artmıştı. Daha hızlı ve daha güçlü 8088 mikroişlemcisi ise, daha kısa sürede daha iyi programlar yazmayı kolaylaştırmıştı. IBM'in açık mimarisi de, daha fazla sayıda donanım şirketinin IBM'e yeni eklentiler geliştirmesini kolaylaştırmıştı. IBM'de kullanılan mikroişlemci CP/M'i çalıştıramadığından dolayı yepyeni bir standardın doğması gerekti. (Digital Research'in CP/M-86'sı, PC'nin piyasaya sürüldüğü sırada mevcut değildi, bu nedenle bir standart olamadı. Microsoft'un CP/M'e oldukça benzeyen MS-DOS'u, daha iyi olduğu için değil, ilk olduğu için CP/M-86'yı yenebilmiştir.) Yazılım geliştiricileri bu yeni sisteme geçer geçmez, CP/M de kaderine terk edildi.

Peki CP/M artık yeni mikrobilgisayarlarda yaygın bir sistem olmadığı halde (CP/M makinelerinin devam eden satışına rağmen), neden Commodore makinelerinde gündeme gelmişti? Z80 yerine bir 8088 kullanılan bir IBM MS-DOS emülatörü daha iyi bir seçenek olabilirdi halbuki. Bir ihtimal, Commodore daha ucuz ve kanıtlanmış teknoloji kullanmak amacıyla CP/M'i tercih etmiş olabilir. Z80'in maliyeti 8088'den daha az olup, IBM PC'lerde kullanılan MS-DOS'a kıyasla CP/M daha yaygın ve uyarlanması daha kolaydı. CP/M olasılıkla Commodore'un ev bilgisayarı imajından küçük işletme bilgisayarına geçmek için denediği bir yoldu. Hatta Commodore, CP/M ile MS-DOS arasındaki benzerliklerden yararlanarak bazı IBM programlarını CP/M'e aktarıyordu.

Çoğu CP/M programı 8080 veya Z80 makine diliyle yazılmıştır. CP/M, Z80 makineleri arasındaki küçük farklılıkların üstesinden gelmesine karşın, yine de bir Z80 mikroişlemcisine ihtiyaç vardır. CP/M, 6502 gibi herhangi bir işlemcide çalıştırılmak üzere dönüştürülebilir; ancak CP/M altında çalışan tüm programlar Z80 makine dilinde yazılmışsa, 6502 sürümü bir CP/M'in ne anlamı olabilir ki?


Commodore CP/M

Commodore 64 CP/M kartuşu, bazı kontrol devreleri ile donatılmış bir Z80 işlemciye sahiptir. Commodore 64'ün belleğine erişebilecek şekilde tasarlanmıştır. Bu kartuşu kullanırken, aslında başka bir bilgisayar kullanıyor olursunuz. Commodore 64 CP/M BIOS'u ise aslında 6510 makine dilinde yazılmıştır. Ekrana karakter yazdırma veya disketten bir bayt okuma gibi bir şeyler yapmak gerekene kadar kontrol Z80'dedir. Böyle bir ihtiyaç olduğundaysa, Z80 hemen 6510'u uyandırarak, kendisini 'beklemeye alır'. Görevi devralan 6510, Z80'den gelen çağrıyı bulur, gerekeni yapar ve kontrolü tekrar Z80'e aktarır. Alışılmadık bir yapı olsa da bu işe yarar.

Ancak, C64 mükemmel bir CP/M bilgisayarı değildir. Belleğin sınırlarını aşması için, CP/M yoğun bir şekilde disk erişimine ihtiyaç duyar. C1541'in mevcut hızındaysa, programlar oldukça yavaş çalışmaktadır. Ayrıca, çoğu CP/M bilgisayarı 64 veya 80-sütun ekran kullanır. Bu durumda, 80-sütun ekranlı ve yüksek hızlı diske sahip Commodore 128, bir CP/M bilgisayarı olarak çok daha uygun olabilir.

C64 CP/M kartuşuyla birlikte gelen diskette CP/M işletim sisteminin yanı sıra dosya kopyalama ve disket biçimlendirme gibi şeyler için bazı yardımcı programlar da yer almaktadır. CP/M çalıştırdığınızda, aslında alternatif bir DOS'a sahip oluyorsunuz. Eğer Z80 programlama ile ilgilenmiyorsanız, tek başına bir işinize yaramayacaktır. Burada ihtiyacınız olansa CP/M yazılımları.


Yazılımlar Nerede?

CP/M için yazılmış binlerce iyi program bugün hâlâ kullanımdadır. CP/M kullanıcıları ve kullanıcı grupları, çok sayıda halka açık program üretmiştir. Eğer belleğe sığabiliyorsa, bu yazılımların çoğu C64 CP/M altında çalışır. Ancak, 1541 disk sürücüsü bir CP/M diski okuyamamaktadır. CP/M'in herhangi bir işe yaraması için 1541 tarafından okunabilir yazılımlara ihtiyaç var. New York CP/M kullanıcıları grubu, uzun zamandır halka açık yazılımları 1541 biçimine aktarmaya uğraşıyor (daha fazla bilgi için GAZETTE'nin Ekim 1984 sayısındaki "Horizons" köşesine bakınız), ancak C1541 ile kullanılabilir CP/M yazılım miktarı hâlâ oldukça az. Bu yazının hazırlandığı an itibariyle, Commodore'un çıardığı CP/M altında çalıştırabileceğiniz iki programlama bulunuyor: Nevada Cobol ve Nevada Fortran. Kısa süre zarfında, Commodore bir dizi iş yazılımını, Perfect yazılım serisini piyasaya sürecek (daha fazla bilgi için CES haberine bakınız).

Yeni 1571 disk sürücüsüyse hız problemini çözmeye yardımcı oluyor. Commodore 128 CP/M'in disk sürücüsü yeniden programlandığından, diğer disket sürücülerde yazılmış disketleri doğrudan okuyabilmektedir.

Peki Neden Hâlâ CP/M ile Uğraşıyoruz? CP/M'de pek çok iyi kelime işlemci bulunuyor olmasına rağmen, C64 için yazılmış ve iyi özelliklere sahip kelime işlemci sayısı çok az. CP/M bilgisayarlar için yazılmış pek çok iş yazılımı mevcut, ancak ev bilgisayarına sahip çoğu kişi doğrusu Cari Hesap Programı satın almak istemeyecektir. Commodore 64 ilk çıktığında, C64 için mevcut az miktarda yazılım sorununun üstesinden gelmek için CP/M kullanmak iyi bir fikir gibi görünüyordu; ama artık C64'te de çok fazla yazılım seçeneği bulunuyor.


Bir Promosyon Ürünü

CP/M sayesinde Commodore 128 küçük işletmeler için cazip olabilir. Commodore 128'in 1571 disk sürücüsüyle birlikte fiyatı IBM PCjr ile rekabet edecek seviyededir. Ayrıca, CP/M uzun zamandan beri başarısı kanıtlanmış, hatasız bir yazılımdır. Çok fazla CP/M yazılımı olduğundan, kitlelerin ortak ilgisini çekmese de, tam aradığınız, özel ilgi alanınıza hitap eden bir yazılım bulma şansınız epeyi yüksek. Örneğin, sadece diş hekimliği uygulamaları için tasarlanmış özel bir defter tutma sistemi gibi belirli işletmeler için özelleştirilmiş pek çok programı CP/M'de bulmak mümkün.

CP/M, geniş bir yazılım kütüphanesine sahip. Bu yazılımların çoğu ilginizi çekmese de bir kısmı sizin için yararlı olabilir. Gerçi donanım ve yazılımda gördüğümüz teknolojik gelişmelere baktığımızda, beş yıllık eski yazılımları gerçekten çalıştırmak isteyen olur mu diye bir düşünmek gerek.

Charles Brannon, Program Editörü

[Çevirenin notu: Bu yazıdan bu yana 32 yıl geçti. C64 CP/M kartuşları Ebay'de uçuk fiyatlara satılıyor ve otuz yedi yıllık o eski yazılımların tozu alınıp alınıp hâlâ kullanılıyor.]

Türkçeye aktaran: İlker Fıçıcılar, 2017.04.16

Ref.: COMPUTE!'s Gazette, Sayı 22, Nisan 1985, ss.22-28. Telif hakkı © 1985 COMPUTE!

https://archive.org/stream/1985-04-computegazette/Compute_Gazette_Issue_22_1985_Apr#page/n23/mode/2up

http://www.devili.iki.fi/Computers/Commodore/articles/What_Is_CPM/index.html

Charles Brannon
01.04.1985

Keywords: C64, Commodore, CP/M, Yazılım, İşletim Sistemleri


C64 Projects Twitter Page

İlker Fıçıcılar's CBM Page