Commodore sayı 15, sayfa 59

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 59

C) SES KONTROL KOMUTLARI

HEAR(SPEED n)- Örneklenen sesin aynı anda duyulmasını sağlar. Burada dört değişik örnekleme seviyesine karşılık olarak dört değişik ses şiddeti seviyesi ve dört değişik rengin belirlenmesi gerekmektedir. Renk değerleri $D020, ses şiddeti değerleri $D418 adresli registere yazılmaktadır. Dinleme işlemini bitirmek için boşluk tuşuna basın. RECORD (block) (SPEED n)- HEAR komutu ile aynı biçimde çalışır. Tek fark, dinlenen sesin aynı zamanda hafızaya da yazılmasıdır. Blok dolmadan, ses kayıt işlemi kesilmek istenirse RESTORE tuşuna basmak yeterlidir. Direkt moddayken bu işlem yapılırsa, kesilme adresi “stopped at xxxxx.” mesajı ile belirtilir. Örnekleme 1 ile 40 arasında değişen bir tamsayıdır. Burada 1, en hızlı kaydı, 40 ise en yavaş kaydı sağlar. Örnek olarak: RECORD RECORD FROM $A000 TO $D000 RECORD SPEED 1 RECORD BLOCK 1 SPEED 10

PLAY(block)(SPEED n)- RECORD işleminin tam tersi: içindeki bilgiler, ses bilgisi olarak yorumlanıp, karşılık gelen ses şiddet değerleri ve renk değerleri kullanılarak geri verilir. En yüksek geri verme hızı olarak “0” kullanabiliriz. Yani sesi kayıttan daha hızlı geri verebiliriz.

VOLDEF (n,(n,(n,(n))))

COLDEF (n,n,n,n) Dört değişik örnekleme seviyesine karşılık gelen ses şiddet ve renk değerlerini belirlemek. Digitizer devresinden elde edilen değerler doğrudan ses ve renk kanallarına yazılmaz. Bu işlemden önce gelen bilgiler, sizin bu komutlarla belirlediğiniz tablolar vasıtasıyla işlenir ve öyle kullanılır. İki değişik örnekle, VOLDEF ve COLDEF komutlarının parametrelerinin etkilerini inceleyelim:

VOLDEFO, 1,2,3:COLDEFO, 11,12, 15: REM alçak sesli ve gri tonları VOLDEFO,5,10,15:COLDEF7,2,5, 6: REM yüksek sesli ve çok renkli

D) DAHA İLERİ SEVİYEDEKİ KOMUTLAR

BLOCK n (block)(str)- Bir blok, 60 tanım olarak, başı ve sonu belirlenmiş ve bunlarla sınırlanmış hafıza bölgesidir. Birçok komutun kullanımında yeralan (block) parametresi ya “FROM başl.adr. TO bit.adr.” biçiminde, ya da FROM ve TO komutları kullanılmayarak yeni “başl.adr., bit.adr.” biçiminde kullanılabilir. Başlangıç ve bitiş adresleri genelde ayrı ayrı kullanılmadığı için BLOCK komutu geliştirilmiş ve her iki adresi tek komutta işlemeye olanak vermiştir. Bitiş adresi olarak tanımlanan sayının, başlangıç adresinden büyük ve $FFF9 adresinden küçük olması gerekir. BLOCK komutu parametresiz kullanıldığı zaman KEY komutu gibi tüm blok tanımlamalarını ekranda listeler. Blokların sayısı 0'dan 31'e kadar uzanabilir. Fakat 0'ıncı blok özel bir işlem için ayrılmış olduğundan bu blok'un kullanıcı tarafından tanımlanması mümkün değildir. Bu blok, en son yapılan BLOAD işleminin başlangıç ve bitiş adresini aklında tutar. 30 numaralı blok, fonksiyon tuşlarının başlangıç ve bitiş adresini, 31 numaralı blok, blok tablosunun bulunduğu bölgenin başlangıç ve bitiş adreslerini aklında tutar. Gerektiğinde bu bölgeler diskette saklanmak istendiğinde (gerçekten de saklamak gerekiyor bu bölgeleri) sözkonusu adresleri aklınızda tutmanız gerekmiyor, komut bu işi sizin için hallediyor. Fakat isterseniz 30 ve 31 numaralı blokları kendi istediğiniz biçimde yeniden tanımlayabiliyorsunuz. Şayet böyle bir işlem sonucu, sözkonusu değerleri kaybettiyseniz bunları MEM komutundan elde edebilirsiniz. Burada parametre olarak verilen str adlı string ise, sekiz karakteri aşmayan ve yalnızca blok tablosu istendiğinde ortaya çıkan, blokların içeriği ile ilgili kısa bilgileri saklasın diye bırakılmış bir açıklama bölgesidir. Blok tablosunu RESET'lemek için (tümüyle silmek, ilk ve temiz haline getirmek için): FOR n=1 TO 29:BLOCK n:NEXT n satırını vermeniz yeterlidir. Bu komuta ait birkaç örnek isterseniz:

BLOCK 1 blok'u silme BLOCK 1,$A000:REM bitiş adresi olarak $FFF8 kullanılır BLOCK 1,$A000,$8000:REM aşağıdakinin kısaltılmışıdır.

1 numaralı

BLOCK 1 FROM $A000 TO $8000 BLOCK | BLOCK 0:REM 0 numa- ralı blok'un içeriğini saklamak BLOCK | BLOCK 0:REM 0 numa- ralı blok'un içeriğini saklamak” ve isimlendirmek. BLOCK | TO $8000:REM YANLIŞ!!!

map(x(y))(y)- Blok tablosunu edit edilebilir şekilde listeler. MAP komutunun arkasında yeralan parametre listesi sizde korku yaratmasın. Aslında parametreler göründüğü kadar korkunç değil, tam aksine LIST komutunun kullanımı ile olduğu gibi aynı bu parametrelerin kullanımı. HIMEM A- Basic için kullanılabilecek hafızanın sonunu (üst sınırını) belirliyor. Böylece, aynı zamanda ses bilgileri için kullanılabilecek alt sınırı da belirlemiş oluyoruz. 'A' değeri, o sırada hafızada bulunan programın son adresinden büyük ve $A000'dan küçük olmak zorundadır. HIMEM komutu yürürken CLR işlemini de yürütür. Örnekler:

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