64'ler sayı 43, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

Selamlar yeni bir assembler köşesiyle yine beraberiz. Bu ayki konumuzu geçen ay başladığımız copper çipi oluşturuyor. Bu sayıda skip komutunu, yatay ve düşey pozisyonların nasıl kontrol ve örnek copper listesi bular

copper komutu memory-bus'tan

cycle'lar çalarak işlevlerini yürütürler. COPPER SINIRLAMALARI : Copper'ın, bireysel olarak hardware register'larına etki edebildiğini onlara veri transferi yapabildiğini biliyoruz. Bunun

BİTLERİ : Hatırladığınız gibi copper pozisyonlarını kontrol için (WAIT komutu) ikinci 16 biti karşılaştırma belirleyici bitler olarak kullanıyorduk. İkinci word'ün 14-1 bitleri arası her zaman 1 yapılmalı 15. bit ise MOVE ve SKIP ko-

KOMUTU : Skip Yonu, vat ko-

mutu gibi bir pozisyonu bekler ve tarama o pozisyona ulaşmışsa yada daha fazla ise, bir sonraki komut çalıştırılmadan atlanır. Skip komutu diğer copper komutları gibi 32 bit yani iki longword'dan oluşur. Bu komutun bitleri aşağıdaki listede gösterilmiştir. İlk word : Bit 0; 1 yapılır. Bit no 8-15 ; raster ışınının y pozisyonu (yatay). Bit no 1-7 ; raster ışınının x pozisyonu. İkinci word Bit no: 0 ; 0 yapılır.

Bit no 1-7 ;x kontrol ile bellek lemek istiyorsak, bunu copper ile direkt olarak değil de, diğer bir yardımcı çip olan blitter ile yapmalıyız. Copper sayesinde, blitter'a çeşitli kopyalama, silme ya da çeşitli taşıma işlemlerini yaptırabiliriz. Copper'la hardware registerlerine veri transferi yaparken bazı limitlerle karşılaşırız. Bunlar 1) Copper kesinlikle $010 ($DFF020) adresinden küçük hardware registerlerine etki edemez. 2) Coprocessor, $020 adresinden yüksek olan tüm hardware registerine istenildiği anda ulaşabilir. 3) $010 - $020 adresleri arasında olan eden bitler. Bit no 8-14 ; y pozisyonunu kontrol eden bitler. Bit no 15 ; BFD biti (Blitter finished disable). Bu bit blitterin işlemini bitirip bitirmediğini kontrol eder. Bu komut için yolu, COPCON registerinin COPPER DAN adlı bitini 1 yapmaktır. YATAY POZİSYON : Bir raster pozisyonu yatay olarak $0 değeriyle $E2 değeri arasında olabilir. Böylece tam 113 adet x pozisyonu bulunmaktadır.

geniş bulabilirsiniz. Örnek olarak aşağıdaki komutu inceleyebiliriz. dc.w $6401 ; yatay pozisyon 100 ($64) ulaşmış yada geçmiş ise bundan sonraki komut atlanır. KOMUT UZUNLUKLARI : Tüm Copper komutları, hafızada iki 16 bitten yani bir longword'dan oluşur. Her bir komutu çalıştırdığında, 32 bitlik bilgiyi kendi belleğine yükler ve çalıştırır Ayrıca her

Fakat bu $04 değeri ile $47 değeri arasında olan pozisyonlar, low-res bir ekranda ekranın yan bölgelerinde kalır ve burada sadece $180 nolu renk olan arkaplan rengi gösterilebilir. DÜŞEY POZİSYON : Bir raster pozisyonunun düşey pozisyonuna raster çizgisi de denilebilir. Normal olarak 312 adet düşey pozisyon mevcuttur. COMPARISON (KARŞILAŞTIRMA)

yaptığından, ko-

mutun cinsine göre 1 yada 0 değeri yazılmalıdır. Normalde WAIT ve SKIP komutlarında ilk word'de belirtilen pozisyon, o anki tarayıcı video ışınının pozisyonu ile karşılaştırılmakta, buna göre bu komuttan sonra gelen MOVE komutu işleme konulmaktadır. WAIT yada SKIP word'ü ise x yada y pozisyonlarından hangisinin yada hangisinin hangi pozisyona kadar karşılaştırılacağını belirler. Örneğin : Comparison enable bitleri : %00000111110010000 şeklinde olsun. Pozisyon bitleri ise şeklinde olursa, sadece pozisyon bitlerinin sayı olarak comparison bitleriyle karşılığı olan bitlerin değeri 1 ise, tarama pozisyonu ile karşılaştırılır. COPPER REGISTER'LERİNİ KULLANMASI : Copper kullanımına ayrılmış birçok hardware register'i vardır. Bu hardware register'leri, copper'ı başlatmak, çeşitli durumları kontrol etmek gibi fonksiyonlara sahiptir. Copper ile ilgili hardware register'leri üç bölümde incelenebilir. Bunlar; listesinin yeri ile ilgili register-

> adreslerle ilgili olanlar. 3) Copper control register'leri. Şimdi bu türleri tek tek inceleyelim...

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