Bu sayfadaki yazılar
Sayfanın metni
Sayfa 56
RECORD FROM başl.adr. TO bit.adr.SPEED x
Burada başlangıç adresi ve bitiş adresi HIMEM değerinden büyük olmalı ve tabii ki bitiş, başlangıçtan ileride olmalı. En son parametre x ise O'dan büyük olması dışında sınırlamaya tâbi değil. Örneklenmiş sesin geri verilmesi PLAY (ya da F3 tuşu) komutu ile yapılıyor. Buna ait parametrelerin kullanımı ise RECORD komutundakilerin aynı. Detaylara daha ileride değineceğiz.
DİSKET İŞLEMLERİ
Demin de belirttiğimiz gibi, Speech-Basic her iki ROM'un altınir.
daki RAM'i oldukça yoğun bir biçimde kullanıyor. Ortaya ufak bir sorun çıkıyor tabif ki. İşletim sistemi: deki standart LOAD ve SA VE rutinleri bu bölgeler için Bu yüzden sözkonusu rutinler bir kere daha yazılmış durumda. Yeni komutlarımızın adları BLOADE BSA-VE ve sadece RAM'e hitap ediyorlar. Her iki emir sadece disket işlemleri için kullanılıyor. Zaten başka bir türlüsü de saçma olurdu! Düşünün bir kere, 60 KByte'ı tek parça olarak kasete saklamışsınız. Ses bilgileri için ayrılmış hafıza bölgesini tümüyle diskete saklamak için sadece *BSAdemeniz yeterli. Bu komutu tüm parametreleri ile görmek istersek:
BSAVE"'isim”,sürücü no.su FROM başl.adr. TO bit.adr.
En sondan başlayarak, başa doğru tüm parametreler istenilse verilmeyebilir. Böyle bir durumda o parametre için bilinen belli bir değer kullanılır. BLOAD komutunun parametreleri ile birlikte kullanımı BSA VE komutu ile aynı. Burada kullanılan adres, disketten alınan bilginin hangi adreslerin arasına gideceğini belirtir. Bitiş adresi bir sınırı temsil eder ve yükleme sırasında hiçbir türlü aşılmaz. Mesela, yüklenen dosya, belirtilen aralıktan daha büyükse, dosyanın geri kalan kısmı dikkate alınmaz ve yükleme işlemi orada kesilir. Böylece, yükleme işlemi üzerinde de kesin bir kontrol elde edilir. Bunlardan başka, Speech-Basic her türlü disket işlemini rahat olarak gerçekleştirebilmeniz için DISK ve DIR gibi komutlar da sunmakta. Bunlardan ilki, disket sürücüsüne emir göndermek için, diğeri de disketin içeriğini görmek için kullanılıyor.
SINIRLANMIŞ ÖRNEKLER, BLOK TABLOSU
Speech-Basic'te her bir kelimeyi, cümleyi veya istediğiniz ses bölgelerini bulup, izole etmek oldukça kolaydır. Bunun için, örneklenmiş sesi iki kere dinleyip, birinde kelimenin başında, diğerinde ise sonunda (RES-TORE) tuşlarına basıp, başlangıç ve sonuç adreslerini belirlemek gerekiyor. ((RESTORE)'a basıldığında dinleme işlemi kesiliyor ve kesilme adresi belirtiliyordu.) Kelimenin bulunduğu bölgeyi belirledikten sonra, bu bölgeyi, FROM başl.adr. TO bit.adr.
3 bir kullanımla özetleyebili komutunu vererek dinleyebilirsiniz. Burada, başlangıç ve bitiş adreslerini biraz değiştirerek birkaç kere daha dinleyin. En sonunda, istediğiniz ses bölümünü kesin olarak elde edin. Şimdi elde ettiğiniz sayıları pratikte nasıl kullanacaksınız? Bunları bir kenara mı not etmek lazım? Hayır! Böyle bir kullanım için, ses bloklarını bilgisayardan aklında tutmasını isteyebiliriz. Speech-Basic'te bu tip blokların başlangıcını ve bitişini lında tutabilmesi için aynı isimle anılan bir komutu mevcut. Bunun kullanımı ise:
BLOCKx (FROM başl.adr. (TO BİT.adr.)) (string)
Burada, başlangıç ve bitiş adreslerini demin belirlemiştik. String ise, 8 karakterden oluşan ve bu bloğu tanımlayan kısa bir açıklama. Blok numarasını belirleyen x'ise 1 ile 31 arasında bir sayı olabilir. 30 numaralı blok için daha evvelden, fonksiyon tuşlarının tanımlandığı bölgenin adresi ile belirlenmiş durumda. 31 numaralı blok için ise blok tanımlama tablosunun başlangıç ve sonuç adresi tanımlanmış durumda. Sıfır numaralı blok, gerçekte varolmasına rağmen, kullanıcı tarafından değiştirilemiyor. Bunun görevi, en son BLO-AD işleminin başlangıç ve bitiş adresini akılda tutmak. FROM başl.adr. TO bit.adr. parametrelerini gerektiren bir yerde, bunun yerine belirlenmiş bir blok bölgesini kullanabiliriz. Bunun için sözkonusu parametreleri BLOCKx gibi iz. Speech- Basic başlangıç ve bitiş adreslerini otomatik olarak blok tanımlamasından alır ve kullanır. Bu kullanım, PLAY, RECORD, BLOAD, BSA-VE, MON ve BLOCK komutunun kendisinde geçerlidir. Mesela, buna göre şöyle bir satır yanlış olmaz:
BLOCK 1 BLOCK 0 “Merhaba”
Böylece, yeni yüklenmiş olan, “Merhaba” adlı ses örneğini BLOCK Ve saklar ve BLOCK O'ın içeriğini başka bir yerde saklayarak daha sonraki işlemler için kullanılmak üzere serbest hale getiririz. Gene benzer şekilde:
BSAVE“'f-tuşları””,8 BLOCK 30 kullanım olarak hatalı değildir. ve fonksiyon tuşlarının tanımlanmasını, daha sonra kullanılmak üzere diskette saklamaya yarar. Blok tablosunu tümüyle silmek için şu döngüyü kurmamız gereklidir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 57
T529:BLOCKx
Burada, başlangıç ve bitiş adresleri verilmediği için, bunların yerine otomatikman kullanılabilecek en düşük adres (HIMEM)'ile, kullanılabilecek en yüksek adres ($FFF8) oturtulur. Blok tablosunu görmek istediğinizde, MAPx-y komutunu kullanmanız gerekir. Buradaki x ve y parametrelerinin kullanımı, LIST komutundaki kullanımın olduğu gibi aynısıdır. Örnek olarak, MAP 10, MAP 10-20, MAP-I0 verebiliriz. Altı numaralı fonksiyon tuşu kendinden BLOCK komutu ile tanımlanmıştır. (Tabif, bu tanımlamayı siz de değiştirebilirsiniz.) Şayet F6 tuşundan sonra (RETURN) tuşuna basarsanız, tüm blok tablosunu görürsünüz. Çünkü, BLOCK komutu, parametresiz olarak kullanıldığında MAP 0-31 komutu ile özdeştir.
BAZI ÖZEL EFEKTLER
Örneklediğimiz tüm sesleri izole edebildik mi, ses efektleri elde etmek artık çocuk oyuncağı gibi bir şey. Zaten, sözkonusu efektler program modunda bir şeyler yapmak gereksinimini doğuran tek neden. Diğer tüm işlemleri, direkt modda yapmak daha akıl kârı. En basit olarak elde edilen efekt RAP veya BREAK efekti, yani bir kelimenin kesik kesik tekrarlanması. Bunun için önce kelimenin kendisini (2), bunun içinde yeraldığı cümleyi (1) ve o kelimeden geri kalan kısmını (3) izole etmek ve belirlemek lazımdır. Daha sonra en basit şekliyle 1,2,2,3 sırasıyla ses geri verildiğinde sözkonusu efekt elde edilir. Geri verme sırasında, sesin hızıyla da oynanırsa SCRATCH efektleri elde etmek mümkün. Bir cümlenin son kelimesini belirleyip, cümlenin arkasından bu kelimeyi tekrarlı ve azalan bir ses şiddetiyle geri verirsek ECHO veya HALL efektleri elde edilebilir. Burada, ufak bir aksaklık keşfediyoruz. Ses geri verilirken her bir örnekten bir diğerine geçilirken ekran bir kere göz kırpıyor ve geçiş bölgesi yarattığı hafif parazitle kulak tırmalıyor. Bu durumda yardımımıza EXEC komutu yetişiyor. EXEC sadece parametre kullanan bir komut. Parametreler bir karakter string'inin içinde yeralıyor ve çeşitli harf ve rakamlardan oluşuyor. Her bir harf bir komutu simgeliyor. Örnek verecek olursak, aşağıdaki program;
10 PLAY BLOCK 1: SPEED | 20 PLAY BLOCK 2 30 PLAY BLOCK 3 40 PLAY BLOCK 4
olarak toparlanabiliyor. Tabif ki bustring'in işlenmesi programın yürümesinden daha hızlı olarak gerçekleşiyor ve sesin geri verilmesi sırasında ekran daima kapalı kalıyor. Şimdiye kadar anlattıklarımızı tam anlamıyla takip ettiyseniz, Speech- Basic'in nasıl çalıştığını ve neler yapılabileceğini anlamış olmanız gerekir. Fakat gene de, aşağıda yeralan (oldukça sıkıcı bir işlem ama ne yapalım), komutların kullanımını anlatan bölümü okumanız gerekiyor. Ayrıca, şimdiye kadar bahsedilmemiş birkaç komut ile ilgili açıklamaları da bulacaksınız aşağıda.
KOMUT LİSTESİ
Aşağıda, tüm komutlar yaptıkları işlerin benzerliği altında gruplanmıştır. Anlatım sırasında kullanılan büyük harfler komutların kendisi, küçük harfler ise bunlara ait parametrelerdir. Parantezler, sadece parametrelerin kullanılmama sırasını göstermek için konmuştur. Kullanılmayan parametrelerin yerine bilinen bir değer kullanılır. “Str” diye bahsedilen şey karakterlerden oluşmuş bir string'i temsil eder. Blok adı ile anılan şey belli bir hafıza bölgesidir ve üç türlü belirtilebilir:
1- FROM başl.adr. TO bit.adr. 2- başl.adr. , bit.adr. 3- BLOCK x
Büyük 'A' harfi (A), iki byte'lık bir tamsayıyı (adres) simgeler. Büyük 'N' harfi ise (N), bir byte'lık bir tamsayıyı temsil eder. Dv kısaltması, alet numarasıdır (device number). Disketle yapılan tüm bilgi taşıma işlemleri, 127 no.lu mantıksal dosya kanalını kullanırlar. Bu kanalın bir özelliği, RUN/STOP + RESTORE işlemi sırasında otomatik olarak kapanmasıdır. Bu dünya kanalını kendi programlarınızda kullanamazsınız. LISTING sırasında, (SHIFT) tuşu ile bekletme yapmak mümkündür. Her yerde, onaltılık ve ikili sistemde sayılar kullanmak mümkündür. $A000, %011011. Onaltılık sayılar, önlerinde yer alan '$' dolar işareti ile ayırt edilirler. İkili sayıların önünde ise '%' yüzde işareti bulunmak zorundadır. Onaltılık sayıların kullanımında karşınıza çıkabilecek bir sorundan bahsedelim. İçinde “DEF” dizilimi bulunan onaltılık sayıyı “D EF” gibi ayrı olarak yazın. Sayı olarak bu son kullanım gene geçerli olacaktır. Fakat,
Devre Plaketi