Bu sayfadaki yazılar
Sayfanın metni
Sayfa 123
0000 adresinden başlayıp 512K yer kaplayan bir alan ayıracağız. Exec.library'miz ilk bölümde olacak, ve buraya 1imegrom patch'ini de yerleştireceğiz. İkinci bölüm ise romheader modülü ile başlayacak. Ondan sonra dilediğimiz modülleri buraya yerleş-
Şekil 11. Remus'ta seçenekler
Bu şekilde normal romunuzun normal ve ek bölümlerini hazırladıktan sonra WinUAE ile deneyin. WinUAE'de rom kısmında, main rom file kısmına normal bölümü, extended rom file kısmına ise ek bölümü koyun. Bu şekilde boot ederek ek bölümdeki modüllerin yüklenip yüklenmediğini kontrol edin.
Eğer romunuz WinUAE testinden geçtiyse yazılmaya hazır demektir. Yazım aşamasında 32 bit sistem romlarını (Amiga 1200, 3000, 4000) yine 16'şar bitlik iki parçaya ayırmamız gerekecek. 16 bit sistemler için ise yine bu aşamaya gerek yok. WinHex'i açın ve elinizdeki iki rom dosyasını da dissect 16 bit ile ikişer parçaya ayırın. Bu işlemi yaparken dosyalara ex1, ex2, nor1, nor2 gibi isimler verin, elinizde dört adet dosya olmalı. Bundan sonra ise yine biraz kafa karıştırıcı bir manevra yapmamız gerekiyor. Elimizdeki iki rom'u birleştirip tek bir rom haline getireceğiz. Ama bunu yaparken önce ek bölümü (extended rom file) sonra ise normal bölümü (main rom file) almamız gerekiyor. Bunun sebebi ise Amiga'nın boot ederken extended rom'u daha önce görmesi. 16 bit romlar için yapmanız gereken, concatenate deyip hedef dosyayı belirledikten sonra önce extended rom'u, sonra main rom'u seçmek ve işlemi bitirmek. 32 bit sistemler için ise daha önce ikişer parçaya ayırdığınız rom dosyalarını yine önce extended ve sonra normal parçaları olacak şekilde birleştirmek ve iki rom dosyası elde etmek. Yani concatenate deyip son1 diye bir dosya yaratın. Bu dosyaya ex1 ve nor1 dosyalarını concatenate ettikten sonra done ile bitirin. Elde ettiğimiz bu son1 dosyası Amiga 1200'de U6A soketine gidecek rom'a yazılacak. Aynı şekilde son2'yi oluşturun, bu dosyada U6B soketindeki rom'a yazılacak.
Bu noktada 16 bit sistem kullanıcılarının karşısına bir sorun çıkacak. 32 bitlik sistemlerde 27C400 romları iki adet 256K'lık parçanın üst üste yazılmasına uygun, zaten yazının başında hatırlarsanız 512K'lık bir rom kopyalarken aynı dosyayı iki kere üst üste kopyalamıştık. 16 bit sistemlerde ise 27C400 rom iki 512K'lık parçaya yetmeyecektir. Onun için yazarken 27C800 gibi bir rom kullanmamız gerekiyor. Ayrıca Amiganızda bu romu kullanabilecek ekstra adres pininin olup olmadığını kontrol edin. Amiga 500/600 kullanıcıları rom soketleri 42 pin olduğundan rahatlıkla kullanabilir. Amiga 2000'lerde ise ECS sistemlerde 42 pinlik bir soket olabilir, ama kesin emin olmak için kontrol etmenizde fayda var.
Şekil 12. A500/600 üzerinde 27C800
Bu işlemleri yapıp dosyalarınızı oluşturduktan sonra yazabilirsiniz. Yazarken yine swap byte işlemini yapmayı unutmayın.
Şu an için Amigalarımızdaki bu ek rom bölgesine koyabileceğimiz modüller sınırlı. Ama yeni modüller üzerinde çalışmalar devam ediyor. En heyecan verici olan gelişme ise bir Action Replay klonu olan HRTMon monitör programının WinUAE programcısı Toni Wilen tarafından rom modülüne çevrilmiş olması. Bu modül sayesinde Amiganızda ek bir kartuşa ihtiyaç duymadan Action Replay tarzı bir monitör kullanabileceksiniz. Kullanabilmek için ise Amiganıza basit bir hack ile bir level 7 interrupt switch'i yapmanız gerekiyor. HRT modülü sadece bir level 7 interrupt durumunda devreye giriyor. Bu konuyla ilgili daha ayrıntılı bilgiyi EAB forumunda bulabilirsiniz.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 122
Eğer Boing Bag'iniz varsa ve parçaladıysanız, Boing Bag ROM update dizininde exec-45.20 dosyalarını göreceksiniz. ROM'unuzdaki eski exec'i buradaki uygun bir exec ile değiştirerek exec'inizi update edebilirsiniz. Aynı durum FileSystem, scsi.device ve diğer dosyalar içinde geçerli. Böylece OS 3.9 açılışındaki setpatch romupdate'in yaptığı tüm güncellemeleri ROM'a aktarabilirsiniz. Bu şekilde güncellenmiş bir ROM kullanırken setpatch'in yarattığı reboot'tan kurtulmak için startup-sequence'da setpatch'i noromupdate parametresiyle çağırmanız yeterlidir. Buradaki scsi.device ve FileSystem özellikle hayati update'lerdir, hard diskinizdeki 4GB limitini kaldırmak için bu update'lere ihtiyacımız var. Bunun yanında Amiga 1200 veya 4000'iniz varsa, ve onboard IDE portunu kullanmıyorsanız, açılışta IDE portunun kontrol edilmesindeki bekleme sizi rahatsız ediyor olabilir. Buradan ROM'unuzdaki scsi.device'ı kaldırarak Amiga'nızın IDE portunu komple devre dışı bırakabilirsiniz, böylece açılışta bekleme yaşamazsınız.
3.9 Boing Bag'deki tüm dosyaları Kickstart'ınıza yerleştirmek istediğinizde Kickstart'ınızda yeterli yer olmadığını göreceksiniz. Bu durumda Kickstart'ınızdan bazı dosyaları çıkarabilirsiniz. Çıkarılabilecek en uygun dosyalar workbench.library ve icon.library lib'leridir. Bu kütüphaneler zaten boot sırasında libs: dizininden yüklenirler. Hatta Amiga 4000T ROM'unda workbench.library, NCRscsi.device'a yer açmak için kaldırılmıştır (Amiga 4000T'de hem IDE hem SCSI bulunduğundan ROM içinde iki scsi.device bulunur). Bu yüzden 4000T ROM'larındaki findWWB modülü sayesinde workbench.library libs:'den yüklenir. Ama bu modül olmadan bile workbench.library yüklenebiliyor, ben pek gerek görmedim. Çıkarabileceğiniz bir diğer dosya icon.library. Bu da workbench.library gibi libs: dizininden yüklendiği için ROM'da yer almasına gerek olmayan bir kütüphanedir.
Remus programı ile ROM oluşturma hakkında söylenebilecekler şimdilik bu kadar, biraz kurcalayarak ve WinUAE ile denemeler yaparak olaya kısa sürede vakıf olabilirsiniz. Biraz da BlizKick ve modüllerinden bahsetmek istiyorum. BlizKick programı, Piru nikli bir Amiga kullanıcısının geliştirdiği, Blizzard ve MapROM destekleyen diğer bazı turbo kartların MapROM özelliğini kullanarak modifiye KickROM'lardan boot etmesini sağlayan bir programdır. Kullanılmak istenen KickROM FastRAM'a yüklenip reboot edilir ve ROM çağrıları FastRAM'daki bu bölgeye yönlendirilir. Bu programın birçok modülü vardır (FPU library'sindeki bir bug'ı gideren fixMath404, ROM içindeki math rutinlerini optimize eden patchMath020, floppy sesini kesen NoClick gibi.). İsterseniz bunları da Kickstart'ınıza ekleyebilirsiniz. Bu modülleri BlizKick programı ile birlikte Piru'nun web sitesi |http://piru.dyndns.org/~piru/sw/|'nden indirebilirsiniz. Yalnız bu modülleri de kullanmadan önce RomSplit'ten geçirmeniz gerekiyor. Bu sayfada dikkatinizi çekebilecek bir başka dosya exec44.library'sidir. Exec44, Piru'nun hazırladığı, 68020+ işlemciler düşünülerek yazılmış optimize, ufak ve birçok bug fix barındıran bir kütüphanedir. İsterseniz official exec.library'nizi çıkartıp bu exec.library'i de deneyebilirsiniz. Yalnız 3.9 Boing Bag'lerden önce yazıldığı için 3.9 update'ler ile sorun çıkartıyor, eğer kullanacaksanız düz bir 3.1 ROM üzerinde kullanmanızı tavsiye ederim. Buradan indireceğiniz modülü bir kez RomSplit'ten geçirdikten sonra ROM'unuza atabilirsiniz.
Bu arada 68000 işlemci kullanan Amigacı arkadaşlarımıza bir uyarıda bulunmam gerekiyor. En son Commodore Exec.library'si ve birçok ROM update en az 68020 işlemci istediğinden düz Amiga 500 ve 600'lerde çalışmamaktadır. Bu sistemler için en uygun ROM'lar scsi.device ve FFS filesystem update'leri yapılmış normal 3.1 exec içeren ROM'lardır.
Amiga
için 1imb romlar
Eğer CD32, CDTV gibi konsolvari Amiga sistemleri gördüyseniz mutlaka dikkatinizi çekmiştir. Bu sistemler açılışta jingle'lı, yanarlı dönerli bir boot ekranına açılırlar. Peki herhangi bir disket, CD okumadan bu konsollar bu boot ekranlarını nereden yüklüyorlar dersiniz? İsterseniz Amiga hafıza haritasına bir göz atarak bu sorumuza bir yanıt arayalım.
$000000-$1FFFFF Amiga Chip Memory $200000-$9F0000 Zorro II Memory Expansion Space $A00000-$B7FFFF Zorro II I/O Expansion Space $B80000-$BEFFFF Reserved $BF0000-$BFFFFF CIA Ports Timers $C00000-$C7FFFF Expansion Memory $C80000-$D7FFFF Reserved $D80000-$DBFFFF Reserved $DC0O000-$DDFFFF Memory Mapped Clock $DDOO0O0O-$DEFFFF SCSI Control $DE0000-$DEFFFF Motherboard Resources $DF0O000-$DFFFFF Amiga Chip Registers $E00000-$E7FFFF Reserved $E80000-$EFFFFF Zorro II Configuration $F00000-$F7FFFF Diagnostic ROM (Reserved) $F80000-$FFFFFF High ROM (512K)
Burada, iki bölge dikkatinizi çekebilir, $F8 0000 - $FF FFFF ve $E0 0000 - $E7 FFFF aralıkları. Bunlardan $F8 0000 - $FF FFFF Kickstart ROM'un yerleştiği bölge olurken, $E0 0000 - $E7 FFFF, Kickstart genişlemeleri için boş bırakılmış bir bölgedir. CD32 ve CDTV sistemleri de ROM'larındaki ekstra bilgileri bu adreslere yerleştirirler.
Kickstart'ımız için ekstra bir 512K adres bulduk, peki burayı nasıl kullanacağız? Buraya yerleştirdiğimiz ROM modülleri otomatik olarak sistem tarafından görülecek mi? Bu sorulardan ikincisinin cevabı, hayır. Extended ROM space dediğimiz bu alanı kullanmayan Amiga'larda ROM alanı exec.library'de $F8 0000 - $FF FFFF aralığı olarak sınırlanmıştır, sistem bunun dışında bir aralıktaki ROM modüllerini aramaz. CDTV ve CD32 gibi sistemlerde ise $E0 0000 - $E7 FFFF aralığını da aktif hale getiren özel bir exec.library bulunur. Dolayısıyla yapmamız gereken ya bir CD32 (32 bit sistemler için), CDTV (16 bit sistemler için) exec.library'si kullanmak, ya da yine doobrey'in hazırladığı herhangi bir exec.library'i modifiye eden 1MB patch'ini kullanmak.
1 MB patch'i ne yazık ki standart Remus programında çalışmıyor. O yüzden http://www.doobreynet.co.uk/beta/Remus1-rc7.lha adresinden beta sürümünü indirip kullanmak durumundasınız. $F80000 - $FFFFFF ve $E00000 - $E7FFFF adresleri parçalı olduğundan, romumuzu iki ayrı bölümde hazırlayacağız. İlk bölüm, exec library'mizin olduğu ana bölüm olacak, ve Remus'da $F80000 adresinden başlayıp 512K yer kaplayan bir alan ayıracağız. İkinci bölüm ise, ek bölümümüz olacak ve burası için $E0