Simons' Basic ve Sysres
ommodore 64 ilk piyasaya sürüldüğünden beri her zaman gündemde olan bir konu Basic yorumcusunun ne kadar yetersiz olduğudur. Bunun üstesinden gelmek için en sık başvurulan yöntem makine dili kullanmaktadır. Ancak programlamaya yeni başlayan birçok kişi olduğu düşünüldüğünde makine dili anlaşılmaz bir şifre gibidir. Bu durumda Basic programcısının en büramlardır. Bunların en yaygın olarak kullanılanı hiç kuşkusuz Simons' Basic'tir. Kendi eklediği komutlar yardımıyla grafik, müzik ve programlama işlemlerine büyük kolaylıklar getiren Basic'in yanı sıra ülkemizde pek tanınmayan yardımcı bir program daha vardır: Sysres. Simons' Basic, programlarınızda kullanmak üzere komutlar ekler. Yani Simons' Ba- .
Sysres ise programlama safhasında programcıya yardımcı olacak komutlar içermektedir ve programların çalışması için Sysres'e ihtiyaç yoktur. İngilizce'de “debugging” denen, programın hatalardan (bug) kurtarılması anlamına gelen işlem sırasında Sysres programcıya büyük rahatlık sağlamaktadır. Bunların yanı sıra çeşitli amaçlarla Basic'e komut ekleyen programlar bulunmaktadır. Ancak bunlar çok özel işler için yazılmış programlardır. Örneğin dergimizin eski sayılarında verilen programlardan bazıları üç boyutlu basit cisimler, animasyon, müzik ve grafik çizimleri gibi konularda özelleşmişti. Bu programlar belli amaçlara hizmet ederken çok verimli olarak kullanılabilirler. Fakat hiçbiri Basic veya Sysres gibi tam bir programcılık paketi değildir.
Çalışma Ortamları Commodore 64 kullanırken, programcı iki ayrı ortamda çalışır aslında. Bunlardan ilki bilgisayarı açtığınızda karşınıza gelen direkt kullanım şeklidir. Burada satır numarası kullanılmadan verilen tüm komutlar anında işlenir ve gerekli işlemler yapılır. Diğer ortam ise, yazılan programın satır numaralarına göre işlenmesidir. Program sırasında herhangi bir aksaklık olması durumunda veya istenilirse yine direkt moda geçilir. Simons' Basic'in program ortamında çalıştığını söylemiştik. Bu programı kullanırken eski programlarınızı yükleyip, üzerinde düzenlemeler yapıp yeni komutları ekleyebilirsiniz. Ancak yapılan değişiklikler artık normal 64 ile çalışmaz hale gelmiş bir program yaratacaktır. Yani programı için Basic hafızada olmalıdır. Belirtilmesi gereken bir nokta da Simons' Ba-
Sysres ise direkt modda çalışır. Bu yardımcı programın, kendi programınızda kullanmak üzere hiç komutu yoktur. Tüm komutlar programlama sırasında direkt olarak verilecektir. Sysres, Simons' Basic'in aksine yazılan programın çalıştırılmasında rol oynamaz. Herhangi bir programa başladıktan sonra Sysres'in eksikliğini hissederseniz, hemen yükleyebilirsiniz. Çünkü Sysres, yüklenmesi sırasında Basic program ve değişkenler üzerinde hiçbir değişiklik yapmaz. Böylece herhangi bir anda kesilmiş olan programın üzerine Sysres'i yükleyip daha sonra bunun komutları yardımıyla tüm değişkenlerin listesini görebilirsiniz. Bu iki programın bir ortak yönü, ikisinin de fonksiyon tuşlarını tanımlayabilmeleridir. Basic fonksiyon tuşlarının 1'den 16'ya tanımlanmasını sağlıyor. Bunun için boş ve SHIFT'li basımların yanı sıra Commodore ve CTRL tuşu ile elde edilen kombinasyonları da destekliyor. Sysres'in tanımlanabilir tuşları ise fonksiyon tuşları ile sınırlı değil. Klavye üzerindeki hemen her tuşa bir dizi karakter yüklenebilmektedir. Özellikle CTRL tuşu ile yapılan tuş tanımlamaları komutların veya komut dizilerinin kolayca yazılmasını sağlamaktadır. Sysres, programın listelenmesi sırasında büyük bir kolaylık getirmektedir. Kursor rengi ne olursa olsun satır numaraları ekrana beyaz olarak yazılmaktadır ve böylece satır numaraları ve komutlar birbirlerinden kolayca ayrılmaktadır. Ancak Sysres'in getirdiği en büyük kolaylık program listesi içinde yukarı aşağı dolaşılabilmesidir. Yani LIST komutundan sonra RUN/STOP tuşu ile listeleme kesilebilir. Bundan sonra kursor tuşları ile ekranın altına inildiğinde sonraki satırlar, yukarı çıkıldığında ise önceki satırlar ekrana gelecek ve liste gereken yönde kayacaktır. Bu konudaki bir özellik de programın sonu incelenmek istendiğinde belirmektedir. Ekranın en üstüne satır numarası gibi 63999 yazıldıktan sonra yukarı doğru kursor tuşlarıyla hareket edilirse liste sondan itibaren ekrana gelmeye başlar. Simons' Basic, listeleme konusunda farklı bir yaklaşım izlemektedir. Sysres gibi liste içinde dolaşmak yerine Simons' Basic program listesini istenen sayıda satır içeren sayfalara böler. PAGE n komutundan sonra listeleme yapıldığında ilk olarak programın ilk satırı yazılır. RETURN tuşuna basılarak
> vw“
/ A B B C
ZzzoM m teyi oluşturan n satırlık sayfalar görülebilir. Ortak Komutlar
Sysres tamamen listeleme, düzenleme ve programa yardım amacıyla yazılmış olduğu için bu konudaki komutları çok güçlü. Simons' Basic de aslında birçok komut eklemesine rağmen ekran düzenleme komutları Sysres'inkiler kadar başarılı değil. Kısaca özetlersek program düzenleme işlemleri sırasında her iki programda da ortak şu komutlar bulunuyor. AUTO: Program yazarken satır sonlarında RETURN'e basıldıktan sonra bir sonraki satırın numarasının otomatik olarak yazılmasını sağlar. DUMP: Dizi değişkenleri dışındaki tüm değişkenlerin karşılıklarını yazar. FIND: Program listesi içinde geçen bir karakter dizisini arar. KEY: Simons' Basic'te fonksiyon tuşlarının, Sysres'te ise tüm tuşların tanımlanmalarını sağlar. MERGE: İki veya daha çok programın birleştirilmesini sağlar. OLD: ile silinmiş bir programın geri çağrılmasını sağlar. RENUMBER: Programın satır numaralarını istenen numaradan başlatıp, istenen aralığa göre değiştirir. Ancak Sysres bu işi yaparken satırlardaki GOTO ve GOSUB komutlarından sonra gelen sayıları da değiştirmesine rağmen Simons' Basic'te böyle bir özellik yoktur. TRACE: Programın akışı sırasında hangi satırın işlendiği ekranın sağ üst köşesinde gösterilir. Simons' Basic sadece satır numaralarını yazarken Sysres program satırının ilk 13 karakterini de gösterir.
Disk İşlemleri
Normal Basic ile disk işlemleri yapılırken kullanılan OPEN, ve CLOSE gibi komutlardan kurtulmak için her iki program da çeşitli komutlar kullanmaktadır. Simons' Basic'te bu işler için DISK komutu bulunmaktadır. Sysres ise çeşitli disk işlemlerini tek karakterlik komutlarla gerçekleştirmektedir. Normal Basic'teki silme, isim değiştirme ve formatlama gibi işlemlerin tümü Simons' Basic'teki DISK komutu ile gerçekleştirilebilir. Bu komutun kullanımı ise DISK “X0:isim” şeklindedir. Buradaki X harfi DOS'a komut verilirken kullanılan standart harflerin herhangi biri olabilir. Bunun yanında Basic ile directory okumak için DIR“$ komutu da bulunmaktadır. Sysres'te ise, bazı kartuşlarda ve Dolphin Dos'ta kullanılan & işareti ve bununla aynı işlevi gören sola ok karakteri bulunmaktadır. Disk işlemleri için ( karakterinden sonra istenilen işlemin yazılması yeterlidir. Normalde disk işlemleri sırasında bilgisayar da
kullanılmaz haldedir ve CLOSE komutuna kadar da böyle kalır. Ancak Sysres disk işlemini yürütürken klavyenin normal olarak kullanılmasını sağlar, daha sonra diskle haberleşme kanalı kendiliğinden kapanacaktır. Sysres, disk işlemleri sırasında yükleme, kaydetme için de özel karakterler kullanılmasını sağlar. Örneğin @$ komutuyla directory okunduktan sonra bir dosya adının başına gidip / işaretine bastığınız zaman o dosya için ise aynı şekilde yukarı ok yazmak yeterlidir. Simons' Basic 2'de ise disk işlemlerine yardımcı olan bu komutların yanı sıra bir de disk monitörü bulunmaktadır. Sola ok karakterinden sonra D yazıp girilen bu monitör programı diskten bir blok okumak, okunan bloğu değiştirmek, diskin hafızasında program yazmak ve çalıştırmak için kullanılan dökümünü inceleyerek disk üzerinde çeşitli işlemler gerçekleştirmek hatta ayrı bir disk işletim sistemi yazmak bile olasıdır. Kaset İşlemleri Kaset yüklemeleri için ise Simons' Basic gerekli komutları desteklemektedir. Ancak Simons' Basic 2 turbo'lu yükleme özelliğine de sahiptir. Normal bir turbo programında olduğu gibi Simons' Basic 2 ile ok-L, ok-S ve ok-V komutlarını sırasıyla, yüklemek, kaydetmek ve programın doğru kaydedilip edilmediğini kontrol etmek için kullanabilirsiniz. Sysres ise tamamen diske yönelik bir paket olduğu için disk işlemleri sırasında komuttan sonra “,8” yazmanıza bile gerek kalmaz. Bu yüzden kasete kayıt yapmak için mutlaka kasetin cihaz numarası olan komutun sonuna eklenmelidir.
Makine Dili Monitörü
Sysres, Basic programların çalışmasını engellemediği gibi hafızanın dört değişik bölgesine yüklenebilen makine dili monitörü yardımıyla, yine Basic programları bozmadan makine dilinde program yapmanızı sağlar. MON komutuyla girilecek makine dili programı, bir monitörden istediğiniz hemen her özelliğe sahiptir. Ancak Basic listeler içinde yukarı aşağı dolaşma özelliği ne yazık ki makine dili programlar için geçerli değildir. Aynı şekildeki bir makine dili monitörü Simons' Basic 2'nin içinde hazır olarak bulunmaktadır. Hemen hemen Sysres'inkiyle aynı özelliklere sahip olan bu monitör programına girmek için sola ok karakterinden sonra M yazmak yeterlidir. Sysres makine dili olarak yazılmış programları çalıştırmak için özel komutlara da sahiptir. BLOAD, BRUN, EXEC komutları diskten makine dili programları yüklemeye ve çalıştırmaya yarar.
Hata Koşulları
Programın çalışması sırasında herhangi bir hata olduğunda, bu hatayı bulmak için iki programın da değişik sistemleri vardır. Basic kullanırken hatayı bulmak için programa komut eklemek gerekir. Böylece hata oluştuğunda istenen işlemler gerçekleştirilip yapılan hata düzeltilebilir. Sysres'in hata bulma sistemi ise daha farklıdır. Program bir hata sebebiyle durduktan sonra, işlenen son komutun yerini bulmak için WHY komutu verilebilir. Bu komut sayesinde programın kesildiği satır ekrana gelecek ve hatanın olduğu yer parlatılacaktır. WHY? komutu verilirse parlama yapılmadan sadece hatalı satır ekrana listelenir.
Diğer Fonksiyonlar
Bahsettiklerimizin yanı sıra Simons' Basic, programlarınızda kullanmak üzere birçok komut daha eklemektedir. Bunların genel amaçları, yazı düzenlemesi ve ekran düzeni, matematik fonksiyonlar, grafik çizimi, sprite ve karakter tanımlaması, müzik işlemleri, yapılanmış programlama komutları olarak özetlenebilir. Sysres ise yine programın tümüne yönelik arama ve değiştirme, yazıcıya komut gönderme, belirli satırları silme gibi özel komutlara da sahiptir. Sonuç olarak bakınca, Simons' Basic programlarda daha geniş özellikler kullanmanızı sağlar. Ancak standartın dışında olan bu programlar ancak Simons' Basic hafızada iken çalışırlar. Diğer yandan Sysres tüm programların hazırlanmasında büyük bir yardımcıdır.
Tüm Commodore kullanıcılarına merhaba. Bildiğiniz gibi bu köşenin asıl hedefi, makine dili kullanıcılarına yeni bir şeyler öğretmek, bu arada BASIC kullanıcılarına da bir şeyler verebilmek için bu öğrettiklerimizi BASIC'in yetersiz kaldığı alanlarda kullanmalarını sağlamaktı. Bu ay dengeyi biraz bozup makine dili kullanıcıları tarafına ağırlık vermek istiyorum. Aslında benim BASIC kullanıcılarına tavsiyem, gelecek ay başlatacağım makine dili kursunu olabildiğince iyi takip etmeleri.
Çünkü bu kursu makine dili hakkında hiçbir şey bilmeyen arkadaşlara yönelik olarak hazırlayacağım. Kısaca Commodore'un yetersiz kalan BASIC'inden kurtulmak için son şansınız bu olabilir. Reklamları izlediniz. İki ay önce, BASIC'çilerin kullanması için bir küçük grafik paketi hazırladığımızı hatırlarsınız. Geçen ay makine dili kullanıcılarına bu paketin hangi formülleri ne şekilde kullandığını anlatmıştım. Bu ay (BASIC kullanıcıları kızmasınlar) gene makine dili kullanıcılarına yönelik bir konuyu ele almak istiyorum: BASIC'e komut eklemek. Bu komutlar Commodore'un izin verdiği en basit sistemle eklenecekler BASIC'inize. Yani normal bir BASIC komutu gibi, kaç harften oluşursa oluşsun bir bayt olarak gösterilmeyecekler. Artık yavaş yavaş orijinal fikirler de tükendiği için bu komutları gene iki ay önce anlattığım grafik paketçiğine ekleyeceğim. Aslında yapacağım tek iş, SYS komutlarını kendi seçeceğim bazı komutlarla değiştirmek olacak. Aslında Commodore çoğu bilgisayara göre esnek bir BASIC'e sahiptir. Hangi adreste neyin bulunduğunu bilirseniz, BASIC'e eklemeler yapmak çok kolaylaştırılmıştır. BASIC'i geliştirmenin tabii ki çok yöntemi var. Mesela hatanın verilmesinden hemen önce olaya müdahale edip, sizin istediğiniz komuttan dolayı oluşmuş bir hata varsa bu hatayı iptal edip işlemenizi yaptırabilirsiniz.