Commodore sayı 13, sayfa 55
Sayfanın metni

Sayfa 55

Bilgisayarın bilgisayar olmasını sağlayan en önemli faktör bilgilerin eksiksiz ve sorunsuz bir program olarak çalışmasını sağlayan yazılımıdır. İşletim sistemleri bilgisayar adı verilen elektronik kütlenin ne yapması, nasıl yapması gerektiğini, o kütlenin anlayacağı dilde anlatan programlardır. İşletim sistemlerinin gelişmesini ve yaygınlaşmasını sağlayan mikro işlemcilerin en büyük özelliği, kendilerine özgü dilin kolay anlaşılabilir ve programlanabilir olmasıdır. C-64'ün kullandığı 6502 uyumlu 6510 bu alanda en popüler olanıdır. C-64 işletim sistemi aslında yeni bir sistem değildir. Yeni C-64'ten önce tasarlanmış, denenmiş bir sistemdir. Commodore firmasının C-64'ten önce çıkardığı ve C-64'ten oldukça basit bir yapıya sahip VIC-20 tasarlanırken KERNAL adı verilen sistem kullanıldı. C-64 gelişmiş bir model olmasına karşılık bu sistemi olduğu gibi kullandı. Bu nasıl gerçekleşti? Kernal sisteminde bir işletim sisteminin en önemli rutinleri, sıçrama tablosu (JUMP TABLE) olarak adlandırılan tabloyla adreslendirildi. Bu tablo $FF81'den $FFF6 adresine kadar uzanır. Böylece yeni bir model tasarlanırken gelişme sadece bu işlevleri yerine getiren rutinde ve tablodaki adreslerde olmakta, tablonun konumu aynı kalmakta, bu da yeni bir tasarımı oldukça kolaylaştırmaktadır. Bunun örneğini C-16 ve Plus-4 Kernal sisteminde de görebiliriz. Buna ilginç bir örnek VIC-20, C-64, C-16 ve Plus-4 program-

Seyfettin ÇANKAYA — larının çoğunun, çok az bir değişiklikle türünde kullanılabilir olmasıdır.

Kernal Rutinleri Ne

İşe Yarar?

Kernal tanıtılırken bir işletim sistemin en temel işlevlerini yerine getirir demiştik. Bu işlevler tüm sistemin ilk açılışından kapanışına kadarki sürede kontrolü sağlamak; Disk Drive, Dataset, Printer, Klavye, Video devresi ve RS-232 portuna bilgi gönderme, bilgi alma gibi işlemlerdir. Bütün bu işlevler sözünü ettiğimiz Kernal rutinleri ile belirlenmiştir. Bu yazı dizisinde tüm Kernal rutinlerini inceleyeceğiz ve bu rutinler yardımıyla çalışan makine dili kullanılarak yazılan programlardan örnekler vereceğiz. Bu nedenle temel makine dili bilgisi gerekeceğinden, dergide çıkan bu konuya ilişkin yazıları incelemenizi öneririz.

C-64 Power-On

Kernal İşbaşında!..

C-64 ilk açıldığında ne olur dersiniz? Bunu Kernal içindeki bilgilerden öğrenelim. Kernal hexadecimal olarak $E000-$FFFF aralığında yer alır. Bunun nedeni C-64'ün işlemcisi olan 6510'un ilk çalışma adresini $FFFC'deki bellekten alıyor olmasıdır. Şimdi bu adreste ne var öğrenelim.

$FFFC — 65532 olduğunu hatırlayarak

PRINT PEEK 256* PEEK(65533)

Sonuç 64738 bulunur. Bu değer RESET vektörünü gösterir. Örnek olarak biz SYS 64738 yaptığımızda C-64 sanki yeni açılıyormuş gibi davranır. Bu adres eşittir. Şimdi bu adresten incelememize başlayalım.

RE FF FiZES FCEP FZEH FOEC

ZEI

“|

in > mmo TM CÜ

DT fu

Ti Ti m

SÜ

mın Ok PAZAR

TT m Pod zn Doli

CA

ulu Dn KA no KADA)

nı — 7 da

nın DD m

Lan) Zi

Yukarıdaki JSR $FDD2 ile çalışan altprogram kartuş bağlantısı olup olmadığını test etmektedir. Bu işlemi de $FD10 adresinde yer alan şifresinin kontrolü ile sağlamakta, kartuş bağlantısı varsa JMP işlemiyle kartuştaki ROM üstünden bu adrese sıçramaktadır. Bazı programların reset ile tekrar çalışması da bu adresteki kodların CBM80 olmasıdır. Bu bağlantı olmadığı durumda JSR $FDA3 ile giriş/çıkış devrelerinin çalışması, JSR $FD50 ile RAM testi ve Basic başlangıç adresi, ekran adresinin belirlenmesi, JSR $FD15 ile giriş/çıkış vektörlerinin adreslere atanması, JSR $FF5B ile video kontrol devresinin çalışması sağlanır. Bu işlemlerin sonunda JMP ($A000) ile Basic ROM devreye girerek Basic çalışmaya geçilir.

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