Bu sayfadaki yazılar
Sayfanın metni
Sayfa 76
Makrolar Hakkında Dikkat Edilmesi Gerekenler
AsmOne/Pro'da makro yazarken bazı kurallara dikkat etmemeniz durumunda bulunması çok güç hatalarla karşılaşabilirsiniz. Çünkü AsmOne, hataları makronun içinde değil makronun çağırıldığı yerde verecektir. Bu yüzden aşağıdaki konulara dikkat edin;
Açıklama (comment) satırlarını makroların dışına yazın.
2. Makro içinde | karakterini argümanlar dışında bir amaç için kullanmayın. 3. Makro tanımları içinde gereksiz hiçbir karakter kullanmayın.
Include Dosyaları ile Çalışmak
Include dosyaları C'den bildiğimiz include dosyaları ile aynı işi görürler. “.i” uzantılıdırlar ve içerikleri AsmOne ile derlenebilecek şekildedir. İçlerinde çok çeşitli tanımlar, tipler (types), yapılar (structure), makro tanımları ve sabitler (constants) vardır. Commodore firmasının yayınladığı “Includes & Autodocs” dosyalarını bulup hard diskinize ve bir diskete kopyalayabilir ve AsmOne'ın içinden yüklenerek kullanabilirsiniz. Autodoc'lar tüm kütüphanelerin tüm fonksiyonlarını açıklayan yardım dosyalarıdır.
Ayrıca bu dosyalara ek olarak kütüphane ofset değerlerini barındıran LVO (Library Offsets) dosyaları vardır. Bu dosyalar çoğunlukla include klasörünün içinde LVO isimli ayrı bir klasörde dururlar. Bu dosyaları include ettiğinizde fonksiyonlar için ofset değerlerini ezbere bilmenize gerek kalmaz. Aşağıdaki örneği inceleyin:
incdir Tinelude:" include "exec/types.i" include lib.i"
CALL: MACRO İsr ENDM
(a6)
; Open Gfx Library ; move.l lea
$4.w,a6 gfxname CALL OpenLibrary move.l d0,gfxbase beg.s NoGİx
Burada önce gerekli dosyalar include edilmiş, fonksiyon çağırma işlemini kolaylaştırmak için bir makro tanımlanmış ve OpenLibrary fonksiyonu çağırılmıştır. exec_lib.i dosyası include edilmemiş olsaydı CALL yerine jsr -552(a6) yazmamız gerekecekti.
“types.i” dosyası ise tüm ön tanımlı ifadeleri barındırır. Herhangi başka bir dosyayı include etmeden önce bu dosyanın include edilmesi gerekir.
Ayrıca bu dosyaların içine bakarak da çok şey öğrenebilirsiniz. İçlerinde pek çok yararlı açıklama vardır.
Incdir "include:" ifadesinde tam yolu vermek yerine daha önceden yapılmış bir assign kullanılmıştır. CLI penceresinde assign komutu vererek assign'ların listesini alabilir ve yenilerini ekleyebilirsiniz. Ya da dilerseniz include dosyalarının tam yolunu yazabilirsiniz. INCDIR ifadesini kod içinde herhangi bir yerde tekrar vererek farklı klasörlerle çalışabilirsiniz.
Ayrıca belirtmekte fayda var; pek çok include dosyasının derlenebilmesi için ayarlarınızda UCase — LCase'in kaldırılması gerekir. Bazı durumlarda label'lar için : zorunluluğunu da kaldırmanız gerekebilir.
Sonsözler
AsmOne/Pro kullanımı hakkında uzunca bir yazı oldu. Son olarak şunları ekleyebiliriz; AsmOne/Pro çok kullanışlı editörler olsa da bug'ları vardır, o nedenle çalışırken kodlarınızı hard disk ya da floppy diske kaydetmenizi öneririm. Benim yaptığım gibi RAM diske kaydetmeyin, aksi halde makineniz kilitlendiğinde kodlarınızı kurtaramayabilirsiniz.
Kodlarınızı yazarken her zaman label'ları en sol sütuna, komutları ise en az 1 tab karakteri ileriye yazın. Bu sadece okunabilirlik için değil, sebebini anlamadığınız birçok hata mesajını da almanızı engelleyecektir.
Sonraki sayıya kadar hoşça kalın.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 77
Merhaba arkadaşlar, bu sayıdan itibaren bu köşede sizlere yeni/eski Amiga donanımları hakkında bilgi vermeye çalışacağım. Bu sayıdaki temamız, Amiga kullanıcılarının çabalarıyla gerçekleştirilen 'Home Brew' olarak tabir edebileceğimiz projeler. Gelecek sayılarda duruma göre profesyonel ürünler, ev tasarımları, eskiden üretilmiş ama fazla tanınmayan ürünler ve çok kullanılan Amiga donanımları için püf noktaları gibi konuları köşemizde ele alacağız.
68000 Soket
için IDE portu
68000 Soket için IDE portu
Bu proje Finlandiya'dan Mika Leinonen tarafından geliştirilen bir proje. Temel olarak Amiga 600/1200'lerde kullanılan Gayle çipinin emülasyonuna dayanıyor. IDE portu bulunmayan ve IDE arabirimi edinmenin oldukça zor olduğu Amiga 500, 2000 gibi 68000 bazlı Amiga kullanıcılarına yönelik bir proje. Kickstart 37.350 ve sonrası Gayle'in IDE birimi için sürücü içerdiğinden bu kartı scsi.device içeren tüm Kickstart'larda kullanabilirsiniz*. Temel olarak Amiga 500 için tasarlanmış olsa da, 68000 soket barındıran tüm sistemlerde (Amiga 2000, 1000, CDTV) çalışması muhtemel.
kartı alttan görünüş, Xilinx CPLD
Şekil 1.
Projenin belkemiği Xilinx marka bir CPLD. Kaynak kodları proje sitesinden indirebilirsiniz. Proje kodları maalesef ABEL dilinde yazılmış. Bu kart ne yazık ki “tak ve çalıştır” değil. Normalde Amiga 500'de kullanılmayan Gayle register'larına erişildiğinde /OVR ve /INT2 sinyallerini kullanarak veriyolunu devralması gerekiyor. Bu iki sinyali Amiga 500'ün yan bölümündeki genişleme yuvasından çekebilirsiniz. Bu işlem ile ilgili daha ayrıntılı bilgiyi proje sayfasından alabilirsiniz.
IDE6&8k Amiga 500 içinde
Şekil 2.
Benim ilk izlenimlerim kartın büyük uyumluluk gösterdiği yönünde. Tam olarak bir A600/1200 IDE portu gibi çalışıyor, herhangi bir sorun ile karşılaşmadım. IDEFİX programı ile IDE portu üzerindeki CD-ROM'u tanıttım ve veri alışverişi yaptım. Bu aleti Action Replay ile kullanmayı düşünenleriniz için kötü bir haberim var. Action Replay (en azından bendeki MK3) Kickstart 37.300 ve üzeri ile uyumsuz. Dolayısı ile bu pek mümkün görünmüyor.
Amiga 600 için 8 MB Fast RAM
Diğer bir projemiz ise Rusya'dan. Bu proje, Amiga 600'ün 68000 işlemcisi üzerine yerleştirilen bir kart ile sisteme 8 MB FastRAM eklenmesi esasına dayanıyor. Amiga 600'ler piyasaya sürüldüklerinden beri genişlemesi en zor Amiga modellerindendir. PCMCIA yuvası ile sisteme 4 MB'a kadar RAM eklemek mümkün, ama bu yöntem hem yavaş hem PCMCIA portunu kapattığından pek tercih edilmiyor. Dolayısıyla bu proje Amiga 600 fanları için çok büyük önem taşıyor. Bu projede Altera marka bir CPLD RAM'i kontrol etme ve sisteme tanıtma görevini üstlenmiş. RAM olarak ise 8 MB EDO RAM'lerden sökülen 4 adet 16 bit 1Mword RAM çipleri kullanılmış.