BİLGİSAYAR NASIL ÇALIŞIR?

Kesinlikle çoğu kimseler için takıntı konusudur; bilgisayarın kendi terimlerini dikkatlice takip edin ve olayları canlandırmaya çalışın. Gözle görünen tüm bu olaylar iyi bir zamanlamayla uygulanan bir dizi işlemlerden ibaret. Bilgisayarlar artık hayatımıza girdi. Büyük bir çoğunluk bilgisayarların ne yapıp ne yapamayacağını biliyor ve nerede ne aletlerden yararlanabileceğine karar verebiliyor. Bazı fanatik filmlerin de etkisiyle korkunç bir çehreye büründürülen bu aleti artık herkes tanıyor ve yalnızca çok yardımcı olarak görüyor. Şu yazıyı okuyan herkes en azından bilgisayarı çeşitli amaçlarla kullanıyor. Kimi hesabını bu aletle etmiş. Kimi yazışmalarını, raporlarını bu aletle hazırlıyor. Kimimiz programlama amacıyla başına oturuyor. Kimileri de alet başında. Günümüzde hemen her amaçla bu araçlara çoğu kişi yakından hitap edebilmek için özel programlama dilleri öğreniyor ve uyguluyor. Hemen her amaca uygun diller de var. Mesela kolay kullanımlı diller olarak anılan BASIC başı çekiyorlar. Bu iki dille kısa zamanda kendi amacınıza uygun program geliştirip kullanmanız mümkün. Bazı başka diller ise daha detaylı, sistemli ve uzun süren çalışmalar gerektiriyor. Fakat gene de ASSEMBLER bile size aşılamaz dağlar gibi gelmesin. Fakat programlama konusunda ne kadar tecrübeniz olsa da bilgisayarın çalışması tam olarak ele alındığında birçok karanlık nokta kalıyor: "Acaba şu kutunun içinde neler var?" veya "Kara kara böceğe benzeyen bazı şeyler var, acaba bunlar ne yapıyor?" Bir başkası "O kadar şey yazıyorum hepsini aklında tutuyor ve doğru olarak yapıyor. Bunları nerede saklıyor?" gibi sorular çoğu kimsenin aklına takılıyor. Dedik ki bu kadar soru var; bunları cevaplayacağız. Fakat insanın teorik ve yetersiz bir uğraşla

anlatılanları canlı olarak görmesini bekleyemeyiz. En basitinden birçok aletin garanti kapsamı dışında kalmasına yol açacaktır böyle bir girişim. Bu yüzden biz sizin için bir C64'ün içinin fotoğrafını çektik ve tüm bölgeleri tek tek işaretledik. Burada tanımı aynı zamanda bu şekilden izlemeye çalışın.

Hu yazıda her bir ünitenin adları m tek tek belirip sirayla hepsinin fonksiyonlarını açıklayacağız. Bilçisayarımızın içi kara te Benieyen, tümleşik devre diye Bun. hepsinin de tek tek özel imleri Vardır. Bunlar RAM ROM, VİC,

© Karakter Seti © Yüksek PORTU Esası © EXPANSION © ANA İŞLEM Ünitesi Yuvası 2 © OS Gros Beton onan O PORT © Akım OzasIC OPLA çipi © KERNAL © VİDEO çıkışı

© Gerilim

© Kuvars Kristal Darbe

çipi çipi © Renk RAM

adres bitleri b © büleri için

(8) Güç Köye RAM çipleri 1. 6

© Timer (RESET sinyalini üretiyor)

CPU, CIA, SID gibi veya benzerleri. Burada bütün kavram ve isimleri tek tek verip açıklayacağız. Açıklama sırasında geçen bazı terimlerin yanında parantez içinde bir ünlem bulunabilir. Bu, o terimin başka bir yerde daha detaylı olarak gösterildiğini belirtir. Açıklamalar bittiğinde parantez içindeki bir hafıza kapasitesinin 64 kilobyte olduğunu

