Amiga Kickstart ROM Dosyası

Amiga için Kickstart ROM yazma

Merhaba arkadaşlar,

Bu yazımızda Amigalar için Kickstart ROM konusunu ele alacağız. İlk bölümde hazır bir ROM dosyasının nasıl gerçek çipe yazılabileceğini anlatacağım. İkinci bölüm ROM dosyaları üzerinde değişiklikler yaparak kendi amaçlarınıza uygun ROM dosyaları hazırlamak üzerine olacak. Üçüncü ve son bölümde ise normalde Amigalarda kullanılmayan 1 MB büyüklüğündeki ROM dosyalarını hazırlama ve yazmayı göreceğiz.

Yazacağınız ROM dosyalarını hazırlamak için Amiganızdan grab edeceğiniz ROM dosyası, upgrade edeceğiniz patch'ler ve eğer güncellenmiş ROM paketleri kullanacaksanız, Boing Bag paketlerine ihtiyacınız olacak. ROM hazırlama işlemini WinUAE üzerinde veya gerçek Amiganızda gerçekleştirebilirsiniz. Bu ROM'ları gerçek çiplere yazmak için ise uygun bir ROM yazıcıya ihtiyacınız olacak.

Şekil 1. 23C2100 Pinout

Şekil 2. 23C4100 Pinout

Öncelikle Amiga'da kullanılan ROM yapısını tanıyalım. Amiga ROM'ları, Kickstart 1.* serisinde 256 KB iken, 2.0 ve üzerinde 512 KB yer kaplar. Bu bilgi, Amiga 500, 600, 2000 modellerinde 512 KB'lık tek bir ROM'da toplanırken, Amiga 1200, 3000 ve 4000 modellerinde 256 KB'lık iki ROM'a bölüştürülmüştür. Bunun sebebi 500, 600 ve 2000 modellerinin 16 bit bus'a sahip olup Kickstart'a 16 bit'lik bölümler halinde ulaşırken, 1200, 3000 ve 4000 modellerinin 32 bit bus üzerinde 32 bit'lik parçalar halinde ROM'a ulaşmasıdır. Kullanılan çipler 23C serisi silinemeyen, yeniden yazılamayan ROM'lardır. 512 KB ROM kullanan Amigalarda 23C4100 serisi ROM'lar kullanılırken, 256 KB'lık çift ROM kullanan Amigalarda 23C2100 serisi ROM'lar kullanılmıştır. Yukarıda bahsi geçen ROM'ların pinoutlarını görebilirsiniz.

Yapmamız gereken, büyüklük ve pinout olarak bu çiplerle uyumluluk gösteren bir çip bulup yazmaktır. Pinout'u uymayan çipleri de gerekli sinyalleri ilgili yerlere gönderecek bir adaptör hazırlayarak kullanabilirsiniz, ama tabii yapacağınız iş artar. Tabii çipleri bulduktan sonra bu ROM'ları programlayabilecek bir EPROM programlayıcı da temin etmeniz gerekiyor.

Şu anda piyasada Amiga ROM'ları ile uyumluluk gösteren ROM'lar 27C400 ve 27C200 ROM'larıdır. 27C200 256 KB olup Amiga 1200, 3000, 4000 ROM'ları yerine kullanabilirsiniz. 27C400 ise 512 KB'tır. Aslında bu ROM'lar oldukça eski olup bulunması gitgide zorlaşmaktadır. Özellikle 27C200 bulması çok zor olduğundan bunun yerine 27C400 kullanacağız. Pinoutlara dikkat ederseniz ikisinin arasında sadece pin 1'in farklı olduğunu görürsünüz. Bu pin 27C200'de NC (Not Connected) olduğundan kullanılmamaktadır. 27C400'lerde bu pin A17 (adres 17) pini olup, 27C400'ün üst 256 KB kısmını adreslemede kullanılmaktadır. O yüzden 32 bit ROM'larda 27C200'deki datayı üst üste iki kez yazarak 27C400 çipini kullanacağız.

Şekil 3. 27C400 Pinout

