Bu sayfadaki yazılar
Sayfanın metni
Sayfa 120
Ş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.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 121
Ö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.