Sayfanın metni
Sayfa 20
C-64 LİSTE KORUMA ÖNLEYİCİSİ
BASIC diliyle yazılmış liste korumalı bir programı yazmaya çalışmak gerçekten çok zahmetli olabilir, çünkü tüm Shift edilmiş L'leri, yerleştirilmiş delete ve diğer kontrol karakterlerini çıkarmanız gerekmektedir. Bu program programlardaki tüm liste korumalarını önleyerek listelerin kolay çıkarılmasını ve izlenmesini sağlar. Önce bu programı yükleyip çalıştırın, sonra da liste korumalı programı yükleyin. Listenin kolayca çıktığını göreceksiniz.
PROGRAM ADI 1 LİSTE KORUMA ÖNLEYİCİ
REM LİSTE KORUMA ÖNLEYİCİSİ FOR I- TO ATROKE IE AY IF CKC) 3888 THEN PRİNT "DATA SAT IRLARINDA HATA VAR SEND ©0030 POKE 775.8 DATA DATA
<215>
OYUNLAR İÇİN KOLAYLIKLAR
Bandırma'dan Ömer Maraş arkadaşımızın sağladığı kolaylıklar: Krakout: Oyunu yükledikten sonra Reset, POKE 33802,234:POKE 33803,234 (Return) SYS 15312 (Return) (2 ölümsüzlük verir) Split Personalities: Reset, Poke 12156,205, Sys 2128 Ghostbusters: her numaraya 999 900 Dolar veriliyor:
konto numarası isim UMAA 31562546 TOMATO 12345678 AB 31623646 458 Werner Markus C64 Ghostbusters 61250 e 75213573 12345678 Captain Cac 31162246 Spoeth Erik 31323346 Ralf Yes ingo ingo
Future Knight: 4, 7, 9, E, U, J ve M tuşları birlikte basılırsa sonsuz hak veriliyor. Quartet: Reset, Poke 34992,96, Sys 21760 Zynaps: Reset, Poke 44076, 141: Poke 44077,25: Poke 44078,185: Poke 44079,96, Sys 32769 Wonderboy: Reset, Poke 2676,205, Sys 2112 Metrocross: Reset, Poke 13501,234: Poke 13502,234, Poke 4356,14, Sys 4096 zaman) J-Ball: Reset, Poke 20669,234: Poke 20670,234, Sys 49744 (sonsuz hak) Trailblazer: Reset, Poke 29738,234: Poke 29739,234; Poke 30889,234: Poke 30890,234: Poke 30891,239 (Return) Sys 25729 (Return) Nemesis: Oyun esnasında 4, K ve L tuşları birden basılınca düşman kurşunu vurmuyor. Rasputin: basarak oyun durdurulur, sonra resimleri incelemek için D, J, İ, N ve bakmak istediğin resme göre iki rakamlı bir sayı girilir. Miami Vice: 1. Bir karşılaşmaya gidildiğinde buluşulacak barın etrafında dolaşırsan, zamanında yetişirsin. 2. Arabadan ateş etmek mutlaka gerekli değil! 3. Her haydutu iyice incele. 4. Delillerin her birini derhal City Hall'e götür.
İstanbul'dan Gökhan Lelik arkadaşımızın yolladığı kolaylıklar Ace FA tuşuyla silah seçimi. M tuşu harita. Run/Stop oyunu durdur. Int. Karate II 4 tuşu ile oyun hızlandırılır. 3 tuşu ile oyun orta hızda 5 tuşu ise oyunu yavaşlatır. Çarpı işaretiyle güneşin suya düşen rengi değişir. Run/Stop oyunu durdurur. Platoon oyunu Boşluk tuşuyla bomba atılır. M tuşu müziği başlatır. C tuşu silah seslerini çıkarır.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 21
Makine dili kursumuzun geçen ayki bölümünde INX ve DEX komutlarını kullanarak bir döngünün nasıl yapıldığını, bu ay ise 8 ve 16 Bit hesap işlemlerini daha detaylı olarak ele alacağız. Bu işlemler oldukça farklı bir mantığa dayandığı için ilk başta öğrenilmesi zor ve sıkıcı gelebilir. Yalnız şunu unutmayın ki, bu tür işlemler Assembler'da program yazarken çok sık kullanılır. Bir müddet sonra bunların görüldüğü kadar karışık olmadığını anlayacaksınız. Şimdi kaldığımız yerden dediğimiz gibi X ve Y registerleri 0 ile 255 arası değerler alabilmekteydi, zira en büyük 8 Bit sayı 255'tir. $FF (desimal 255) (1) 0000 0000 (desimal 256)
Bu işlemde de görüldüğü gibi 255'ten sonra kullanılan bayt sıfır değerini alır, çünkü 9. Bit devreye girmiştir. Bilgisayarın bu durumda ne yaptığını görmek için aşağıdaki işlemleri
1500 LDA & Ol 1502 BRK
satırını girdiğimizde tüm registerlerin o anki durumu ekrana gelir. AC XR YR N V — BD 01 00 00 0 1 1 0
01 değeri yer almaktadır. Şimdi X = $FF (- 255) değerini verelim. Bunun için programda ufak bir değişiklik yapmamız gerekmektedir.
1500 LDA # $01 1502 LOX # $FF 1504 BRK
ANIL GÜL
Tekrar G1500 yazdığımızda ekranda şu satırlar gözükür:
AC XR YR N V — 01 FF 00 1 0 1 100090 X-Registerinde beklenildiği gibi $FF değeri bulunmaktadır, fakat nedense statü registerindeki N-göstergesi (negatif sayıları gösteren gösterge) de 1 değerini almıştır. Şimdi yine ufak bir değişiklikle X-Registerindeki 255 değerini arttıralım. 1504 INX 1505 BRK
G1500 ile programı çalıştırdığımızda aşağıdaki register gösterimi ile karşılaşırız:
AC XR YR N V — 01 00 0 001 10010 Tahmin ettiğiniz gibi X-Registeri tamamen dolduktan sonra tekrar “0” değerini almıştır. N-göstergesi eski değeri olan sıfırı alırken diğer taraftan Z-göstergesi “1” olmuştur. Eğer bir önceki işlemin sonucu sıfır ise bu gösterge her seferinde “1” değerini alır.
1505 INX 1506 BRK
Yukarıdaki değişikliği yapıp G1500 ile programı çalıştırdığımızda registerler şu şekle girecektir: AC XR YR N V — BD I Z C 01 01 00 0 0 1 10000
Yukarıdaki işlemleri Y-Registeri içinde yaparsak yine aynı sonucu alırız. Yalnız bu registeri kullanırken bazı komutları uygun şekilde değiştirmeliyiz:
21