ROM'larımızı seçtiğimize göre bu ROM'ları programlayabilecek bir ROM yazıcı bulmamız gerekiyor. Eskiden bu programlayıcılar oldukça pahalı aletlerdi. Ama artık 50$ civarına bu aletleri edinmemiz mümkün. Bu yazıda ele alınan programlayıcı, Willem EPROM programlayıcısıdır. Bunun dışında 27C400 destekleyen herhangi bir programlayıcı deneyebilirsiniz. Ancak programlayıcının açıklamasını mutlaka iyi okuyun. Mesela Willem, aslında 32 pin ROM'lar düşünülerek hazırlanmış bir yazıcı olduğundan 40 pinlik 27C'leri yazmak için bir adaptöre ihtiyaç duyuyor. Programlayıcınızı alırken mutlaka 27C400 yazıp yazamayacağınızı, ekstra bir donanıma ihtiyacınız olup olmadığını araştırın. Willem EPROM programlayıcı almak isterseniz de mutlaka 40 pin adaptörüyle birlikte alın.

Eğer programlayacağınız EPROM'ları ve EPROM yazıcınızı temin ettiyseniz her şeyiniz hazır demektir. Bu noktada ihtiyacınız olabilecek tek şey, yanlışlıkla yazdığınız veya değiştirmek istediğiniz EPROM'ları silecek bir EPROM silici. Kullanacağımız EPROM'lar güneş ışığına hassas olmakla birlikte maalesef tam olarak silinmeleri güneş gören bir yerde iki üç hafta sürebiliyor. ROM yazarken siliciniz yoksa bunu da aklınızda bulundurun. Herhangi bir hata size iki haftaya veya ROM silici almanıza neden olabilir.

Şekil 4. Willem'de ROM seçimi

Şekil 5. EPROM yazıcı üzerindeki ayarlar

512 KB'lık tek parçalı ROM'ları (A500-600-2000) 27C400'lere yazmak oldukça basit bir işlem. Öncelikle ROM yazıcınızı yazacağınız ROM'a göre ayarlamanız gerekiyor. Willem programlayıcıda yazacağınız ROM olarak 27C400'ü seçtiğinizde ekrana gelen görüntüden programlayıcı üzerindeki switchleri düzgün bir şekilde ayarlayın. Çipi adaptöre takıp adaptörü ZIF sokete yerleştirin. 27C400, 40 pin olduğundan Willem'in 42 pin adaptöründe en üstteki sırayı boş bırakmanız gerekiyor. Bundan sonra ROM'unuzun tamamen boş olup olmadığını test etmenizi tavsiye ederim (blank test). Bu işlem aynı zamanda ROM yazıcınızı doğru olarak ayarlayıp ayarlamadığınızı da gösterecektir. Bundan sonra yazmak istediğiniz ROM dosyasını yükleyip, bir swap byte işlemi yapmanız gerekiyor. Bu sanıyorum PC ile Amiga arasındaki endianness (http://en.wikipedia.org/wiki/Endianness) probleminden kaynaklanan bir işlem. Bunu yaptıktan sonra ROM'unuzu yazabilirsiniz. Birkaç dakika içinde işlemin tamamlanmış olması gerekiyor. Eğer ROM tam boş değilse sorun çıkabilir. Eğer başka bir

114 problem çıkarsa, yazıcınızı yazacağınız ROM'a göre tam olarak ayarlayıp ayarlamadığınızı ve yazılımda doğru ROM tipini seçip seçmediğinizi kontrol etmenizi öneririm. Yazma işlemi bittikten sonra ROM'umuzun içindeki bilgilerin silinmemesi için penceresini bir etiketle kapayıp kullanabilirsiniz!

Şekil 6. Swap Byte işlemi

Şekil 7. Willem adaptörü üzerinde bir 27C400

