remeyeceğidir. Gizleyici programımızın açıklaması- nı yapalım: 63000: BASIC'in başlangıcı Lİ değişkenine saklanı- yor. Eğer bu programı Cöd'te çalıştırmak istiyorsanız LI— 45 yerine LI-43 yazmanız gerekir. 63020: Programdaki her byte'ı tek tek konirol etmek yerine program bağlantılarına bakıyoruz, böylece programımız daha hızlı çalışıyor. 63030: Lİ—0 olduğunda program sona erer. 63040: Ekrana o anki satır numarası yazılıyor. 63050: X$ değişkeninde korunmuş satırların numa- rası saklanıyor. 63060: Yeni başlayacak satır Lİ değişkeninin içeri- ğine eşittir. 63070: İncelenmekte olan satırın ilk beş karakteri- ne bakılıyor. 63080: Her normal satır, yani başında beş kolon bu- lunmayan satır FL değişkenini bire, | değişkenini de sekize eşitler. 63100: Eğer FL- 1 ise bir sonraki satıra geçeriz, ak- si takdirde üzerinde çalıştığımız program bitmiş de- mektir. 63110: Üzerinde çalışılan satır korunur, satırın İlk ko- lonuna sıfır değeri gelir. Program sifir değerini gör- düğünde bunu satırın sonuna gelinmiş kabul eder, böylece o satır varolmasına rağmen gösterilmez. Bildiğiniz gibi BASIC'te satır numaraları birbirlerini izleyen sırada artarlar, ancak ö4000Ü'den büyük sa- tır numaralarını kullanmak mümkün değildir. Bu du- rumu program koruma tekniğinde avantajımıza kul- lanabiliriz. Program döküm ekinde bulacağınız 5 nu- maralı programı korumak istediğiniz programınızın sonuna ekleyin. RUN 63000 vererek programımızı ça- lıştırın, sizden sıra ile saklayacağınız programın safır numaralarını değiştirme, aynen bırakma, bu işlem- lere son verme seçeneklerinden biriri seçmeniz iste- necek. Ancak programımızın bazı sakıncalı tarafları bulu- nuyor: * GÖTÖ ve GÖSÜB satır numaraları hesaplanmıyor. * Eğer 64000'den büyük bir satır numarası girerse- niz bir daha bu satırı silemezsiniz. * 4'den küçük satır numaralarına atlama yapa: Mazsınız. Programımızın çalışma prensibi oldukça basit: Programımız bütün BASIC satırlarını kontrol ediyor, eğer satır numarası değiştirildiyse yeni satır numara- sını ZN değişkenine veriyor ve bu değer 63110 nu- maralı satırda yükseklalçak byte düzenine göre yer- leştiriliyor. Daha sonra yeni değer BASIC hafıza böl- gesinde eski değerin üzerine POKE yapılıyor. Koruma işlemini gerçekleştirdikten sonra DELETE 6300- komutu ile koruma programını sildikten sonra programınızı yeni hali ile SAVE edin. Artık programı- nız yüklendiğinde sizin vermiş olduğunuz satır numa- ralarına sahip olacaktır. Eğer yeni satır numarası ola- rak 65535 verirseniz, program bu satıra geldiğinde END komutu ile karşılaşmış gibi olur, bundan başka bu satır yok olarak göründüğünden bu satırda yazılı olanları da görmek mümkün olmayacaktır. Programlarımızı çeşitli POKE komnutları kullanarak veya bazı ufak programcıklar vasıtası ile nasıl koru- yabileceğimizi gördük. Son olarak programımız LIST edildiğinde LIST edene nasıl sürprizler hazırlayaca- ğımızı göreceğiz. Aşağıdaki komut grubunu direkt moddüa yazın. KEYA.CHRS(27)4 CHRS(79)4 ' <RVSON > <SHIFT- M > < RVSOFF >” 4 CHRS(34)-4- CHRS(20) Şimdi programınızı yazarken istediğiniz yerlerde F1 tuşuna basın. Programınızı LİST ettiğinizde oldukça il- ginç bir görüntü ile karşılaşırsınız. Programınız LİST edildiğinde bir mesaj çıkmasını is- terseniz, aşağıdaki örnekleri inceleyin. 10 REM”F1 <UP ><RVSON> Bu bir denemedir. 4100 REM”F1 <CTRL4 1 > 200 REM”FA <Cz-45> Şimdiye kadarki program koruma yöntemlerimiz- de koruma işlemini ya program üzerinde yapmaya çalıştık ya da POKE komutları ile gerçekleştirmeye ça- lıştık. Bir başka yöntem olarak da disket üzerinde gerçek- leştireceklerimiz ile kopyalama işlemini oldukça zor- laştırmaya çalışacağız. İlk yöntem olarak disket üzerindeki bir TRACK'ı tah- rip edeceğiz, ancak bu İşi yaparken disket sürücü- ye sizin için önemli olmayan bir disket takın. Aşağı- daki programı çalıştırdığınızda sizden tahrip etmek istediğiniz trtack numarası sorulacak. Bu track'de her- hangi bir program bulunuyorsa çalışmaz hale gele- ceğinden bir disket monitörü ile kindinize boş bir track bulmanızı tavsiye ederiz. Bu işlemin sonunda disketiniz kopya edilmeye çalışılınırsa oldukça zor ve yavaş kopya edlilir. 10 IİNPUT “TRACK':TR 20 ÖPEN 1,8,15 30 OPEN 2,8,2,“ 40 PRİNT 4,“U4 2 0'97 SÖ PRİNT 4,“İM-E'" CHRS[163]CHRS[253] 63