Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
şu Window'umuzun boyutlarını ifade etmektedir. Üçüncü word window'un enini ve dördüncü word boyunu temsil eder.
dc.b 0,1 Bunların arkasından iki byte sırası ile window'un zemin ve çizgi renklerini ifade eder.
dc.l 0
Bundan sonra gelen Long word değer ise sistemin, örneğimizdeki window için IDCMP flaglarının kontrolünü gerçekleştiren bir sayıdır. Bu flaglar yardımı ile window'umuzun bir sürü özelliklerinden yararlanabiliriz. Bilirsiniz; mesela Amiga Workbench sisteminde herhangi bir window açtıktan sonra sol üst köşedeki kutucuk (window close symbol) yardımı ile kapatabiliriz. Ve bizim bu örnek programımızın window'unda da kapama sembolü var. Fakat sol tuş ile bu sembole ne kadar basarsanız basın kapatamazsınız. Yani söylemek istediğim bu gibi işlemleri programınızda, ufak rutincikleri oluşturarak gerçekleştiriyoruz. Nasıl mı? Aşağıda anlatacağım gibi.
En basitinden window kapama işlemini de; bu flaglar vasıtası ile yapacağız. Window structure'ındaki IDCMP flaglarına yazacağımız sayılar ile window kapama, boyut değiştirme, gadget aktif hale gelimi, Window'a bağlı bir menü seçimi gibi window aktiviteleri kontrol edilebilir. Bunlara ek olarak window aktif halde iken bir tuşa basılı olup olmadığı veya sürücülerde disket sokup çıkarılması gibi durumları da işlenebilir.
IDCMP flaglarının geniş bir açıklamasını yapmak, size tam anlamı ile bu olayı en derin noktasına kadar açıklamak isterdim. Fakat genel olarak assembler yazı dizimizdeki akışı yavaşlatmamak ve bir konuda takılı kalıp diğer bilgilerinizi zedelemek istemiyorum. Şimdilik bu kadar bilgi yeterli olacaktır. Şu andaki örneğin açıklaması bitiminde IDCMP flaglarının programa eklenmesi üzerine bir ek yapacağız. Şimdilik bu örnekte gördüğünüz gibi window'u mouse'un sağ tuşunu kendi adresinden bekleterek kapatıyoruz.
Bu örnekte IDCMP flaglarını kullanmadığımız için buradaki long word değere 0 değeri yazmamız yeterlidir.
dc.l $1+$2+$4+$8 IDCMP flagları longword'u ardından window'umuzun özelliklerini belirteceğimiz longword'a sıra geliyor. Buradaki longword'a yazımızın sonundaki tabloda bulunan rakamları yazarak, window'un intuition'ın verdiği özellikleri kazandırabiliriz. Kullanım açısından birinci sınıfa giren flagları karşısına açıklamalarını yapacağız.
dc.l 0,0 Buradaki ilk longword window'un içinde gadget bulunup bulunmadığını belirler. Buraya; tabii eğer window'da gadget varsa, ilk gadget'ın structure adresini yazarız. Şu anda sizin bu konuda bilginiz olmadığını düşünerek ve şimdilik bu longword'dan bu kadar şey bilmeniz yeterlidir.
dc.l WINNAME Eğlenceli bir satır olarak görülebilir. Window'umuzun isminin bulunduğu adresi buraya yazacağız. Örnekte bir WIN-NAME label'ını kullandık. Anlamı, örnekte buradan beş satır aşağıdaki data satırıdır. Orada WINNAME isimli label'ın karşısında text olarak window'un ismi durmaktadır. Structure'da isim tanımlama kısmı; aynen böyle olmalıdır. Başka bir kullanım şekli yoktur.
dc.l 0,0 Bu satırdaki ilk longword; window'un ekran structure pointer'ının adresini girmek içindir. Eğer window'u yeni bir ekranda değil de o an kullanılan ekranda açıyorsanız, yani bu ekran çoğunlukla standart Workbench ekranı olur; bu longword değeri 0 girilmelidir. Ya da yeni bir ekran açılmış ise, o ekranın programınızdaki structure adresini girmelisiniz.
Buradaki ikinci longword ise window yeni bir ekranda açılmış ise söz konusu ekranın bitmap adresinin buraya girilmesi gerekir.
dc.w 200,50 dc.w 400,200 Bu dört word modunda değer window'un bulunduğu ekrandaki maksi- mum ve minimum hareket koordinatlarını oluşturmaktadır.
dc.w 1
Bu word değer ise ekran tipini belirler.
WINNAME: dc.b "Benim Window'um",0
Bu satır window structure'ı içerisinde ekran isminin tanımlamasının bir kısmıdır.
11 LOOP: btst #10,$dff016 12 bne LOOP 11. ve 12. satırlarda, mouse'un sağ düğmesine basılıp basılmadığını kontrol ettiriyoruz. 12. satırda, eğer bu düğmeye basılmamışsa, işlemciyi tekrar kontrol et anlamında bir üst satıra yönlendiriyoruz.
Görüldüğü gibi, işlemciye bu satırlara gelene kadar iki ana iş yaptırdık. İlk olarak intuition library'yi açtık, ikinci iş olarak, intuition library'yi kullanarak bir window açtık. Ve tabii son olarak anlattığımız kısım, basit bir bekleme döngüsüdür.
Onbirinci satırdaki $dff016 adresi, Copper listesi içinde olup word olarak hesaplarsak onuncu biti ya da byte olarak hesaplarsak $dff017 adresinin sıfır nolu bit'i mouse'un sağ tuşunun basılı olup olmamasına denk gelmektedir. Eğer bu adresin bu bit'inde 0 değeri varsa bu tuş basılı ve 1 değeri varsa tuş basılı değil anlamına geliyor.
Örneğin üçüncü kısmının ne anlama geldiğini anladığınızı tahmin ediyorum. Bu kısım programın ana parçasını oluşturmaktadır. Tabii bu kısa örneğin ana teması, sadece bir window'u açmak olduğundan, örneğin ana parçasını sadece window açıldıktan sonraki bekleme döngüsü oluşturmakta.
Böylece örneğimizin başlangıç ve ana kısımlarını anlatmış bulunmaktayım. Anlatımlarımızın bu kadar uzun sürmesi; yani 20 satırlık programı üç sayıda anlatmamızın sebebi, yazı dizimizin ilk örneğimizi anlatırken kafanızda en küçük bir soru bile kalmamasını sağlamaya çalışıyorum. Örnekleri incelerken tek bir satırı bile yeterince iyi kavrayamamanız, ileride aynı tür kullanımları da anlayamamanıza sebep olabilir. Ayrıca size en önemli tavsiyem, yazı dizisinin bir kısmını okuyup da anlayamadığınız bir durumda, sabırlı olup anlayana kadar defalarca tekrar etmenizdir. Bu işlemde hiçbir gariplik yoktur ve bence bunu başka türlü halletmeniz mümkün değildir.
Defalarca okuyup, yine anlayamadığınız kısımlar olursa, sorularınızı dergimiz adresine assembler kursu adı altında yazabilirsiniz. Mektuplarınızı size geri gönderebilmem için pul koymayı ihmal etmeyin.
Yazı dizimize bu aylık son veriyoruz. Gelecek sayıda örneğimizin anlatımını bitireceğiz.
Şimdilik hoşçakalın.
Bit Değer Anlamı 0 $0000001 WINDOWSIZING WINDOW'UN BOYUTLARI DEĞİŞEBİLİR 1 $0000002 WINDOWDRAG WINDOW EKRANDA HAREKET EDEBİLİR 2 $0000004 WINDOWDEPTH WINDOW ÖNE VE ARKAYA GİDEBİLİR S0000010 SIZEBRIGHT WINDOW'A BİR MESAJ GELİNCE REFRESH
4 $0000020 SIZEBOTTOM 5 $0000040 SIMPLE REFRFSH 6 $0000080 SUPER BITMAP 7 SOOOOIOO BACKDROP WINDOW EKRANDA EN ARKADA KALIR 8 $0000200 REPORTMOUSE 9 $0000400 GIMMFZFROZFRO 10 $0000800 BORDERLESS ÇERÇEVESİZ WINDOW 11 SOOOIOOO ACTIVATE WINDOW İLK AÇILDIĞINDA AKTİF 12 $0002000 WINDOWACTIVE WINDOW AKTİF 13 $0004000 IN REQUEST 14 $0008000 MENUSTATE 15 S001()()()() RMBTRAP WINDOW'UN MENÜSÜ YOK 16 $0020000 NOCAREREFRESH REFRESH MESAJI VERİLMEMESİ
24 $1000000 W1NDOWREFRFSH 25 $2000000 WBENCHWINDOW
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 29
Selam arkadaşlar. Bir ay aradan sonra yine beraberiz ve yine yepyeni, birbirinden iyi tiyolarımız var. En yeni oyunlar hakkında hileleri sadece bu sayıda bulabilirsiniz.. Eğer siz de yeni oyunlar hakkında hile ya da ipuçlarına sahipseniz, bana gönderin. Öteki arkadaşlara da yardımcı olun. Bu ay çok yeni bir oyunun hilesi ile başlıyoruz. Ardından bu ayki password'lar ve kodlar bölümünde neredeyse bütün oyunların password'larını bulabilirsiniz. Hazır mısınız? Başlayalım o zaman!
*SWIV: Oyun bir hataya sahip. Bu hata bazı bilgisayarlarda çalışıyor. Jipinizle denizden karaya çıkarken zıplarsanız, iki jipe sahip olursunuz. Yalnız bir kez daha yazmalıyım. Bu hile bazı bilgisayarlarda çalışır. Hileyi gönderen CAN GÜRCAN'a teşekkür ederim.
* GREMLINS 2: Oyunu sonsuz haklı yapmak için biraz puan kazanın. Skor tablosuna girdiğinizde adınız yerine 'SINATRA' yazın. Bu sayede sonsuz hakka sahip olursunuz. Ama zaman yine aleyhinize işleyecek.
* GRAVITY FORCE: Oyunun passwordlarına hayır demezsiniz heralde. İşte passwordlar: AGNUS. PARS EC, CRYSTAL. REACTOR, VI-SION, ORBIT, PALACE. ALIEN ve FALCON. İstediğiniz kademeden başlamak için password kısmına WARP yazıp yanına kademe numarasını yazın.
*ARKANOID: Oyunda tuğlaları vurduğunuzda, düşen kapsüllerin anlamlan şunlar: S: SLOW - Topunuzu yavaşlatır. C: CATCH - Topunuz rakete yapışır, istediğinizde fırlatabilirsiniz. D: DISRUPTION - Topunuz üçe bölünür. L: LAZER - Raketinizle ateş tuşuna basa rak lazer atabilirsiniz.
P: EXTRA PLAYER - Fazladan bi
ÖZEL PASSWORD VE KODLAR
r hak kazanırsınız.
* B TLE VALLEY: AT Ounda 'ROGER MELLIE THE MAN OF TELE' yazarsanız sonsuz hakka sahip olursunuz.
* BETTER THAN ALIEN: Eski shoot'em up oyunlarından olan BETTER THAN THAT ALlEN'in passwordlarına hayır demezsiniz herhalde. LEV. PASSWORD COMMENT 1 ELEKTRA PRACTICE 2 SYZYGY A DODDLE 3 DRAMBUIE VERY EASY 4 PLUG EASY 5 SOPRANO QUITE EASY 6 MAYONNAISE AVERAGE 7 EAUCETSOME EFFORT 8 POTATO MUCH EFFORT 9 WOODMERA GREATER EFFORT 010 NARCISSUS TOTAL EFFORT 11 DEBUTANTE HARD! 12 FIRKIN REAL HARD 13 ACOUSTIC VERY HARD 14 TRIPTYCH LUDICROUS 015 JABBERWOCKY ABSURD 016 WHIMSICAL POSSIBLE? 017 CORNUCOPIADO THIS ONE! 018 PUNJABI OK. NOW THIS 019 TIDDLY POM STILL HERE?! 020 KEWPIE DOLL BRILLIANT! 21 SEPULCHRE IMPOSSIBLE.. 22 EUPHEMISM ..OR WAS IT? 023 GRAMMARIAN THE END. 24 CROSSWORD THE END II 25 QUARANTINE THAT'S IT.
* CARRIER COMMAND: Eski strateji-simulasyon oyunlarından olan CARRIER COMMAND'da oyunu pause edip THE BEST IS YET TO'BE' yazın bakalım neler oluyor.
* CYBERNOID: Oyunun açılış ekranında RAISTLIN' yazıp boşluk çubuğuna basarsanız, sonsuz hakka sahip olursunuz.
BÖLÜMÜ
* BERNOID II CY:
Os n açılış ekranı da AECR unu n ONO- M yun esnasında oyunu ICOV yazın. O pause ed una basarsanız, bir sonip *N' tuş raki kademeye geçersiniz.
* ELIMINATOR: Oyunun passwordları Artık istediğiniz yerden başlayabilirsiniz. Level Password Level Password
2 AMEOBA 09 HANDEL 3 BLOOOP 10 ICICLE 4 CHEEKI II JAMMIN 5 DOINOK 12 KIKONG 6 ENIGMA 13 LAPDOG 7 FLIPME 14 MIKADO 08 GEEGEE
* DOMINATOR: Oyunun hi-score tablosunu SHAFT' yazarsanız, sonsuz hakka sahip olursunuz.
* DRAGON SPIRIT: Eski zor oyunlardan Dragon Spirit'te sonsuz hakka sahip olmak isterseniz. şu basit işlemi yapın. Oyunu pause edin. *F9' tuşuna basın. Sonra' DRAGON HEAD' yazıp 'F10" tuşuna basın.
* Z-OUT: RAINBOW ARTS'ın son shoot'em up'ı olan Z-OUT'ta oyun esnasında J'ye basılı tutarken K'ya basarsanız, vurulmazsınız. Ve J'yi basılı tutarak birden altıya kadar istediğiniz sayıya basarak o kademeden başlayabilirsiniz. Dikkat! Eğer bu hileler ile oyunu bitirebiliyorsanız, yani oyunun tam çalışan sağlam versiyonuna sahipseniz lütfen bana yazın.
* BOMBUZAL: Oyunun tüm kademe password'ları. Passwords: LEVEL CODE LEVEL CODE 8 ROSS 136 BIKE 16 RATT 144 BIRD 24 LISA 152 TAPE 32 DAVE 160 VASE 40 IRON 168 PILL 48 LEAD 176 SPOT 56 WEED 184 PALM 64 RING 192 LOCK 72 GIRL 200 SAFE 80 GOLD 208 WORM