15.01.2015 Views

Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi

Amiga Dunyasi - Sayi 19 (Aralik 1991).pdf - Retro Dergi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

gi, register'lara gitmeden önce bir adres<br />

decoder'dan geçer.<br />

Clock Girişleri CCK,7M: Denise'ın zamanlaması<br />

CCK clock girişiyle sabitlenmiştir.<br />

CCK clock Fat Agnus'ta üretilir. Buradan<br />

da Denise'e gelir. 7M hattındaki sinyal<br />

7 MHz'dir (7.15909 MHz). Denişe bu saat<br />

girişlerine, pixelleri ekrana düzenli bir şekilde<br />

sürebilmek için ihtiyaç duyar.<br />

Çıkış Sinyalleri RO-3, GO-3, BO-3, ZD<br />

ve BURST: Bu çıkış sinyalleri, Denise'ın RGB çıkışını belirtir.<br />

Bu çıkışlar dijitaldir. Daha sonra bunlar bir bufferdan geçer ve dijital<br />

analog dönüştürücülerle Analog RGB sinyaline dönüştürülüp,<br />

RGB port'a gönderilirler. Bazı video mixerler, bu RGB renkleri<br />

tek bir hat üzerinden isterler. Bunun için BURST denilen sinyale<br />

ihtiyaç duyarlar. Burst yine Denişe tarfından üretilen bir frekans<br />

olup, CCK clockla eşdeğerdir (3.58 MHz). Son çıkış ise ZD sinyalidir.<br />

Bu, <strong>Amiga</strong>'nın Genlock'la beraber kullanılmasında o andaki<br />

görüntünün video mu yoksa <strong>Amiga</strong> görüntüsü mü olacağını belirleyen<br />

çıkıştır.<br />

Mouse/Joystick girişleri MOH, MIH, MOV, MIV: Bu dört giriş,<br />

doğrudan mouse ve joystik portlarına bağlıdır. Buradan mouseun<br />

Yatay ve dikey hareketleri, Denişe içindeki sayıcılara iletilir.<br />

8364 PAULA<br />

Paula'nın başlıca görevi, giriş/çıkışları kontrol altında tutmaktır.<br />

Bu giriş çıkışlar; Disket I/O, Serial I/O, ve ses çıkışları olarak<br />

ana bir temel altında toplanabilir. Ayna<br />

bunlara ilave olarak, Paula bütün interrupt<br />

lan Jcendi kontrolü altında tutar. Systerc<br />

içinde oluşan interruptlar, Paula'dan geçerler.<br />

Normalde ondört adet olan interruptlar<br />

Paula tarafından 6 seviyeye ayrılırlar. Bunlar<br />

68000'e bağlı IPL hatlarına iletilen \-t<br />

seviyeli interruptlardır. Ayrıca Paula kulla<br />

nıcıya bu interruptlar! istediği gibi işleme<br />

\e maskeleme imkanını da sağlar.<br />

Paula'nın disk data transferi ve ses çıkışları<br />

DMA kontrolündedir. Datalar diskten transfer edileceği zaman,<br />

bir sonraki data word'ünün Agnus'un oluşturduğu DMA<br />

transferi için hazır olup olmadığı her zaman belli olmayabilir. Bu<br />

genelde drive'arın hızlarındaki değişimden kaynaklanan bir olgudur.<br />

Aynı şey ses çıkışı içinde geçerlidir. Agnus bir sonraki ses<br />

datasının, yumuşak bir ses geçişi yapmak için, ne zaman gerekli<br />

olduğunu bilemez. İşte bu hataları önlemek için Paula disk ve ses<br />

biilgilerinin kontrolünü elinde tutar ve Agnus'a DMA hattının hazır<br />

olduğunu bildirmek için DMAL hattından bir sinyal gönderir.<br />

Serial iletim haberleşmesi için Paula içinde bir UART bileşeni<br />

