DİGİTİZER

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:

Digitizer devre şeması

SUolt

«Pin? * Pini 1.2k * Pin2 22k si “A4 ase - —Pin8 Giriş Karşılaştırıcılar TTL-katı Kodlama Bilgisayar

EXEC Verilen stringin içindeki karakterleri birçok ses komutunun kısaltılmışı olarak değerlendirir. Bunlardan başka, ses şiddeti ve renk değerleri de bu string'in içinde belirlenebilir. Kısaltılmış olarak yeralan komutlar şunlardır:

p w ; w numaralı blok'u çalma $ w ; hızı belirleme ; w/60 saniye beklemek ses şiddet değerlerini belirlemek © w,w,w,w ; renk değerlerinin belirlenmesi # str ; str diye belirtilen değişkenin de yürütülmesi © ; EXEC işleminin bitirilmesi

Diğer karakterlerden herhangi biri EXEC komutunun yürümesinin kesilmesine neden olur. Her bir komut birbirinden, iki nokta üstüste işareti ile ayrılabilir, fakat şart değildir, istenirse kullanılmayabilir. Parametreleri simgeleyen 'w' bir sabit veya bir değişken olabilir. DİKKAT: EXEC işlemini bitiren '©' işaretini mutlaka kullanın. Yoksa, programınız istenmeyen komutları (!) yürütebilir.

Örnekler:
EXEC
EXEC *s1v0,5,10,15pl c$”
EXEC a$ * “(&”:REM işleminin sıh-
hatli olarak bitirilmesini kesinleştirme
EXEC

E) DİĞER KOMUTLAR

HEX ve DEZ- RESTORE tuşu ile yapılan durdurma işlemleri sırasında verilen mesajın içindeki sayının hangi sistemde verileceğini belirler. ('stopped at xxxxx') HEX komutu, hekzadesimal yani onaltılık sistemi, DEZ komutu ise desimal yani onluk sistemi seçer. SCREEN flag- Ekranın, ses ile ilgili işlemler sırasında (HEAR, RECORD, PLAY ve EXEC) kapanıp kapanmaması gerektiğini belirler. Normalde bütün bu işlemler sırasında ekran kapalıdır ve bu durum ses kalitesini kısmen yükseltmektedir. Parametre olarak belirtilen ON ve OFF olabilir. Bundan başka, bu komutun hemen arkasından gelecek bir matematiksel önerme de aynı işi görür. (Önermenin değerinin sıfır veya sıfırdan farklı olması.) MON (block)- Ses monitörü. MON komutuyla, örneklenen bilgiler ekrana listelenir. Dört adet örnek bir oluşturur. Her bir değer, verilen ses şiddeti değerleri ile duyulabilir sese, verilen renk değerleri ile gözün algılayabileceği renk bantlarına dönüştürülür. Değerler, üzerine gidip yazmak suretiyle değiştirilebilir. Değişiklikler yapıldıktan sonra RETURN tuşuna basmak gerekmektedir. MON komutuyla, kısa süreli gürültülü aralıkları düzeltmek mümkündür. MON komutu en çok, Digitizer devremizin ayarını, kontrolünü yapmamıza yarar. Örnek verecek olursak:

MON FROM $0400 TO $0401 komu-
tunun sonucu; $0400:42444244
İyi ayarlanmış: $BO00:
11112234443322111
Yüksek ayarlanmış: $B000:
1111144444441111
Alçak ayarlanmış: $B000:
2223233433222212

Şekil-4'te, digitizer devresinin komple devre şemasını bulacaksınız. Yeni digitizer'ınızla yapacağınız çalışmalar sırasında bol bol eğlenceler diliyoruz. 0