Kursumuıun şu ana kadar olan & bölümünde C-64'ün kullandığı 6510 makine dilinin hemen hemen tüm ko- mutları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ı ince- lemeye başlayacağız. Eğer makine dili ile biraz ilgilen- miş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 ka- dar değildir. Kernal rutinlerinin bir- çoğu çok yönlü kullanılmak üzere ta- sarlanmışlardır. Genelde bir kernal rutininin kulla- nimi ş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. Hatta sorulur ve önlem alınır. Şimdi sırayla bunları ele alalım. Bazı rutinler için gerekli informas- yanlar ancak bazı diğer gerekli rutin- lerin çağrılmasıyla elde edilebilir. Eğer bu diğer alt programlar çağrıl- mazsa islenen rutin çalışmaz. Eğer rutin Y-Registerinde bir değer istiyor- sa 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 suret- le JSR komutu ile gerçekleşir. Bilgi- sayarımızın ROM'unda yeralan ru- tinlerdeki son komut RTS”'dir. Bu şe- kilde rutindeki komutlar sırayla yo- rumlandıktan sonra ana programa geri dönüş sağlanmış olur. Eğer ru- tinler işlerken bir hata ortaya çıkar- sa rutinden geri dönüldüğünde Carry 44 ASSEMBLER-9 Anıl Gül Bit'i *1” değerini almış olur. Bu ne- denle Carry Bit'ini inceleyerek orta- ya çıkan bir hata hakkında bilgi sa- hibi olabilir ve gerekli önlemleri ala- bilirsiniz. Bu gibi durumlarda akü- mülatörde hatanın lürünü belirten bir sayı yeralır. Görüldüğü gibi makine dilinde hatta mesajları Basic'de oldu- Bu gibi doğrudan doğruya ekrana gel- mez. Resim 1'de hata numaraları ve bunlara karşılık gelen mesajlar yeral- maktadır. Hangi rutinde hangi hata mesajı ile karşılaşabilineceği her se- ferinde helirtilecektir. Şimdi tekrar $FFD?'deki rutinimi- ze dönelim. Bu rutini kısaca şu şekil- de özetleyebiliriz: İsim: CHORUT Amaç: Bir harlin dışarı verilmesi Adresi: $EFD2 veya desilam 65490 Hazırlık: (CHKOUT, OPEN) Akümülatördeki harf Hata: O Register: Akümülatör Eğer bu rutine daha önce kullan- mışsanız büyük bir ihtimalle CHKO- UT ve ÖOPEN hazırlıklarını yapma- mışsınızdır. Bu hazırlıklar yapılma- dan rutinin çalışmayacağını daha ön- ce belirtmiştik. Burada ise bilgisaya- rımız ekranı, çıkış kanalı olarak da- ha önce belirttiği için OPEN rutini- ne gereksinim duymuyoruz. Şimdi in- celeyeceğimiz bir örnekte yukarıda anlatılanları uygulayacağız. Öncelikle Ex-mon'u veya sahip ol- duğunuz başka bir monitör progra- miını yükleyin. Şimdi hafızanın uygun bir köşesine istediğimiz metni yazma- liyız. Ex-mon'da bu işlem şu şekilde gerçekleşir. K 6000 komutunu girin, Ekrana