bulunmaktadır. (Universal Asynchronous Receive Transmit).<br />

U'ART'ın ses kanallarının ve analog port'ların incelenmesini daha<br />

sonra. Custom chiplerin programlanması ve Hardware Assembler<br />

bölümlerinde ele alacağız.<br />

Şimdi Paula'nın pinlerinin işlevlerini inceleyelim.<br />

Data Bus D0-15: Öteki chiplerde olduğu gibi, bunlarda Chip<br />

Data Bus'ına bağlanmıştır.<br />

Register Adres Bus RGA1-8: Denise'da olduğu gibidir.<br />

Clock Sinyalleeri ve Reset CCK, CCKQ, RES: Paula,<br />

Agnus'la aynı clock sinyallerine sahiptir. Reset hattı RES chip'e<br />

başlangıç durumu almasını haber verir.<br />

DMA isteği DMAL: Bu hatla Paula Agnus'a DMA transferi<br />

yapması gerektiğini bildirir.<br />

Ses çıkışları AUDL,AUDR: AUDL ve AUDR (AUDIO Left<br />

AUDIO Right), Paula'nın oluşturduğu ses sinyallerini yerleştirdiği<br />

analog çıkışlardır. AUDL, 0 ve 3 no'lu ses kanallarını,<br />

AUDR ise 1 ve 2 nolu ses kanallarını taşırlar.<br />

Serial Arabirim Hatları TXD, RXD: RXD (Receive Data)<br />

serial giriş. TXD (Transmit Data) ise serial çıkıştır. Bunlar direk<br />

olarak UART'a bağlıdırlar. Normalde bu hatlar TTL uyumludurlar.<br />

yani seviyeleri 0-5 volt arasındadır. Ancak daha sonra bir çevirici<br />

vasıtasıyla + 12/-5 volt seviyelerine çevrilerek RS-232 standardına<br />

uygun hale getirilirler.<br />

Analog Girişler POT0X, POT0Y, POT1X, POT1Y: POT0X<br />

ve POT0Y girişleri, 0 nolu Joystik portuna, POT1X ve POT1Y<br />

girişleri ise 1 nolu Joystik portuna bağlanmıştır. Paddle'lar ve<br />

Analog Joystikler bu girişlere bağlanırlar. Bu araçlar Potansiyometre<br />

denilen, değişken dirençli elemanlardan oluşurlar ve çıkışları<br />

Joystik portundaki 5 volt ve POT girişlerine bağlanır. Paula bu<br />

direnç değişimlerini ölçer ve içindeki registerlara yazar. POT girişleri,<br />

ayrıca software üzerinden çıkış olarak da belirlenebilirler.<br />

Disk Hatları DKRD, DKWD, DKWE: Paula, DKRD (Dis<br />

Kette ReaD) hattı vasıtasıyla diskten gelen bilgiyi okur ve<br />

DKWD (DisKette Write) hattıyla da hafızadaki bilgiyi, diskete<br />

yazar. DKWE (DisK Write Enable) hattı drive'a bilgi yazılmasına<br />

izin verir.<br />

Interrupt Hatları INT2, INT3, INT6 ve IPL0, IPL1, IPL2:<br />

Paula gerekli interrupt isteklerini, INT hatlarından alır. Buradan<br />

gelen bilgilere göre o seviyede bir interrupt yaratır. INT2<br />

hattı normalde CIA-A-8520 ye bağlıdır. Bu hat ayrıca Expansion<br />

Port'a ve serial port'a da bağlıdır. Eğer bu hatlardan herhangi biri<br />

Low seviyede olursa, Paula 2. seviyeden bir interrupt yaratır.<br />

INT3 hattı Agnus'a ve INT6 hattı ise CIA-B ve Expansion<br />

port'a bağlıdırlar. Diğer seviyedeki interruptlar, Paula'nın içinde<br />

üretilmektedir.<br />

