Amiga Dunyasi - Sayi 06 (Kasim 1990).pdf - Retro Dergi
Amiga Dunyasi - Sayi 06 (Kasim 1990).pdf - Retro Dergi
Amiga Dunyasi - Sayi 06 (Kasim 1990).pdf - Retro Dergi
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
labilir.<br />
Kopyalama işleminde <strong>Amiga</strong>'nın üstün<br />
ciplerinden biri olan Blitter kullanıldığından<br />
ve bu cipin ses cipi gibi ilave hafızayı<br />
(512 KByte'dan yukarısı) adresleyemediğinden,<br />
kullanılan buffer'lann her ikisi de<br />
hafızanın ilk 512 KByte'ında (CHIP Ram)<br />
yer almalıdır.<br />
BLITMODE <br />
BLIT, WIPE ve STENCIL komutlarında<br />
kullanmak üzere çalışma modunu belirler.<br />
Bu mod 0'dan 255'e kadar bir değer alabilmektedir.<br />
Bu mod sayesinde bir resmi<br />
kopyalarken aynı zamanda negatifleştirebilir<br />
ya da başka bir lojik işlemden geçirebilirsiniz.<br />
Seçilecek mod, işlem tipini belirler.Normalde<br />
<strong>Amiga</strong>'da Assembler ya<br />
da başka bir dil aracılığıyla Blitter kullanılırsa<br />
255 işlemin hepsi de yapılabilmekte.<br />
Fakat bizim işlemlerimiz 255'ten daha<br />
az; çünkü aslında Blitter üç kaynağa gereksinim<br />
duymaktadır. Bunlardan sadece<br />
B ile C kaynaklan bizi ilgilendiriyor.<br />
B, kaynak<br />
buffer'ımızı; C ise sonuç<br />
buffer'ımızı, yani normal<br />
şartlar altında ekran buffer'ını<br />
temsil eder. Aşağıda<br />
blitter işlem modunun<br />
nasıl hesaplandığını görebilirsiniz.<br />
Bunları anlayabilmek<br />
için biraz lojik işlemleri,<br />
biraz matematik<br />
ve biraz da BASIC bilmek<br />
yeterlidir.<br />
Lojik işlemlerle AND,<br />
OR, NOT, EXOR ve bun-<br />
ların kombinasyonlarından<br />
oluşan işlemleri kastetmekteyim.<br />
Bunları bilenler<br />
şimdiki terim açıklamalarım<br />
atlayabilirler.<br />
NOT : Girişteki bilginin<br />
tam tersini alarak bunu<br />
çıkışa gönderir. Bu, binary<br />
sayı sisteminde 1<br />
olan bitlerin 0, 0 olan bitlerin de 1 olması<br />
demektir. Programımızda bir piksel negatifleştirilirken<br />
31 sayısı en üst renk rakamı<br />
olduğundan bu sayıya göre tersi alınmaktadır.<br />
0 renk kodunu taşıyan pikseller 31,<br />
1 rengindeki pikseller 30 rengini alacaktır.<br />
Bu, tüm renkleri etkilediğinden, sonuç<br />
olarak elimizde resmin negatifi yer alacaktır.<br />
Doğruluk tablosu :<br />
giriş çıkış<br />
0 1<br />
1 0<br />
AND : Ancak her iki girişte de bir olan<br />
bitler çıkışta 1 değeri alabilirler. Bunu<br />
director'da uygularsak, koordinatları aynı<br />
farklı resimlerde olan iki pikselin renk değerleri<br />
de aynı ise işlem sonucunda elde<br />
edilecek resimde aynı koordinattaki piksel<br />
o rengi taşır. Eğer aynı noktada farklı<br />
renklerde pikseller varsa, bunların renk<br />
değerlerinin binary karşılıkları AND işlemine<br />
tabi tutulur ve sonuçta elde edilen<br />
binary sayı da sonuç grafiğindeki pikselin<br />
renk kodu olacaktır.<br />
Doğruluk tablosu :<br />
giriş 1 giriş 2 çıkış<br />
0 0 0<br />
0 1 0<br />
1 0 0<br />
1 1 1<br />
renk kodu resim 1:6= 00110<br />
renk kodu resim 2 : 14 = 01110<br />
renk kodu sonuç : 6 =00110<br />
OR : İki kaynaktan herhangi birinde 1<br />
olan bitler sonuçta da 1 değerini alırlar.<br />
Resimde bu aynı koordinatlardaki değişik<br />
resimlerdeki iki pikselin renk kodlannın<br />
sonuç grafiğinde çok farklı olacaklarını<br />
belirtir.<br />
Doğruluk tablosu :<br />
giriş 1 giriş 2 çıkış<br />
0 0 0<br />
0 1 1<br />
1 0 1<br />
1 1 1<br />
renk kodu resim 1:21 = 10101<br />
renk kodu resim 2 : 11 =01011<br />
renk kodu sonuç : 31 = 11111<br />
XOR ya da EXOR : Burada da iki girişteki<br />
bitler aynı değeri taşıdıklannda çıkıştaki<br />
bit 1 olur.<br />
Doğruluk tablosu :<br />
giriş 1 giriş 2 çıkış<br />
0 1 0<br />
1 0 0<br />
1 1 1<br />
Başına N harfi eklenen işlemlerde ilk<br />
önce temel işlem uygulanır, sonrada sonuç<br />
bilgisi NOT işlemine tabi tutulur (NOR,<br />
NAND, EXNOR).<br />
normal işlem NOT'lu hali<br />
OR ..... NOR<br />
AND .... NAND<br />
EXOR ... EXNOR<br />
Sağ yanında ünlem işareti olan kaynaklar,<br />
negatiflenen kaynaklardır. Yan yana<br />
duran ya da aralarında x işareti olan iki<br />
eleman OR işlemine tabi tutulacak anlamına<br />
gelmektedir. İki işlem arasında +<br />
işareti varsa bu, elemanları AND'lememiz<br />
gerektiğini bildirir.<br />
Aşağıdaki bit dizimi kullandığımız formülleri<br />
sayıya dönüştürmek için gerekli<br />
olan formüldür. Az önce de belirttiğim gibi<br />
buradaki A girişini biz kullanmıyoruz,<br />
bu yüzden onu gözardı edebiliriz. Fakat<br />
formülleri hesaplarken onu da hesabın içine<br />
katmamız lazım; yoksa formül hatalı<br />
olur ve istenmeyen sonuçlar oluşabilir.<br />
Formülde kullanılan terim gruplarının bitlerini<br />
1 yaptığımızda, elimize blitter işlem<br />
modunun binary değeri gelecektir.Bunu<br />
desimal sayı sistemine çevirerek komutumuzla<br />
kullanabiliriz.<br />
ABC ABC! AB!C AB!C! A!BC A!BC! A!B!C A!B!C!<br />
Bit:<br />
7 6 5 4 3 2 10<br />
Formüllerde gerekli birimleri toplamaya<br />
göre çarpanlarına ayırabiliriz. Gerekli görülen<br />
yerlerde de sadeleştirme işlemini<br />
uygulayabiliriz. Sadeleştirmede bir değerin<br />
negatifi ile kendisi birbirini götürecektir<br />
( A + A! =0). Formül hesaplamayı daha<br />
iyi anlayabilmek için aşağıdaki<br />
örneği inceleyin :<br />
Formül: (AB!C) + (AB!C!)<br />
+ (A!B!C) + (A!B!C!)<br />
İlk iki eleman olan AB!C<br />
ile AB!C!'den AB! oluşur.<br />
Nedeni de apaçık ortadadır:<br />
(AB!C)+(AB!C!)=Cx(AB!)<br />
çarpanlarına ayırırsak :<br />
Cx(AB!)=Cx(AB!)4€!x(AB!)<br />
Burada C ile C! birbirini götürür:<br />
(AB!) + (AB!) = AB!<br />
Ardından gelen son iki eleman<br />
da aynı şekilde çarpanlanna<br />
ayrılırsa A!B! elde edilir.<br />
Sonuç olarak elde edilen iki<br />
elemanı da yine çarpanlarına<br />
ayırırsak sonuç olarak C! elde<br />
edilir. Bu, kopyalamada sadece<br />
ekrandaki (ya da resim buffer-<br />
'ındaki) bir dörtgendeki tüm<br />
piksellerin negatifleneceğini<br />
bildirir. Fakat hala elimizde bir<br />
formül elemanı var. O halde bunu BLIT-<br />
MODE komutuyla kullanabileceğimiz bir<br />
sayı haline getirmek için OR'lanan tüm elemanların<br />
bit karşılıklarını bularak bunları 1<br />
yapıyoruz : 01010101 = 85<br />
Artık bu sayıyı mod olarak rahatlıkla kullanabiliriz.<br />
İçinizde hala anlayamayanlar<br />
varsa, onlara bu örnekten yola çıkarak birkaç<br />
örnek yapmaları gerektiğini vurgulamam<br />
gerekir. Aslında bu konuyu anlayanların<br />
da birçok örnek yapmalarında fayda var.<br />
Bu sayede tüm olayı daha iyi bir şekilde<br />
kavramak<br />
mümkün.<br />
BLITDEST <br />
BLIT işleminde dörtgen, ekran yerine bir<br />
resim buffer'ına kopyalanacaksa bunun numarasını<br />
ile programa bildirmeniz<br />
gerekir.<br />
BUFFERS <br />
Programda kullanılacak resim buffer-<br />
'larının adedini belirlemekte kullanılır. Normalde<br />
bu sayı 30'dur. Fakat bunu, bu komutla<br />
rahatlıkla artırabilir ya da azaltabilirsiniz.<br />
BUFFERS komutu kullanılacağı zaman<br />
programın başında daha hiçbir resim yüklenmediği<br />
zaman kullanılmalıdır.<br />
AMIGA DÜNYASİ 30