Bu sayfadaki yazılar
Sayfanın metni
Sayfa 56
128 Ne Kadar uyumlu?
Uyum sözcüğü her zaman Commodore için bir albeni unsuru olmuştur. Bu nedenle, C-128'in C-64 ile gerçekten tam uyumlu olup olmadığı, küçük de olsa bir şüphe uyandırmaktadır. Test sırasında, bir kilit üzerinden doğrudan ya da endirekt olarak işletim sistemine bulaşan ya da C-64 olmayan bir makineyi çalışmaz hale getirecek çeşitli genel özellikler gösteren birçok program denendi. İlk deneme Hypra-Load ile yapıldı. Programın birkaç kere çalıştırılması, 1541 ile bağlantıda hiçbir sorun çıkmadığını gösterdi. Bu da, değiştirilmiş taşıt rutinlerine sahip programların tümünün herhangi bir sorun çıkarmadan işlev görebileceğini gösterdi.
Ortak RAM alanının büyüklüğü BK 11x16K
Ortak alanın konumu 00 ortak olmayan alan 01 bellek başlangıcı 40 bellek sonu 14 başlangıç ve son 00 Block 1 01 Block 2
10 Block 3 14 Block 4
Şekil 3. MMU'nun RAM konfigürasyon sicili
Commodore 128'in içine bir göz attığımızda, aynı taşıt yapı elemanlarının kullanıldığı görülüyor. Aynı zamanda, C-128'in C-64 modundaki hızı C-64'ün aynı, dolayısıyla burada da bir sorun çıkması beklenemez. İkinci deneme, illegal opkodları yoğun olarak kullanan bir kopya programıyla yapıldı. İşlemcinin komut seti, opkod olarak adlandırılıyor. İllegal opkodlar ise, üreticinin öngörmemiş olduğu komutlar. Fakat gerçekte bunlardan bazıları C-64'te de bir şeyleri etkileyebiliyorlar. Ay-
rıca bazı programlar bunları kullanıyor. Dolayısıyla 8502 işlemcisinin, 6502'de tanımlanmamış bu opkodları kullanması mümkün olabilmekte. Burada da herhangi bir sorun çıkmıyor. Diğer tüm kilitlenmiş (veya kilitlenmemiş) disket programları da herhangi bir sorun çıkarmaksızın yüklenebiliyor ve kullanılabiliyor. Test sırasında yakından tanıdığımız 1541 disket sürücü kullanıldı. Daha sonraki modelimiz 1571'in neler yaptığı ileride yayınlayacağımız yazılarda anlatılacak.
57
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 57
Testin diğer aşamalarında Ghostbusters ve Pit Stop II gibi oyunlar denendi. Burada da sonuç açık ve net: Gerek grafik, gerekse müzik, C-64'tekiyle tam bir uyum içinde. Commodore 128'e teyp (datasette) de bağlanabildiği için, programın bir sonraki aşamasını kasette bulunan programlar oluşturuyordu: Bazıları turbo yükleyici ve autostart'la donatılmış oyunlar, aynen disketteki programlar gibi hiçbir sorun çıkarmaksızın çalıştı.
Son ve en hassas deneme, expansion porta takılan kartuşlarla gerçekleştirildi. Burada da, örneğin ne Soccer'de, ne de GBasic'te, hiçbir sorun çıkmadı. Özellikle, kendi içinde de bir Bank-switching-Elektronik daha barındıran, yani C-128'in kendisi gibi, iki bellek elemanını sırayla açıp kapatan GBasic modülü, Commodore 128'in, C-64 modunda Commodore 64 ile software açısından tümüyle uyumlu olduğunun son kanıtı oldu. Turbo Access veya Speeddos gibi Hardware ekleri bakımından bu uyumluluğun ne kadar gerçekleştiği henüz pek açık değil. Fakat en azından kesin olarak bileceğimiz bir şey, bu eklerin platinlerinin değiştirilmesinin gerekliliği. Çünkü C-128'de Kernal ve Basic, C-64'teki gibi her biri 8'er KByte'lık iki ROM'da değil, 16 KByte'lık tek bir ROM'da bulunuyor. Bu uyum testinin sonucu şu: 1541 disket sürücüsüyle birlikte bir C-64'e sahip olan bir kimse rahatça bunu satabilir ve bir C-128 alabilir. Bu test sırasında denenmemiş hiçbir program türü kalmadı. Hatta bu denemelerde özellikle işletim sisteminde oradan oraya atlayan programlar kullanıldı. Hiçbirinde bir aksaklık olmadı. Commodore 128, Commodore 64 ile joystick girişleri açısından bile tam uyumlu.
Süper-BASIC 7.0
C-128'in ve C-128D'nin en güçlü yönlerinden biri şüphesiz kendini Basic çeviricisinde gösteriyor. BASIC 7.0, çeşitli Basic versiyonlarının (C 64-teki 2.0; C-16 ve Plus 4'teki 3.5; CBM 80xx'teki 4.0 gibi) tüm komut ve fonksiyonlarını içeriyor. Böylece DRAW, BOX veya CIRCLE gibi çok kullanışlı grafik komutlarının yanısıra bir sürü disket komutu da kullanıma amade oluyor. Hepsi bu kadar da değil. BASIC 7.0, ayrıca sprite'ların yönetimine ve synthesizer elemanı SID'ın kolayca programlanmasına yarayan bir dizi özel komut içeriyor. Basic 2.0'ınkiler dışında kalan komutlar ve fonksiyonlar Tablo 1.'de veriliyor. Bu tabloya kısaca bir göz atmak bile, Basic programlamada yeni bir boyutun varlığını görmeye yetiyor. Sayısız DATA'lar ve karmaşıklığa neden olan GOTO'lar, bu Basic ile artık geçmişin malı oldular. PRINT USING yardımıyla formatlanmış sayı çıkışı, joystick, ışık kalemi (light-pen) ve paddle kullanımına yönelik komutlar kolayca anlaşılabiliyor. WINDOW komutu yardımıyla, içine tüm PRINT ve INPUT komutları girilebilen bir ekran penceresi tanımlanabiliyor. SLEEP adlı komutla, 128 verilen süre kadar “uyutulabiliyor”. Örneğin, “SLEEP 5“ komutu, programı beş saniye durduruyor. Böylece program akışında önemli duraklamalara neden olan boş FOR...NEXT... döngüleriyle uğraşmaktan kurtulunuyor. Bu yolla bir saniye ila 18 saat arasındaki süreler programlanabiliyor. Tabii burada sorulacak olan şey, program sırasında kimin bilgisayarını bir dakikadan uzun süre durdurmak isteyeceği. Dikkati çeken iki komut daha var: SLOW ve FAST. Bu iki komut aracılığıyla, C-128, 1 MHz (SLOW) veya 2 MHz ile çalıştırılabiliyor. SLOW'a geçildiğinde bilgisayar aynen C-64'te olduğu gibi 1 MHz ile çalışıyor. Aslında programlar, değişkenler ve Basic işletim sistemi için farklı bellek bankalarının varlığı nedeniyle karmaşıklaşan bellek yönetimi, C-128 Basic'inin C-64 Basic'ine göre biraz daha yavaş olmasını sağlıyor. Fakat bu, daha önce de belirtildiği gibi, çok daha geniş olan komut seti nedeniyle göze alınabilecek bir dezavantaj, ayrıca istenirse işletim hızı FAST komutuyla tam iki katına artırılabiliyor. FAST modunun sağladığı avantajlar, daha önce anlatılmış olan bazı dezavantajlarla birlikte ele alınmalı. Yeniden Basic'e dönelim ve sevindirici bazı özellikleri inceleyelim. BASIC 7.0'daki bir dizi komut, programlamada oldukça büyük kolaylıklar sağlıyor. AUTO program girilirken, satır numaralarını otomatik olarak veriyor. TRON ile bir programın denenme aşamasında bir Trace Fonksiyonu harekete geçirilebiliyor. Böylece ekranda o sırada işlenmiş Basic satırlarının numaraları görüntülenebiliyor. Bu da özellikle program mantığındaki hataların tespitinde işe yarıyor. Yanlış konmuş bir IF sorusu bu özellik sayesinde kolayca belirlenebiliyor; çünkü programın içinde de kullanılabiliyor. Programın “şüpheli” bölümünün başına TRON komutu konuyor, bu bölümün sonunda Trace fonksiyonu TROFF komutuyla işletim dışı bırakılıyor.
RENUMBER komutu, programın türünün veya çeşitli bölümlerinin numarasızlaştırılmasına yarıyor. RENUMBER, yakından tanıdığımız Simons' Basic'te hem GOTO, hem de GOSUB adreslerini değiştirirken (yeni bir sorunu bir yardımcı gibi gösterirken), BASIC 7.0, GOTO, GOSUB, THEN, ELSE, RESTORE ve RESUME'nin ardındaki tüm satır numaralarını otomatik olarak düzeltiyor ve hatta bunu bir hata bulma rutininde özel EL değişkeni yardımıyla hata satırlarının aranması sırasında yapıyor. Böylece BASIC 7.0'ın yeni ve enteresan bir özelliğine geldik.