Waveform: Dalga biçimi. Bu, üre- tilen ses tipinin bir tanımıdır. Bilgi- sayarın dört ayrı waveform'u vardır: Üçgen, testerediş, kare ve gürültü. Herbiri aynı tip seslerdir. Vector: Bu başka bir tür pointer'- dır. Bir rutinin başlangıç adresi an- lamına gelir. Bilgisayar, rutini nere- de arayacağını bilmek zorundadır. PEEK VE POKE NASIL YAPILIR? Bu bölüm, bellek haritasının nasıl kullanıldığını henüz öğrenmekte olanlar içindir. Temel olarak, bellek haritası, çeşitli amaçlar için doğrudan doğruya kullanılabileceğiniz, bilgisa- yarın içindeki değerli bellek yerleşim alanlarının dökümüdür. Bu yerleşim alanları belirli bir yerdeki belleğin byte'ları olarak adlandırılır. Belleğin 64 K olması, çalışabileceğiniz 64*1024 adet bellek alanının varlığı- *nı gösterir, Bu baytların bazıları bil- gisayarın işletim sisteminin kullanı- mına ayrılmıştır, ama büyük kısmı si- zin programlarınızda kullanabilmeniz için boş bırakılmış durumdadır. Bu dizimizde size ayrılmış olan kısımla ilgili bilgiler verilecektir. Örneğin, boşluk çubuğu gibi belirli tuşların ardarda basılmasını kontrol eden 650 adresli bellek alanını bul- mak içni bellek haritasını taramanız gerekir. Herhangi bir tuşu basılı tut- tuğuünuz sürece o tuş yaptığı işi tek- rarlayacağından, dizide verilen ipuç- larını izleyerek, bu bellek yerleşim alanındaki “normal”' değeri leğişti- rebilirsiniz. Yapacağınız bu tür deği- şiklikler geçicidir ve bilgisayarı kapat- tığınızda kaybolur. Şimdi de BASIC'teki değişiklikle- rinasıl yapacağınızı açıklayalım, Di- yelim ki, harita listesini taradınız ve 650 sayılı bellek yerleşim alanını de- ğiştirmeye karar verdiniz. (HEX- adesimal rakamını gösteren $ sembo- lüyle ya da “hex” şeklinde tamınlan- madıkça, tüm rakamlar desimaldir). Commodore, 650'yi RPTFLG olarak çağırır. 650'nin görevi klavyede hangi tuşların tekrarlanacağına karar ver- mektir. Böylece, klavyedeki tüm ka- rakterlerin tuşu basılı tuttuğunuz sü- rece tekrarlanmasını istiyorsanız, 650 sayılı bellek yerleşim alanına hangi doğru değerin POKE edilmesi gerek- tiğini bulmanız gerekir, Bu örnekte bellek haritası tüm tuş- ların tekrarlanması için 255 değerinin kullanılması gerektiğini belirtir. Bir sayının belleğe yerleştirilmesini sağ- layan BASIC komutu “POKE” ola- rak adlandırılır. Bu denli uzun açık- lamalardan sonra, bu değişikliği vap- manın ne denli basit olduğunu göre- lim: POKE 650, 255 İPUCU POKE ifadesi ile birlikte daima bir desimal (ondalık) sayı kullanım. Bu- nun anlamı, arada sırada binary liki- li), hexadesimal (onaltılı) ve desimal sayılar arasında dönüştürme işlemi yapmak zorunda kalacağınızdır. Her- hangi bir bellek alanı yalnızca 255'e kadar olan bir sayıyı alabilir. Niçin?.. Commodore'un her bir kelime (bel- lek alanı) için sekiz bit kullandığını hatırlayın ve ikili sistemde sekiz bi- tin O'dan 255'e kadar sayı alabilece- ğini gözönünde bulundurun (makine, kendi içinde yalnızca ikili sistemi kul- lanır). İkili sistem hakkında daha faz- la bilgi edinmek için dizinin bundan sonraki bölümü olan “Bitler ve Bavt- lar”'ı inceleyebilirsiniz. Bu kısıtlama- dan dolayı, bazen tek bir sırada iki bellek alanına sayi POKE'lamak zo- runda kalabilirsiniz, Örneğin MEMSIZ olarak adlandı- rılan 643&644 sayılı bellek alanına bakalım. Bu alanlar kullanabileceği- niz belleğin (RAM — Random ÂAc- cess Memory — Rasgele Ereşimli Bel- lek) en uç noktasına karşılık gelen bir sayı alırlar. Belleğin en üst tabanı 40960'a kadar gelebileceğinden, bir bellek yerhleşim alanı için 256 limi- tnin üzerindeki birsayı değerini sak- lamak için bilgisayar iki alana ihtiyaç duyacaktır. Evet, birinci alan için 256 artı ikinci alan için başka bir 256 sak- lamak, 64 K'lık bir makine için pek pratık bir yol değil, Bunun yerine bil- gisayar ikinci alandaki her sayıyı alıp 256'ya böler. Örnekler: 11 alıbyt'ta saklanır. F1/267 üst bayt'ta saklanır. Bilgisayar 267'yi 256*14- 11 şeklinde görür, Bir başka örnek! 121 alı bayı'ta 1741913 üst bayta'ta 7*256 - 121 - 1913'tür. Bazen Commodore 64'ü üst belle- ği olduğundan daha aşağıdaymış gi- bi düşündürerek şaşırtmak yararlı olabilir. Bundan kazancımız son bin byt'lık bir bellek olacaktır ve bu bel- leği yaratıklar (sprites) için saklaya- biliriz. Burada da birinci örnekte ol- duğu gibi bir POKE işlemi uygular- sınız, ancak bunu iki kere yapmanız gerekir; bir kere sayının alt kısmı için, bir kere de üst kısmı için. Bir sayının alt kısmının ilk bellek alanında ve üst kısmının ise onu iz- leyen alanına yerleştiğini söylemiş- tim, Bu biraz ilkel gözüküyorsa da, bunu anlamak hiç de zor değil. COMMODORE (ve diğer pek çok mikrobilgisayar) çok parçalı sayıları bu şekilde saklayabiliyor. Bazen bu kural bozulabiliyor ve eğer böyle bir istisna bulursanız, bizi arayıp düzelt- meye çalışmayın. Bu durumda ne yapacaksınız. MEMSİZ'in değerini olduğundan | 55