Amiral 128 - Commodore 128

Amiral 128
Amiral-128.jpg
Üretici firma Commodore İş Makineleri (CBM)
Tip Ev bilgisayarı
Yayın tarihi 1985 ; 36 yıl önce ( 1985 )
Durdurulan 1989 ; 32 yıl önce ( 1989 )
Satılan birimler dünya çapında 5,7 milyon
İşletim sistemi Commodore BASIC 7.0
Dijital Araştırma CP/M 3.0
GEOS
İşlemci MOS 8502 @ 1–2 MHz
Zilog Z80 A veya Zilog Z80 B @ 4 MHz
Hafıza 128  KB (standart), 640  KB (512 KB REU genişletme RAM'i ile)
Grafikler VIC-II E (320 x 200, 16 renk, cinler , raster kesme ), MOS 8563 (RGBI 640 x 200 16 renk Blitter )
Ses SID 6581/8580 (3× Osc , 4× Dalga , Filtre , ADSR , Halka )
selefi Amiral 64

Commodore 128 olarak da bilinen, C128 , C128 , C = 128 , sonuncusu 8 bitlik ev bilgisayarı ticari tarafından serbest bırakıldı Commodore Business Machines (CBM). Ocak 1985 yılında tanıtılan CES içinde Las Vegas , üç yıl selefi çok satan sonra ortaya Commodore 64 .

C128, neredeyse tam uyumluluğuyla C64'ün önemli ölçüde genişletilmiş halefidir. Yeni makine 128 sahiptir  KB bölgesinin RAM iki 64 KB bankalarında ve 80 kolon renkli video çıkışı. Yeniden tasarlanmış bir kasası ve klavyesi var . Ayrıca , normal Commodore BASIC ortamına alternatif olarak C128'in CP/M'yi çalıştırmasını sağlayan bir Zilog Z80 CPU da dahildir . Z80'in varlığı ve getirdiği devasa CP/M yazılım kitaplığı, C64'ün yazılım kitaplığıyla birleştiğinde, C128'e rakipleri arasında mevcut en geniş yazılım yelpazesinden birini verdi.

C128'in birincil donanım tasarımcısı , Plus/4 üzerinde çalışmış olan Bil Herd'di . Diğer donanım mühendisleri Dave Haynie ve Frank Palaia iken, IC tasarım çalışmaları Dave DiOrio tarafından yapıldı. Ana Commodore sistem yazılımı Fred Bowen ve Terry Ryan tarafından, CP/M alt sistemi ise Von Ertwine tarafından geliştirildi.

Teknik Genel Bakış

40 sütun modunda Commodore 128 için BASIC istemi, Commodore BASIC V7.0 çalıştırıyor

C128'in klavyesinde dört imleç tuşu, bir Alt tuşu , Yardım tuşu , Esc tuşu , Sekme tuşu ve sayısal tuş takımı bulunur . Bunların hiçbiri, yalnızca iki imleç tuşuna sahip olan ve imleci yukarı veya sola hareket ettirmek için Shift tuşunun kullanılmasını gerektiren C64'te mevcut değildi. Bu alternatif düzenleme, C64 modunda kullanılmak üzere 128'de tutuldu. C64'te sayısal tuş takımı, Alt tuşu ve Esc tuşunun olmaması , C64'ün Z80 kartuşuyla birlikte kullanıldığında bazı CP/M üretkenlik yazılımlarıyla ilgili bir sorundu . Makine dili yazma programlarına girmek için uzun saatler harcayan birçok C64 sahibi tarafından bir tuş takımı talep edildi . Eklenen tuşların çoğu, IBM PC'nin klavyesinde bulunan benzerleriyle eşleşti ve yeni bilgisayarı iş yazılımı geliştiricileri için daha çekici hale getirdi. 128'in 40 sütunlu modu, C64'ünkinin neredeyse aynısını yaparken, bellek adresi 1 aracılığıyla çoğullandığı için programcıya fazladan 1K renkli RAM sunulur. daha büyük ve soğutma delikleri ve değiştirilebilir bir sigorta ile donatılmıştır. C128, önceki Commodore makinelerinde olduğu gibi açılışta bir sistem RAM testi gerçekleştirmez. C64'ün tek 6510 mikroişlemcisi yerine , C128 iki CPU'lu bir tasarıma sahiptir. Birincil CPU, 8502 , 2 MHz'de saat hızına sahip olan 6510'un biraz geliştirilmiş bir versiyonudur  . İkinci CPU, CP/M yazılımını çalıştırmak ve ayrıca önyükleme sırasında işletim modu seçimini başlatmak için kullanılan bir Zilog Z80'dir . İki işlemci aynı anda çalışamaz, bu nedenle C128 çok işlemcili bir sistem değildir .

C128'in karmaşık mimarisi, dört farklı erişilen RAM türü içerir (128 KB ana RAM, 16–64 KB VDC video RAM, 2 kNibbles VIC-II Renkli RAM, C128D'lerde 2 kilobayt disket sürücü RAM, 0, 128 veya 512 KB REU RAM), iki veya üç CPU (ana: CP/M için 8502, Z80; 128D ayrıca disk sürücüsünde bir 6502 içerir) ve çeşitli çalışma modları için iki farklı video yongası (VIC-IIe ve VDC).

C128'in ilk sürümleri, ana devre kartı üzerinde elektromanyetik bir kalkan kullanılması nedeniyle zaman zaman sıcaklıkla ilgili güvenilirlik sorunları yaşar. Kalkan, büyük yongaların üst kısımlarına temas eden ve görünüşte kalkanın büyük bir ısı emici olarak hareket etmesine neden olan parmaklarla donatılmıştı . Kalkan ve yongalar arasındaki zayıf temasın bir kombinasyonu, plastik yonga paketlerinin doğası gereği sınırlı ısı iletkenliği ve ayrıca kalkanın kendisinin nispeten zayıf termal iletkenliği, bazı durumlarda aşırı ısınmaya ve arızaya neden oldu. SID ses yongası bu açıdan özellikle hassastır. En yaygın çözüm, Commodore'un FCC radyo frekansı düzenlemelerine uymak için geliştirme aşamasında eklediği kalkanı kaldırmaktır.