unu hepimiz biliyoruz. Fakat bu rakam olarak ne anlama gelir? Bir sokak hayal edin ve bu sokağın üzerinde evler bulunsun, bundan başka her evin üzerinde sırasını belirten bir numara bulunsun. Mesela 3011 numara evin hemen yanında 20112, onun yanında da 20113 numara evin bulunması gibi her evimizin bir adresi (adresi) ve içeriği (byte) olur. Sonuç olarak herhangi bir evin içeriğiyle ilgilendiğimizde yardır içeriğine erişebilir. BUS'u: Bu kanal, yarın en önemli sinyallerinden olan adres (9) bilgisini taşır. Bilgisayarın işlemci adres bus'una yazar ve bu kanala bağlı diğer elemanlardan biri cevap verir. Bazı diğer elemanlar RAM (0), ROM (0) gibi bir olabilir. COMMODORE'un adres kapasitesini eklemek için adres bus 16 tane ayrı hattan oluşmuş bir yapı içerir. Bu 16 hat herbiri bağımsız olduğundan birinde bulunacağından 2^16 = 65536 tane adres seçebilme ihtimali var demektir. Bu sayı da zaten COMMODORE adres kapasitesidir.

BASİC (0k Bu rom'a ay: rom'u da denir. Yo yaptığı iş o kal emirlerini (BASIC emirleri) anlayacağı bir şekle çevir mek ve bunların yürütülmesini sağ. ana işlem yalar makina dilinden sa: için PRİNT veya RÜN gibi emirlerle doğrudan hiçbir şeye başla Yüksek dillerdeki program. Tarımızı makinanın daha ilkel iline Şevirin sağlayan BA- SiC İNTERPRETER başkanı değildir.

BİT: Bir bit bilgisayarın içinde rastlayabileceğimiz en küçük bilgi birimidir. İki durumu olabilir, bunlar '0' ve '1' durumlarıdır. Elektriksel olarak ise şase seviyesi ve +5V seviyesi olarak gerçekleşirler. Fakat bu kadarcık bilgi genelde kendi başına pek bir işe yaramaz. O yüzdendir ki çağdaş bilgisayarlar en az 8 bit üzerinden çalışacak biçimde yapılırlar. Bu demektir ki aletler artık bitle değil Byte'la çalışırlar (8 bit'lik bir bilgi grubu bir Byte olarak anılır). Bir Byte'ın içeriği ise 256 değişik durum alabilir. Hafıza olarak bir tek byte pek bir şey ifade etmez. Birkaç bin byte bir araya geldiğinde hatırı sayılır bir hafıza bölgesi meydana getirebilirler. Hafıza ölçüsü olarak kullanılan başka bir birim de KByte'tır (Kilo-Byte). Bir KByte 1024 Byte'tan oluşmuştur. Bu tanımlara göre COMMODORE 64'ümüzün hafıza kapasitesi 64 KByte, yani 65536 Byte, yani 524288 Bit'tir.

CIA (1,2) (— Complex Interface Adapter — Giriş/Çıkış arabirimi) Eğer bilgisayarımız dış dünyayla bilgi alışverişi yapmasaydı, beş para etmez bir döküntüden başka bir şey ifade etmeyecekti. CIA gibi veya benzeri ara birimler bu görevi üstlenen elemanlardır. Mesela aletimizin tuş takımı CIA denilen arabirim yardımıyla bilgisayarın ana devresine birleşmektedir. Bundan başka disk sürücümüz, kaset teybimiz, joystick'imiz ve User-Port'umuz hep bu üniteler vasıtasıyla bağlantı kurabilmişlerdir. Bütün bilgiler bilgisayara girip çıkmadan önce bu elemanlara uğrayıp değişik şekillere çevrilirler. Bu elemanlar ana işlem ünitesinin (!) adres bölgesinde belli bir yer kaplarlar ve ana işlem ünitesi bu bölgelere bir şey yazdığında bu bilgi elektriksel sinyaller olarak bilgisayar devresinin dışına çıkarlar; aynı şekilde dışarıdaki elektriksel sinyaller ana işlem ünitesi tarafından bu adreslerin okunması vasıtasıyla algılanır. Başta da söylediğimiz gibi bu elemanlar olmasaydı bilgisayarımız kör ve sağır kalacaktı.