Şimdi gelelim işin alengirli kısmına. 256 KB'lık iki parça halindeki ROM'lara. Bu ROM'ları yazmadan önce iki eşit parçaya ayırmamız gerekiyor. Yalnız bu ikiye ayırma işlemi ortadan çat diye değil de, dosyanın en başından 16 bitlik bölümler halinde olması gerekiyor. Bunun sebebi bu tip ROM'ların imajını aldığınız zaman 32 bitlik word'ler halinde sıralanmış olmasıdır. 32 bitlik Amiga sistemlerinde bu bilgi üst 16 bit ve alt 16 bit olacak şekilde iki ayrı ROM'da bulunur. Bizim ise bu dosyadan bu üst ve alt 16 bitlik ROM parçacıklarını oluşturmamız gerekiyor. Bunu yapabilmek için iyi bir hex editöre ihtiyacımız var. Windows kullanıcıları için WinHex adlı editörü önerebilirim. Linux kullanıcıları zaten ne yaptıklarını biliyorlardır :)

Şekil 8. WinHex

WinHex'i açıyoruz. Yukarıda Tools menüsünden File Tools, oradan dissect, oradan da dissect wordwise (16 bit)'e tıklıyoruz. Bu işlemi yaptıktan sonra bize ikiye ayrılmış dosya için iki dosya ismi soracaktır. Burada ilkine UGA ikincisine U6B diyelim. Bu şekilde tek bir dosya halinde duran ROM'umuzu Amiga 1200'de UGA ve U6B soketlerinde kullanılabilecek şekilde iki dosyaya ayırdık. Eğer elinizde 256K ROM'lar (27C200) varsa, bu dosyaları direkt (byte swap yapmayı unutmayın) çiplere yazarak kullanabilirsiniz. Eğer elinizde 27C200 yoksa ve 512K'lık 27C400'lere yazacaksanız sıradaki işlemi de yapmanız gerekiyor.

Bu işlem UGA ve U6B dosyalarını arka arkaya yapıştırma işlemi. Böylece 27C400'ün boş kalan üst 256K'lık bölümünü de doldurmuş oluyoruz. Yine WinHex'te Tools menüsünden File Tools'a ve concatenate'e gelin. Size son dosyanın ismini soracaktır. İlk olarak oluşturalım, burada oluşturmak istediğiniz dosyaya UGA.rom ismini verin. Ondan sonra size yapıştırmak istediğiniz ilk dosyayı soracaktır. Burada bir önceki adımda yarattığımız UGA dosyasını seçin. Tekrar sorduğunda yine U6B'yi seçin. Ve done diyerek işlemi bitirin. 524288 bytes from 2 files were concatenated to "UGA.rom" mesajını gördüyseniz ROM dosyamız hazır demektir. Aynı işlemi U6B içinde yapın ve U6B.rom dosyasını oluşturun.

Dosyaları oluşturduktan sonra sıra yazmaya geliyor. UGA.rom ve U6B.rom dosyalarını eprom programlayıcınızla iki ayrı 27C400'e yazın. Swap Byte yapmayı unutmayın. Yazma işlemi bittikten sonra ROM'ların üzerindeki pencereyi ışık girmeyecek şekilde etiketleyin. Artık ROM'larınızı Amiga'nızda kullanabilirsiniz!

Bu arada bu işlemlerle ilgili birinci elden daha fazla bilgi almak isterseniz EAB forumundaki ROM yazma başlığına bir bakmanızı tavsiye ederim. Buradan faydalı bilgiler edinebilirsiniz.

Amiga

için özel Kickstart ROM hazırlama

Yazımızın ilk bölümünde Amiga için nasıl Kickstart ROM yazılabileceğini incelemiştik. Şimdi olayı biraz derinleştirip nasıl kendi ROM dosyalarımızı oluşturabileceğimizi inceleyelim.

