Amiga Dünyası sayı 23, sayfa 30

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 30

Menüdeki ikinci ve üçüncü fonksiyonların da parametre pencereleri aynı olduğundan bunları beraber açıklamak istiyorum. Fakat her ikisinin de ne iş yaptığını da belirtmem gerekir tabii ki. Add n sinuses, n adet sinüs tablosu yaratarak bunları birbirine ard arda ekler. Multiply n sinuses ise aynı ofsetteki değerleri birbiriyle çarparak karışık bir tablo yaratır.

Gelelim bu iki fonksiyonun parametrelerine. Her iki fonksiyonda da ilk başta bir parametre penceresi çıkacaktır. Burada kaç sinüs tablosunun kullanılacağı belirlenebilir. Ardından çıkacak olan pencereler her bir sinüs tablosu hakkındaki parametreleri ayarlamamızı sağlar. Ana penceredeki parametreler şöyle; Number of sinuses sinüs tablolarının adedini saptamamızı sağlar. Maximum value data tablolarında olabilecek en yüksek değeri tesbit etmemizi, Amount of datas ise data tablosunda yer alacak değerlerin adedini belirlememizi sağlar. Burada değerleri tesbit ettikten sonra Proceed kutucuğunu kullanarak her bir sinüs tablosu ile ilgili bir takım parametreleri ayarlayabileceğimiz pencereler çıkacaktır. Buradaki parametreler de şöyle: Maximum value, numarası belirtilen sinüs eğrisindeki maksimum değeri tesbit etmemizi sağlar. Length one wave ile numarası verilen sinüs eğrisinin uzunluğunu açı olarak belirleyebiliriz. Get next sinus ile de bir sonraki sinüs eğrisinin parametrelerini ayarlayabiliriz. En son sinüs eğrisinin de parametreleri belirtilmiş ise bu kutucukta Calculate Wave yazacaktır. Bununla da data tablosunu hesaplattırabiliriz.

Dördüncü fonksiyon da demin de belirttiğim gibi sinüs eğrisinin sadece belli bir kısmını tablo olarak kaydetmemizi sağlamakta. Start value ve End value parametreleri yardımıyla sinüs eğrisinin alınacak kısmının başlangıç ve bitiş değerlerini belirleyebiliriz. Start değeri End değerinden büyük olursa tablodaki değerler artan değerler olacaktır. Azalan değerler için End value parametresi Start value'daki sayıdan büyük olmalı. Amount of datas yine data tablosundaki değer adedini belirler. Length one wave de her zamanki gibi bir dalga boyunun açısal olarak uzunluğunu belirler. Maximum value at end ise tablo sonundaki maksimum değeri belirlememizi sağlar.

