plazma - amatör bilgisayar kültürü

Amiga Kickstart Rom Dosyası

Arda 'CoZe' Karaduman

1. 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 1mb 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 romları gerçek çiplere yazmak için ise uygun bir rom yazıcıya ihtiyacınız olacak.

23C2100 Pinout

Şekil 1. 23C2100 Pinout

23C4100 Pinout

Şekil 2. 23C4100 Pinout

Öncelikle Amiga'da kullanılan rom yapısını tanıyalım. Amiga romları, 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 romda toplanırken, Amiga 1200, 3000 ve 4000 modellerinde 256 Kb'lık iki roma 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 romlardır. 512 Kb rom kullanan amigalarda 23C4100 serisi romlar kullanılırken, 256 Kb'lık çift rom kullanan amigalarda 23C2100 serisi romlar kullanılmıştır. Yukarıda bahsi geçen romların pinoutlarını görebilisiniz.

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 tabi yapacağınız iş artar. Tabi çipleri bulduktan sonra bu romları programlayabilecek bir eprom programlayıcıda temin etmeniz gerekiyor.

Şu anda piyasada Amiga romları ile uyumluluk gösteren romlar 27C400 ve 27C200 romlarıdır. 27C200 256 Kb olup amiga 1200, 3000, 4000 romları yerine kullanabilirsiniz. 27C400 ise 512 Kb'tır. Aslında bu romlarda 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'nin üst 256 Kb kısmını adreslemede kullanılmaktadır. O yüzden 32 bit romlarda 27C200'deki datayı üst üste iki kez yazarak 27C400 çipini kullanacağız.

27C400 Pinout

Şekil 3. 27C400 Pinout

Romlarımızı seçtiğimize göre bu romları 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 romlar 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 epromları 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 epromları silecek bir eprom silici. Kullanacağımız epromlar güneş ışığına hassas olmakla birlikte maalesef tam olarak silinmeleri güneş gören bir yerde iki üç hafta sürebiliyor. Rom yazarken siliciniz yoksa bunuda aklınızda bulundurun. Herhangi bir hata size iki haftaya veya rom silici almanıza neden olabilir.

Willem'de rom seçimi

Şekil 4. Willem'de rom seçimi

Eprom yazıcı üzerindeki ayarlar

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

512K'lık tek parçalı romları (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 romuzun 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 probleminden kaynaklanan bir işlem. Bunu yaptıktan sonra romunuzu yazabilirsiniz. Bir kaç dakika içinde işlemin tamamlanmış olması gerekiyor. Eğer rom tam boş değilse sorun çıkabilir. Eğer başka bir problem çıkarsa, yazıcınızı yazacağınız roma 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 romumuzun içindeki bilgilerin silinmemesi için penceresini bir etiketle kapayıp kullanabilirsiniz !

Swap Byte işlemi

Şekil 6. Swap Byte işlemi

Willem adaptörü üzerinde bir 27c400

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

Şimdi gelelim işin alengirli kısmına. 256K'lık iki parça halindeki romlara. Bu romları yazmadan önce iki eşit parçaya ayırmamız gerekiyor. Yanlız bu ikiye ayırma işlemi ortadan çot diye değilde, dosyanın en başından 16 bitlik bölümler halinde olması gerekiyor. Bunun sebebi bu tip romların imajını aldığınız zaman 32 bitlik wordler 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 :)

WinHex

Şekil 8. WinHex

WinHex'i açıyoruz. Yukarıda Tools menüsünden File Tools, oradan dissect, oradanda 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 U6A ikincisine U6B diyelim. Bu şekilde tek bir dosya halinde duran romumuzu amiga 1200'de U6A ve U6B soketlerinde kullanılabilecek şekilde iki dosyaya ayırdık. Eğer elinizde 256K romlar (27C200) varsa, bu dosyaları direk (byte swap yapmayı unutmayın) çiplere yazarak kullanabilirsiniz. Eğer elinizde 27C200 yoksa ve 512K lık 27C400'lere yazacaksanız sıradaki işlemide yapmanız gerekiyor.

Bu işlem U6A ve U6B dosyalarını arka arkaya yapıştırma işlemi. Böylece 27C400'nın boş kalan üst 256k'lık bölümünüde doldurmuş oluyoruz. Yine WinHex'de Tools menüsünden File Tools'a ve concatenate'e gelin. Size son dosyanın ismini soracaktır. İlk olarak U6A'yı oluşturalım, burada oluşturmak istediğiniz dosyaya U6A.rom ismini verin. Ondan sonra size yapıştırmak istediğiniz ilk dosyayı soracaktır. Burada bir önceki adımda yarattığımız U6A dosyasını seçin. Tekrar sorduğunda yine U6A'yı seçin. Ve done diyerek işlemi bitirin. 524288 bytes from 2 files were concatenated to "U6A.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. U6A.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 romların üzerindeki pencereyi ışık girmeyecek şekilde etiketleyin. Artık romlarınızı amiganı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.

