Commodore sayı 36, sayfa 24

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 24

Burak KİPER

Hafızadaki değerin belirli bir bitini okumak isterseniz, AND komutunu kullanarak istemediğiniz bitleri saf dışı bırakabilirsiniz. Mesela 56324 numaralı hafıza adresindeki değerin dördüncü bitini kontrol edelim. Eğer bu bit yanıksa, yani 1 ise, program akışı 2000 numaralı satıra, değilse bir alt satıra geçsin:

İF (PEEK(56321) AND 16) THEN GOSUB 2000

Bu adresteki değer ikili sisteme göre şu şekilde olsun:

Bit yeri :76543210 Bit değeri 00001001 16 sayısı ikili sistemde : 00010000 şeklinde gösterilir. AND işlemi uygulandığında, eğer aradığımız byte'ın dördüncü bitinin değeri bir ise (örneğin). AND işlemi doğru sonuç verecektir. Diğer bitleri okumak için aşağıdaki değerlerden uygun olanını kullanın:

Bir byte içindeki belirli bir biti yakmak için OR işlemini uygulamak gerekir. Mesela 56579 numaralı adresin dördüncü bitini yakalım

POKE 56579,PEEK(56579) OR 16 Bu biti söndürelim: POKE 56579,PEEK(56579) AND (255-16) Eğer başka bitleri söndürmek veya yakmak istiyor-

sanız. 16 sayısını, sizin için gerekli olan bitin yerine göre yukarıda verdiğimiz rakamla değiştirin.

İlk örneğimiz Joystick'in ateş tuşunu kontrol etmeye yarar. Eğer ateş tuşuna basılmışsa bu bitin değeri 1 olur.

OYUNLAR İÇİN KOLAYLIKLAR

Burada sözü oyunlar için çeşitli kolaylıklar gönderen arkadaşlarımıza bırakıyoruz. Manisa'dan Erhan Gündoğan arkadaşımız The Last Ninja II için yardım ediyor. Kendisine teşekkür ediyoruz. Kendisi oyunu beşinci bölümüne (The Office) kadar tamamlamış. Bu kısma kadar olan yerlerde herhangi bir sorunuz varsa kendisinden yardım alabilirsiniz. Arkadaşımız bu bölümün sonunda karşısına çıkan büyük pervaneden nasıl kurtulacağını ve beşinci bölümün başında bulunan odalardan birindeki bilgisayarı araştırdığında karşısına çıkan sayıların ne işe yaradığını soruyor. Erhan arkadaşımızın ikinci sorusu şöyle: Multi Ice II veya bu gibi diğer kartuşlarla oyunları nasıl ölümsüz yapabilirim? Oyun ve diğer birçok program kasette veya diskette şifreli halde bulunurlar. Bilgisayara yüklendikten ve RUN komutu ile (veya kendiliklerinden) çalıştıklarında, program ilk olarak içinde bulunan bir şifre çözücü ile programı deşifre edip normale çevirir. Bu işlemi 'decompile' ile karıştırmamak lazım. Eğer bir monitör veya disassembler aracılığı ile bu tür programları incelemeye alırsanız, şifreli halde oldukları için hiçbir şey anlamanız mümkün olmayacaktır. Zaten incelediğiniz program şifreli durumda birçok kullanılmayan op code içereceği için, disassembler listesinde işaretleri ile karşılaşırsınız. Fakat programı normal olarak yükleyip çalıştırırsanız ve reset ederseniz, incelemeniz mümkün olur. İncelemek için programın bulunduğu yerin dışında bulunan bir hafıza bölgesine yerleşecek monitör programına ihtiyacınız var. Eğer sabırlı iseniz her adresin değerini sıra ile değiştirip programı tekrar çalıştırırsınız. Ancak bu oldukça uzun sürecektir. (10 KB'lik bir program için yaklaşık 10000 adres denemeniz gerekiyor). Ancak oyundaki hak sayısını dikkate alırsanız, işler biraz kolaylaşabilir. Mesela oyun beş hak versin. Bu durumda içinde beş değeri olan adreslerden birisi oyunda kalan hakları gösteriyor demektir. Bu adresi bulmanızı sağlayacak bir programı BASIC ile yapabilirsiniz:

Klavyeyle gezinmek için ← ve → tuşları.