ÇEVRESEL BİRİMLER: Bkz. peripherie.

DATA BUS'u (Bilgi kanalı): Data bus'u, ana işlem ünitesinin adres bus'u yardımıyla seçtiği Byte'ın okunmasını veya yazılmasını mümkün kılar. Bilginin akış yönünü belirleyen sinyal ise R/W hattı tarafından taşınır. Dikkat ettiğiniz gibi data bus'u bir Byte'lık bilgiyi paralel olarak (!) taşımak için 8 kanallı bir hat olmak zorundadır.

DATA MEDIUM (Bilgi saklama aracı): Bilindiği gibi bilgisayarı kapattığımızda hafızası tümüyle silinmektedir. Programlarımızın kalıcı olmasını sağlamak için bu bilgileri aktaracağımız bir araca ihtiyacımız olacaktır. En ilkel örneğiyle bu işi delikli kartlar yapmaktadır. Fakat günümüzde bu çok eski teknoloji terkedilmiştir. Biz genelde bu iş için manyetik ortamın en önemli sinyalleri yer almaktadır. Böylece aletinizin içini açmadan, içindeki birçok işlemin akışını değiştirmek mümkün olmaktadır. Bu port'un kullanımına en basit örnek olarak kartuşları verebiliriz.

HARDWARE: Bilgisayar sistemini oluşturan tüm parçacıklar. Tümleşik devreler, transistörler, rezistanslar, diyotlar, kapasitörler, switch'ler, teller, plaket v.s. Kısacası aletimizin maddi olarak algılanabilen tüm elemanları. Bu elemanların hepsi sabit olarak oluşturulmuş durumdadır ve değiştirilemez.

Hep duyarız: Hardware... eprom... interrupt... data bus... Bunların aslında Commodore 64'ün çalışmasını anlatan önemli kavramlar olduğunu biliyor muyuz acaba?

tik kayıt araçlarını (disket ve kaset gibi).

EPROM: (Erasable Programmable Read Only Memory): EPROM'lar da bir tür kalıcı kayıt araçlarıdır. Tümleşik devre olarak imal edilmişlerdir. Bu yüzden görev olarak ROM'larla eşdeğerdir. Fakat yapı olarak ROM'lara göre önemli bir üstünlükleri vardır; o da silinebilir olmalarıdır. EPROM'ların silinme işlemi kuvvetli ultraviyole ışını altında 10-30 dakika bekletmek suretiyle olur. Böylece normal çalışma ortamı altında hiçbir tehlike arz etmezler. EPROM'ların tekrar tekrar silinip programlanabilme özelliği onları bilhassa araştırma geliştirme işlemlerinin vazgeçilmez unsurları haline getiriyor. Şayet aletinizde işletim sistemini veya karakter setini değiştirmek istiyorsanız en rahat EPROM'larla bu işin üstesinden gelebilirsiniz.

EXPANSION-PORT (13): COMMODORE 64'ün en önemli özelliklerinden biri expansion-port'u bulunmasıdır. Bu port'ta bilgisayar siste-