C128'in üç çalışma modu vardır . C128 Modu ( yerel mod ) 8502 CPU ile 1 veya 2 MHz'de çalışır ve hem 40 hem de 80 sütunlu metin modlarına sahiptir. CP/M Modu hem Z80 hem de 8502'yi kullanır ve hem 40 hem de 80 sütunlu metin modunda çalışabilir. C64 Modu , önceki bilgisayarla neredeyse yüzde 100 uyumludur. Bu modların seçimi Z80 çipi aracılığıyla gerçekleştirilir. Z80, ilk açılışta veri yolunu kontrol eder ve sürücüde bir CP/M diski olup olmadığını, herhangi bir C64/C128 kartuşu olup olmadığını veya Commodore anahtarının (C64 modu seçici olarak işlev görür) olup olmadığını kontrol eder. ) önyükleme sırasında bastırılıyor. Bu koşullara bağlı olarak uygun çalışma moduna geçecektir.

Modlar

C128

C128 ana kartı

1984 yılında, Commodore 128'in piyasaya sürülmesinden bir yıl önce, Commodore Plus/4'ü piyasaya sürdü . Erken IBM PC uyumlularının nispeten yüksek maliyetini ve eğitim gereksinimlerini karşılayamayan düşük kaliteli bir iş pazarını hedeflese de , Commodore basını tarafından 64'ün devamı olarak algılandı ve bu modelin iyileştirilmesi bekleniyordu. yetenekler. C64'ün grafikleri ve ses yetenekleri genel olarak mükemmel kabul edilirken, Plus/4'e verilen yanıt bir hayal kırıklığıydı. Plus/4'ün piyasaya sürülmesiyle birlikte, Commodore basınında RAM kapasitesi artırılmış, iş bilgisayarlarında standart olan 80 sütunlu bir ekran, yeni bir BASIC programlama dili olan "C-128" adlı yeni bir bilgisayar için tekrarlanan öneriler yapıldı. kolay programcılar başvurmadan bilgisayarın grafik ve ses kullanmak için PEEK ve Dürtmeler , üzerine geliştirilmiş bir yeni disk sürücüsü 1541 'in berbat aktarım hızı, hem de toplam C64 uyumluluğu.

C128'in tasarımcıları bu endişelerin çoğunu ele almayı başardı. Yeni bir çip olan VDC , C128'e 80 sütunlu renkli CGA uyumlu bir ekran sağlar ( kırmızı-yeşil-mavi artı yoğunluk için RGBI olarak da adlandırılır ). Daha sonra yeni 8502 mikro işlemci tamamen C64 en ile geriye doğru uyumlu olan 6510 , ama istenirse iki katı hızda çalışabilir. C64'ün BASIC 2.0'ı, Plus/4'ün BASIC 3.5'inden yapılandırılmış programlama komutlarını ve ayrıca makinenin özelliklerinden yararlanmak için özel olarak tasarlanmış anahtar kelimeleri içeren BASIC 7.0 ile değiştirildi . Bir hareketli grafik editörü ve makine dili izleyicisi eklendi. Kernal'in ekran düzenleyici kısmı, bir ekleme modunu ve ESC tuş kombinasyonları aracılığıyla erişilen diğer özellikleri ve ayrıca ilkel bir pencereleme özelliğini desteklemek için daha da geliştirildi ve ayrı bir ROM'a taşındı . 40 sütunlu ekranı kontrol eden VIC-II yongası yalnızca 1 MHz'de çalışabilir, bu nedenle 40 sütunlu ekran modda karışık görünür . 80 sütun modunda editör , standart Commodore ters metnine ek olarak kaçış kodlarıyla etkinleştirilen yanıp sönen ve altı çizili metin sağlamak için VDC özelliklerinden yararlanır . C128'in 80 sütunlu modu, PETSCII grafik karakterleriyle birlikte küçük harfli karakterleri görüntüleyebilir ; 40 sütunlu mod, önceki Commodores ile aynı "büyük ve küçük harf" veya "büyük harf artı grafik" kısıtlamasına tabidir. 40 ve 80 sütun modları bağımsızdır ve her ikisi de aynı anda etkin olabilir. Hem bileşik hem de RGB ekrana sahip bir programcı, ekranlardan birini "scratchpad" olarak veya ilkel çoklu tampon desteği için kullanabilir. Aktif ekran ESC-X ile değiştirilebilir. Sisteme bir donanım sıfırlama düğmesi eklendi. Bununla birlikte klavye, standart hale geldiği gibi Selektrik düzenine geçirilmedi, bunun yerine Commodore'un önceki modellerinde olduğu gibi aynı ADM-3A'dan türetilmiş tasarımı korudu . FAST

Commodore 128'in arkası

VDC çipi, sprite veya raster kesintisi olmadığı için oyun oynamak için büyük ölçüde işe yaramaz. NTSC C128'ler, IBM 5153 gibi herhangi bir CGA tipi monitörle (TTL RGB @ 15 kHz/60 Hz) çalışır. Ancak, C128'in PAL modelleri 50 Hz'de çalışır ve çoğu CGA monitörle uyumlu değildir; 60 Hz yenileme hızı. VDC çıkışının Pin 7'si (normalde CGA monitörlerinde kullanılmaz) monokrom bir NTSC/PAL sinyali üretir, ancak bunun için herhangi bir kablo sağlanmamıştır ve ilgilenen kullanıcıların kendilerinin yapması veya satış sonrası bir tane satın alması gerekiyordu.

C128 ile birlikte iki yeni disk sürücüsü tanıtıldı: kısa ömürlü tek taraflı 1570 ve çift taraflı 1571 . Çift diskli bir 1572 modeli duyuruldu ancak asla üretilmedi. Daha sonra 3.5 inçlik 1581 tanıtıldı. Bu sürücülerin tümü 1541'den daha güvenilirdir ve yeni bir "patlama modu" özelliği ile çok daha iyi performans vaat eder. 1581 sürücüsü aynı zamanda öncekilerden daha fazla yerleşik RAM'e sahiptir, bu da aynı anda daha fazla sayıda dosya açmayı mümkün kılar. TEMEL 7.0 içerir DLOADve DSAVEkomutlar yükleme ve kullanmadan diske kaydetme desteklemek ,8ya da diğer cihaz numarasını ve aynı zamanda bir DIRECTORYBASIC 2.0 gibi TEMEL hafızayı üzerine yazmadan ekran belleğine doğrudan diskin katalog bilgileri okur komutu. Ek olarak, C128, çoğu kişisel bilgisayarda bir özellik standardı olan, ancak bu noktaya kadar Commodore makinelerinde bulunmayan disk yazılımının otomatik olarak başlatılmasını sağlar. Kullanıcıların artık yazması gerekmiyor LOAD"*",8,1. BASIC ayrıca "uyarı" dosyalarını (düzgün kapatılmamış ve sıfır uzunlukta kesilmiş dosyalar) kaldırmak için bir TOPLA komutu ekledi.

