Bu sayfadaki yazılar
Sayfanın metni
Sayfa 43
Selam arkadaşlar. Bir ay gibi kısa bir aradan sonra yine sizinle beraberiz. Geçen sayıda açıkladığımız gibi AMIGA SALATASI değişik bir tarzla karşınızda. Bundan sonra oyunlar hakkında sorularınızı, bulduğunuz hile ve kolaylıkları bize gönderebilirsiniz. Bu şekilde öteki arkadaşlara da yardım etmiş olursunuz. Bu ay da birbirinden farklı oyun ipuçları ve hileleri ile karşınızdayız. Bu ayın en iyi hilesi zannedersem 'LEMMINGS'in kademe kodları. Geçen ay ülkemize gelen 'LEMMINGS' bir hastalık gibi bütün oyun severler tarafından oynanıyor. Zannedersem geçen ay ve bu ay bilgisayarcılarda en çok satan oyun 'LEMMINGS'. Ayrıca mutlu bir haber daha var. İlk defa tüm grafik ve müziklerinin Türkler tarafından yapıldığı oyun 'CROWN' nihayet ülkemizde. Neyse fazla zaman kaybetmeden hilelere geçelim.
♦ AIRBALL: Mumlu odadaki büyü kitabını blokları iterek alın. Başlangıç ekranına dönün ve kitabı sol üst köşeye bırakın. Şimdi verilecek açıklamalara göre oyunu bitirebilirsiniz.
♦ A.P.B.: Geçen sene oyun piyasasına büyük bir reklam kampanyası ile sürülen, fakat beklenen ilgiyi görmeyen oyun hakkında kısa bir ipucu. Arabayı sürerken tuşa basılı tutun. Şimdi siren çalmaya başlayacak ve diğer arabalar yoldan çekilecektir. Böylece çarpmadan hızla gidebilirsiniz.
♦ ARCHIPELAGOS: İlk iki archipelagos'u bitirin. Return'e basarak başkasını seçin. 8421 yazın ve iki kere Return'e basın. Şimdi 1 ile 999 yazıp
Return'e basarak istediğiniz yere gidebilirsiniz.
♦ ATOMIC ROBO KID: Ana ekranda boşlukları unutmadan "TUESDAY 14TH" yazın. Ateşe basıp oyuna başlayınca çıkacak olan menü ile hakları ayarlayın.
♦ BAAL: PSYGNOSIS'in bu mükemmel oyunundan bir kaç küçük hile. Sonsuz hak için yükleme sırasında ekran çıkana kadar sağ tuşa basılı tutun. 2. mağaradaki güç alanını geçmekte zorlanıyorsanız üstteki telefonlu platformun sağından aşağı düşün.
♦ BACK TO THE FUTURE: Oyunu istediğiniz yerde pause yapın. Boşlukları unutmadan "THE ONLY NEAT THING TO DO" yazın. Oyun baştan başlayacaktır, ancak bu kez sonsuz haklı olarak.
♦ BATTLEVALLEY: HEWSON'un eski fakat kaliteli oyununu bitirmenin zamanı geldi işte size sonsuz hak hilesi. "ROGER MELLIE THE MAN OF TELE" yazarak sonsuz hak kazanabilirsiniz.
♦ DRAGON SPIRIT: F9 ile pause yapın, "DRAGON HEAD" yazın, F10 ile oyunu tekrar başlatın bakalım neler oluyor?.
♦ E-MOTION: Einstein'in olduğu ana ekranda 'MOON-UNIT' yazın. Oyunu başlattıktan sonra; F1: 1 level ileri F2: 1 level geri
F3: 10 level ileri F4: 10 level geri ♦ IMPOSSAMOLE: Oyunu rahatlıkla bitirmeniz için Hi-score tablosuna aşağıdakileri yazın. COMMANDO silahlardaki zaman sınırı kalkar, HEINS üç güç göstergesi olur, ANNFRANK azalan güç artar, LUMBAJAK enerji göstergesi çift kat olur, OOCHOUCH ölmeden suda yürüyebilme JUGGLERS bunu da siz deneyin.
♦ KILLING GAME SHOW: PSYGNOSIS'in en son shoot'em up'ı olan KILLING GAME SHOW'da oynayacağınız level'ın haritasını görmek isterseniz; başlangıca yakın bir yerde 'HELP' tuşuna basın.
♦ MIDNIGHT RESISTANCE: Oyun demoda iken boşlukları unutmadan "ITS EASY WHEN YOU KNOW HOW" yazıp oyunu başlatın.
♦ NEVERMIND: Geçen ay oyunun password'lerini vermiştik, ama bu ay elimize oldukça ilginç bir hile geçti. Çok zor olan 'NEVERMIND'i bitirmek artık çocuk oyuncağı. Ana ekranda iken '328GTS' yazın. Böylece oyun sırasında sağ mouse tuşuna basarak level'ı geçebilirsiniz.
♦ STRYX: Bunu daha önce yazmıştık ancak eksik olan bir bölüm varmış. Özür dileyerek tekrar yazıyoruz. Sonsuz güç, benzin, cephane için 'HELP','M','E' tuşlarına basın.
♦ VOODOO NIGHTMARE: Oyunu pause yaptığınızda zaman göstergesi çalışmaya devam ediyor. Bildiğiniz gibi hiçbir yaratık geceleri dolaşmaz. Gündüzleri pause yaparak tehlikesizce dolaşabilirsiniz.
♦ LEMMINGS: İşte yazımızın başında 'LEMMINGS'in kademe kodlarını yazacağımızı belirtmiştik. İşte kodlar.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 42
6- INTUITION.LIBRARY: Adından da anlaşıldığı gibi intuition rutinlerini içeriğinde bulundurur. Bu library sayesinde ekran açmak, window açmak veya Amiga menülerini kendi programımıza eklemek çok basit bir hal alır. Hatta son örneğimiz bunun bir uygulamasını içermektedir.
7- LAYERS.LIBRARY: Bu library ekran hafızaları ile ilgili işlemleri içeren rutinleri ihtiva eder.
8- MATHFFP.LIBRARY: Basit matematik değişkenleri işlemleri için rutinler mevcuttur.
9- POTGO.LIBRARY: Analog girişler için kullanılan bir library'dir.
10- TIMER.LIBRARY: Bu library kritik programların çalışması üzerine zamanlama işlemlerini içeren rutinleri ihtiva eder.
Amiga'nın normal Workbench disketinde bulunan ve istenildiğinde buradan yüklenen library'lerin listesi ise şöyle:
1- MATHTRANS.LIBRARY: Bu library'de yüksek seviyeli matematik fonksiyonlarını içeren rutinler mevcuttur.
2- DISKFONT.LIBRARY: Bilirsiniz; Amiga'nızın Workbench'inde kullanıldığı standart font, topaz.font'tur. Topaz.font dışında herhangi bir fontu kullanmak ve o font ile çalışmak istediğinizde, gereken rutinleri bu library içinde bulabilirsiniz.
3- ICON.LIBRARY: Bu library, Workbench sembolleri (icons) işlemleri için hazırlanmıştır.
4- MATHIEEEDOUBBAS.LIBRARY: Bu library integer sayılar için basit matematik fonksiyonlarını içerir.
5- TRANSLATOR.LIBRARY: Bu library Amiga'nızın konuşma chip'ine sizin verdiğiniz text'i okuması için gerekli convert işlemini içeren makine kodu rutinleri ihtiva eder.
Bunlardan başka, diğer Amiga programcılarının da yazdığı library'ler de bulunmaktadır. Bunlar genelde Workbench disketinde bulunmayıp kullanıldıkları programların kendi disketlerinde bulunurlar. Tabii bilmem söylemeye gerek var mı? Programın çalışması için o diskette bulunmaları gereklidir. Herkesin yazabileceği bu library'lerin hepsini bilemeyeceğimden şu ana kadar elime geçenleri size aktarayım.
1- ARP.LIBRARY: Arp.library, Workbench tabanlı programlarda kullanabileceğiniz ve programın file işlemleri ve diğer kısımlarındaki window ve options işlemlerine belli bir formata kolaylıklar getirmek üzere hazırlanmıştır.
2- REQ.LIBRARY: Requester library'de aynen Arp library gibi işlemler için yapılmıştır. Fakat yapı olarak Arp Lib.'den çok daha hızlı çalışmaktadır. Ayrıca özelliklerini karşılaştırdığımızda Requester library tercih edilmektedir.
3- IFF.LIBRARY: Adından da anlaşılacağı gibi IFF file'ları ve onların kayıt işlemleri ile alakalı rutinler içerir.
4- DIGITIZER.LIBRARY: Amiga'nın digitizer'larını kendi programlarımıza dahil etmek için gerekli olan rutinleri içeren bir library'dir.
Yukarıda kısaca ne işe yaradıklarını anlattığımız library'lerin yüzlerce rutin ve bunların açıklamalarını yapamayacağız. Fakat sizin konuyu öğrenebileceğiniz kadarını anlatacağım.
Tabii şu anda son örneğimiz doğrultusunda library açıklamalarımızı yönlendiriyoruz.
Library rutinleri hakkında bilinmesi gereken önemli hususlardan biri de, her rutinin bir veya birden çok parametresi bulunabildiğidir. Bu parametreler yardımı ile o rutinin yaptığı işe bir yön vermiş oluyoruz. Bu işleme BASIC'teki komut ve komutun parametreleri olarak benzetme yapmak en doğrusudur.
Mesela BASIC'te kullanılan LOCATE 10,20 komutunun ne anlama geldiğini hepimiz bilmekteyiz! Burada LOCATE, komutun ismi; 10 ile 20 ise komutun parametreleri olmaktadır. Aynı format makine dilinde library kullanımları içinde geçerlidir.
Bir library'yi kullanmak için ilk önce onu yüklemeniz gerekmektedir. Yükleme işlemi için EXEC.LIBRARY'yi kullanacağız.
Herhangi bir library'yi yükleme işlemini makine koduna şu şekilde çevirebiliriz.
MOVE.L4,A6 LEA INTNAME,A1 JSR -$228(A6)
INTNAME: dc.b "intuition.library",0
Evet görüldüğü gibi bu üç satır, son örneğimizin de ilk üç satırı ile aynıdır.
İlk satırdaki MOVE komutu Exec library'nin rutinlerinin hafıza adreslerini içeren tablonun başlangıcını verecektir.
İkinci satır Exec'deki OpenLibrary rutininin bir parametresidir. Yaptığı iş, açılacak library'nin isminin adresini A1 register'ına yazmak olmaktadır. Yukarıda INT-NAME bir label olmaktadır. Gösterdiği hafıza adresi ise intuition library yazısının başlangıcı olan yerdir. Burada dikkat edilmesi gerekli bir şey de isimden sonra 0 değeridir. Bu NULL (0) değeri ismin bittiği anlamına gelir.
Üçüncü satıra geldiğimizde, artık rutini çağırmanın zamanı gelmiştir. Exec library'deki OpenLibrary rutininin tablo adresi olan -$228 sayısını (A6)'nın içeriğine ekleyerek rutinin bulunduğu adrese atlanır. Ve işlem tamamlanınca bir alt satırdan itibaren program devam eder.
Window açıcı örneğimize şöyle bir bakınca tamamen library'lerden oluştuğunu göreceksiniz. Boşluklar ile aralanmış satırlar birer library uygulamalarını ifade etmektedir.
Kısaca programın gidiş hattını size açıklamak gerekirse;
İlk beş satır INTUITION.LIBRARY'yi açmaya ve onun rutin tablosunun adresini INTBASE label'lı hafıza adresine yazmaktan ibarettir.
6-10 arası satırlar WINDOW'u açmak için intuition library'den OpenWindow rutininin uygulanmasıdır.
11-12 arası satırlar Mouse'un sağ tuşunu beklemekle alakalıdır.
13-18 arası satırlar Window'u ve Intuition library'yi kapamakla görevlidir.
Diğer satırlar da yukarıda kullanılan üç rutinin diğer parametrelerini oluşturmaktadır. Bu satırları ayrıntılı olarak aşağıda anlatacağım.
Şimdi her zamanki gibi örneğimizin satır satır açıklamasını verelim.
Anlayış bakımından size programı oluşturan rutinleri tek tek bölmeden vereceğim.
start: move.l4,a6
lea INTNAME,al jsr -$228(a6) move.l d0,INTBASE beq EXIT3
Programın ilk parçasında yaptığımız iş, intuition library'yi açmaktır. İlk satırdaki MOVE.L 4,A6 komutu, hafızada hazır olarak bekleyen Exec library'nin rutin tablo adresini A6 register'ına gönderiyor. Arkasından intuition library yazısının hafızada bulunduğu adresi A1'e gönderiyoruz. Jsr -$228(A6) ile rutin çağrılıyor. Ve bir alt satırdaki MOVE.L D0,INTBASE satırının önemi çok büyük olmakta. OpenLibrary rutininden çıktıktan sonra bilgisayar D0 register'ına intuition library'nin tablo adresini atayacaktır. Bu bölümün son satırı ise, eğer intuition library açılamazsa D0 register'ındaki değer 0 olacaktır. Böyle bir durumda olmayan library'den rutin çağıramayacağımız için bilgisayarı kilitlenmeden kurtarıp library açılmadan doğrudan programdan çıkmasını sağlarız.
Yazı dizimizi bu aylık noktalıyoruz. Gelecek sayı programımızın diğer satırlarının açıklamalarına devam edeceğiz.