INTERRUPT: Bilgisayarın düzenli olarak çalışması için gerekli olan bir işlem. COMMODORE 64 saniyede 60 kere bu işlemi yapmak zorundadır. Yapılan işlem şudur: O sırada yapılan işlem kesilir ve işlemin o anki durumu ile bilgiler bir yere saklanır; ve interrupt altprogramı yürütülür. Bu altprogram aletimizin işletim sistem ROM'unda bulunmaktadır. Interrupt sırasında bazı önemli fonksiyonlar yerine getirilir. Bunlar klavye ve joystick'lerin sinyallerinin değerlendirilmesi, sistem saatinin 1/60 saniye ilerletilmesi gibi işlemlerdir. Bu işlemler bittikten sonra kesilmiş olan program kaldığı yerden devam ettirilir. Interrupt işlemi periyodik olarak yürüyen bir işlem olduğu için daha değişik amaçlarla da kullanılabilir. Mesela, başka programlar çalışırken arka planda 3 kanaldan hareketli bir müzik parçasının çalınması gibi. Tabii bu ve bunun gibi işlemleri gerçekleştirmek sanıldığı kadar kolay bir iş değildir. Böyle programları yazabilmek normal programlamadan ayrılıp apayrı bir programlama tekniği olarak anılmaktadır (programlama tekniği).

KARAKTER SETİ ROM'U (5): Bu eleman sabit bir bellek tipi olup içeriği ekranda görülebilecek tüm karakterlerin nokta nokta tanımıdır. Bu tanımları değiştirip EPROM'a programlarsanız böylece kendinize ait kalıcı bir karakter setine sahip olursunuz.

KERNAL-ROM (5): Bilgisayarın zekâsı. Aynı zamanda “işletim sistemi” olarak da anılır. Yaptığı işlem ise sistemi çalışır vaziyette tutmak için bütün gerekli verileri saklamak ve bunları işlemektir. Genelde tüm çevresel işlemleri de işletim sistemi üstlenir. Böylece ekrana nasıl yazı yazacağız, veya çevresel araçlarla nasıl komünikasyon kuracağız diye tek tek uğraşmamız gerekmemektedir; işletim sisteminde bütün bu işleri yapacak altprogramlar mevcuttur. Böylece programcı detaylarla yorulmayacak ve programının daha genel akışıyla, mantığıyla v.s. ilgilenecektir.

MODÜL: Bilgisayara bir program yerleştirmenin en basit yolları, programı herhangi bir data medium'undan (kaset veya disket) geri çağırmak veya programı tuş takımından alete girmektir. Bunlardan başka kullanılan bir yöntem de programı EPROM'a “yakmak” ve bu EPROM'u kartuş biçiminde bilgisayarın hafızasına dahil etmektir. EPROM'un içeriği aletin hafızasına dahil olduğundan artık yükleme diye bir sorunumuz olmayacaktır, çünkü programımız zaten aletin hafızasındadır. Modüllerin bilgisayarla birleştiği yer expansion-port'tur.

PARALEL: COMMODORE 64'ümüzün 8 bit'lik paralel çalışan bir data bus'u vardır. Böylece ana işlem ünitesi bir kerede bir Byte'ı olduğu gibi okuyabilir veya yazabilir. Paralel bilgi taşıma yöntemi genelde hızlı bir yöntemdir. Bundan başka seri bilgi taşıma yöntemi vardır ki bu yöntem daha yavaş kalmaktadır.

