Commodore sayı 71, sayfa 11

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 11

İşin en güzel yanı, bir adreste bulunan rutinin nasıl çalıştığını bilmek zorunda olmamanız. Bu rutinleri belli adreslere yerleştirilmiş kara kutular olarak düşünebilirsiniz. Bu kara kutuların sağ üst ve sol alt kenarlarında birer boşluk bulunur. Sağdaki boşluğa çilek koyduğunuzda soldaki boşluktan çilek suyu çıkaran bir makinenin asıl işi yapan kısmı da bir kara kutudur. Nasıl çalıştığını hiç merak etmezsiniz, ama her canınız istediğinde çilek suyu içebilirsiniz. En iyisi ilk kara kutucuğumuzla işe başlayalım. Makine dili de olsa, BASIC de olsa her türlü programı kullanılır kılan en önemli şeylerden biri ekran düzenini iyi yapmaktır. İyi bir ekran düzeni yapabilmek için ise bol bol PRINT kullanmanız gerekir. Tabii ki bu yalnızca BASIC kullanıcıları için geçerlidir. Makine dili kullanıcıları yüzlerce döngü kurup, aralarda harfleri teker teker basacak olan JSR $FFD2'leri kullanmak zorundadır. Daha doğrusu kullanmak zorundaydı. Çünkü ROM'da $AB1E'de bulunan rutinden haberleri yoktu:

1. $AB1E; Karakter grubu yazdırma:

Eğer ekrana bir cümle yazdıracaksanız, cümlenin uzunluğunu Y'de tutup, cümleyi harf harf ekrana yazdırabilirsiniz. Ama bunun yerine cümleyi ASCII kodu olarak belleğin bir yerine (mesela $C100) yazıp sonuna bir adet $00 ekleyebilirsiniz. Daha sonra bu adresin alçak değerlikli baytını A'ya, yüksek değerlikli baytını da Y'ye yerleştirip sıçrarsanız, $00 baytının olduğu adrese kadar olan tüm harfler otomatik olarak ekranda kursor'un bulunduğu yere yazılacaktır.

PROGRAM 1: .C000 LDA 15$00 Ldy İsr $ABİE Rts $C100'da bulunan mesajı ekrana yazan program. Mesaj $00 işle bit- melidir ve 255 bayttan kısa olmalı- dır. Bu sayede bütün yazılarınızı tek seferde, zahmetsizce yazabilirsiniz ekrana.

Eğer ekran temizleme, renk değiştirme ya da kursor yukarı, aşağı gibi kodları da kullanacaksanız, yazının ASCII kodlarını hesaplamak oldukça zahmetli olabilir. Ama bu işi de BASIC'e yaptırmanın kolay yolu var. İlk olarak "7DOWN COMMODORE DERGİSİ" gibi bir satır yazın ve RETURN'e basın (.. içinde yazılı olanlar gerekli tuşa basılarak yazılacaktır. Aynen yazmayın). Daha sonra bir monitör programı çalıştırın ve Tablo 1'de altı çizili adreslerin değerini gerekli adrese transfer edin. 256 baytı geçmediği sürece bu işlemi istediğiniz kadar tekrar edin. Tüm yazının sonuna da $00'ı ekleyin. Eğer bir bloktan uzun yazıları bu yöntemle yazdırmaya kalkarsanız bilgisayar kilitlenir. Ama her zaman yazılarınızı ikiye bölüp ayrı ayrı yazdırma şansınız bulunur. Bu arada belirtmeden geçemeyeceğim bir nokta var: Yazıda $0D karakterini kullanmadığınız sürece aynı satırda kalırsınız.

TABLO-İ:

0801: 22 08 OA 00 22 93 11 0809: 1111111111 1143 4F 0811: 4D 4D 4F 44 4F 52 45 20 0819: 44 45 52 47 49 53 49 22 0821: 00 00 00

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