Tüm 1571 sürücüleri normalde C128'de yerel modda başlar. Kullanıcı "GO 64" yazarak C64 moduna geçerse, sürücü yerel modda kalır. Ancak, açılırken Commodore tuşu basılı tutularak C64 modu etkinleştirilirse, 1571 daha sonra 1541 moduna geçer. Bu rutin, düşük seviyeli sürücü erişimi gerçekleştiren yazılımlar için gereklidir.

C128, yeni MMU sıra değiştirme çipi sayesinde BASIC programlama için çok daha yüksek bir oran olan C64'ün iki katı RAM'e sahiptir . Bu, BASIC program kodunun değişkenlerden ayrı olarak saklanmasına izin vererek, makinenin karmaşık programları işleme yeteneğini büyük ölçüde artırır, çöp toplamayı hızlandırır ve programcı için hata ayıklamayı kolaylaştırır. Yürütülen bir program STOPpedlenebilir, kodu düzenlenebilir, değişken değerleri doğrudan modda incelenebilir veya değiştirilebilir ve program yürütmesi, BASIC'in GOTOkomutu kullanılarak değişken tablosu bozulmadan devam ettirilebilir . Diğer BASIC'ler, CONTdeğişkenleri temizlemeden yürütmeyi yeniden başlatma komutunu desteklese de , herhangi bir kodun düzenlenmesi, bunların temizlenmesine neden olur. BASIC'in BANKkomutu kullanılarak farklı bellek konfigürasyonları yüklenebilir .

BASIC 7.0, grafik ve ses işleme komutlarının yanı sıra BASIC 4.0'ın disk komutlarını ve geliştirilmiş çöp temizleme özelliklerini ve IF...THEN...ELSE, DO...WHILE aracılığıyla yapılandırılmış programlama desteğini içerir. ve WHILE...WEND döngüleri. Ancak programlanabilir karakterler hala desteklenmemektedir, bu nedenle programcının bunları VIC-20 ve C64'te olduğu gibi PEEK ve POKE ile değiştirmesi gerekecektir.

Aşağı yönde, BASIC 7.0, 28 KB boyutu (BASIC 2.0'a göre %250'lik bir artış) ve erişim program değişkenlerine ve BASIC program metnine ( 16k uzunluğunda).

128'in ROM'u bir paskalya yumurtası içerir : Komuta SYS 32800,123,45,6yerel modda Link arms, don't make them."girildiğinde, makinenin ana geliştiricilerinin bir listesinin ve ardından mesajın yer aldığı bir ekran görüntülenir. Ayrıca, anahtar kelimeleri girerek QUITveya OFFbir ?UNIMPLEMENTED COMMAND ERROR. Bu komutlar, planlanmış ancak hiç üretilmemiş bir LCD taşınabilir bilgisayar için tasarlanan BASIC yorumlayıcısından kalanlardır ve sırasıyla BASIC yorumlayıcısından çıkmak ve hassas program yürütme sırasında klavye girişini yok saymak için tasarlanmıştır.

C128'in daha büyük donanım yetenekleri, özellikle artan RAM, ekran çözünürlüğü ve seri veri yolu hızı, onu GEOS grafik işletim sistemini çalıştırmak için C64'ten daha yetenekli bir platform haline getirdi .

CP/M

CP/M modunun kullanılması, bir önyükleme disketinin kullanılmasını gerektirir. Disket, bir disk sürücüsü içermeyen bilgisayarla birlikte verildi.

C128'in iki CPU'sunun ikincisi, C128'in CP/M çalıştırmasını sağlayan Zilog Z80'dir . C128, CP/M 3.0 (CP/M 2.2 ile geriye dönük uyumlu olan CP/M Plus) ve ADM31/3A terminal emülasyonu ile birlikte gönderildi. C64 için bir CP/M kartuşu mevcuttu, ancak pahalıydı ve 1541 sürücüsü, CP/M yazılımının dağıtıldığı MFM biçimli diskleri okuyamadığından, bu pahalıydı ve kullanımı sınırlıydı. Yazılımın, GCR kodlama şeması kullanılarak biçimlendirilmiş Commodore'a özgü disklerde kullanıma sunulması gerekiyordu . Commodore, PerfectCalc ve EMACS'dan türetilen PerfectWriter sürümlerini kullanıma sundu ve Commodore kullanıcı grupları bazen çeşitli CP/M disketlerine sahipti, ancak sınırlı yazılım kullanılabilirliği, CP/M'nin başlıca cazibe merkezlerinden biri olan devasa yazılım kitaplığını ortadan kaldırdı. Ek olarak, kartuşlar yalnızca 1982'den itibaren erken model C64'lerde çalışır ve sonraki birimlerle uyumlu değildir. C128 ile de uyumsuz olduklarından tasarım ekibi, Z80'i ana sistem kartına yerleştirerek CP/M'yi desteklemeye karar verdi.

C128, CP/M'yi çoğu özel CP/M sisteminden belirgin şekilde daha yavaş çalıştırır, çünkü Z80 işlemci yalnızca 2 MHz'lik etkin bir hızda çalışır. Bunun nedeni, C128'in sistem veri yolunun 65xx CPU'lar etrafında tasarlanmış olmasıydı. Bu CPU'lar, verileri ve bellek adreslemeyi Z80'den çok farklı şekilde işler. CP/M ayrıca, herhangi bir G/Ç veya kesme işlemi için kontrolü 8502'ye geçirme ihtiyacı gibi aşağıda belirtilen nedenlerden dolayı daha yavaş çalıştı. Bu nedenlerden dolayı, çok az kullanıcı C128'de CP/M yazılımını çalıştırdı.

C128 çalıştırıldığında, önce Z80 aktiftir ve bir CP/M diskinin varlığını kontrol etmek için $0-$FFF'de küçük bir önyükleyici ROM'u yürütür. Biri algılanmazsa, kontrol 8502'ye geçirilir ve C128 yerel modu başlatılır.

