31.07.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!