Commodore sayı 50, sayfa 44

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 44

Kursumuzun şu ana kadar olan 8 bölümünde C-64'ün kullandığı 6510 makine dilinin hemen hemen tüm komutlarını ele aldık. Bu sayıda ise öğrendiğimiz bu komutların ışığında bilgisayarımızın işletim sistemindeki (kernal) rutinlerin kullanımını incelemeye başlayacağız. Eğer makine dili ile biraz ilgilenmişseniz $FFD2 kernal rutinini büyük bir ihtimalle duymuşsunuzdur. “CHROUT” diye adlandırılan bu rutin kısaca ekrana yazı yazdırmaya yarar, fakat tüm işlevi sadece bu kadar değildir. Kernal rutinlerinin birçoğu çok yönlü kullanılmak üzere tasarlanmışlardır. Genelde bir kernal rutininin kullanımı şu üç adımda gerçekleşir. 1. Gerekli değerler akümülatöre veya uygun registere yüklenir. 2. Rutin çağrılır. 3. Hata sorulur ve önlem alınır. Şimdi sırayla bunları ele alalım. Bazı rutinler için gerekli informasyonlar ancak bazı diğer gerekli rutinlerin çağrılmasıyla elde edilebilir.

Anıl Gül

Bit'i “1” değerini almış olur. Bu nedenle Carry Bit'ini inceleyerek ortaya çıkan bir hata hakkında bilgi sahibi olabilir ve gerekli önlemleri alabilirsiniz. Bu gibi durumlarda akümülatörde hatanın türünü belirten bir sayı yer alır. Görüldüğü gibi makine dilinde hata mesajları Basic'de olduğu gibi doğrudan doğruya ekrana gelmez. Resim 1'de hata numaraları ve bunlara karşılık gelen mesajlar yer almaktadır. Hangi rutinde hangi hata mesajı ile karşılaşabilineceği her seferinde belirtilecektir. Şimdi tekrar $FFD2'deki rutinimize dönelim. Bu rutini kısaca şu şekilde özetleyebiliriz:

İsim: CHROUT Amaç: Bir harfin dışarı verilmesi Adresi: $FFD2 veya desimal 65490 Hazırlık: (CHKOUT, OPEN) Akümülatördeki harf Hata: 0 Register: Akümülatör

Eğer bu rutini daha önce kullan-

mışsanız büyük bir ihtimalle CHKO-

Eğer bu diğer alt programlar çağrılğ UT ve OPEN hazırlıklarını yapmamazsa istenen rutin çalışmaz.

rutin Y-Registerinde bir değer istiyorsa bu değer kesinlikle orada olmalıdır. Aksi takdirde rutin yine istenen işi yapmaz. Kursumuzda yeralacak tüm rutinler için gerekli açıklamalar yapılacaktır. İstenen rutinin çağrımı kesin suretle JSR komutu ile gerçekleşir. Bilgisayarımızın ROM'unda yeralan rutinlerdeki son komut RTS'dir. Bu şekilde rutindeki komutlar sırayla yorumlandıktan sonra ana programa geri dönüş sağlanmış olur. Eğer rutinler işlerken bir hata ortaya çıkarsa rutinden geri dönüldüğünde Carry mışsınızdır. Bu hazırlıklar yapılmadan rutinin çalışmayacağını daha önce belirtmiştik. Burada ise bilgisayarımız ekranı, çıkış kanalı olarak daha önce belirttiği için OPEN rutinine gereksinim duymuyoruz. Şimdi inceleyeceğimiz bir örnekte yukarıda anlatılanları uygulayacağız. Öncelikle Ex-mon'u veya sahip olduğunuz başka bir monitör programını yükleyin. Şimdi hafızanın uygun bir köşesine istediğimiz metni yazmalıyız. Ex-mon'da bu işlem şu şekilde gerçekleşir. K 6000 komutunu girin. Ekrana

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