Program Döküm Eki sayı 1, sayfa 8

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 8

İşte Commodore 64 için bulunan en yeni özellik. Bugüne kadar C64'ün yapamayacağı iddia edilen birçok şey, tüm bu iddialara karşılık yapıldı. Tıpkı bu programda olduğu gibi...

Bugüne kadar sprite'ların, ekranın sadece yazı yazılabilen kısımlarında görünebileceği öne sürülüyordu ve bunun aksini ispat etmek kimsenin aklına gelmiyordu. Ancak Holger Gehrmann isimli C64 meraklısı bir Alman çok kısa bir programla bunu yapmayı başardı ve bu özelliğin ilk kullanımları da kendini göstermeye başladı.

Hyperscreen çalışmaya başladığı zaman artık ekranın altında ve üstünde varolan boşlukları unutun! Bu yeni ekran kısımlarında yazı yazamamakla beraber, sprite'lar, bilinen eski kurallara uygun olarak buralarda gösterilebilmektedir. Şimdi isterseniz programımızın nasıl yazıldığını ve çalıştığını görelim.

Önce, hyperscreen adlı programı, bu sayımızda yayınladığımız Makine Dili Editörü (MDE) yardımı ile girin. Bu konu ile ilgili ayrıntılı bilgiyi MDE için verilen yazıda bulabilirsiniz. Programı diskete veya kasete kaydettikten sonra RUN STOP/RESTORE ile MDE'den çıkın. LOAD "HYPERSCREEN",8,1 veya LOAD "HYPERSCREEN" ile disketten veya kasetten programı hafızaya yükleyin. Yükleme bittikten sonra da NEW komutunu verin. Artık SYS 49152 komutunu verdiğinizde Hyperscreen çalışmaya başlayacaktır. Aniden alt ve üst boşlukların ortadan kalktığını göreceksiniz. (Ne yazık ki, sağ ve sol tarafların ortadan kaldırılmasının şu anda bilinen bir yöntemi yok). POKE 49209,27 verdiğinizde bu kısımlar yeniden ortaya çıkacak, POKE 49209,19 verdiğinizde ise yeniden kaybolacaklardır. LOAD ve SAVE işlemleri sırasında, kenarlar kısa bir süre için ortaya çıkarlar, ancak işlem bitince yok olurlar.

POKE 53281,sayı ile yazı ekranı ile birlikte yeni ekran kısımları da renk değiştirir. Eğer POKE 16383, sayı yaparsanız, yeni ekran kısımlarında verdiğiniz sayının ikilik sistemde oluşturduğu bit yapısına göre dikey çizgiler ortaya çıkacaktır. Bu çizgiler daima siyah olacaktır, bunu değiştirmek imkansızdır (kimbilir?).

Kimi okuyucularımızın, bu işlemin nasıl başarıldığını soracakları muhakkaktır. Bunu açıklamak için önce Interrupt tekniğini ve ekrandaki görüntünün nasıl oluştuğunu biraz açıklayalım. Bu konuları ve makine dilini bilen okurlarımız, Hyperscreen'in açıklamalı Assembler listesini okuyarak çalışma biçimini görebilirler.

Interrupt sözcüğü, İngilizce'de devam eden bir şeyi kesmek, rahatsız etmek anlamlarına gelir. Commodore 64 de çalışırken, saniyede 60 kere yaptığı işi bırakarak, belli bir programı işleme sokar. Daha sonra da eski işine kaldığı yerden devam eder. Ara-programın çalışması saniyenin 1/60'ından çok daha kısa sürdüğü için, normal işlemlerde hiç dikkati çekmez. Ancak bilinçli olarak bu ara-program değiştirilirse, programcının isteği doğrultusunda ve normal programdan bağımsız çalışan ikinci bir kısa program çalıştırılabilir. Normal ara-programı gösteren vektör $0314/$0315 (788/789) bulunur. Bu vektörü değiştirerek kendi ara-programımızı göstermesini sağlayabiliriz. Bu, ancak makine dilinde mümkündür.

Ekranın oluşması ise, bilgisayarın ekrana gönderdiği tarama ışınları ile olur. Tüm ekran saniyede 50 kere taranır. Herhangi bir zamanda ekranın hangi satırının tarandığı, C64'ün tüm grafik işlemlerini gerçekleştiren ünitesi VIC tarafından bilinir. Bu satırın numarası $D012'de (53266) bulunur ve kullanıma açıktır.

Ayrıca C64, istenirse belli bir satıra gelindiğinde bir Interrupt yaratabilmekte ve böylece programcının, ekranın belli

Klavyeyle gezinmek için ← ve → tuşları.