Pratikte CP/M modunun kullanışlı olması için 1571 veya 1581 sürücü gerekir, çünkü 1541 MFM disklerini okuyamaz ve C128'in çoğuşma modunu desteklemediği için çok daha yavaş çalışır. CP/M önyükleme diskleri yine de sürücünün yerel GCR biçiminde olmalıdır; MFM diskleri önyüklenemez, yalnızca kullanıcı zaten CP/M'de olduğunda okunur. Bunun nedeni, sürücüyü MFM modunda çalıştırmak için gerekli kodun, önyükleme işleminin bir parçası olarak yüklenmesidir. Ayrıca, çoğu CP/M yazılımı 80 sütunlu bir ekran beklediğinden, genellikle 80 sütunlu mod gereklidir. C128 , CP/M modunda bir ADM-3A terminalini taklit eder , bu nedenle yazılımın bunun için ayarlanması gerekecektir. Standart ADM-3A terminal komutlarının yanı sıra, metin ve arka plan renginin ayarlanması dahil olmak üzere VIC-II ve VDC'nin özelliklerini kullanmak için bir dizi ekstra komut mevcuttur. CP/M komut yorumlayıcısı (uygulama yazılımı olmasa da), kullanıcının metni görünmez hale getirecek ve kullanıcıyı bilgisayarı sıfırlamaya zorlayacak şekilde metni ve arka planı aynı renge dönüştürmek için bir kontrol kodu yayınlamasını önlemek için bir koruma içerir. Bu olursa, varsayılan olarak kahverengi metinli gri bir arka plana dönüşür.

CP/M modunda, Microsoft'un CP/M için BASIC-80 sürümü olan MBASIC'i çalıştırmak mümkündür. Yerel mod BASIC 7.0 ile karşılaştırıldığında, MBASIC, program satırlarını düzenlemek veya metin imlecini hareket ettirmek için terminal stili tuş kombinasyonlarının kullanılmasını gerektiren ve herhangi bir ses veya grafik özelliğinden yoksun olan, özlü ve yetenekleri bakımından sınırlıdır. MBASIC, tamsayı ve çift duyarlıklı değişken desteği gibi BASIC 7.0'da bulunmayan matematiksel ve hesaplama özelliklerine sahip olsa da, tamsayı değişkenlerinin kullanılmasıyla elde edilen herhangi bir hız avantajı, bilgisayarın CP/M modunda aşırı yavaş performansı nedeniyle tartışmalı hale gelir. Ayrıca Commodore BASIC, MBASIC'in 32-bit kayan nokta ve 64-bit çift duyarlıklı değişkenler arasında bir orta yol görevi gören 40-bit kayan noktaya sahiptir. MBASIC ayrıca BASIC 7.0'ın yaklaşık 90k'sına karşı yalnızca 34k boş program alanı sunar.

Wordstar ve Supercalc gibi diğer CP/M yazılımları da, kullanımı daha kolay bir arayüze sahip olan PaperClip gibi yerel mod C128 eşdeğerlerinden önemli ölçüde daha iyi performans gösterecektir .