2. 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 romları 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 romlardaki 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 kickstartlara eklendi. Fakat kickstart çiplerinin yeniden yazılması mümkün olmadığından bu güncellemeler software olarak gerçekleştirildi. Boing bag updateleri kurulmuş bir sistem ilk açılışta bu değişiklikleri yükleyip yeniden başlayarak kickstart'ta bulunan bilgileri güncelliyordu. Tabi bu amigamızı ilk açtığımızda gereksiz bir restart olması anlamına geliyor. Blizzard kartları ve diğer bilimum eklentiler için gereken updateler ile bilrlikte 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.

RomSplit

Şekil 9. RomSplit

Öncelikle kullanacağımız programları inceleyelim. Birincisi romsplit. Romsplit programı arguman olarak verdiğimiz bir kickstart romu 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 romlarda 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 updateleri rom'a yazılabilir hale getirebilirsiniz. Aynı zamanda blizkick isimli programın bazı modulleri ve piru'nun hazırladığı exec44, romsplit yardımıyla roma yazılabilir hale getirilebiliyor.Bu programı ve remus programını amiga.org'dan doobrey'in sayfasından indirebilirisiniz.

Remus

Şekil 10. Remus

İkinci kullanacağımız program, Remus programı. Remus, romsplit ile parçaladığımız romlardan yeni bir rom yapmamızı sağlıyor (bu arada her iki program icinde 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 modulleri topladığınızda compile ile romunuzu oluşturuyorsunuz. Yanlı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 romunu tüm bileşenleri ile görüyorsunuz. Burada dikkatinizi çekebilecek birşey, exec.library'inin 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 amigamızın en önemli parçasıdır. Hem bir kütüphane hemde process'ler arası mesaj alışverişi yapan bir microkerneldir.

Eğer boing bag'iniz varsa ve parçaladıysanız, boing bag rom update dizininde exec-45.20 dosyalarını göreceksiniz. Romunuzdaki eski exec'i buradaki uygun bir exec ile değiştirerek exec'inizi update edebilirisiniz. 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 yarattiği reboot'tan kurtulmak için startup-sequence'da setpatch'i noromupdate parametresiyle çağırmanız yeterlidir. Buradaki scsi.device ve FileSystem özellikle hayati updatelerdir, harddiskinizdeki 4Gb limitini kaldırmak için bu updatelere 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 amiganı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 romunda 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 romlarındaki findWB modulü sayesinde workbench.library libs:'den yüklenir. Ama bu modul 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. Birazda blizkick ve modullerinden 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 kickromlardan 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 modulü vardır (FPU librarysindeki 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 sitesinden indirebilirsiniz. Yanlız bu modülleride kullanmadan önce romsplit'ten geçirmeniz gerekiyor. Bu sayfada dikkatinizi çekebilecek bir baska dosya exec44.library'sidir. Exec44, piru'nun hazırladığı, 68020+ islemciler düşünülerek yazılmış optimize, ufak ve bir çok bug fix barındıran bir kütüphanedir. İsterseniz official exec.library'inizi çıkartıp bu exec.library'ide deneyebilirsiniz. Yanlı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 modulü bir kez romsplitten geçirdikten sonra romunuza 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 romlar scsi.device ve FFS filesystem update'leri yapılmış normal 3.1 exec içeren romlardır.

3. Amiga için 1mb 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ı nerden 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
$DC0000-$DDFFFF	Memory Mapped Clock
$DD0000-$DEFFFF	SCSI Control
$DE0000-$DEFFFF	Motherboard Resources
$DF0000-$DFFFFF	Amiga  Chip Registers 
$E00000-$E7FFFF	Reserved
$E80000-$EFFFFF	Zorro II I/O  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 sistemleride 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 Amigalarda 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, yada 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/Remus_1-rc7.lha adresinden beta sürümünü indirip kullanmak durumundasınız. $F8 0000 - $FF FFFF ve $E0 0000 - $E7 FFFF 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 $F8 0000 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 1megrom patch'inide yerleştireceğiz. İkinci bölüm ise romheader modülü ile başlayacak. Ondan sonra dilediğimiz modülleri buraya yerleştirebiliriz.

Remus'ta seçenekler

Ş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 bolü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 diyip 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 diyip 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 pinin olup olmadığını kontrol edin. Amiga 500+ 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.

A500+ üzerinde 27C800

Şekil 12. A500+ ü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 Willen 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.

4. Sonuç

Kickstart rom hazırlama ile ilgili söylenebilecekler şimdilik bu kadar. Yazıyı bitirmeden önce size birde 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 bize danışabilirsiniz, hepinize iyi programlamalar !

plazma - 2008