C-64 KLAVYESİNDE BİR GEZİNTİ

Yalnızca bir oyun makinesinin çok ötesinde potansiyele sahip. Değerlendirmek de biz kullanıcılara düşüyor. Bunun için de klavyeyi ve tuşların fonksiyonlarını iyi tanımamız gerekiyor.

“| PERSONAL COMPUTER

Birçoklarının gözünde C-64 bir oyun makinesinden öte bir şey değil. Ama oyun oynamak için bile olsa, komutları yükleyip çalıştırmanız gerekiyor ve birçok oyunda klavye aracılığıyla bazı direktifler vermeniz gerekiyor. Onun için burada klavyedeki 66 tuşu ve neler yapabildiklerini inceleyeceğiz. Klavyeye ilk baktığınızda, her tuşun üzerinde birden fazla sembol olduğu dikkatinizi çekecek. Bazıları, harf tuşları, üzerinde üçer sembol vardır. Bilgisayarı açtığınızda, esas sembolü yalnızca o tuşa basarak, sağdaki sembolü o tuşla birlikte shift tuşuna basarak ve soldaki sembolü de o tuşla birlikte üzerinde CBM logosu olan tuşa basarak elde edebilirsiniz. Eğer CBM harflerini başka hiçbir tuşa basmadan yazar ve shift tuşunu basılı tutup logo tuşuna da basarsanız, küçük harfle yazmaya başlayacaktır. CBM o zaman cbm olur. Küçük harf modunda harfleri ancak tuşla birlikte shift tuşuna basarak büyük yazabiliriz. Bu modda tuşun sağ tarafındaki sembolleri artık yazamayız. Büyük harf modu yerine, büyük/küçük harf moduna geçiş bir program içinde, POKE 53272,23 ya da PRINT CHR$(14) komutu ile sağlanabilir. Yalnızca büyük harf moduna dönmek istiyorsak, POKE 53272,21 ya da PRINT CHR$(142) yazmamız gerekir. Ama insanların shift ile birlikte logo tuşuna basıp yalnızca büyük harf moduna dönmelerini nasıl önleyeceğiz diye sorabilirsiniz. Bu hastalığın ilacı da PRINT CHR$(8) komutudur. Bu POKE ve PRINT komutlarını girebilmek için, bilgisayarın verilen direktifi kabul edip uygulamasını sağlayacak RETURN tuşuna basmalıyız. Bu RETURN tuşu klavyedeki belki de en önemli tuştur. O olmaksızın, bilgisayarın bir Basic direktifi almasını sağlayamayız. Klavye buffer'ına bir RETURN direktifi koymak yeterli olacaktır diye düşünebilirsiniz. Peki bilgisayara bunu yapmasını nasıl söyleyeceğiz? RETURN tuşuna basarak ya da aynı şeyi yapmak üzere bir program satırı girerek. Peki bir program satırı girmenin tek yolu nedir? Evet, yine RETURN tuşuna basmak. Üzerinde CONTROL yazan diğer bir tuş da dikkatinizi çekmiş olmalı. İlk bakışta bu tuş göze daha önemli gibi görünüyor ama komutları girmekten farklı işlevleri var. Bunlardan birisi klavye ile yazdığımız harflerin renklerini değiştirmek. CONTROL ve 1'e basarsak harflerin rengi siyah, CONTROL ve 2'ye basarsak kırmızı olacaktır. Sayı tuşlarında belirtilenlerin dışındaki renkler logo tuşuyla rakamlara basarak elde edilebilir. Bu renkleri daha iyi görmek için zıt print modunu kullanmak isteyebiliriz. Bunda karakteri oluşturan küçük noktaların açık, arka planı oluşturanların kapalı olması yerine tam tersi gerçekleşiyor. Bu değişikliği yapmanın çeşitli yolları var. Yollardan birisi CONTROL tuşuna basılı tutup 9 rakamına basmaktır. Sonra bir de space bar'a basarsanız renk değişikliği iyice bariz olur. Bu moddan çıkmak isterseniz, CONTROL'ü basılı tutup 0 rakamına basabilirsiniz. Aynı işlemleri program içinden yapmak isterseniz, bu moda geçmek için PRINT CHR$(18) ve çıkmak için de PRINT CHR$(146) komutlarını kullanmanız gerekir. CONTROL Tuşu daha başka neler yapar? Bir program listesi ekranda çıkarken, ona basarak çıkış hızını düşürebilirsiniz. Ayrıca bir programdaki varlığı 653 sayılı bellek kütüğünün içeriklerine bakarak anlaşılabilir. C-64'te tuşları depolamakta kullanılan iki ana bellek kütüğü vardır. Bunlar 653 ve 197. 197'ye ayrıntılı olarak daha sonra eğileceğiz ama 653'e dönersek şöyle bir program satırı yazabiliriz:

10 PEEK(653);: GOTO 10

