Bu sayfadaki yazılar
Sayfanın metni
Sayfa 39
Yukarıda gördüğünüz açıklamalar COMMODORE 64'ün içinde bulunan elemanları, sinyalleri ve yürüyen işlemlerin önemli olanlarını anlatıyor. Şimdi ise bu ufak eleman ve sinyallerin bir bütün olarak nasıl bir işin üstesinden geldiklerini, bu arada hangisinin devreye girip ne kadar süre ile ne yaptığını ve sonuç olarak gözle görülür bir işlemin ortaya çıkışını göreceğiz. Bu anlatım sırasında da eleman adının yanında parantez içinde bir rakam bulabilirsiniz. Bu rakam yukarıda bahsettiğimiz gibi hâlâ elemanın fotoğrafımız üzerindeki yerini gösteriyor. Fonksiyonları en başından ele alalım ve konuya öyle yaklaşalım. Diyelim bilgisayarın ON/OFF düğmesini açtık, bilgisayarın içinde neler olmakta? İlk olarak bütün elemanlar şok geçirecek kadar çok akım çekerler. Tüm elemanların hayata geçebilmeleri için sakinleşmeleri beklenir. Bu yüzden hemen tüm elemanlara uygulanan RESET sinyali belli bir süre şase seviyesinde kalır. Bu sinyal bilhassa bilgisayarımızın beyni sayılan ana işlem ünitesinin uyanıp çalışır vaziyete gelebilmesi için hayati önem taşır. Sistemin bir parçası olan TİMER (25) devresi yalnız bu anda aktif olarak görev yapar. Yaptığı iş ise belli bir zaman (bilgisayarın içindeki voltaj seviyesi normal seviyesine ulaşıp tüm devreler aşırı akım çekme durumundan kurtulana kadar) beklemektir. Daha sonra tüm elemanları serbest bırakır, ana işlem ünitesi de bu elemanlara dahildir. Bilgisayarımız donanım olarak uyandı ve şu anda çalışabilecek durumda olan bir ana işlem ünitemiz var. Fakat o şimdi ne yapacak? Nereden başlayacak? İşte böyle bir durumda ana işlem ünitesinin içgüdüsel hareketinden söz edebiliriz. Ana işlem ünitesi RESET işlemine her defasında aynı şekilde başlaması gerektiğinden bu çip üretilirken içine sabit bir emir konur ve bu emir yalnızca böyle bir durumda kullanılır. COMMODORE 64'ümüzün ana işlem ünitesi 6502/6510 tipindedir ve bu aileye ait ana işlem ünitelerinin hepsinin standart başlama noktası $FFFC (65532)'deki göstergecin gösterdiği adrestir.
Gerek bu göstergeç, gerek onun gösterdiği adres, işletim sistemi ROM'unun (5) içindedir. KERNAL ROM'u da denilen bu bölgenin içindeki programlar kalıcı olduğu için buradaki program güvenilirlikle yürütülebilir. COMMODORE 64'te $FFFC'deki göstergeç 64738'deki RESET altprogramını göstermektedir. Bu altprogramı biz de dışarıdan çağırabiliriz. Bu işi SYS64738 yazarak yapabilirsiniz. Göreceksiniz alet ilk açılış durumuna dönecektir. İlk önce ana işlem birimi için hayati önemdeki işlemler yürütülür. Bunlar ana işlem ünitesinin çalışma modunu belirlemek ve içindeki yısonra ekran için ayrılmış olan hafıza bölgesi silinir. Burada RESET işleminin işletim sistemi ile ilgili kısmı bitmiştir. Daha sonra ana işlem ünitesi $A000 (40960)'da bulunan göstergeç yardımıyla BASIC-WARMSTART'a gider. (Burada ise bildiğimiz BASIC INTERPRETER ROM'u başlamaktadır.) Ana işlem ünitesi artık INTERPRETER (yorumlayıcı) döngüsüne girmiştir; artık bizden BASIC'te emir alabilir ve yürütebilir. Bilgisayarın bu duruma geldiğini şuradan anlarız: ekran görünür vaziyette açılmıştır ve açılış mesajı görünmektedir, CURSOR yanıp sönmektedir ve tuş takımından yazdıklarımızı alabilmektedir.
Commodore 64'ünüzü açtınız ve mavi zemin üzerinde alışageldiğiniz yazıların oluştuğunu gördünüz. Bu duruma gelmek için bilgisayarınızın içinde neler oldu, haberiniz var mı?
ve mavi zemin üzerinde alışageldiğiniz yazıların oluştuğunu gördünüz. Bu duruma yığın göstergecini sıfırlamaktır (aslında sıfırlamanın tam tersi yapılmakta, çünkü 6502/6510 ana işlem ünitesinin yığını yukarıdan aşağıya prensibiyle çalışmaktadır). Bundan sonra belli bir şifreye göre modül takılı olup olmadığı kontrol edilir ve modül varsa sistemin kontrolü modüldaki programa devredilir. (Merak edenler için belirtelim, bu şifre $8004'te CBM80 yazılı olmasıdır). Şayet modül yoksa diğer aktif elemanların inisyalizasyon işlemleri yapılır. Bu, şu demektir: Bazı sabit değerler CIA'lere (1,2), VIC'e (19) ve SID'e (20) yazılır ve belli bir çalışma disiplinine sokulurlar. Daha sonra yapılan işlem ise RESET sırasında en fazla zaman alan işlemdir. Bu işlem RAM'in (24) test edilmesi ve çalışma alanı olarak daimi ve kesiksiz ne kadar hafızanın bulunduğunun tespit edilmesidir. Bundan sonra ise RAM'in işletim sistemi tarafından kullanılacak bölgesi ROM'dan bazı değerlerin kopya edilmesiyle ilk açılış değerlerine getirilir. Bu işlemler yerine getirildikten
Artık bilgisayarımız uyanmış ve günlük yaşamına dönmüştür. Artık bizden emirler alabilir ve bunları uygulayabilir. Şimdi iş daha da ilginçleşiyor. Acaba bilgisayar bizim istediklerimizi yerine getirirken ara işlemler olarak bize göstermeden neler karıştırıyor? Diyelim ki CURSOR'umuz bir bölgede yanıp sönüyor. Ve biz bir tuşa bastık. CURSOR bastığımız tuşa ait karakteri yazarak bir ilerliyor. Tam detayları göz önünde tutulduğunda acaba bu olay nasıl gerçekleşiyor?.. Önce tuş takımını inceleyerek başlayalım. Tuş takımındaki her tuş elektriksel bir anahtar vazifesi görmektedir. Biz bir tuşa bastığımızda elektriksel devreyi kapatırız ve bilgisayar arabirim ünitesi yardımıyla o tuşa bastığımızı algılar. Bu sefer başka bir sorun çıkıyor. COMMODORE 64'ün üzerinde tamı tamına 66 tane tuş bulunmakta. Bu 66 tuşun bilgisayar tarafından algılanabilmesi için 66 hat artı bir adet de ortak şase sinyali için bir hat, yani toplam 67 hat gerekiyor. Tabii üretim sırasında
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 38
Aynı zamanda işletim sistemini oluşturan bu üç ROM'un görevi, sistemin tüm elemanlarıyla kullanıcının bağını kurmak ve kullanıcının emirlerini mümkün olan en az sıkıntıyı vererek (Makine dili yerine BASIC'te programlama) yürütmektir.
SERİ KOMÜNİKASYON: Bu haberleşme tipinde COMMODORE 64 bilgi alışverişi için seri port'u kullanır. Bu port'un özelliği haberleşme için yalnızca tek hat içermesidir. Yani bir Byte'lık bilgi gönderecek olursak bu bilgi bitlerine ayrılacak ve öyle gönderilecektir. Görüldüğü gibi bu işlem daha fazla zamana mal oluyor. Fakat bunun yanında avantaj olarak sekiz hat yerine tek hat kullanmamızı gösterebiliriz.
SID (20) (Sound Interface Device - Müzik çipi): Her türlü sesi üretme becerisine sahiptir. Yani COMMODORE 64'ümüz komple bir ses synthesizer'ı içermektedir.
TIMER (25): Bu eleman, aleti ilk açtığımız zamanki kargaşayı düzenliyor. Bilgisayarın tüm elemanları yeni uykudan kalktığı için bunların tümüyle uyanmaları için belli bir süre beklemek gerekiyor. Yoksa uyanır uyanmaz bu elemanlardan bir iş beklersek büyük ihtimalle işlerini karıştıracak ve aletimiz genelde uyanamayacaktır. Daha evvel de belirttiğimiz gibi bilgisayarın doğru olarak çalışması için kusursuz bir uyum içinde olması gerekmektedir.
TUŞ TAKIMI: Şayet her tuşa ayrı bir hat çekip bunları bilgisayarın plaketinde arabirimlere verseydik; 67 hatta ve 67 bitlik arabirim kanalına ihtiyacımız olacaktı. Böyle bir yapı hem gereksiz, hem de pahalı olduğu için tuşlar matris biçiminde bağlanmıştır. Böylece 16 hat ve arabirim kanalıyla aynı iş görülür. Bu bağlantının detaylarını şekilde görmektesiniz.
USER-PORT (3): Burası seri-port gibi çevresel birimlerin kontrolünü sağladığı gibi çeşitli elektriksel kumanda aletlerini kontrol edebilir. Tabii böyle bir işi özel yazılmış bir program becerebilir. User-port dışarıya elektriksel sinyaller gönderebildiği gibi aynı zamanda dış çevreden gelen elektriksel sinyalleri algılayabilir. Böylece mesela dışarıdan algılanan değerleri bir program yardımıyla analiz edip değerlendirebiliriz.
VIC (19): (Video Interface Controller — arabirim aracı): Bu araç olmasaydı, herhangi bir monitörün veya televizyonun ekranında bilgisayarımızın yaptığı işleri göremeyecektik. Bu aracın yaptığı iş ekran hafızasından (RAM'in bu iş için ayrılmış bir bölgesi) karakter kodlarını okuyup karakter seti ROM'undan (!) her karakterin şeklini alıp bu şekli ekranı çizen elektron ışınına kumanda edip görünür hale getirmektir.
ZEROPAGE: Bu hafıza bölgesi ana işlem ünitesine ve işletim sistemine ait çok önemli ara değerleri içermektedir. Aslında bu bilgiler RAM'in başından başlayıp 820 adresli hafızaya kadar uzanmaktadır.