Commodore sayı 44, sayfa 54

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 54

Basic dilini kullanırken PEEK ve POKE komutlarının işleyişi ile haşır neşir olmuş olabilirsiniz ama bilgisayara ne yaptıklarını da tam olarak bilmeyebilirsiniz. Bu komutlar Basic programcısının makinenin içine direkt olarak ulaşabilmesini sağlarlar; hem donanıma hem de davranışlarını belirleyen makine dili programlarına.

Basic'te bir program yazarken yaptığınız, bilgisayarın sürekli belleğinde bulunan geniş bir makine dili programının daha sonra yorumlayacağı bir dizi direktif vermektir. Bilgisayar Basic dilini doğrudan anlayamaz, ama bu Basic yorumcusunun kontrolünde yazdığımız programları uygulayabilir. Basic, bilgisayarın RAM kısmının belli bölümlerini işlemlerinde bir müsvette kâğıdı gibi kullanır. RAM'in içeriklerini dikkatle manipüle ederek Basic dilinin beklenmeyen ve yararlı şekillerde hareket etmesini sağlayabilirsiniz.

Bilgisayarın belleğindeki adresleri temsil eden iki baytlık sayılarla çalışırız. Genelde Basic bu adresleri vektörler ya da pointer olarak kullanır. Pointer'lar RAM ya da ROM'da datanın depolanmış olduğu yerleri saptamakta ya da RAM'da belli bölgeleri belirlemekte marker (işaretleyici) olarak kullanılabilir. Basic pointer tarafından yöneltildiği adresi inceler ve orada bulduğu datayı kullanır ya da manipüle eder; ya da pointer'ı başka değerlere gönderip yönlendirmeleri yapar. Bir vektör başka bir makine dili programının ya da subrutinin başlangıç adresini temsil eder. Makine dili direktifleri genellikle bellekte depolandıkları sırayla uygulanırlar.

Bununla birlikte, vektörlerin kullanılması programcının direktiflerin uygulanma sırasını değiştirmesini sağlar. Bunu gerçekleştirmenin bir yolu uygulamanın sapması (branch) gereken subrutin ya da programın başlangıç adresini depolamaktır. Bu bir miktar Basic dilinin GOTO komutunu andırmaktadır.

MİKRO PROSESÖR

C-64 ve C-128 popüler 8 bitlik 6502 mikro işlemcisinin birazcık değiştirilmiş versiyonları olan 6510 ve 8502 mikroişlemcilerini kullanırlar. Bir programcının açısından 6510 ve 8502, 6502 ile işlevsel olarak özdeştir. Tek temel değişiklik, onlarda 0 ve 1 adreslerinin işlemci içine yerleştirilmiş bir donanım portu oluşturmasıdır. Bu şekilde referans materyalleri de birbirleri için geçerlidir. 8 bitlik bir mikroişlemci olarak 6510/8502 datayı bir seferde sekiz bit ya da bir bayt olarak kullanır. Her bit 0 ya da 1 olabildiğinden (elektronik olarak ifade edecek olursak “kapalı” ya da “açık”) bir tek baytta 256 değer olabileceğini kolayca hesaplayabiliriz (2 üssü 0 ile 2 üssü 7'nin toplamı). 256 sayılık bir alanın çok yararlı hesaplar yapmanıza yararlı olamayacağı açıktır. Programcılar bu sorunu baytları daha geniş bir sayı spektrumunu temsil etmek üzere bir araya getirerek çözüyorlar; 0-9 arasındaki rakamları daha büyük sayılar yaratmak üzere bir araya getirmeye benzeyen bir işlem bu. 6510/8502 işlemcisi bir seferde iki baytı manipüle edecek (16 bit) 65536 adres oluşturur. (0 adresi artı 2 üssü 0 ile 2 üssü 15 arasındaki üslerin toplamı) Sonuçta iki baytın bir araya getirilmesi 65535'tir. Adres-

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