Run edildiğinde, 0 sayısı tekrar tekrar görünecektir. Bu da demektir ki, bu kütüğün tanıdığı tuşlardan hiçbirisine o sırada basılmamaktadır. Ama shift tuşuna basarsanız çıkan sayı 1, logo tuşuna basarsanız 2 ve CONTROL tuşuna basarsanız 4 olacaktır. Bu tuşların değişik kombinasyonlarını deneyip ne olacağına bakabilirsiniz. Sağ taraftaki RESTORE tuşu bazen CONTROL tuşu ile birlikte bilgisayarı reset etmekten başka pek bir işe yaramaz. Ayrıca bunu yapmasını program içinden önlemenin de bir yolu vardır. POKE 808,225 bu işi halledecektir ama onu basit bir programın içinden yapıyorsanız, durumu düzeltmek için POKE 808,225 kullanmayı unutmayın. Programdan çıkış için bir yol hazırlamayı unutmuş olabilirsiniz ve o zaman da tek çareniz bilgisayarı açıp kapamak olacaktır. Programlara dalmak için genellikle RUN/STOP tuşu kullanılır ama başka kullanımları da vardır. Bantta gelen ve yüklemek için shift ve RUN/STOP'a basmanız gereken programları biliyorsunuzdur. Bu yol ne yazık ki disketler için geçerli değil. Kütük 197'den daha önce söz etmiştik. Basılan değişen tuşları saptamak için 653'e benzer bir şekilde kullanılabilir. Daha önce sözünü ettiğimiz program satırında, 653 yerini 197'ye bırakırsa, programı run ettiğinizde 64 sayısının sürekli olarak belirdiğini göreceksiniz. Değişik tuşlara bastıkça sayı da değişecektir ve artık klavyenin sağ tarafındaki fonksiyon tuşlarını kullanmaya başlayabiliriz. F1 tuşuna basınca 4 değeri elde edilecektir. Tüm fonksiyon tuşları bu şekilde saptanabilir, ama her zaman olduğu gibi program içinden yapmanın yolu da vardır. Bu amaçla GET komutunu kullanmamız gerekecektir. Örneğin:

10 GET AS: IF ASİ THEN 10

Diğer fonksiyon tuşları (diğer dört değeri bulmak için shift kullanın, logo tuşu hiçbir şeyi değiştirmez) kendi CHR$ sayılarına sahiptirler. Sayılar, yukarıda verilen program satırı biraz değiştirilerek ve basılan tuşun ASCII değerini bulmak için bir değişken kullanılarak bulunabilir. Bu sayı yazılabilir ve işleyen bir programda tüm fonksiyon tuşları kolayca saptanabilir. Şimdi yeniden klavye buffer'larına dönüyoruz. Bu buffer denilen şey de neyin nesi? Bilgisayara bir şey yazdığınızda, daha sonra kullanılmak üzere bir yerde depolanması gerekir. C-64 ekrana bizim baktığımız gibi bakamaz. Ekran bellek mapped olsa da (yani ekranda görünen her şey bilgisayarın belleğinde bir yere kaydedilse de) 64'ün işletim sistemi her RETURN'e bastığınızda ve bir komut ya da program satırı girdiğinizde ekranı taramaz. Onun yerine kendi klavye buffer'ına bakar. Önde bir sayı varsa, ona program satırı muamelesi yapar ve hata kontrolü yapmaya falan kalkışmaz. Hata kontrolü C-64'ün tasarımcıları tarafından düşünülseydi fena olmazdı gibi geliyor bana. Basic programcılarını bir sürü uğraştan kurtarırdı bu. Eğer başlangıçta bir sayı yoksa, bilgisayar yazdığınızın hemen uygulanacak bir emir (statement) olduğunu düşünür ve değişik ROM rutinlerini kullanarak yapmaya ve size bir hata yapıp yapmadığınızı söylemeye çalışır. Örneğin basit bir sentaks hatası gibi. Yoksa komutu yerine getirir. Bu iç buffer'a direkt olarak ulaşmak pek mümkün değil ve tasarımcılar Allah'tan oynayabileceğimiz bir diğerini koymuşlar. Çok büyük değil, ama bir şeyler depolanıp ilginç sonuçlar alınabilir. Bunu yapmak için, bellekte nerede olduğunu bilmemiz gerekir. 631 sayılı yerde başlar ve yukarıya doğru devam eder. Nerede sona erdiğini bulmayı size bırakıyoruz. Bulabilmek için, bilgisayara bu buffer'a hangi cinsten kaç karakter koyduğumuzu söylememiz gerekir ve bu amaçla da bellek yeri 198'i kullanırız. Daha önce onu hangi tuşun basıldığını anlamak için kullanmıştık. Bir programda uygulamasını görmek istiyorsanız, aşağıdaki rutin herhangi bir nedenle programı return etmek istediğinizde işinize yarayacaktır: 1000 PRINT 1010 POKE 631,13:POKE 198,1:END

RETUI

SHIFT

ERSP

CRSR

Bu teknik için başka birçok uygulama alanı mevcut. Örneğin bir programı disketten yükleyebilir ve run edebilirsiniz. Bunun için klavye buffer'ında iki kartuş return'ü ve 198'e 2 ile POKE etmek gerekiyor. Başlangıçta POKE 631,13:POKE 632,13 kullanın. Doğallıkla, önceden ekrandaki her şeyin pozisyonunu da hesaplamanız gerekiyor! Görüldüğü gibi, C-64 yalnızca bir oyun makinesinin çok ötesinde potansiyele sahip. Değerlendirmek de biz kullanıcılara düşüyor!