PERİPHERİE (Çevresel birimler): Bilgisayara dışarıdan bağlanan ve bilgisayarın standart üniteleri arasında yer almayan elemanlar. Mesela disksürücü, bilgisayar, joystick ve hatta monitör ekranı. Personal Computer diye adlandırılan bir üst sınıf bilgisayarlarda tuş takımının bile peripherie sayıldığı olur (Mesela AMIGA'da tuş takımı kendi başına bir bilgisayardır ve kendi ana işlem ünitesi vardır).

PLA (10) (Program Logic Array — Hafıza işlemleri koordinatörü; COMMODORE 64'teki görevi): COMMODORE 64'ümüzün ana işlem ünitesi yalnızca 64 KByte adresleyebiliyordu. Fakat C-64'ümüzde daha 20 KByte hafıza elemanı bulunmaktadır. Bu 20 KByte, 8 KByte'lık INTERPRETER, 8 KByte'lık KERNAL ve 4 KByte'lık KARAKTER SETİ'nden oluşmuştur. Bu toplam 84 KByte'ın ana işlem ünitesi tarafından kullanılabilmesini sağlamak için tasarımcılar bir hile bulmuşlar; aletin tüm hafıza alanını kaplayan RAM'in bir kısmını ROM'la kaplamışlar. Böylece ana işlem ünitesi o sırada seçilmiş konfigürasyona bağlı olarak RAM'e veya ROM'a ulaşmakta. Bank Switching diye de adlandırılan bu işlem PLA'nın asıl görevi.

POINTER (Göstergeç): Yazdığınız program yürürken, bazı değişkenleri veya text'leri bir yerlerde saklamak zorundadır. Bunlar, çalışma alanının belirlenmiş bazı yerlerine yazılarak saklanır. Göstergeç bu bilgileri saklamak için ayrılmış bölgenin başı ve sonu ile ilgili bilgileri içerir. Böylece saklanmış olan bilgileri tekrar bulmak mümkün olur.

PROCESSOR (CPU - Central Processing Unit Ana İşlem Birimi) (8): Bilgisayarımızın beyni olan ünite. Her türlü mantıksal ve matematiksel işlem bu ünitede yapılır. Hafıza ile ilgili birçok işlem de (bir bölgeyi kaydırma veya kopya etme) ana işlem ünitesinin bazı özel register'leri yardımıyla yapılır. Bütün sistemi kontrol eden bir orkestra şefine benzetebiliriz o'nu. Bilgisayarın hangi elemanının hangi işlemi yapacağına karar verip onlara emirler gönderen de ana işlem ünitesidir.

QUARTZ (18): Bütün bir bilgisayar sisteminin işini kusursuz olarak yapabilmesi için tüm elemanların işlerini belli bir senkronizasyon modeline göre yapmaları gerekmektedir. Bildiğiniz gibi aletimizin bir adres bus'u ve bir data bus'u vardır; bu yüzden bu bus'ların kullanımı sırasında zamanlamadan doğacak bir çakışma (hiç kuşkunuz olmasın) zincirleme bir yanlışlıklar reaksiyonunu başlatacak ve aletimiz elden gidecektir. Tüm elemanların belli bir ritm içinde çalışmasını sağlayan şey sistem darbeleridir. Tüm elemanlar hangi darbe sırasında bus'ları kullanacaklarını bildiklerinden hiçbir çakışma olmayacaktır. COMMODORE 64'ün PAL tipi (Türkiye'de de kullanılan sistem) 0.98 MHz'de çalışmaktadır. Bu demektir ki sistem saniyede 980000 darbe üretmekte. Aslında bu hız günümüz teknolojisiyle kıyaslandığında oldukça düşük kalıyor. Mesela Personal Computer'ler 4.7 MHz'de çalışır. AMIGA ise 8 MHz. Diğer elemanın yapacağı işle ilgili bilgileri içerir. İkinci tip register'ler ise ana işlem ünitesinin kendi içinde bulunur. Bunlar da RAM özelliği taşıyan birkaç Byte'lik bellek bölgeleridir. Bu register'lerin çok çok özelleşmiş ve çok çok önemli görevleri vardır, çünkü ana işlem ünitesinin işlem yapabilmesini sağlayan bu register'lerdir. Bu register'lere örnek olarak Akkü register'ini ve program sayacını gösterebiliriz.

RESET: Bu işlem de bilgisayar için önemli bir yer işgal ediyor. Yapılan işlem bilgisayarı meydana getiren elemanları daha evvel belirlenmiş bazı

AM. Hani bilgisayar alınmaya gidildiğinde “Kaç K acaba?” İşte bu, buna ilişkin

diye sorarlar ya

RAM'ın büyükl

bir sorudur. Peki RAM ne iş

yapar ve neden bu kadar önemlidir?

gibi bir çalışma hızına sahip.

RAM (24) (Random Access Memory - rastgele ulaşımlı bellek - okunabilir/yazılabilir bellek): COMMODORE 64'ün 64 KByte RAM belleği vardır. Tam olarak 65536 Byte'a karşılık gelen bu değer aynı zamanda 65536 karakterlik bir text'i hatırında tutabilecek bir kapasite. RAM'ler ana işlem ünitesine adres bus ve data bus'ı yardımıyla bağlıdır. Bilginin akış yönünü ise R/W sinyali belirler. Bilgisayarın çalışma alanı böyle bir bellekle oluşturulduğu için bir bilgisayarın RAM hafızasını artırırsanız, aynı zamanda işlem yapma gücünü de artırırsınız. Kısacası RAM bilgisayarın içindeki en önemli birimlerden biridir.

REGISTER: Bilgisayarın içindeki birçok eleman kendilerine ne iş yaptırılmak istendiğini bilmek gereksinimindedirler. Bu da ana işlem ünitesi ile söz konusu elemanın ortak olarak kullanılabileceği RAM tipinde belli bir bellek alanı gerektirir. Bu bölge değerlere getirmekten ibarettir. Bu işi yapan ise işletim sistem ROM'unda (!) bulunan reset altprogramıdır. Reset işlemi genelde alet açıldığında otomatik olarak yapılır. Tabii bundan başka kullanıcının isteği üzerine de gerçekleştirilebilir. Diyelim ki reset switch'iniz var ve aletiniz “crash” etti; aleti kapayıp açacak yerde reset tuşuna bir kere dokunursunuz.

ROM (Read Only Memory — yalnızca okunabilir bellek) (4,5,6): Bilgisayar aslında o kadar da akıllı bir alet değildir. O'na ne yapacağının daha evvel söylenmiş olması gereklidir ki bir şeyler yapabilsin. Bu yüzden bilgisayarın içinde her zaman bulunan ve silinip, değiştirilmesi imkansız, sabit programlar bulunur. Bu programlar ROM denilen tümleşik devrelerde bulunur. Bu elemanların başlıca özelliği sabit içerikli bellek üniteleri olmalarıdır. COMMODORE 64'ün içinde üç tane ROM bulunmaktadır. Bunlar INTERPRETER ROM'u (!), KERNAL ROM'u ve KARAKTER SETİ ROM'udur (!).

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.

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

67 kablonun yaratacağı sorunları siz düşünün. Öyle bir sorunun farkına varan bilgisayar tasarımcıları matris bağlantısı adında bir yöntem önermişler. RESTORE tuşu dışında kalan tuşları 64 tuş olarak görebiliriz, çünkü SHIFT LOCK tuşu soldaki SHIFT tuşu ile paralel bağlıdır. Böylece bu 64 tuşu 8 x 8'lik bir matrise bölebiliriz. RESTORE tuşu oldukça özel bir tuş olduğundan yalnızca kendine özel iki hatta sahiptir. Böylece tuş takımından bilgisayar plaketine yalnızca 18 hat taşıyarak bütün tuş takımının bilgisayar tarafından algılanmasını sağlayabiliriz. Bundan başka kullanılması gereken arabirim ünitesi kanal sayısı ise 64'ten 16'ya inmektedir. Tuş takımından gelen sinyaller CIA'lere girer. İşletim sisteminde matris tipine uygun bir alt program, hangi tuşun basıldığını belirler. Bu programın dikkat etmesi gereken başka bir husus da tuşların tek mi, SHIFT ile birlikte mi, Commodore ile birlikte mi, yoksa CTRL tuşu ile mi basıldığıdır. Çözüm şöyle bulunmuştur: Her tuşun belli bir numarası vardır. Fakat bu numara kendi başına hiçbir işe yaramaz; bu rakamın basılan tuş kombinasyonuna göre belli bir ASCII koduna çevrilmesi gerekmektedir. Bu çevirme işlemleri için işletim sistemi ROM'unda dört tane (her kombinasyon için bir tane) deşifre tabloları bulunmaktadır. Böylece basılan tuş kombinasyonuna göre hangi ASCII karakteri gerekiyorsa elde edilir. Buraya kadar işletim sistemi hangi tuşa bastığımızı algıladı ve istediğimiz karakteri ekrana basması gerekiyor. Önce bu ASCII kodunu ekran koduna çevirir ve 1024'ten 2023'e kadar adresler arasında uzanan ekran hafızasının belli bir yerine yazar. VIC çipi ise ekran hafızasından bu kodu alır ve KARAKTER SETİ ROM'undan (6) bu karakterin şekil olarak tanımını alır ve elektron tabancasını kontrol ederek bu karakterin görünür olmasını sağlar. Gayet düzenli ve birçok işin yapılması gerekiyor; yalnızca tek karakterin görünür hale gelmesi için. İlgi çekebilecek başka bir işlem de bilgisayarın disketten bir dosyayı okumasıdır. Görülüyor ki işletim sistemine burada da birçok iş düşmekte. Diyelim emri verdiniz. Bu emrin doğruluğu kontrol edildi, analizi yapıldı ve artık bilgisayar tam olarak ne istediğinizi biliyor. Artık sıra bilgisayarın kolları sıvayıp işe gelmiştir. Ana işlem ünitesi, işletim sistemindeki bu işle ilgili bir alt programa gider. Bu alt programda yapılan işlem arabirim ünitelerini aracı olarak kullanmak suretiyle disk sürücüsüne bir emir kanalı açar ve istenilen tipte ve addaki dosyayı hazır etmesini emreder. Bu arada emre gelen cevabı değerlendirerek dosyanın başarılı bir biçimde açılıp açılmadığını kontrol eder. Dosya başarılı olarak açılmışsa göstergeçleri kullanarak dosyayı hafızaya okur. Bunu şöyle gerçekleştirir: Arabirim üniteleri vasıtasıyla tek bir Byte'ı alır. Şimdi bu Byte'ı bir göstergecin gösterdiği adrese yazmak gereklidir. Adres bus'ına bu adres'i, data bus'una aldığı Byte'ı gönderir; bu arada R/W sinyalini yazma durumuna geçirir. Böylece dosya Byte Byte okunup hafızaya alınır. Dosyanın sonuna gelindiğinde ise disk sürücüsüne dosyayı kapatması için emir gönderir. Böylece dosyayı okuma işlemi biter ve ana işlem ünitesi diğer emirleri yürütmek için yorumlayıcıya geri döner. Sonuç olarak görüyoruz ki işletim sistemi bizim için çok sıkıcı ve hassas işleri üstleniyor. Genelde işletim sistemlerinin yapıları da budur. O bilgisayarın standart ve en gerekli, en çok kullanılan işlemlerini üstlenirler. Bu işlemler genelde o bilgisayarın genel özelliklerini belirler.

Yapılan işlemlere son bir örnek verelim: Diyelim ki tuş takımı vasıtasıyla bir satır yazdık ve RETURN tuşuna bastık. Neler olmakta?.. Siz RETURN'e basar basmaz, işletim sistemi bu satırı alır ve $0200 (512)'den itibaren olan bölgeye taşır (kopya eder). Satırın sonunda ise satır sonunu belirtmek için içeriği 0 (sıfır) olan bir Byte eklenir. Yorumlayıcı ilk karakteri kontrol eder. Bu karakterin rakam olup olmaması çok şey değiştirir çünkü. Eğer ilk karakter bir rakam ise, bu satır BASIC programının içine eklenecek demektir. Önce daha evvel aynı satırla yazılmış bir satır varsa o silinir ve programın geri kalan kısmı geri kaydırılır. Bundan sonra yeni satır yerine konur. Bu işlem ise yeni satırın gireceği yerden gerisini o satırın büyüklüğü kadar ileri kaydırıp açılan boş bölgeye o satırı kopya etmekle olur. Eğer ilk karakter bir rakam değil