IPL0-IPL2 hatları, direk olarak 680O0'e bağlıdır. Paula bu hatları,<br />

68000'den istediği seviyede interrupt almak için kullanır.<br />

Custom Chiplerin işlevleri genel olarak bu kadar. Gelecek aydan<br />

itibaren Hardware Programlamayı öğrenmeye geçeceğiz.<br />

Bu ay size ufak bir Hardware programı sunuyoruz. Bu Program<br />

Agnus, Denişe ve Peripheral registerları kullanarak ekranda renk<br />

değişimi olmasını sağlıyor. Programı Seka, MasterSeka veya AsmOne<br />

serisi assemblerlardan herhangi biri vasıtasıyla yazabilirsiniz.<br />

Başla:<br />

Move.l $4.a6 ;ExecBase<br />

Jsr -132(a6) ;Forbid<br />

RasterBekle:<br />

Cmpi.b #$ff,$dff006 ;256 nolu satırda elektron ışınını<br />

Bne RasterBekle ;bekle (agnus)<br />

Move.w#$0f0f,$dffl80;Arkaplan rengini değiştir.(Denise)<br />

Move.l #1000,d0<br />

Gecikme:<br />

Dbra d0,Gecikme ; 1000 birim bekle<br />

Move.w #$0000,$dff 180 ;ArkaPlan rengini siyah yap.<br />

Btst #6,$bfe001 ;Mouse basılı mı <br />

Bne RasterBekle ;Hayır, Rasterbekleye dön.<br />

Jsr -138(a6) :Permit<br />

Clr.l d0<br />

Rts<br />

Bu programda Exec.Library'den iki adet komut kullandık; bunlar<br />

Forbid ve Permittir. Forbid Bütün taskları ve interruptları kapatır<br />

ve sistemi bizim himayemize bırakır. Permit komutu ise sisteme<br />

geri döneceğimiz zaman taskların ve interruptların eski durumlarını<br />

almasını sağlar.<br />

$dff006 adresi, VHPOSR (Vertical And Horizontal Beam Position)<br />

bir Agnus registeridir. Bu register ekranı tarayan elektron<br />

ışının o anda yatay ve dikey olarak hangi konumda olduğu bilgisini<br />

içerir. Biz, son satır olan 256 ya kadar bekliyoruz. Bu sırada<br />

copper ekran düzenlemesini yapıyor. Bu satırdan sonra, elektron<br />

ışını tekrar 0 nolu satıra dönüyor. Biz bu ikisi arasında geçen süre<br />

içinde, bir denişe Renk registerı olan $dff 180 (COLOR00 Color<br />

Palette Register 0) vasıtasıyla ekran rengini değiştiriyoruz. Burada<br />

girilen bilgi $0RGB formatındadır. Biz Red ve Blue bileşenlerini<br />

maximum yapıp, eflatun rengini elde ediyoruz. Daha sonra<br />

bu rengin ekranda belli bir süre kalması için 1000'e kadar sayıyoruz.<br />

Aynı şekilde COLOR00 registerına siyah ($0000) girerek<br />

ekranı karartıyoruz». $bfe001 Peripheral register'ının 6 nolu bitinden,<br />

mouse'un sol tuşunun basılı olup olmadığını öğreniyoruz.<br />

Tuş basılı değilse işlemlere baştan başlayıp devam ediyoruz.<br />

Eğer basılıysa interruptları eski haline döndürüp programdan sisteme<br />

geri dönüyoruz. Bu programın, custom chiplerin registerlarına<br />

nasıl ulaşılacağı ve bunların nasıl programlanacağı konusunda<br />

bir parça olsun genel bilgi verdiğini umuyoruz.<br />

Yine aynı sayfada görüşmek dileğiyle, sevgilerimizi sunuyoruz.<br />

AMIGA DÜNYASI 43

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

Saved successfully!

Ooh no, something went wrong!