Öncelikle neden böyle bir şey yapmak istediğimizi açıklamakta fayda var. Maalesef bilindiği gibi Amiga ROM'ları 3.1 sürümlerinde bile hatalar ve eksiklikler içermektedir. Bunları gidermek için OS 3.9 ve Boing Bag'ler ile bazı yamalar piyasaya sürüldü. Bu yamalar ile birlikte Kickstart ROM'lardaki bazı eksiklikler giderildiği gibi, FFS dosya sistemi, Amiga 600 ve 1200 gibi onboard IDE olan sistemler için güncel IDE sürücüleri gibi güncellemeler Kickstart'lara eklendi. Fakat Kickstart çiplerinin yeniden yazılması mümkün olmadığından bu güncellemeler software olarak gerçekleştirildi. Boing Bag update'leri kurulmuş bir sistem ilk açılışta bu değişiklikleri yükleyip yeniden başlayarak Kickstart'ta bulunan bilgileri güncelliyordu. Tabi bu Amiga'mızı ilk açtığımızda gereksiz bir restart olması anlamına geliyor. Blizzard kartları ve diğer bilimum eklentiler için gereken update'ler ile birlikte açılıştaki restart sayısı artabiliyor. Bu değişikliklerle yamalı bohça haline gelen Kickstart'ı düzgün bir şekilde yeniden yazmak farz olunca, Amiga sever arkadaşlarımız devreye girerek yamalanmış Kickstart dosyalarını çiplere yazmanın yollarını aramaya başladılar.

Şekil 9. RomSplit

Öncelikle kullanacağımız programları inceleyelim. Birincisi RomSplit. RomSplit programı argüman olarak verdiğimiz bir Kickstart ROM'u bileşenler haline ayırmakta kullanılıyor. Böylece biz kendimiz gerekli bileşenleri ayıklayıp işe yaramayanları atabiliyoruz, veya başka ROM'larda kullanabiliyoruz. RomSplit, ayrıca ROM içine yazılabilir programları ROM içine yazılabilir hale getiriyor. Bu ne demek derseniz, mesela Boing Bag paketlerindeki ROM update'leri ROM'a yazılabilir hale getirebilirsiniz. Aynı zamanda BlizKick isimli programın bazı modülleri ve Piru'nun hazırladığı exec44, RomSplit yardımıyla ROM'a yazılabilir hale getirilebiliyor. Bu programı ve Remus programını amiga.org'dan doobrey'in sayfası |http://www.doobreynet.co.uk/beta/|'ndan indirebilirsiniz.

Şekil 10. Remus

İkinci kullanacağımız program, Remus programı. Remus, RomSplit ile parçaladığımız ROM'lardan yeni bir ROM yapmamızı sağlıyor (bu arada her iki program içinde MUI kurmuş olmanız ve aminet.net'ten bazı MUI class'ları indirmeniz gerekiyor (BetterString, NList, urlText ve Toolbar)). Remus'un sağ penceresinde sisteminiz içinde gezinip istediğiniz parçaları sol taraftaki ROM penceresine atıyorsunuz. Sisteme almak istediğiniz tüm modülleri topladığınızda compile ile ROM'unuzu oluşturuyorsunuz. Yalnız tabi ki dikkat etmeniz gereken bazı noktalar var. Öncelikle bir ROM içerisinde onca dosya arasında dosya atlamak oldukça kolay olduğundan hazır bir ROM üzerinde çalışıp onun üzerinde eksiltmeler yapmanızı tavsiye ederim.

Mesela 3.1 Amiga 1200 Kickstart ROM'unu RomSplit ile parçalayın ve oluşan klasörü Remus'ta sol tarafa atın. Şu anda 1200'ün ROM'unu tüm bileşenleri ile görüyorsunuz. Burada dikkatinizi çekebilecek bir şey, exec.library'nin en üstte olmasıdır. Exec.library ROM'da her zaman ilk sırada olmalıdır. Zaten Remus yeni bir exec eklediğiniz zaman onu otomatik olarak ilk sıraya atar. Exec rutini Amiga'mızın en önemli parçasıdır. Hem bir kütüphane hem de process'ler arası mesaj alışverişi yapan bir microkernel'dir.

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

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.

Sonuç

Kickstart rom hazırlama ile ilgili söylenebilecekler şimdilik bu kadar. Yazıyı bitirmeden önce size bir de ufak ödev vermek istiyorum. 27C800 kullanarak Amiga 500/600/2000 için bir Kickstart switch yapabiliriz. Nasıl olabilir bir düşünün :). Takıldığınız yerler olursa forumumuzda (http://www.commodore.gen.tr) bize danışabilirsiniz, hepinize iyi programlamalar !