Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
KARAKTER DİZİSİ KOMUTLARI
Normal BASIC'da bulunan LEFT$, MID$, STR$ vb. gibi komutların yanısıra daha birçok komut eklenmiştir. PRINT AT ile ekranın istenilen yerine yazı yazmak mümkün olmaktadır. Öte yandan CENTRE ile de istenilen yazıyı o satırın tam ortasına yerleştirmek bilgisayara bırakılmış olur. DUP ile herhangi bir karakter dizisi istenildiği kadar çoğaltılabilirken (örneğin: DUP("A",5) ile AAAAA elde edilir). INST ve INSERT ile bir karakter dizisini bir başka karakter dizisinin istenen yerine yerleştirebilirsiniz. Veya PLACE komutu ile bir karakterin veya karakter dizisinin, bir başka karakter dizisinin kaçıncı karakterinde başladığını bulabilirsiniz. Ancak tüm bu emirler içinde değeri küçümsenemeyecek en önemlisi, hiç kuşkusuz USE komutu. Diğer dillerin PRINT USING ile yaptığı işlemi artık C64 ile de yapabilirsiniz. Örnek vermek gerekirse:
USE 123.507 — $123.57 USE ”,198765.237 — — 987465
MÜZİK KOMUTLARI
Daha önce, tıpkı grafik çiziminde olduğu gibi birçok POKE ile kullanılabilen C64'ün üstün ses özellikleri, artık SIMON'S BASIC ile büyük bir zevke dönüşüyor. VOL ile ses yüksekliğini ayarlarken, WAVE ile her bir ses üretecinin karakteristiklerini de saptayabilirsiniz. Daha sonra da, MUSIC komutu ile bir karakter dizisi içine yerleştirdiğiniz notaları, PLAY komutu ile ve daha önce ENVELOPE komutu ile belirttiğiniz ses sınırına göre çalabilirsiniz. Üstelik isterseniz, müzik çalınırken, programınızın devam etmesini de sağlayabilirsiniz. Bu emirler arasında tek rahatsız edici nokta, notaların bizim alıştığımız do, re, mi... türünde değil de, batılı sistemde kullanılan A, B, C, D, E, F ve G harfleri ile verilmesinin gerekliliği. Ne yazık ki bu, bugüne kadar yazılmış olan tüm müzik programlarının biz Türkler için pek de rahatlık sağlamayan ortak bir özelliği.
MATEMATİKSEL KOMUTLAR
SIMON'S BASIC ile matematiksel işlemlerde de birkaç kolaylık sağlanmıştır. Örneğin, DIV komutu ile iki sayıyı birbirine bölerek, tam sayı kısmını öğrenebilirsiniz. MOD işlemi ile de aynı bölme işleminin kalanını bulabilirsiniz. Normalde INT ile herhangi bir işlemin tamsayı kısmını öğrenmek mümkünken, artık
FRAC fonksiyonu ile sadece virgülden sonrasını da öğrenmek mümkün olmaktadır.
Tüm bunların yanında, daha önceden varolan AND, OR ve NOT gibi mantıksal işlemlere bir yenisi ekleniyor: EXOR. Bir başka önemli özellik de bugüne kadar sadece onluk sistemi kullanmak mümkünken, SIMON'S BASIC ile hem ikilik, hem de onaltılık sistemin kullanılması mümkün hale gelmekte. Onaltılık sayılar başlarına konan bir $ işareti ile ayırt ediliyorlar, örneğin $AB7F gibi. İkilik sistemdeki sayılar ise başlarına konan % işareti ile belli oluyorlar, %11000410, %0011101 gibi. Her iki durumda da ortaya çıkabilen tek zorluk, onaltılık sayıların tam dört karakterden, ikilik sayıların da tam sekiz karakterden oluşması gerekliliği. Bu durumda iki basamakla gösterilebilecek bir onaltılık sayı için gene de dört basamak yazmak zorunluluğu ortaya çıkıyor. $FF yerine $00FF yazmak gibi.
EKRAN KOMUTLARI
FLASH, OFF, BFLASH, BFLASH OFF gibi emirler ile ekrandaki belli bir renge sahip karakterlerin veya ekran çerçevesinin belli bir hızla ve programdan bağımsız olarak yanıp sönmesi sağlanıyor. FCHR, FCOL, FILL komutları ile yazı ekranının istenen bir bölgesi istenen karakter ve renkle doldurulabilirken, INV komutu ile de aynı bölge negatif hale getirilebilmekte. MOVE ile gene yazı ekranının istenen bir bölgesi bir başka bölgeye taşınabiliyor. LEFT, RIGHT, UP ve DOWN gibi komutlar ile de belli bir ekran bölgesi belirtilen yöne doğru kaydırılabiliyor. Eğer ekranınızı kaydetmek veya yüklemek isterseniz, SCRSV ve SCRLD komutlarını kullanabilirsiniz. Ancak bu iki emir sadece yazı ekranı için geçerli; grafik ekranını kaydetmek için herhangi bir komut maalesef yok.
di
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
Bir diğer yeni emir de PROC...END PROC ikilisidir. Böylece, belli program kısımları CALL veya EXEC ile satır numarası kullanılmadan, sadece isimleri ile çağrılabilirler. Burada kullanılan değişkenlerin programın diğer kısımlarını etkilememesi için de LOCAL ve GLOBAL emirleri kullanılabilir. ON ERROR: GOTO ve NO ERROR emirleri ile bir hata çıktığında programın durması önlenerek, o hataya uygun bir program parçasına atlaması sağlanır. ERRIN ve ERRI ile hatanın hangi satırda oluştuğu ve hangi tür hatanın ortaya çıktığı öğrenilebilir.
GRAFİK KOMUTLARI
Normal BASIC ile grafik çizilmeye kalkışıldığında, basit bir sinüs grafiği bile yaklaşık 45 dakika sürer. Ancak SIMON'S BASIC'in grafik emirleri kullanıldığında bu süre 10 saniyeye düşer. Grafik ekranını açmak için ekran ve çizgi rengini de belirterek HIRES komutunu kullanabilirsiniz. Eğer multi-color grafik ekranını istiyorsanız, MULTI komutu ile diğer 3 rengi de belirterek bu grafik sayfasına geçersiniz. Gerektiğinde LOW COL komutu ile çizim yaptığınız renkleri geçici bir süre değiştirebilirsiniz. PLOT emri ile istediğiniz koordinatlara nokta koyup, LINE komutu ile istediğiniz yere bir çizgi çizebilirsiniz. REC, CIRCLE, ARC, ANGL ve BLOCK gibi emirler ile çerçeveler, daireler, daire parçaları, elipsler, çokgenler veya içi dolu dörtgenler çizebilirsiniz. PAINT komutunu kullanarak ekrandaki düzensiz ancak etrafı kapalı bir alanın içini doldurabilirsiniz. DRAW ve ROT emirleri ile ufak figürler saptayıp, bunları değişik açılarda döndürerek ve büyüklüklerini değiştirerek ekrana yerleştirebilirsiniz. CHAR ve TEXT emirleri ile grafik ekranının üzerinde istediğiniz büyüklük, genişlik ve renkte yazılar yazabilirsiniz.
Üstelik tüm grafik emirleri sadece çizgi çizmekle kalmaz. İstendiğinde aynı emirlerle istenen yerler silinebilir. Hatta çizim yapılan yerin negatif hale gelmesi de sağlanabilir.
SPRITE KOMUTLARI
Eskiden, çeşitli hesaplamalardan sonra bulunan sayıların, çeşitli içbellek kısımlarına POKE edilmesi ile gerçekleştirilen sprite oluşturma ve kontrol etme, BASIC ile artık birkaç emirle kendiliğinden yapılabilmektedir. Örneğin bir DESIGN komutu ile, normal veya multi-color bir Sprite'ın şeklinin saptanması çok kolay boyutlara indirilmiştir.
İşte bir örnek: 10 DESİGN 0,13*64 : REM 13. BLOK, NORMAL SPRITE
Sö b
20 21 CBBBB..
22 .BB.BB 23 ©BB..BB... BB..BB 24 CBB...BB.. ..BB...BB 25 CBB....BB. .BB....BB 26 CBB.....BB BB.....BB 27 BB....BB .BB 28 eBB. BB..BB. .BB 29 ..BBBB.. .BB 30 ..BB... .BB 31 ..BBBB.. .BB 32 BB..BB. BB 33 CBB......BB....BB......BB 34 CBE.....BB BB.....BB 35 CBB....BB. .BB....BB 36 ..BB...BB 37 BB..BB 38 CBB.BB. .BB.BB 39 CBBRB.. 40
Daha sonra da, CMOB ile Sprite'ın rengi, MOB SET ile büyüklük, cins, öncelik gibi özellikleri, MMOB ve RLOCMOB gibi emirlerle de ekran üzerindeki hareketin sınırları ve hızı saptanabilmektedir. MOB OFF ile de sprite görünmez yapılabilir. Ekrandaki sprite-sprite çarpışmaları ile sprite-karakter çarpışmaları ise DETECI ve CHECK komutları ile kolayca öğrenilebilmektedir. Tüm bu sprite emirleri arasında eksiklik olarak nitelenebilecek bir şey gene de var, tabii... Bu, sprite'ların hareketini sağlayan MMOB ve RLOCMOB komutları ile ilgili bir ayrıntı. Bu emirler ile, hareketin başlangıç ve varış koordinatları ile hızı verilebilmekte. Ne var ki hareket sırasında program, hareketin bitmesini, yani sprite'ın varış koordinatlarına gelmesini beklemekte. Böylece de aynı anda birkaç sprite'ı birden hareket ettirmek imkânsız hale gelmekte. Yukarıda kullandığımız DESIGN komutu ile karakter setini de değiştirmek mümkün olmaktadır. Bu MEM komutu ile DESIGN komutunun birlikte kullanılması ile gerçekleşmektedir. Örneğin C= ile C tuşlarına basıldığında Ç harfinin çıkması için şöyle bir program yeterli olacaktır:
18 za 21 Ba e3 24 es 26 e7 ea sa 31 se 33 34 25 36 37
€..BBBB.. .BB..BB. .BB. BB..BB. ..BBBB.. BB DESİGN2,$E400412448 ©BB....BB ©B ..B ©B..BBBBEB ©B..BBBBB ©B..BB..B ©BB....BE, ©BBB..BBB ©BB..BBBB
Böylece hem normal, hem de negatif gösterimde Ç harfi yaratılmış olur.