Calculate Wave kutucuğu yardımıyla data tablosunu çıkarttıktan sonra yaratmış olduğumuz tablodaki değerler bir sinüs eğrisi olarak ekranda görülebilir. Bunun hemen altındaki bir alanda değişik kutucuklar bulunmakta. Şimdi de bu kutucukları inceleyelim. Places to move, Move wave kutucuklarında her klik'te kaydırılacak adım sayısını belirler. Move wave yardımıyla sinüs eğrisini kendi içersinde sağa ya da sola doğru kaydırabiliriz (phase shifting). Bu şekilde sinüs eğrisinin başlangıcı da kayacağından değişik sinüs eğrisi görüntüleri elde edebiliriz. Info sinüs eğrimizin parametrelerini görmemizi sağlar; Quit ise o an yaratılan sinüs eğrisinden vazgeçip tekrar ana menüyü kullanarak yeni sinüs eğrileri yaratmamızı sağlar. Backwards yardımıyla sinüs eğrisini ters çevirebiliriz. Flip ise eğrideki negatif değerlerin pozitif olanlarla yer değiştirmesini sağlayarak eğriyi tam anlamıyla kafaüstü çevirir. Modulus kutucuğu eğrideki tüm negatif değerlerin de pozitif olmasını sağlar. Odd Even kutucuğu tabloda ve eğrideki her ikinci değerin işaretini değiştirir. Pozitif olan değerler negatif, negatif olanlar ise pozitif olurlar. Karışık sinüs eğrilerinde bu enteresan bir görüntü oluşturabilir; denemenizde fayda var. Bundan sonra inceleyeceğimiz üç kutucuk data tablosundaki değerlerin ekran koordinatı olarak görülmelerini sağlar. Bunun için ekranın alt kesiminde boş kalan yerde devamlı yukarı doğru kayan çubuklar belirecektir. Bu çubukların her birinin yatay eksendeki pozisyonu direkt data tablosundan okunur. All kutucuğu tablodaki her değerin x koordinatı olarak kullanılmasını sağlar. Odd kutucuğu ile ofseti tek sayı olan tüm değerler (1, 3, 5, 7, ...), Even ile de ofseti çift olan değerler yatay koordinat olarak okunacaktır. Son kutucuk olan Save ise isminden de anlaşılacağı gibi data tablosunun diskete kaydedilmesini sağlamakta. Karşımıza çıkacak olan pencerede yapabileceğimiz ayarlamalar da şöyle: Convert list in ile data tablosunun byte'lardan mı, yoksa word'lardan mı oluşacağını belirleyebiliriz (DC.B ya da DC.W). Convert wave in ise data tablosundaki değerlerin byte ya da word sınırları içinde olmasını sağlar. End list with ise data tablosunun sonuna eklenecek olan bitiş değerini belirlememizi sağlar. Assembler programınızda bu değeri kontrol ettirerek bitişe gelindiğinde tekrar tablonun başının okunmasını sağlayabilirsiniz. End data with ise sinüs eğrisinin sonuna gelecek olan bitiş kodunu belirlemeyi sağlamakta. Offset (before mul.) ile çarpım işleminden önce data tablosundaki her bir değere eklenecek olan sayı miktarını belirlemeyi sağlamakta. Offset (after mul.) ise çarpım işleminden sonra her bir değere eklenecek sayıyı belirlememizi sağlamakta. Multiply wave with ile tablodaki her bir değerin bir sayıyla çarpılması sağlanmakta. Bu sayı normalde 1'dir. Fakat tabloyu oluşturan sinüs eğrisinin genliğini artırmak istiyorsanız her bir değeri aynı sayıyla çarpmanızda fayda var. Lowest value to zero yardımıyla da en alçak değerin 0 olarak kaydedilip edilmeyeceğini belirleyebilirsiniz. En alçak değer 0 olacaksa burada YES kutucuğunu kliklemeniz gerekmekte. Filename ile tabloyu diskete kaydederken kullanılacak ismi belirleyebilirsiniz. Save wave kutucuğu da tablonun kaydedilmesini sağlar. Kayıt işlemi bittiğinde hafızadaki sinüs eğrisi ve tablo silinir ve sizden yine bir menü fonksiyonu seçmeniz beklenir.

Son olarak üçüncü menüde yer alan fonksiyonu tanıtmak istiyorum. Bu fonksiyonun sinüs tablo yaratmakla hiçbir ilişkisi yoktur. İsminden de anlaşılacağı gibi (TextConvert) herhangi bir text file'ını data tablosuna çevirmekte. Bu, programınızda kullanacağınız text'ler ya da bir intro/demoda kullanacağınız scroll text olabilir.

Input name disketteki ASCII text dosyasının ismini belirlemenizi sağlar. Çevirme işleminden sonra data tablosunu diskete kaydederken kullanılacak ismi de Output name ile tanımlayabiliyorsunuz. Convert text to yardımıyla text dosyasını ne tür bir data tablosuna çevrileceğini belirleyebilirsiniz. Source'u seçtiğinizde text dosyasının her satırının başına <DC.B '>, sonuna da sadece bir <'> işareti eklenecektir. Eğer Binary kutucuğunu seçerseniz text dosyasındaki her bir karakterin binary karşılığı tabloya yazılacaktır. Çevirme işlemi sırasında ekranın üst kesiminde dosyanın convert edilen miktarı yüzde olarak yazılacaktır.

Bence, bu programı assembler program yazan herkes kullanmalı. Zaten yapan kişi de bir assembler programcısı. Herhalde kendi ihtiyacı olduğundan böyle bir program yazmış ilgilenenlerin rahat bir utility'den faydalanmasını sağlamış.

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