Bu sayfadaki yazılar
Sayfanın metni
Sayfa 27
jisinde “Firmware” (firmaya özgü şeyler) olarak adlandırılır: CPU'nun anladığı dilde yazılmış programlar, yani işletim sistemi ve BASIC programları CPU diline çeviren bir çevirmen. Bu çevirmen “BASIC-Interpre- (BASIC çevirici) olarak adlandirilir. RAM'ın aksine ROM'un içeriği, makine kapatıldığı zaman da korunur.
Dolayısıyla Firmware kavramının kapsamına girenler, donanım ile yazılım arasında bir yere konabilir. Donanım (hardware) kavramı, bilgisayarda elimizle tutabildiğimiz her şeyi kapsar. Yazılım (software) kavramı ise, örneğin makineyi kapatıp açarak bellekten silebildiğimiz programları ve verileri kapsar. Normal işletim sırasında Commodore 64'ün bellek yapısını bir önceki sayfada görebilirsiniz. İlerki yazılarımızda ROM alanlarıyla daha yakından ilgileneceğiz. ROM'la RAM arasındaki farkları daha iyi anlayabilmeniz için kullanabileceğiniz kısa bir program veriyo- Tuz. Programı Checksummer yardımıyla makineye girin ve RUN'la başlatın. Bir ROM içeriğinin gösterileceğini müjdelemek için, başlangıçta ekran boş olacaktır. Yazı siyah olduğunda, bilgisayarımız ROM'un 1000 bellek noktasını ekranda kapatacaktır. Orada gördüğünüz her karakter BASIC çeviricisinin programına aittir ve bizim için tümüyle anlaşılmaz bir durumdadır. bunun nedeni, CPU'nun ikili dilini ekranda ekran kodları (POKE-Kodu halinde görmemizdir. Bunlar, O ila 255 arasında kodlara sahip herhang isayılardır. Ekrandaki görüntünün oluşumu tamamlandığında, görüntüyü daha yakından incelediğinizde artık hiçbir değişikliğin olmadığını farkedersiniz. Bu, ROM içeriklerinin karakteristiğidir: Nerede ve nasılsalar, orada ve öyle kalırlar. Siz (lütfen RUN/STOP tuşu dışında) bir tuşa basıncaya kadar, ekrandaki görüntü aynı kalacaktır. Bir tuşa basılmasının ardından, ekran, bilgisayar tarafından ayrılmış bir RAM alanının görüntüleneceği uyarısıyla birlikte normale döner. Bu, kısa bir zaman aralığından sonra gerçekleşir. Ekranda bir sürü şey olmaya başlar. Bazı noktalardaki titremeler, CPU'nun o anda oradaki kayıtları değiştirmekte olduğunu gösterir. bir tuşa daha basıldığında, bilgisayar normal durumuna döner. Dileriz, Commodore 64'ümüzün diğer zamanlarda gizli olan alanlarına yapmış olduğunuz bu kısa bakış programdan hiçbir şey anlamamış olmanızı telafi edecektir. Bu durum, ilerki sayılarımızda değişecek. Fakat öncelikle dikkat etmeniz gereken, tüm program satırlarının eksiksiz ve hatasız olarak girilmesi. Hatalı bir sayı, makinenizi çalışmaz hale getirebilir. Bu durTumdan kurtulmanın çaresi ise makineyi kapatıp yeniden açmaktır. Bu nedenle, (her zaman yapmanız gereken şey burada da geçerli) RUN yazıp çalıştırmadan önce programı kaydedin!
MÜZİK VE GAFİK
Dizinin ilerki bölümlerinde mikro işlemcimizin yardımcılarını çok daha yakından tanıtacağız, fakat şimdiden CIA, VIC ve SID kavramlarının neler olduğunu kısa olarak öğrenmenizde yarar var. VIC de İngilizce bir kısaltma. “Video Interface Controller” (ekran arabirimi denetleyicisi) sözcüklerinin başharflerinden oluşuyor. Bu eleman, ekranda herhangi bir şeyi görebilmemizi sağlamakla görevli. diğerlerinin yanı sıra metinleri, grafikleri ve ekran cinlerini (sprite) yönetir. CIA'nın ise meşhur Amerikan örgütüyle bir alakası yok. Kısaltmayı oluşturan İngilizce “Complex Interface Adapter”' sözcükleri Türkçe'de “farklı giriş ve çıkış işlevleri elemanı”
olarak karşılanabilir. Bu elemandan bilgisayarımızda iki tane var. Diğer görevlerinin yanı sıra en önemli görevi, bilgisayardan diskete, kasete ve geriye ya da bilgiyazara pürüzsüz bir veri akışını sağlamak. Ayrıca bilgisayarımızın içindeki saatleri de CLA yönetir. Ona müteşşekkir olmamız gereken diğer bir konu ise, Commodore 64'ümüzün klavyeye vuruşlarımıza tepki vermesi ve Joystickle uğraşmalarımızı algılaması. SID kısaltması ise İngilizce “Sound Interface Device” sözcüklerinden kaynaklanıyor. Bunun Türkçe karşılığı ise ““ses denetimi elemam”' olarak verilebilir. Tüm bu yardımcılar da, prensip olarak CPU'ya oranla daha kısıtlı yeteneklere sahip, mikro işlemciler. Bu nedenle de aynen CPU'da olduğu gibi -belli sınırlamalar içinde- programlanabiliyorlar. bu işlem Register'lar (siciller) aracılığıyla gerçekleştirilir. bu kavramla anlatılmak istenen, tek tek elemanların belirli işlevlerine tepkiyen bir dizi bellek alanıdır. Tüm bu siciller işletim sistemi tarafından RAM'ın yerine 53248 ila 57343 adresleri arasındaki bellek alanına yerleştirilmiştir. Commodore 64'ün derinliklerine doğru yapmaya başladığımız bu yolculuktan hoşlandınız mı? Gelecek sayımızda BASIC-Interpreter'- in neler yaptığını inceleyeceğiz.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 26
BELLEK
Baytlardan Commodore 64'ün belleğine geçmek çok kolay. Çünkü C 64'ün belleği byte-wise (bayt usulü) organize edilmiş durumdadır. Kafamızda belleği, üzerinde sekizer odalı evler dizisi bulunan uzun bir cadde olarak canlandırabiliriz. Her ev bir bayta, her oda ise bir bite karşılık gelmektedir. Tabii ki, bu evlerin herbirinin birer numarası vardır ve bu numaralar 0'dan başlayarak 65535'te biter. Yani bu bellek caddesi oldukça uzundur. Adreslerin toplam sayısı olan 65535, yaklaşık ya da kafadan atılma bir sayı değildir: Bu sayıyı 1024'e bölün. 64 KBayt (dikkat! Büyük harfle “K”') elde edeceksiniz. Bilgisayarımızın adının Commodore 64 olmasının nedeni de budur. 65536'yı 256'ya böldüğünüzde de 256 Pages elde edeceksiniz. “Page'' sözcüğü İngilizce kökenlidir ve sayfa anlamına gelir. Bilgasayarımızın belleği bir kitap gibi 256 sayfada toplanabilir. İlk sayfanın numarası 0'dır ve bu nedenle “Zeropage”' (sıfır sayfası) olarak adlandırılır. Bu sayfanm bilgisayarımız açısından özel bir anlamı vardır: Bilgisayar burada işletimi açısından önemli tüm değerleri tutar. Şimdiye kadar tanıtmaya çalıştığımız 64 KBayt bellek, belirli bir bellek türüne dahildi. bu tür bellekler RAM olarak adlandırılır. Karşımıza yine bir kısaltma çıktı. İngilizce Access Memory”' sözcüklerinin başharfleri. Bu ifadenin Türkçe karşılıği ise “rasgele erişimli bellek”. ““Rasgele erişim”'le kastedilen ise, bu bellek türünün hem yazmak hem de okumak için kullanılabileceği. BA-SIC dilinde PEEK komutuyla okunup, POKE komutusya yazabilirsiniz. İsterseniz bir kere deneyin.
PRINT PEEK(10000)
komutunu kullanarak, 10000 ev adresinde ne bulunduğunu okuyun. Bulacağınız sayı ile 256 arasında olacaktır. Şimdi buraya bir başka sayı, örneğin 78 yazın ve yeniden okuyun:
POKE 10000, 78 PRINT PEEK (10000)
Şimdi burada sizin 78 sayısını bulacaksınız. RAM alanı, belli ölçülerde programcının oyun alanıdır. Tüm BASIC programları, değişkenler, diziler ve alanlar orada saklanır. Eğer kasetten ya da disketten bir şey yüklerseniz, bu gidip RAM'a yerleşecektir. Önce de söylediğimiz gibi: Commodore 64, bize 64 KBayt'lık bir RAM sunar. Aslında bu kapasitenin içinde BASIC programcısı için belirli kısıtlılıklar da vardır. Zeropage ve ardından gelen yedi sayfayı, Commodore 64 kendi verileri için kullanır. Aslında eğer işletim sisteminin bazı önemli değerlerini silmeyi ya da bozmayı göze alabilirseniz, bu alana PO-KE yardımıyla bir şeyler yazabilirsiniz. Ama sorumluluk size ait olacaktır. Başınıza gelebilecek en kötü olay ise, sanki ölmüş bir bilgisayardır. Açma-kapama düğmesine el atmanız herşeyi yeniden düzeltecektir. RAM alanında 40960 adresinden sonraki kısım da BASIC programcısı için kısıtlı el atılabilecek bir yerdir. Buraya bir şeyler yazabilirsiniz, ama yazdıklarınızı PEEK kullanarak okumak isterseniz, o sayıyı yeniden bulamayabilirsiniz. Burada RAM'a erişme olayı bir miktar çapraşıktır. İlerki araştırmalarımızda bu enteresan alanı daha yakından inceleyeceğiz. Şimdilik söylememiz gereken, belirtilen RAM adreslerinin GEOS bulunmayan C 64'lerin işletimi için geçerli olduğu. GEOS yüklendiği takdirde, her şey oldukça değişiyor. 64 KBayt RAM'- in yanı sıra Commodore 64'te bir başka tür bellek de var: ROM. Bu da İngilizce “Read Onl Memory” sözcüklerinin başharflerinden oluşan bir kısaltma. Türkçe karşılığı, “salt okunur bellek”. Örneğin
PRINT PEEK(65383)
komutuysa buradan bir şeyi okuyabiliriz, fakat POKE kullanarak oraya bir şey yazmak istersek, yeni bir PEEK komutuysa bu isteğimizi yerine getiremediğimizi görürüz. Aslında RAM'daki 65383 adresine bizim sayı yazılmış gibi görünür. Ama bilgisayarımızda 40960 ila 49151 ve 53248 ila 65535 adresleri arasında RAM yerine ROM elemanları yer aldığından (tabii ki normal işletim durumunda), orada yaptığımız okumalar sırasında daima ROM içeriğiyle karşılaşırız. Peki, ROM'da neler bulunur? Bunlar bilgisayar terminolo-
PROGRAM ADI ROMRAM 60818 REM PRINT CHR$C147):POKE 2811,7:POKE 214 60036 SYS 58648 <175> ©0840 PRINT “"BELLEKTEKİ ROM ALANININ GÖR UNuUSU" ©6050 FOR I-55296 TO 562895 ©0076 NEXT <154> 680980 FOR TO 40968 <188> 686116 NEXT 1 00130 258 <181> 00150 SvY3 58648 <038> 001686 PRINT "BILGISAYAR TARAFINDAN AYRILA N RAM" ©086170 FOR TO 56295 681986 NEXT <018> 090210 GET A$z" * THEN 218 <179> 00230 POKE 53272,211:POKE 648,4 <189)> 00245 REM EKRAN KAYAR <051> 00258 POKE 56576,(PEEK(56576) AND 252) OR J 00270 POKE 53272,(PEEK(53272) AND 15) OR W 602386 POKE 648,P 003868 RETURN <1064>