C64 Türkiye sayı 1, sayfa 6

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 6

Yeni yazı dizimize hoş geldiniz. Bir bilgisayarda birçok programlama dili ile çalışabilirsiniz. İlk zamanlarda PASCAL, COBOL, FORTRAN, LISP, C, ADA, FORTH ve BASIC gibi birçok programlama dilleri bilgisayarlar için kullanılmaktaydı. Bu dediklerimden BASIC standart olarak COMMODORE 64’te ve diğer ev bilgisayarlarında çeşitli versiyonlar şeklinde bulunmaktaydı. Diğer diller ise ayrı bir program olarak bilgisayara yükleniyordu. Hangi dili kullanırsanız kullanın aslında bir bilgisayarın anladığı tek dil makine dilidir. Yazılan her komut ROM bellekte bulunan bir YORUMLAYICI (İNTERPRETER) tarafından yorumlanır ve ne yapması gerektiğine karar verilerek komut işletilir. YORUMLAYICI ise tamamen makine dili ile yazılmış bir programdır. Eğer komut yanlış yazılmışsa gerekli hata mesajını yazarak çalışmayı durduracaktır. Aşağıdaki örnek ile ne demek istediğimi daha iyi anlayacaksınız. Çok basit bir örnek vereceğim. PRINT “DENEME” yazıp RETURN tuşuna basınca neler oluyor inceleyelim. 1 – İşletim sistemi (yorumlayıcıdan ayrıdır ve basit olarak her türlü giriş çıkış işlemleriyle uğraşır; klavye, ekran, disket vs.) basılan her tuşu okuyarak hafızada klavye tamponu denilen özel bir yere kaydeder. 2 – Eğer RETURN tuşuna basıldıysa klavye tamponundaki karakterler tek tek okunur ve bir komut olup olmadığı kontrol edilir. Eğer komut değilse SYNTAX ERROR hatası verir. Eğer bir komutsa bu sefer o komuta ait alt programlar çağrılır ve komuttan sonra gelen ifade çözümlenir. Bu örnekte tırnak işareti kontrol edilir ve tırnak içindeki ifadede yer alan karakterler tek tek kontrol edilir. Çünkü C64 bu karakterleri okuyarak ekranı silme, yazı rengi değiştirme, yukarı, aşağı vs. kursör pozisyonu değiştirme gibi işlemleri de yapabilir. Eğer biz PRINT DENEME yazsaydık komut yine çalışacaktı ama bu sefer DENEME ifadesini bir yazı olarak değil bir değişken olarak kabul edecek ve değişkenin değerini ekrana basacaktı. 3 – Komuttan sonra gelen ifadeyi çözümlemek yorumlayıcının işidir. Buraya kadar her şey normal. Bundan sonra işlem bu yazıyı nereye göndereceğimizdir. Bunun için de o anki aktif çıkış kanalı kontrol edilir ve işlem yapılır. Çıkış kanalı normalde ekrandır ama siz bunu printer, disket olarak da tanımlayabilirsiniz. Bunun için ise işletim sistemini kullanarak birkaç değişiklik yapmanız gereklidir.

Gördüğünüz gibi basit bir komut bile ne kadar çok işlem gerektiriyor. Bütün bu işlemler ise sadece makine dili ile yazılmış yorumlayıcı ile işletim sistemi tarafından yapılıyor. Tek komut için belki sorun yok ama aynı işi 256 kez yapmaya kalkarsanız çok zaman harcarsınız.

FOR A=0 TO 256 : PRINT “DENEME” : NEXT Çünkü yukarıdaki işlemler 256 kez tekrarlanacaktır. İşte burada HIZ kavramı işin içine giriyor. Gerçekten de assembler ile yazılan programlar BASIC ile yazılanlara göre neredeyse 1000 kat hızlı çalışır. Ama bu her programı tamamen ASSEMBLER ile yazabiliriz anlamına gelmez. Mesela (12345 + 67890) * (1/4096) – (SİN 5 * COS 1) gibi bir hesaplamayı assembler ile yapmak için bir program yazmak kafayı sıyırmanıza yol açabilir. Ama BASIC kullanarak hem sprite hareket ettirin hem müzik çaldırın hem de ekranı kaydırın dediğimiz zaman orada kalırsınız. Bu nedenle yerine göre BASIC yerine göre ASSEMBLER kullanmanız gerekir. Fakat bu yazı dizimiz bittiğinde assembler ile ufak tefek programlar yapmaya başlayınca assemblerin diğer adıyla makine dilinin zor ama çok güzel olduğunu fark edeceksiniz. Zaman zaman dergide ufak tefek makine dili rutinlerine yer vereceğim.

Konuyu fazla dağıtmadan ilk dersimize başlıyoruz. İlk dersimiz SAYI SİSTEMLERİ olacak. Günlük yaşantımızda her ne kadar onlu sayı sistemini kullanıyor olsak da makine diliyle uğraşacaksanız bu sayı sistemini unutun. Her şeyi ikili (BİNARY) ve onaltılı (HEXADECİMAL) sistemde BİT ve BAYT seviyesinde düşüneceksiniz. Korkmanıza gerek yok. Gerçekten çok basittir.

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