CP/M CBIOS (CP/M'nin donanımla arayüz oluşturan kısmı), çoğu CP/M uygulamasında olduğu gibi donanımla doğrudan arayüz oluşturmaz, bunun yerine kesme teslimi ve G/Ç için çekirdek rutinlerini çağırır - çekirdek kullanılması gerektiğinde, Z80, daha sonra etkinleştirilen ve Z80 devre dışı bırakılan 8502'ye parametre verilerini iletmek için $FFD0-$FFEF'deki rutinleri kullanır. Çekirdek rutini yürütüldükten sonra kontrol Z80'e geri gönderilir. CP/M'yi C128'e taşımaktan sorumlu programcının, donanımla doğrudan Z80 makine dilinde CBIOS arayüzüne sahip olmayı amaçladığı, ancak aşırı ısınmaya ve kendi kendini imha etmeye eğilimli oldukları için VDU yongalarında büyük zorluk yaşadığı bildirildi. . VDU ayrıca C128 geliştirme aşamasındayken ve CP/M programcısı kodunun düzgün çalışmasını sağlayamadığında çok sayıda donanım revizyonu geçirdi, bu nedenle C128 mühendislik ekibi onun yerine fonksiyon çağrılarını 8502'ye iletmek için CBIOS'u yeniden yazmasını istedi.

CP/M modu, Commodore kullanıcılarının aşina olduğu işletim ortamlarından çok farklıdır. İken Commodore DOS Commodore disk sürücülerinin ROM yerleşiktir ve genellikle BASIC üzerinden erişildiğinde, CP / M önyükleme disket kullanımını gerektirir ve miras veciz komutlarının girişi gerektiren mini bilgisayar platformları. CP/M programları , çoğu Commodore uygulamasının kullanıcı dostu yapısından yoksun olma eğilimindedir . Yeni bilgisayara Commodore'un sahip olmadığı geniş bir profesyonel düzeyde iş yazılımı kütüphanesi vermeyi amaçlayan CP/M, 1980'lerin ortalarında en iyi dönemini çoktan geçmişti ve bu nedenle C128'de nadiren kullanılıyordu.

C64

İki disk sürücüsü ve bağımsız 40 ve 80 sütunlu ekranları gösteren iki monitör içeren bir C128 kurulumunu gösteren 1980'lerden fotoğraf. Birçok kullanıcı, C64 sistemlerinden miras kalan 1541'i ikinci bir sürücü olarak kullanmaya devam etti.

Orijinal C64 BASIC ve Kernal ROM'ları bütünüyle bir araya getirerek (toplam 16 KB), C128, Commodore 64 ile neredeyse yüzde 100 uyumluluk sağlar. C64 moduna üç şekilde erişilebilir:

  1. Önyükleme sırasında Commodore-logo tuşunu basılı tutmak.
  2. BASIC 7.0'da GO 64komutu girme ve ardından komut istemine yanıt Yverme ARE YOU SURE?.
  3. Takılı bir C64 kartuşu ile önyükleme.

Kartuş bağlantı noktasının /EXROM ve/veya /GAME satırlarının topraklanması, bilgisayarın otomatik olarak C64 modunda başlamasına neden olur. Bu özellik, bir kartuş ( Simons' BASIC gibi ) bağlantı noktasına takıldığında C64'ün davranışını sadık bir şekilde çoğaltır ve bu satırlardan herhangi birini öne sürer, ancak gerçek bir C64'ün aksine, bu satırların bellek haritasını değiştirme eylemi doğrudan donanım, C128'in Z80 üretici yazılımı başlatma kodu, açılışta bu satırları yoklar ve ardından gerektiği gibi modları değiştirir. C128 yerel mod kartuşları, bellek haritasındaki çekirdek yoklama tanımlı konumlar tarafından tanınır ve başlatılır.

C64 modu, bir donanım C64'ün özelliklerini neredeyse tam olarak kopyalar. MMU, Z80 ve IEC patlama modu, C64 modunda devre dışı bırakılır, ancak VDU ve 2 MHz modu dahil olmak üzere tüm diğer C128 donanım özelliklerine hala erişilebilir. Çekirdek rutinleri yalnızca C64'te bulunan tuşları tanısa da, C128 klavyesinin genişletilmiş tuşları makine dilinden okunabilir. Birkaç oyun, bir C128'in çalışıp çalışmadığını algılayabilir ve daha hızlı performans için dikey izleme sırasında 2 MHz moduna geçebilir.

Kuzey Amerika C128'lerinde, C64 modundayken, karakter (yazı tipi) ROM'u bile C128 modundan değişir. Erken C128 prototipleri, C64'ünkine göre biraz daha iyileştirilmiş bir karaktere sahip tek bir ROM'a sahipti. Ancak bazı C64 programları, karakter ROM'unu veri olarak okur ve bir C128'de çeşitli şekillerde başarısız olur. Böylece, C128'e, C128 yazı tipini C128 modunda ve C64 yazı tipini C64 modunda sunan çift boyutlu bir karakter ROM'u verildi. C128'in uluslararası modelleri, her iki modda da değiştirilmemiş C64 yazı tipini kullanır, çünkü karakter ROM'unun ikinci yarısı bunun yerine uluslararası yazı tipine (aksanlı karakterler veya Almanca noktalı harfler gibi şeyler içerir) ayrılmıştır .

C128'de başarısız olan birkaç C64 programından bazıları, caps locktuşa (veya uluslararası C128 modellerinde ASCII/Ulusal tuşa) basıldığında doğru şekilde çalışacaktır . Bunun, C128'in CPU'sunun daha büyük yerleşik G/Ç bağlantı noktasıyla ilgisi var. Oysa SHIFT LOCKanahtar hem de C64 üzerinde bulunan ve C128 sadece sol için mekanik bir mandal olan SHIFTanahtar, CAPS LOCKC128 anahtar üzerinden okunabilir 8502 s' dahili I / O portu. Birkaç C64 programı bu ekstra G/Ç biti ile karıştırılmaktadır; CAPS LOCKanahtarı aşağı konumda tutmak, G/Ç hattını alçaltarak C64'ün yapılandırmasıyla eşleşecek ve sorunu çözecektir.

Bir avuç C64 programı $D030 (53296), genellikle VIC-II yonga kayıtlarını başlatan bir döngünün parçası olarak öğesine yazar . C64'te kullanılmayan bu bellek eşlemeli kayıt, sistem saat hızını belirler. Bu kayıt C64 modunda tamamen işlevsel olduğundan, yanlışlıkla bir yazma, CPU'yu 2–MHz'e geçirerek 40 sütunlu ekranı karıştırabilir, bu durumda VIC-II video işlemcisi saat hızında tutarlı bir görüntü üretemez. Neyse ki, birkaç program bu kusurdan muzdarip. Temmuz 1986'da, COMPUTE!'s Gazette , görünür ekranın alt kısmına ulaşıldığında hızlı modu etkinleştirmek için bir raster kesme kullanarak bu farktan yararlanan ve ardından ekran oluşturma yeniden en üstte başladığında bunu devre dışı bırakan bir yazım programı yayınladı. . Dikey boşluk döneminde daha yüksek saat hızı kullanılarak, genel yürütme hızı yaklaşık yüzde 20 oranında artırılırken standart video gösterimi korunur.

Bir donanım C64 ve tipik bir çalışan program içinden kullanılan C64 modunda bir C128 işletim ayırt etmek kolay bir yolu, bir değer diğerlerinden farkı yazmaktır $FF (255)için hafıza adresi $D02F (53295) , C128 ekstra tuşları (şifresini çözmek için kullanılan bir kayıt sayısal tuş takımı ve diğer bazı tuşlar). C64'te bu bellek konumu, kendisine $FFne yazılırsa yazılsın her zaman değeri içerecektir , ancak C128'de C64 modunda konumun değeri - bir bellek eşlemeli kayıt - değiştirilebilir. Böylece, konuma yazdıktan sonra konumun değerini kontrol etmek, gerçek donanım platformunu ortaya çıkaracaktır.

RAM kurulumu

Göreceli olarak büyük miktarlarda ROM ve RAM'i (8502'nin 64 KB adres alanının on katı büyüklüğünde) işlemek için C128, içine yazılan bit modellerine göre farklı RAM ve ROM kombinasyonlarının görüneceği farklı bellek haritaları oluşturmak için 8722 MMU yongasını kullanır. MMU'nun yapılandırma kaydı, bellek adresinde $FF00 . Bellek yönetim biriminin bir diğer özelliği de sıfır sayfa ve yığının yeniden konumlandırılmasına izin vermesidir .

C128 teorik olarak dört blokta 256k RAM'i destekleyebilmesine rağmen, PCB'nin bu ekstra RAM'i eklemek için hiçbir hükmü yoktur ve MMU aslında 128k'den fazlasına erişemez. Bu nedenle, MMU, blok 2 veya 3'e erişmek üzere programlanmışsa, sonuçta ortaya çıkan tek şey, blok 0 ve 1'deki RAM'in bir aynasıdır.

G/Ç kayıtları ve sistem ROM'ları serbestçe devre dışı bırakılabildiği veya etkinleştirilebildiği ve her iki RAM bankasında ve VIC-II'nin bellek alanı için her iki bankayı kullanacak şekilde yerleştirilebildiği için, 256'ya kadar bellek yapılandırması mümkündür. bunların büyük çoğunluğu işe yaramaz (örneğin, sıra 0'daki çekirdek ROM ve sıra 1'deki G/Ç kayıtları gibi çalışamaz kombinasyonlar mümkündür). Bu nedenle, BASIC'in BANK deyimi, kullanıcının açılış varsayılanı Bank 15 olmak üzere en kullanışlı 15 düzenlemeyi seçmesine izin verir. Bu varsayılan, sistem ROM'larını, G/Ç kayıtlarını ve BASIC program metnini blok 0'a yerleştirir. BASIC program değişkenleri tarafından kullanılan blok 1. BASIC program metni ve değişkenleri, $FFEF'e kadar uzanabilir. Ancak blok 0, 4000$'dan itibaren ROM'ları ve G/Ç kayıtlarını içerdiğinden, BASIC, 3FFF'den yüksek program metnini okumak için dahili bir anahtarlama rutini kullanır.

Üst ve alt 1k RAM ($0–$3FF ve $FF00-$FFFF), her iki bloktan da görülebilen "paylaşılan" RAM'dir. MMU, her ikisinin de 16k'ya kadar artışlarla genişletilmesine izin verir. $0–$3FF aralığı sıfır sayfa ve yığını içerirken, $FF00-$FFFF MMU kayıtlarını ve sıfırlama vektörlerini içerir. Bu alanlar her zaman paylaşılır ve paylaşılmayan RAM'e geçiş yapılamaz. Paylaşılan RAM her zaman CPU tarafından kullanılmakta olan bankanın tersidir, bu nedenle sıra 0 seçilirse, paylaşılan RAM'e yapılan herhangi bir okuma veya yazma işlemi sıra 1'deki karşılık gelen konumlara atıfta bulunur ve bunun tersi de geçerlidir. VIC-II, RAM bankasını ve oradan normal 16k penceresini kullanacak şekilde ayarlanabilir. C64'teyken, VIC-II sadece bellek alanının 2 ve 4 numaralı bankalarındaki karakter ROM'unu görebilirken, C128 ise herhangi bir VIC-II bankası için karakter ROM'unu etkinleştirmeyi veya devre dışı bırakmayı mümkün kılar. kayıt 1 $. Ayrıca, biri CPU tarafından, diğeri VIC-II tarafından görülebilen iki renkli RAM seti vardır ve kullanıcı, hangi çipin neyi göreceğini seçebilir.

CP/M modunda, Program Segmenti Öneki ve Geçici Program Alanı Sıra 1'de ve G/Ç kayıtları ve CP/M sistem kodu Sıra 0'da bulunur.

C128'in RAM'i, standart 128 KB'den 256, 512 ve hatta 1.024 KB'ye, ya ticari bellek genişletme modülleri kullanılarak ya da internet üzerinden şematiklere dayalı bir modül yapılarak genişletilebilir.

Commodore'un RAM Genişletme Birimleri , C128'in RAM'i ile genişletme birimindeki RAM arasında veri aktarmak için harici bir 8726 DMA denetleyicisi kullanır.

C128D

Commodore 128D, Musée Bolo , EPFL , Lozan'da sergileniyor
40 mm soğutma fanı ile donatılmış Commodore 128DCR anahtar modlu güç kaynağı

1985'in sonlarında Commodore, Amiga 1000'e benzeyen yeniden tasarlanmış bir şasiye sahip C128'in yeni bir versiyonunu Avrupa pazarına sundu . Commodore 128D olarak adlandırılan bu yeni Avrupa modeli, yan tarafında taşıma kulbu bulunan plastik bir kasaya sahipti, ana kasaya 1571 disk sürücüsü ekledi, yerleşik klavyeyi çıkarılabilir bir klavyeyle değiştirdi ve bir soğutma fanı ekledi . Klavye ayrıca yazma açısını değiştirmek için iki katlanır ayak içeriyordu.

C128, 25 Temmuz 1985'te Birleşik Krallık'ta ve Kasım 1985'te Kuzey Amerika'da piyasaya sürüldü.

Göre Bil Herd , ( "C128 Hayvanlar" aka) Donanım Ekibi başkanı C128D düzenli sürümü ile aynı zamanda üretim için hazırdı. İki modeli aynı anda piyasaya sürmeye çalışmak, zamanında teslimat riskini artırmıştı ve ana PCB'nin C128D kasasını ve normal kasayı aynı anda desteklemek için kritik bölümlerde büyük deliklere sahip olması açıktı.

1986'nın ikinci bölümünde, Commodore, Kuzey Amerika'da ve Avrupa'nın bazı bölgelerinde C128DCR olarak anılan C128D'nin bir versiyonunu yayınladı, CR "maliyeti azaltılmış" anlamına gelir. DCR modeli, C128D'nin plastik versiyonunun (taşıma kolu olmayan) yerine damgalı çelik bir şasiye, C128D'ninkine benzer modüler anahtarlamalı bir güç kaynağına sahiptir ve bu modelin çıkarılabilir klavyesini ve dahili 1571 disket sürücüsünü korur. Anakart üzerindeki bazı bileşenler üretim maliyetlerini azaltmak için birleştirildi ve ek bir maliyet düşürme önlemi olarak D modelinin güç kaynağına takılan 40 mm'lik soğutma fanı kaldırıldı. Bununla birlikte, güç kaynağı alt kasası üzerindeki montaj hükümleri ve ayrıca güç kaynağının baskılı devre kartındaki fana güç sağlamak için iki adet 12 voltluk DC bağlantı noktası korunmuştur . C128DCR montaj koşulu 60 mm'lik bir fan içindir.

DCR modeliyle sunulan önemli bir gelişme, 8563 video görüntüleme denetleyicisinin (VDC) teknik olarak daha gelişmiş 8568 VDC ile değiştirilmesi ve 64 kilobayt video RAM'i ile donatılmasıydı - bu, aygıt tarafından adreslenebilen maksimum miktardır. "Düz" C128'de kurulu olana göre video RAM'deki dört kat artış, diğer şeylerin yanı sıra, gerçek bir pencereleme sistemini desteklemek için çoklu metin ekranlarını korumayı veya daha esnek bir renk paleti ile daha yüksek çözünürlüklü grafikler oluşturmayı mümkün kıldı. . Küçük ticari yazılımlar bu olanaklardan yararlandı.

C128DCR, açılış başlığı ekranında görüntülenen telif hakkı tarihinden itibaren adlandırılan "1986 ROM'ları" olarak adlandırılan yeni ROM'larla donatılmıştır. Yeni ROM'lar bir dizi adresi böcek meşhur bir de dahil olmak üzere, orijinal ROM içinde mevcut olan, kapalı-bir hata CAPS KİLİT etkin olduğu 'Q' karakteri, küçük harf kalacaktır ki burada klavye dekode tabloda. Bazı yazılımlar, bilgisayarın gelişmiş donanım özelliklerine ve gözden geçirilmiş ROM'lara olan bağımlılıklar nedeniyle yalnızca DCR'de çalışır.

DCR'nin geliştirilmiş RGB video yeteneklerine rağmen Commodore, BASIC 7.0'ı RGB grafiklerini işleme yeteneği ile geliştirmedi. VDC'yi grafik modunda sürmek, ekran düzenleyici ROM ilkellerine veya bunların montaj dili eşdeğerlerine yapılan çağrıların kullanılmasını veya Free Spirit Software'in yüksek çözünürlük ekleyen " BASIC 8 " gibi üçüncü taraf BASIC dil uzantılarının kullanılmasını gerektirmeye devam eder. VDC grafik komutları BASIC 7.0'a .

Market performansı

Ocak 1987'ye kadar Info , "C128'in yakında ölümüyle ilgili tüm bu söylentilerin aslında bir temeli olabilir" dedi. Commodore'un kaynakları artan 64C üretimine ve PC klonlarına yönlendirmek istediğini belirten dergi, "Çevrimiçi son haber, son C128'in Aralık 1987'de piyasadan çekileceğidir" dedi. Hesapla! 1989'da, "Eğer 128'inizi, 128'e özgü yazılımın bol ve hızlı ulaşacağı izlenimi altında satın aldıysanız, muhtemelen oldukça hayal kırıklığına uğradınız. 128'in en önemli satış noktalarından biri, 64 ile toplam uyumluluğudur. 128'e karşı ondan daha fazla işe yarayan nokta." 128 neredeyse tüm 64 yazılımı çalıştıracağından ve yeni nesil 32 / 16-bit ev bilgisayarları - özellikle Commodore Amiga ve Atari ST - en son teknolojiyi temsil ettiğinden, C128'in yerel modu için nispeten az yazılım ortaya çıktı (muhtemelen 100-200 ticari başlık ve ayrıca kamu malı ve dergi tür programlarının olağan payı ), bazı kullanıcıların satın aldıklarına pişman olmasına neden oluyor. C128, 1985 ve 1989 yılları arasında toplam 4 milyon adet satarken, popülaritesi selefine kıyasla azaldı. Bu düşük satış rakamları için bir açıklama, C64'ün öncelikle video oyunlarıyla ilgilenen kişilere satılmış olması olabilir, ancak daha pahalı olan C128, geliştirmeye yönelik fazla bir değer katmamıştır.

Bard's Tale III ve Kid Niki gibi bazı C64 yazılımları , otomatik başlatmayı ve 1571'in daha hızlı disk erişimini kullanarak belgelerde bunu belirtmeden 128 modunda çalıştı. Bazı Infocom metin maceraları, 80 sütunlu ekrandan ve artırılmış bellek kapasitesinden yararlandı. Bazı C64 oyun gibi doğal moda taşıdık Kikstart 2 ve Son V8 gelen Mastertronic ayrı C128 sürümleri vardı ve Kaderin Warriors: Ultima V dan Kökeni Sistemleri C128 üzerinde çalışan eğer müzik için ekstra RAM kullanılır. Yıldız Filosu I: Interstel'den Savaş Başlıyor ayrı versiyonları vardı ve C128'deki 80 sütunlu gösterimden yararlandı. Oyunların büyük çoğunluğu basitçe C64 modunda çalıştı.

Buna karşılık, popüler PaperClip ve Paperback Writer serileri de dahil olmak üzere birçok C64 üretkenlik yazılımı başlığı C128'e taşındı . Bu yazılım, iş kullanımı için gerekli olduğu düşünülen özellikleri sağlamak için ekstra bellek, 80 sütunlu ekran, gelişmiş klavye ve büyük kapasiteli disk sürücüleri kullandı. Gelişmiş BASIC programlama dili, CP/M uyumluluğu ve Jane gibi " kullanıcı dostu " yerel yazılım paketleri ile Commodore, Plus/4 ile stratejisine benzer şekilde C128 için düşük kaliteli bir iş pazarı yaratmaya çalıştı , hatta kendisini uzaklaştırdı. C128'i kasanın üzerinde "Kişisel Bilgisayar" olarak markalayarak ev bilgisayarı etiketinden çıkarın. Önemli bir şekilde, C128, Microsoft adının rekabetçi bir varlık olacağı Microsoft BASIC kullanımının reklamını yapan ilk Commodore bilgisayarıydı .

C128, kesinlikle C64'ten daha iyi bir iş makinesiydi, ancak gerçekten daha iyi bir oyun makinesi değildi. İş makineleri isteyen kişiler , C128 piyasaya sürüldüğünde neredeyse yalnızca IBM PC klonlarını satın aldı . Bazı durumlarda tam bir C128 sisteminden daha ucuza satılan Leading Edge Model D ve Tandy 1000 gibi düşük maliyetli IBM uyumlularının bulunması Commodore'un küçük işletme bilgisayar stratejisini rayından çıkardı . Profesyonel düzeyde bir CAD programı vardı , Home Designer by BRiWALL, ancak yine, bu çalışmaların çoğu C128 döneminde PC'lerde yapıldı. C128'in hala oldukça iyi satmasının ana nedeni, muhtemelen hobi programlama için C64'ten çok daha iyi bir makine olması ve ayrıca C64 çevre birimlerine ve yazılımına önemli yatırımlar yapan sahipler için doğal bir devam modeli olmasıydı.

Ancak nihayetinde C128, kendisini ve 8-bit neslinin geri kalanını neredeyse her açıdan geride bırakan yeni 16/32-bit sistemlerle rekabet edemedi. C128(D/DCR) 1989'da durdurulduğunda , Amiga'nın üst düzey pazarlama imajını korumak için C128D'nin birkaç yüz dolara daha ucuza satmak zorunda kalmasına rağmen, üretiminin Amiga 500 kadar pahalı olduğu bildirildi. .

Bil Herd , C128'in tasarım hedeflerinin başlangıçta C64 ile %100 uyumluluk içermediğini belirtti. Plus/4'ün tanıtımında, C64 için yazdığı eğitim yazılım paketinin Commodore'un yeni bilgisayarında çalışmayacağı için hayal kırıklığına uğrayan bir kadın, Herd'e yaklaştıktan sonra, ancak Commodore'un pazarlama departmanı bunu öğrendiğinde, her zaman bir tür uyumluluk amaçlandı. , bağımsız olarak tam uyumluluğu duyurdular. C64'ün Z80 kartuşunu desteklemek, C128'in kartuş bağlantı noktasına ek güç sağlaması anlamına geleceğinden, Sürü, 128'in bir Z80 işlemcisinin dahil edilmesinin nedenini bu "%100 uyumluluk" iddiasını sağlamak olarak gösterdi. Ayrıca VDC video çipi ve Z80'in makinenin tasarımı sırasında sorun kaynakları olduğunu belirtti. Herd, "C128'in sadece bir yıl kadar satılmasını bekliyordum, birkaç milyonun iyi olacağını ve tabii ki Amiga'yı ve hatta C64'ü alt etmeyeceğini düşündük" diye ekledi. Commodore, 1986'da yeniden tasarlanan 64C'yi piyasaya sürerek 64'ün fiyatını ilk kez yükselttikten sonra, satılan her 64C'den elde ettiği kârın C128'den çok daha fazla olduğu bildirildi.

Özellikler

  • CPU'lar:
  • MMU: MOS Technology 8722 Bellek Yönetim Birimi, 8502/Z80 işlemci seçimini kontrol eder; ROM/RAM bankacılığı; ortak RAM alanları; sıfır sayfa ve yığının yer değiştirmesi
  • RAM: 128 KB sistem RAM'i, 2 KB 4 bit ayrılmış renkli RAM (VIC-II E için), 16 KB veya 64 KB ayrılmış video RAM'i (VDC için), 512 KB'ye kadar REU genişletme RAM'i
  • ROM: 72KB
    • 28 KB TEMEL 7.0
    • 4 KB MLM
    • 8 KB C128 KERNAL
    • 4 KB ekran düzenleyici
    • 4 KB Z80 BIOS
    • 16 KB C64 ROM: ≈9 KB C64 TEMEL 2.0 + ≈7 KB C64 KERNAL
    • 4 KB C64 (veya uluslararası) karakter üreteci
    • 4 KB C128 (veya ulusal) karakter üreteci
    • 32 KB Dahili Fonksiyon ROM'u (isteğe bağlı: anakart soketine yerleştirmek için)
    • 32 KB Harici Fonksiyon ROM'u (opsiyonel: REU soketine yerleştirmek için)
  • Video:
    • 40 sütunlu kompozit video için MOS 8564/8566 VIC-II E (NTSC/PAL) ( istenirse monitör yerine TV seti kullanılabilir)
      • Bellek eşlemeli G/Ç aracılığıyla doğrudan kayıt erişimi
      • Metin modu: 40×25, 16 renk
      • Grafik modları: 160×200, 320×200
      • 8 donanım sprite
      • 2 KB ayrılmış 4 bit renkli RAM, aksi takdirde ana belleği video RAM olarak kullanır
    • IBM PC CGA monitörleriyle uyumlu 80 sütunlu dijital RGB I bileşen videosu için MOS 8563 VDC (veya C128DCR'de 8568 ) , kompozit video monitörlerinde monokrom görüntüleme de mümkündür; TV setleriyle yalnızca sette anten konektörüne ek olarak SCART ve/veya temel bant video giriş yuvaları olduğunda kullanılabilir. SCART aracılığıyla renk, temel bant video girişi aracılığıyla yalnızca monokrom mümkündür.
      • Dolaylı kayıt erişimi (adres kaydı, eşlenen bellekteki veri kaydı)
      • Metin modu: Tamamen programlanabilir, tipik olarak 80×25 veya 80x50, 16 RGBI rengi (VIC-II ile aynı palet değil)
      • Grafik modları: Tamamen programlanabilir, tipik modlar 320x200, 640×200 ve 640×400'dür (geçmeli).
      • 16 KB ayrılmış video RAM (C128DCR'de 64 KB standart, C128/C128D 64 KB'ye yükseltilebilir), CPU tarafından yalnızca çift dolaylı yöntemle erişilebilir (adres kaydı, VDC'deki veri kaydı, bunlar da adres kaydı aracılığıyla adreslenir) , eşlenen bellekteki veri kaydı)
      • Sınırlı blitter işlevi
  • Ses:
  • G/Ç bağlantı noktaları:
    • Yüzde 100 uyumluluğa sahip tüm Commodore 64 bağlantı noktalarının yanı sıra aşağıdakiler:
    • Seri veri yolunda daha yüksek "patlama modu" hızı mümkündür
    • Genişletme portu daha esnek bir şekilde programlanabilir
    • RGBI video çıkışı ( DE9 - konektör ) mantıksal olarak IBM PC CGA konektörüne benzer , ancak ek bir monokrom bileşik sinyale sahiptir. Bu eklenen sinyal, bağlantı kablosunun bir ucundaki pim 7'yi fişten çıkararak giderilebilen belirli CGA monitörleriyle küçük bir uyumsuzluğa neden olur.
    • Harici klavye girişi ( DB25 - konektör) (yalnızca C128D(CR))

Ayrıca bakınız

Notlar

Referanslar

bibliyografya

  • Greenley, Larry, et al. (1986). Commodore 128 Programcı Başvuru Kılavuzu . Bantam Bilgisayar Kitapları/Commodore Yayınları. ISBN  0-553-34378-5 .
  • Gerits, K.; Schieb, J.; Thrun, F. (1986). Commodore 128 Dahili . 2. baskı. Grand Rapids, Michigan: Abacus Software, Inc. ISBN  0-916439-42-9 . Orijinal Almanca baskı (1985), Düsseldorf, Batı Almanya: Data Becker GmbH & Co. KG.
  • Simmonds, Jr., Thomas; Borden, Jim (Eylül 1986). "Anlık Veri Bildirimleri" . Koş . 33. s. 82-84.

Dış bağlantılar