Bu sayfadaki yazılar
Sayfanın metni
Sayfa 32
adından sonra ",P" verilirse, program korumalı olarak kaydedilir. Böyle kaydedilen bir program, yüklenip çalıştırılabilir, ancak listelenemez ve değiştirilemez.
Son kullanım şeklindeki gibi, komut sonuna ",B" eklendiği durumda ise dosya binary formatta kaydedilir. Tanımlı format budur ve dosya kayıt esnasında sıkıştırılır. Normal kayıt modu bu olduğundan, bu opsiyonun yazılması gerekmez. ",B" opsiyonu ile ya da opsiyonsuz olarak SAVE fonksiyonu, dosyayı bu formatta kaydeder.
dosya-adı, drive numarası, directory adı ya da library adı içerebilir. Bu komut için örnek vermemize gerek yok herhalde değil mi?
SAY KOMUTU: Kullanım Şekli: SAY Fonem dizisi [,dizi%(0), dizi%(1), dizi%(2), dizi%(3), dizi%(4), dizi%(5), dizi%(6), dizi%(7)]
SAY komutu, fonem kodları kullanılarak yazılan bir diziyi seslendirir. Fonem, konuşma dilinin hece ve kelime birleşiminin birimleridir ve tabii ki her dilin fonemi farklıdır. Fonem kodlarını TRANSLATE$ komutu ile normal texte çevirebileceğiniz gibi, kendi fonem kodlarınızı da girebilirsiniz. Amiga'da SAY ve TRANSLATE$ komutları, İngilizce foneme göre tanımlanmıştır. Siz fonem kullanmadan Türkçe olarak bir text girerseniz, bu İngilizce telaffuz edilecektir.
Fonem dizisi arkasına yazılan dizi%'ler Amiga'nın konuşma karakteristiğini tanımlar. 9 parametre ile belirtilen bu konuşma karakteristikleri, tamsayı olarak girilir. Tamsayı dışında bir data girilirse, "Type mismatch" hatası ortaya çıkar.
dizi%(0), ses yüksekliğini belirler. Burada sesin hangi yükseklikte çıkacağını belirlersiniz. En yüksek ses 320, en alçak ses ise 65 ile belirtilir. Tanımlı değer 110'dur. dizi%(1)'de, ses tonunun hecelere göre değişeceği (0) ya da bilgisayar monotonluğunda (1) olacağı tespit edilir. Tanımlı değer 0'dır.
dizi%(2), konuşma hızını tespit etmek için kullanılır. Bu değer, dakikada söylenecek kelime sayısıdır. Değer sınırı, 40 (yavaş) ile 400 (çabuk) arasıdır. Tanımlı değer, 150'dir. dizi%(3)'te, kadın (1) sesi mi, yoksa erkek (0) sesi mi kullanılacağı belirtilir. Tanımlı olan erkek sesidir.
dizi%(4), akortu ya da örnekleme frekansını tespit eder. Bu değer sesin derinliğini etkiler ve ses kalitesindeki değişiklikleri kontrol eder. Değer, 5000 (alçak ve gürültülü) ile 28000 (yüksek ve cızırtılı) sınırı arasından verilir. Tanımlı değer 22200'dür.
dizi%(5)'te, ses seviyesi tanımlanır. 0 (ses kapalı) ile 65 (sesli) sınırı arasında bir değer verilir. Tanımlı değer 65'tir.
dizi%(6)'da, ses çıkışının hangi kanaldan olacağını belirten değer verilir. Mevcut 12 kanal kombinasyonu vardır. Bunlar, aşağıdaki tabloda listelenmiştir: DEĞER KANAL/KANALLAR DURUM 0 Kanal 0 Sol 1 Kanal 1 Sağ 2 Kanal 2 Sağ 3 Kanal 3 Sol 4 Kanal 0 ve 1 Stereo 5 Kanal 0 ve 2 Stereo 6 Kanal 3 ve 1 Stereo 7 Kanal 3 ve 2 Stereo 8 Tüm boş sol kanallar 0 ve/veya 3 9 Tüm boş sağ kanallar 1 ve/veya 2 10 Boş bir kanal çifti Tanımlı değer 11 Bir boş kanal Tabloda da gördüğünüz gibi, tanımlı değer 10'dur yani boş bir sol ve sağ kanal çifti kullanılır.
dizi%, senkronizasyon modunu belirtir. 0 ve 1 olarak iki değer ile belirtilir. 0 modunda, AmigaBASIC program çalışmasını bilgisayarın konuşması esnasında durdurur. Konuşma tamamlanınca başka işlemlere geçer. Tanımlı mod budur. Senkronizasyon moduna 1 verildiğinde, konuşma arka zeminde sürerken aynı zamanda programın çalışması devam eder.
dizi%(8), iki SAY yönergesi birbiri arkasına geldiği zaman (bil ki dizi%(7)'de 1 değeri verilmişse) ne olacağını kontrol eder. 0, normal işleyiştir; yani birinci SAY tamamlandıktan sonra ikincisine geçilir. Tanımlı değer, 0'dır. 1, 7. parametreye bakmaksızın konuşma işlemini durdurur. 2 verilirse, ilk SAY komutu aniden kesilir ve ikinciye geçilir. Aşağıdaki örnek program, parametreleri rasgele tespit ederek "Amiga" sözcüğünü tekrarlıyor. Yaz ve dinleyin.
Text$="Amiga" Basla:
alan%(0)=90+180*RND alan%(l)=RND alan%(2)=50+200*RND alan%(3)=RND alan%(4)= 17000+1000*RND alan%(5)=40+24*RND alan%(6)=ll*RND alan%(7)=0 alan%(8)=0 SAY TRANSLATE$(Text$),alan% GOTO Basla
SCREEN KOMUTU: Kullanım Şekli: SCREEN ekran-no, genişlik, yükseklik, derinlik, mod
Bu komut, yeni bir ekran yaratmak için kullanılır. AmigaBASIC, Workbench ekranına ek olarak 4 ekran yaratmanıza izin verir. Yani komuttaki ekran-no parametresi, 1-4 sınırları içinde olabilir.
genişlik ve yükseklik ekranın pixel olarak genişlik ve yüksekliğidir, genişlik, 1 ile 640; yükseklik ise 1 ile 400 arasında bir değerle belirtilir.
derinlik, ekranda kullanılan bitplane sayısıdır. 1 ile 5 arasında bir sayı ile verilen derinlik, ekranda görüntülenecek renk sayısını tespit eder:
DEĞER RENK SAYISI
1 2 2 4 3 8
4 16 5 32 mod, ekranın pixel genişliğini ve interlace olup olmadığını, yani çözümleme derecesini tespit eder. 1 ile 4 arasında bir değerle belirtilir: MOD TANIM BİR BİTPLANE İÇİN
GEREKEN BELLEK 1 320*200 Pixel 8000 Byte 2 640*200 Pixel 16000 Byte 3 320*400 Pixel (interlace) 16000 Byte 4 640*400 Pixel (interlace) 32000 Byte Normalde düşük çözümleme modu televizyon ekranında, yüksek çözümleme ise yüksek çözümlemeli monochrome ve RGB monitörlerde kullanılır. interlace bir ekran, yatay satır sayısını ikiye katlar. Bir örnek komut vererek bu komutumuzu da tamamlayalım: SCREEN 1,640,400,1,4: WINDOW 1,"TEST",(0,0)-(400,300),15,1
SCREEN CLOSE KOMUTU: Kullanım Şekli: SCREEN CLOSE ekran-no
Ekranların her biri bellekten bir miktarını yer. Bu nedenle, gerek kalmadığında ekranlar kapatılmalıdır. SCREEN CLOSE komutu, bu işlem için kullanılır. Ekranı pencere olsa da olmasa da temizler ve ekrana tahsis edilen belleği serbest bırakır.
Evet... Bu aylık da bu kadar. Gelecek ay bu köşede buluşmak dileğiyle, hoşçakalın...
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 33
Sayın Mahmure Ünyeli, Sizden Amiga Basic ile ilgili öğrenmek istediğim bir sorum var. Programlarımda ne zaman Library komutunu kullansam "File Not Found" hata mesajını veriyor. Derginizde verdiğiniz örnek programları bu nedenle çalıştıramıyorum. Yazım hatası olmadığından eminim. Şu sorunuma bir çözüm bulursanız sevinirim. Şimdiden teşekkürler.
BARIŞ YAMAN - İZMİT BS'Sevgili Basic meraklısı okurumuz, Bahsettiğiniz hata, library'ler için hatalı directory tanımlamanızdan kaynaklanıyor. Pek çok Basic kullanıcısı da sizinle aynı problemi paylaşıyor. Bu hata ile karşılaşmamak için, öncelikle Basic disketinizdeki LIBS directory'si içinde, yoksa diğerlerinde BMAPS directory'sini aramalısınız. Bulursanız, aranan library'lere ulaştınız demektir; graphics.bmap, intuition.bmap gibi ".bmap" uzantılı birçok dosya buradadır. İşte Library komutunu kullanırken, bu directory'yi tanımlamalısınız. Ancak disketinizde BMAPS directory'si yoksa, başka disketlerde de bulamazsanız dergimize bir disket gönderin, size library'leri çekip gönderelim. Basic çalışmalarınızda başarılar dileriz. Sayın Amiga Dünyası Dergisi yetkilileri, Öncelikle size Amiga'cılar için hazırladığınız bu muhteşem dergiden dolayı tüm Amiga'cılar adına teşekkür etmek istiyorum. Sorularımda bana yardımcı olabilirseniz sevinirim. Sorularım şöyle:
1. Daha önce C-64'te öğrendiğim Basic dilini Amiga'da kullanmak istiyorum. Bu mümkün müdür? Mümkünse bunun için neler gereklidir.
2. Bir "Read-Write Error" mesajı aldım. Bunu önleyecek bir program var mıdır?
3. Bazı disketlerde "HD" harfleri var. Bu disketlerde bir memory farkı var mı?
4. Elinizde Rick Dangerous 2, War Zone, Technocop, Silkworm 4 gibi oyunların tiyoları varsa lütfen yayınlayabilir misiniz?
5. Battle of Britain'de "Radio Tuning"i kısaca anlatabilir misiniz?
Yardımlarınız için şimdiden teşekkürler.
An Amiga User - İSTANBUL >"Sayın Amiga kullanıcısı, dergimiz için bahsettiğiniz övgülerden dolayı size teşekkür etmek istiyoruz. Sizin ve diğer okurlarımızın övgülerine layık olabilmek için daha iyi bir dergi yaratmaya çalışıyor ve yanıtlarınızın sizi tatmin edeceğini umuyoruz.
1. Daha önce C-64'te öğrenmiş olduğunuz Basic dilini direkt olarak Amiga'da kullanabilmeniz mümkün değil. Ancak Amiga'yı C-64'e çeviren programlar mevcut. Bu programlar sayesinde Amiga'nızı C-64'e çevirerek daha önce öğrenmiş olduğunuz Basic dilini kullanabilirsiniz. Ancak bu Amiga için çok basit işlemler demektir. Eğer sahip olduğunuz bilgisayardan en verimli şekilde yararlanmak istiyorsanız, Amiga Basic'i öğrenmelisiniz. Dergimizin Amiga Basic sayfalarını takip ederek bunu başarmanız mümkün. Zaten ufak tefek farklılıklar dışında tüm Basic'ler birbirine benzer. Sadece birbiri yerine kullanılabilecek komutları keşfetmek gerekiyor.
2. "Read Write Error" mesajı size disketinizde bir hata olduğunu belirtmektedir. Bu da disketinizin bozulmuş olabileceği ya da yanlış bilgi kaydedilmiş olabileceği anlamına gelir. Bunu önleyebilmek için herhangi bir program yoktur. Ancak disketiniz bozulmamış ise sadece hatalı yazımdan kaynaklanan bir bozukluk ise disketteki programı yeniden kaydederek bu hatayı giderebilmeniz mümkün. Dergimizin Ekim (17) sayısında bu konuda geniş bir yazı yayınladık.
3. HD etiketli disketler High Density yani yüksek kapasiteli disketlerdir ve hemen hemen normal disketlerin iki katı formatlama kapasiteleri vardır. Öncelikle şunu belirtmek isteriz ki, HD disketler Amiga'da kullanılmasına kullanılır; ancak kapasite farkı olmadığı gibi, çok çabuk Read Write Error mesajı verir. Kapasite farkı, PC bilgisayarlarda ortaya çıkar.
4. Bahsettiğiniz oyunlarla ilgili tiyolar için Amiga Salatası köşesini takip edin. Oyunların tiyoları elimize geçtikçe bu köşemizde yayınlanacaktır.
5. Oldukça şanslısınız. Cevaplamamıza gerek var mı?
Mutlu günler dileriz.
Sayın Amiga Dünyası yetkilileri, Öncelikle böyle yararlı bir dergi çıkarttığınız için sonsuz teşekkür etmek isterim. Sorularımı cevaplarsanız sevinirim.
1. Aztec C'de bazı basit matematiksel fonksiyonları tanımlayabilmem için çok büyük sayılar gerekmektedir. Ancak bilgisayarın bunu tanıması için compile ve link işlemlerinin hangi parametrelerle yapılacağını bilmemekteyim. Ne yapmam lazım?
2. 2 MB'lık Fast Ram devre şemasını ve gereken malzemeyi belirten bir dokümanı adresime gönderir misiniz?
3. Seka V3.2'de Amiga sistemini kullanan programlar bazen çalışırken bazı zamanlarda GURU mesajı veriyor. Neden?
4. Sürekli bilgisayarı resetleyen ve disk driver'ı kullanarak diskte yarıçap doğrultusunda çizgi çizip disketi bozan virüs hangi virüs olabilir? Seek and Destroy bu virüsü tanımamakta ancak VirusK adlı viruskiller bu virüsü standart olmayan kod olarak tanımlayıp sildi.
5. TV modülatörü TV'ye sanıyorum zayıf sinyaller gönderiyor. Çünkü başka bir modülatör gayet iyi sonuç verirken bu modülatör az parazitli, siyah beyaz, magnetik ve elektrik alan değişimlerinden oldukça etkilenen görüntü oluşturuyor. Acaba aldığı sinyali yükselten bir devre şeması ya da Amiga için TV modülatör şeması gönderebilir misiniz?
Ali Rıza Şahin - İSTANBUL Öncelikle güzel sözleriniz için teşekkürler. Sorularınızın yanıtları aşağıdadır.
1. Bu kadar büyük sayıları ancak parçalayarak C'de kullanabilirsiniz. Üs kısmını ayrı bir değişkene atarak bunu sağlayabilirsiniz. Bu sorunuzun yanıtı aslında tamamen yapmak istediğiniz işleme bağlı. Yanıt sizin için yeterli olmazsa daha ayrıntılı bir açıklama ile sorunuzu gönderebilirsiniz.
2. 2 MB'lık Ram devre şemasını gönderemeyiz. Bu ram üzerinde kullanılan bazı chiplerin özel olarak programlanması gerekiyor. Piyasada da bu chipler hem bulunmuyor, hem de programlaması çok zor ve pahalı.
OKUYUCU
3. Bu tür programlar genelde düzensiz yazıldığından hata verir. En çok karşınıza çıkan hata sebebi, bir library pointer'ını kullanmadan o library'e erişmeye çalışan rutinlerdir. Bu gibi hataları yok etmek istiyorsanız, her library çağırışınızda gerekli library base'ini "A6" register'ine atmalısınız. Ayrıca her library fonksiyonu çağrıldıktan sonra "D0" register'ine bir değer yazar. Bu değer 0 ise, library fonksiyonu çağrılmamıştır. O yüzden library'i çağırdıktan sonra "TST.L D0" komutuyla hata olup olmadığını kontrol edin. Eğer varsa, uygun bir rutine dallanın (Library'leri kapamak, programdan çıkmak vs).
4. Maalesef söz ettiğiniz virüsü bilmiyoruz. VirusX'in tanımlamadığı bir virüs ise, yeni virüskiller tarafından rahatlıkla tanımlanabilir. Size yeni virüskillerı temin etmenizi tavsiye ederiz.
5. Ne yazık ki bu da mümkün değil. Çünkü modülatörün şeması Commodore Inc. tarafından tescillidir. Tamir ettirmeyi deneyin.
Umarız yardımcı olabilmişizdir. Sİ
Sayın Amiga Dünyası, Amiga'sı olan tüm arkadaşlarımla ben derginizi elimizden hiç düşürmüyoruz. Böyle bir müthiş dergiyi çıkardığınız için sizlere müteşekkirim. Hareketli film yapmak istiyorum (Lost Patrol'deki çizimler gibi) Türkiye'ye böyle bir özelliğe sahip bir program geldi mi? Geldiyse adı nedir? Saygılarımla.
Umut Özkalyoncuoğlu - İSTANBUL Sayın okurumuz, Mektubunuzda oyunlarla ilgili açıklamalarda istemişsiniz, ancak yeterli yerimiz olmadığı için hepsine yer veremedik. Bu oyunlar hakkındaki ipuçlarını Amiga Salatası köşemizden takip etmenizi tavsiye ederiz, zira bu oyunların tamamını bilen ve hemen cevaplayabilen birisini bulmak oldukça zor. Oyunların ipuçlarını sürekli araştırıyor ve sizlere vermeye çalışıyoruz. Gelelim sorunuza. Bu tarz animasyonlar yapmak için REAL TIME DIGITIZER'a sahip olmanız gerekir. Daha sonra video veya kameraya da sahip olmanız gerekir. Deluxe Paint 3 veya 4'ü kullanabilirsiniz. Çalışmalarınızda başarılar.