Commodore sayı 28, sayfa 54

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 54

POKE 30475,173 POKE 31266,173 POKE 24729,3 POKE 22753.,96 SYS 30210

Pitfall POKE 5393,255

BMX Simulator POKE 4503,X SYS 4096 X yerine O ile 6 arasında bir sayı yazın

Orpehus and underworld POKE 10118,X SYS 9728 X yerine 1 ile 255 arasında bir sayı yazın

Ghostbusters İsim yazdıktan sonra Banka Nosuna 0, 12, PITY yazın ESRO.4 turbosu ile kilitlenmiş programları açan POKE komutları Programı yüklemeden evvel POKE 2048, 173 yazın. Program yüklendikten sonra POKE 2048, 0 yazın. Program artık açık. Bu bilgileri gönderen arkadaşlarımıza teşekkür ediyoruz. Şimdi bazı arkadaşlarımızın oyunlar hakkında sordukları sorulara cevap verelim. İstanbul'dan Nurettin Ali Berkol bazı oyunlarda yapılmasını söylediğimiz RESET işlemini soruyor. SYS 64738 komutuyla reset edebilirsiniz. Bir başka yol da reset switch kullanmak olabilir. Bu parçayı taktığınızda istediğiniz bir oyunun herhangi bir yerinde bilgisayarı reset edip oyunun içine girmeniz mümkün olur. Ancak List komutuyla oyunu göremezsiniz. Programı incelemek için bir monitör programı kullanmanız gerekir. Bursa'dan Savaş Akyavaş The Last Ninja oyununda bir sonraki düzeye canavarı öldürdükten sonra nasıl geçeceğini soruyor. Kendisi kaset veya disket kullanıcısı olduğunu belirtmemiş. İlk bölümün sonunda canavar uyutulduktan sonra normal olarak bir sonraki bölümün yüklenmesi gerekiyor. Eğer kaset kullanıcısı iseniz büyük ihtimalle sadece oyunun ilk bölümüne sahipsiniz. Program bir sonraki bölümü yüklemeye çalışıp başaramayınca ekran kararıyor.

MAKİNE DİLİ

C64'te işimize yarayabilecek önemli adresleri incelemeye devam ediyoruz. $0014-$0015: ON GOTO, ON GOSUB, LIST ve RUN komutları için hedef satırların numaraları tutulur. Bu bilgi için iki byte gerektiğinden iki adres kullanıyoruz. İstenilen satır numarası LOW/HI formatında bu iki adreste saklanıyor. Ayrıca PEEK, POKE, WAIT ve SYS komutlarındaki adreslerin belirtilmesinde de burası kullanılıyor. LIST komutu listelenmesi istenen en büyük satır numarasını burada saklar. Eğer bütün programın saklanması istenirse bu iki adreste $FFFF değeri saklanır. $002B-$002C: Bu iki adresteki değer BASIC programın başlangıç adresini taşır. Bu değerleri değiştirerek BASIC programların hafızada yer aldığı bölgeyi değiştirebiliriz. Bu tür uygulama bize ne kazandırabilir? (1) Normalde BASIC programa ayrılmamış bir hafıza bölgesini BASIC programlara aitmiş gibi göstererek bu kısmı diskete veya kasete çekebiliriz. $0045 adresindeki değerin saklanacak bölgenin en son adresinden bir fazlaya ayarlanması gerekir. (2) BASIC programın başlangıç adresi normalde $0801'dir. Bu adresi daha yukarı alarak aşağı RAM bölgesinde korunmuş bir alan elde edebiliriz. Bu alanı sprite için veya HİRES için kullanabiliriz. (3) Hafızaya aynı anda birden fazla BASIC program yükleyebiliriz. Başlangıç ve bitiş belirteçleri ayarlanarak istenilen program çalıştırılabilir. Programların nerede başlayıp nerede bittiğini $002B-2C ve adreslerindeki değerleri değiştirerek ayarlayacağız. Bu teknikle iki BASIC programını birleştirmek de mümkün olur. Bu işlemler sırasında yeni program başlangıç adresinden bir evvelki adresin değerini sıfır yapmak gerekir. Mesela normalde $0800 adresinin değerine bakarsanız 0 olduğunu görürsünüz. $002D-$002E: Bu adreslerde yer alan değer BASIC programın bittiği adresten (BASIC programın bittiği yer) itibaren saklanır. Diziler kendileri için ayrılmış başka bir bölgede tutulurlar. Her değişken yedi byte uzunluğundadır. Bunun iki byte'ı değişkenin ismi için geri kalan kısmı da değişkenin değeri için kullanılır. Değişkenler ilk kullanıldıkları sıra ile saklanırlar. Daha evvel de söylediğimiz gibi sık kullanılması gereken değişkenleri programın başında kullanarak programın hızını arttırabilirsiniz. Bir değişken bir kere açıldıktan sonra silinemez. Diziler değişkenlerden sonra saklandıkları için her yeni değişken kullanıldığında dizilerin yedi byte kaydırılması gerekir.

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