Bu sayfadaki yazılar
Sayfanın metni
Sayfa 42
Türkiye piyasasında çeşitli tiplerde yerli ve yabancı MIDI devreleri satılmaktadır. Bunların fiyatları günün parasıyla 75000 TL'den başlamaktadır. Bizim devremiz yeterli seviyede bir devre olduğu ve normal çalıştığı için olacak herhalde, maximum 20000-30000 TL arasına mal olmaktadır. Devre, Amiga'nın serial portu üzerinden RS-232 standardına uygun olacak şekilde sürülmektedir. Devrede kullanılan 7805 entegresi, Amiga'nın serial portunda +5 volt bulunmaması dolayısıyla kullanılmıştır. Bu entegre sayesinde 12 volttan 5 volt elde ediyoruz. Bu devrede kullanılan TTL entegreyi beslemek için gerekli olan gerilimdir. Unutma devredeki S switch'i çıkışlardan birini OUT veya THRU seçme olanağını yaratmaktadır. Bu sayede bir giriş ve dört çıkış elde edebilirsiniz. Devrede karşılaşacağınız tek zorluk, SPX 7911 veya PC900 entegrelerinin bulunmasında olabilir. Bunlar Opto Coupler olup, piyasada bulunan 6N138 veya 4N27 entegreleri de ayakları uydurulmak suretiyle kullanılabilir. Kırmızı LED MIDI IN'deki datayı, yeşil LED ise MIDI OUT'taki datayı gösterir. Bunlar data iletimi hakkında bilgi sahibi olmanıza yarar, ilk başta, devrenin çalışıp çalışmadığının anlaşılması için yararlı olmakla birlikte, uzun vadede bunları kaldırmanız veya bunları birer transistör üzerinden sürmeniz bilgisayarınızın sağlığı açısından daha yararlı olacaktır.
FAT AGNUS Geçen ay genel olarak değindiğimiz AGNUS entegresi Amiga'nın birçok önemli veri iletişim, bilgi aktarım ve düzenleme görevlerini üzerine almıştır. Daha önce de değindiğimiz gibi, AGNUS bütün DMA akışını kontrolü altında tutar. Ayrıca video görüntüsü için H-sync, V-sync ve Composite video işareti üretir. Bunların yanında Chip RAM'lerin Refresh işlemini de gerçekleştirir.
AGNUS'un diğer önemli iki işlevi ise, Blitter ve Copper'dır. Blitter hafıza bölgeleri üzerinde işlemler yapan veya onların taşınmasında kullanılan özel bir devredir. Bu tip işlemleri 68000'den çok daha hızlı gerçekleştirebilir. Ayrıca Blitter, çizgi çizimi ve alan doldurulması işlemlerini de yapmaya muktedirdir. Copper basit bir yardımcı işlemcidir. Bunun programları copperlist diye adlandırılır. Sadece üç adet komutu vardır. Copper çeşitli chip register'ların içeriklerini 68000'den bağımsız olarak tazeler ve değiştirebilme yeteneğine sahiptir.
FAT AGNUS'un Pinleri ve İşlevleri Pin no Kısa adı İşlevi giriş/çıkış 01-14 RD15-RD2 Register Bus hatları 15-2 I/O INT3* Blitter hazır interrupt'ı O DMAL Audio/Disk DMA isteği I RD1 Register Bus hattı 1 I/O 18 RST* Reset I BLS* Blitter işlev dışı I 20 DBR* Data Bus isteği O 21 RRW DRAM Read/Write O 22 PRW İşlemci Read/Write I 23 RGEN* RGEnable I 24 AS* Adres Strobu I 25 RAMEN* RAM Enable I 26-33 RGA8-RGA1 Register Adres Bus'ı 8-1 O
34 28MHz Ana Clock I 35 XCLK Evrilmiş ana clock I 36 XCLKEN* Ana Clock Enable I 37 CDAC* Evrilip kaydırılmış 7MHz Clock O 38 7MHZ 28MHz Clk. 4'e bölünmüş O 39 CCKQ Color Clock gecikmesi O 40 CCK Color Clock O 41 TEST Register ulaşımı testi I 43-51 MA0-MA8 Output Bus hattı 0-8 O 52 LDS* Alt Data Strobu I 53 UDS* Üst Data Strobu I 54 CASL* Kolon alt adres strobu O 55 CASU* Kolon üst adres strobu O 56 RAS1* Satır adres strobu 1 O 57 RAS0* Satır adres strobu 0 O 59-77 A19-A11 Adres Bus hattı 19-1 I
78 LP* Lightpen O 79 VSY* Vertical Synch. I/O 80 CSY* Composite video synch. O 81 HSY* Horizontal synch. I/O 84 RD0 Register Bus hattı 0 I/O FAT AGNUS'un pinleri bu kadar. Şimdi bunlardan önemli olanları inceleyelim. Data Bus RD0-RD15:
16 adet data hattı mevcuttur. Bunlar, doğrudan Chip RAM Data Bus'ına bağlıdırlar. Ayrıca içteki bütün chip register'lar bu hatta bağlıdırlar.
Register Adres Bus RGA0-RGA8: Agnus register adres bus'ı iki yönlüdür. Bir DMA ulaşımı için, register adres üreteci gerekli register adreslerini bu hat üzerine yerleştirir. Eğer işlemci chip register'lara ulaşmak isterse, bu hatlar giriş halini alır ve işlemci tarafından seçilen register adresi, Agnus içindeki register adres çözücüsüne yollanır. Genelde bu hattaki değer $FF ise, yani bütün adres hattı high ise, hiçbir işlem yapılmaz.
Dynamic RAM'lar için adres hattı MA0-MA8:
Bu adres hattı, chip RAM adres Bus'ına bağlıdır. Bunlar Agnus tarafından her zaman aktif halde tutulurlar.
Clock Hattı CCK ve CCKQ: Bu iki hat sadece clock hatlarıdır. İki sinyalin de frekansı 3.58 MHz olup, bu işlemci frekansının yarısına eşittir. CCKQ sinyali, CCK sinyaline göre 90 derece fazı kaymış bir sinyaldir. Agnus'un bütün zamanlaması bu iki sinyale göre akord edilmiştir.
Bus Kontrol hatları BLS, RRW, DBR: Bu üç hat, Amiga'nın kontrol lojiğine bağlıdır. Agnus, DBR (data bus request) hattını, kontrol lojiğine bir sonraki data bus döngüsünü almak istediğini söylemek için kullanır. Bu hat işlemcinin data isteğine göre, her zaman daha önceliklidir. Eğer Agnus'un herhangi bir bus döngüsüne ihtiyacı olursa, 68000 bu döngü bitene kadar beklemek zorundadır. Bu da bize AGNUS'un ne kadar kazak bir chip olduğunu göstermektedir.
RRW hattı, kontrol lojiğine Agnus'un Chip RAM'e bilgi yazmak veya buradan bilgi almak isteğini bildirir.
BLS sinyali, işlemcinin 3 bus döngüsü müddetince beklediğini haber verir. Agnus bunu öğrenince işlemciye bir döngü yapması için izin verir.
Kontrol sinyalleri RST, INT3, DMAL:
RST sinyali, işlemcinin reset hattına direkt olarak bağlıdır ve reset halinde Agnus'u baştan programa alır.
INT3 hattı, Paula'ya bağlıdır. Agnus bir interrupt yarattığında Paula bu hat üzerinden uyarılır.
DMAL hattı da Paula'ya bağlıdır. Paula bu hattı Agnus'a bir DMA transferi yapacağını bildireceği zaman kullanır.
Diğer Hatlar HSY, VSY, CSY ve LP:
Normalde bir monitörün senkronizasyon sinyalleri, HSY ve VSY'den oluşur. CSY sinyali ise, HSY ve VSY sinyallerinin toplamıdır ve video mixerler için gereken video sinyalidir.
LP girişi, bir light pen bağlandığında aktif olur. Bu pinde bir low seviye belirince, ekran sayaçlarının içerikleri ekrandaki noktanın değerini alır.
HSY ve VSY hatları, ayrıca giriş olarak da kullanılabilir. Bu sayede Agnus dışarıdan senkronize edilebilir (Genlock).
Mutlu mutlu bana sırıtan Agnus'umu, bir reset darbesiyle şimdilik öldürüyor ve gelecek aya size verebilecek yeni fantaziler bulma uğruna yollara düşüyorum.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 43
Merhaba arkadaşlar. Bu ayki yazımızda AMOS'un "Sprite" komutlarını göreceğiz. Ama bundan önce Sprite'lar hakkında genel bazı bilgiler vereceğim. Amiga'nın en önemli yeteneklerinden biri de Sprite'lardır. AMOS hem hardware Sprite'ları hem de software Sprite'larını programlarınızda kolayca kullanabilmenizi sağlar. İlk olarak bunların ne olduğuna bakalım:
Hardware Sprite'ları, ekranda birbirlerinden bağımsız olarak gösterilebilen görüntülerdir. Bunlara örnek olarak Mouse'u verebiliriz.
Bunlar hem üzerlerinden geçtikleri yerleri bozmazlar, hem de son derece hızlı hareket ederler. Ayrıca hafızada çok az yer tutarlar. Bu yüzden oyun programlarının yazılımında ilk sırayı alırlar.
Her Sprite, 16 pixel genişliğindedir. Yüksekliği ise 255 pixel'e kadar çıkabilir. Amiga'nın hardware'i en fazla sekiz tane üç renkli veya dört tane onbeş renkli Sprite kullanmanıza izin verir. Sıfır numaralı renk her zaman için saydamdır. İlk bakışta bu miktar pek o kadar iyi değilmiş gibi gözükebilir, ama AMOS'un programlama teknikleriyle bu miktar fazlaca yükseltilebilir. Şimdi teker teker Sprite komutlarını incelemeye başlayalım.
KOMUT: Sprite KULLANILIŞ: Sprite n,x,y,g Bu komut, seçilen Sprite'ı ekranda göstermek için kullanılır. Burada 'n' Sprite numarasıdır. 'x' ve 'y' ise Sprite'ın gözükeceği koordinatlardır. Bu koordinatlar normal ekran koordinatları olmayıp, özel hardware koordinatlarıdır. Bunları normal ekran koordinatlarına çevirmeyi daha sonra göreceğiz. Burada karşımıza yeni bir kavram çıkıyor. O da Sprite'ın üzerinde 'Hot Spot' adıyla alınan bir nokta. Bu noktanın yeri, verilen koordinatlara göre belirlenir ve Sprite oraya yerleştirilir. Burası sanki Sprite'ları tuttuğu-
BURAK ÖZDEMİR muz yerdir. Genelde Sprite'ın sol üst köşesinde bulunur. Fakat bunun da yerini değiştirmek mümkündür. Neyse yakında bunu daha dikkatli inceleyeceğiz. Şimdi gelelim 'g' parametresine... Bu parametre, sprite bilgisinin alınacağı şekil numarasını belirler. Şekiller hafıza bankasının Sprite'lar için ayrılmış özel bir bölgesinde saklanır. Yukarıdaki parametrelerden x, y ve g yazılmayabilir; fakat yine de uygun yerlere virgül koymanız gereklidir.
Aşağıda bu komuta basit bir örnek var. Burada diskten hafızaya alınan bir Sprite'ı, Mouse ile hareket ettiriyorsunuz. Mouse'un herhangi bir tuşuna basınca da program bitiyor.
Rem ******************************** Rem** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Modified from ** Rem ** the AMOS Manual ** Rem ** By ** Rem ** Burak Özdemir ** Rem ** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem ******************************** Load"AMOS_DATA:Sprites/Octopus.abk" Get Sprite Palette Curs Off: Cls : Paper 0 Locate 0,0 : Centre "Hardware sprites Demo " Do For S=0 To 5 Sprite S+9,X Mouse+S*32,Y Mouse+S*32,l NextS Wait Vbl If Mouse Key>0 Then Exit Loop Şimdi de deminki programın biraz daha değişiğini veriyorum. Burada matematiksel bir yöntemle Sprite'ın hareketini değiştir- dim. Bakalım nasıl bulacaksınız.
Rem ******************************** Rem** AMIGA DÜNYASI ** Rem ** AMOS Demo Program ** Rem ** Written By ** Rem ** Burak Özdemir ** Rem** AMOS Copyright 1990 ** Rem ** Mandarin/Jawx ** Rem ******************************** A#=-0.9599999 B#=1.6 C#=-0.4 X1#=X Mouse Y1#=Y Mouse IX1#=X1 IY1#=Y1 Load "amos__data:Sprites/Octopus.abk" Get Sprite Palette