Commodore sayı 77, sayfa 17

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 17

Vedat Hallaç, son zamanlarda yazılarımı anlayan insan popülasyonu iki elin parmaklarıyla bile gösterilebilecek hale gelmişti. Sayın yayın koordinatörümüz bu konuda bir şeyler yapmamı istediği zaman ben de bunun farkına vardım ve yeni bir yazı dizisine girişmeye karar verdim. Şu anda okumakta olduğunuz dizimizde kaynak yetersizliği yüzünden BASIC'te çakılıp kalmış arkadaşları kurtarmayı, BASIC'ten başka dil kullanmayan arkadaşların da aklını çelmeyi planlıyorum. Bu sayede program yapmaya kalktığınızda Commodore'un inanılmayacak kadar az komutu olan BASIC'inin sınırlarından kurtulup, hayal gücünüzün elverdiği her programı yaratabilecek bir güç kazanacaksınız. Şimdiye kadar makine diliyle ilgili olan her kursumuz en azından komutları kullanacak kadar makine dili bilmenizi gerektiriyordu. Oysa, bu yazı dizisinde makine diliyle ilgili hiçbir şey bilmediğinizi varsayarak yola çıkacağım ve ilk bir-iki sayıda sadece makine dilinin temelleriyle ilgili bilgiler vereceğim. Kısacası makine dili program yazmaya başlamak için bile en azından iki sayı beklemeniz gerekecek. Bu sırada makine dilini çatpat konuşan arkadaşlarımız sıkılacaklar ama daha sonra hep birlikte bu dilin inceliklerini öğrenmeye çalışacağız. Bu arada döküm ekinde de bize yarayacak programlar yayınlanacak. Mesela komutları öğrenmeye başladıktan hemen sonra, evinizde kullanabilmeniz için bir monitör programı yayınlayacağız. Tüm komutlarını dergide açıklayacağım bu monitör programı, makine dili programlarınızı yazmakta ve kaydetmekte, hatalarınızı ayıklamakta, kısaca her konuda size yardımcı olacak. İsterseniz sözü daha fazla uzatmadan konularımıza başlayalım. İşte geliyor...

Neden Makine Dili? Neden olmasın?

Tabii ki cevap bu kadar basit değil. Makine dilinin BASIC'e göre en büyük üstünlüğü hızından kaynaklanmaktadır. BASIC'in de makine diliyle yazılmış bir program olduğunu düşünürseniz, makine dilinden yavaş olması size de çok normal gelecek. Evet, yanlış okumadınız. Bilgisayarınızı açtığınız anda kullanıma hazır olarak sizi karşılayan BASIC, aslında makine diliyle yazılmış ve elektronik olarak bilgisayarınızın belleğine kazınmış bir programdır. Aslında bu programa doğrudan BASIC diye hitap etmek pek doğru değil. Programın asıl adı BASIC Yorumcusu'dur. Bilgisayarınızı açtığınız anda çalışmaya başlayan bu yorumcu, klavyeden girdiğiniz tüm satırları harf harf tarar ve bunlardan anlam çıkartmaya çalışır. Eğer kendisi için anlamsız bir şeyler girerseniz başka bir makine dili programı çağrılır ve ekrana (gene karakter karakter) “?SYNTAX ERROR” yazılır. Daha sonra da yeni satırın girilmesi beklenir. Eğer girdiğiniz satır PRINT “BEN MAKINA DILI OGRENİYORUM” gibi anlamlı bir komut-parametre dizisiyse, BASIC yorumlayıcısı bunu parçalarına ayırır. İlk olarak PRINT komutunu fark eder ve bu komutu çalıştıracak olan (gene) makine dili programa sıçrar. Buradaki program komutun arkasındaki yazıyı okur ve bu yazıyı doğrudan doğruya ekrana basar. Sonuç olarak BASIC yorumlayıcısının çok sıkıcı bir işi vardır. Her saniye, ağzınızdan çıkacak sözleri bekler ve anlayabildiği tüm işlemleri sadık bir köpek gibi yerine getirir. Her zaman sizin isteklerinizi yerine getirmeye çalışacağı için de BASIC oldukça yavaştır. Tablo 1'deki programı yazıp çalıştırdığınız zaman, ekranı A harfiyle dolduran BASIC ve makine dili programlarının hız karşılaştırmasını gözlerinizle görebilirsiniz. Aslında makine dili programları da temelde BASIC ile aynı prensibe göre çalışır. Ama makine dilinde yazılmış olan programlar hataları yakalamaya çalışmadığı için ve pek size bağlı olmadıkları için BASIC'e göre 10 ile 1000 kat arası değişen bir hız farkıyla karşılaşmanız çok olasıdır. Bunların yanında, makine dili kullanmaya başladığı andan itibaren BASIC yüzünden kullanamadığınız birçok özellik kullanıma açılacaktır.

53- / 110101 nıma açılacaktır. Mesela bir işin belli aralıklarla tekrarlanmasını isterseniz (bir saatin saniyesinin artırılması gibi), interrupt ya da kesme adı verilen özelliklerden yararlanıp, zamanlama işini bilgisayara yükleyebilirsiniz. Nedense BASIC tasarımcıları BASIC kullanıcılarını bu harika özellikten yoksun bırakmışlar. BASIC kullanıcılarının sahip olmadıkları bir şey daha var: Yeterince bellek. Makine dilinde program yazan bir programcı, bazı şeylerden ödün vererek (daha sonra bu konuların hepsine geleceğiz, acele etmeyin) bilgisayarın toplam hafızası olan 64 Kilobaytın tamamına erişebilir. BASIC programcısı ise 30K'dan az bir bellekle sınırlıdır.

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