deki programı yazıp çalıştırmadan evvel SAVE edin. Programımızın 10-50 satırları arasında formülü kul- lanıcıdan İstiyoruz. 60-90 arası satırlar yeni bir satır üretilmesini sağlıyor. 100-120 satırları ile klavye tam- ponuna RETURN tuşunun ASCİİ kodu olan 13'ü gön- deriyoruz ve 130'uncu satırda POKE 208,4 satırı ile klavye tamponunda dört değer olduğunu belirtiyo- ruz. Bundan sonra programımız otomatik olarak 500'üncü satırdan başlıyor. DATA SATIRLARI ÜRETİMİ Özellikle makine dili bir programı BASIC programı- mıza DATA satırları olarak eklemek istediğinizde çok faydalı olabilecek bu programı, Program Döküm Eki'- nde bulabilirsiniz. Programımızı yazımızın başında söylediğimiz yöntemler ile yaptığımız için detaylı bir açıklamasını vermeyeceğiz. Programı yazdıktan sonra çalıştırmadan evvel mu- hakkak SAVE edin, çünkü program çalışmasını bitir- diğinde kendisini de tamamen silmiş olacak. DATA satırları haline getireceğiniz makine dili pProg- ramın başlama ve bitiş adreslerini bilmeniz gereki- yor. Bundan başka hafıza düzenlemesini de (normal- de BANKO) bilmeniz lazım. Bu bilgilerden sonra ilk satır numarasının kaç olması gerektiğini ve satırların kaçar kaçar artması gerekti- ğini de programa vermeniz gerekiyor. Yalnız ilk satır numarası olarak en küçük 1300 verin, aksi takdirde program çalışması sırasında kendisinin üstüne yazar. Programımız çalışmasını bitirdiğinde kendisini DE- LETE komutu ile silip öyle duracak. Program çalışma- sını bitirdikten sonra istediğinize göre RENUMBER ko- mutu ile program satır numaralarını değiştirebilirsiniz. Şimdi bazı adreslerin işlevlerini görelim. C128 Cb4 Anlamı 208 198 Klavyeden gelen ka- rakterlerin sayısı, 842-851 631-640 Klavye tamponu; maksimum 10 byte saklanabilir. 2592 649 Klavye tamponunun maksimum büyüklü- gü (410) Cö4'te çalışan bir programı da kendi kendisini de- ğiştirecek şekilde programlamak mümkün ancak C4128 modunda bunu gerçekleştirmek çok daha ko- lay, çünkü C64 modunda iken program satırlarını de- ğiştirmeniz halinde tüm değişkenler sıfırlanır. C4128'de ayrı bir hafıza bölgesi (BANK 1) değişkenler için ay- rıldığı İçin değişkenlerin sıfırlanması sorunu ile karşı- laşmıyoruz. Gelelim klavye tamponuna, klavye tamponu ge- nelde bize yeterli olan on byte uzunluğundadır, eğer on byte size yeterli olmazsa kullandığınız komutların kısa şekillerini kullanabilirsiniz. Diyelim buna rağmen on byte ihtiyacınızı karşılamadı, o zaman TAB-bit ha- fizasını silerek klavye tamponunu maksimum yirmi byte uzunluğa çıkarabilirsiniz. Ancak klavye tampo- —-———— Comimodore nu yirmi byte uzunluğa çıktıktan sonra TAB tuşu doğ- ru olarak işlemez. Klavye tamponunun genişletilmiş hali ile bu bölge hafızada 842-861 adresleri arasın- da yer alır. Klavye tamponunu POKE 2592,20 komu- tu ile değiştirebilirsiniz. PROGRAM KİLİTLERİ Yaptığımız programların başkaları tarafından kur- calanmasını veya kopya edilmesini İstemiyorsak r:.e yapabiliriz? İlk olarak POKE komutları vasıtası ile, da- ha sonra ise özel programlar aracılığı ile program- larımızı kilitlemeye çalışacağız. Hemen belirtelim, gö- receğimiz koruma teknikleri sadece bir önlem niteli- ğindedir programınızı yüzde yüz bu yöntemlerle ko- ruyamayabilirsiniz ama hiç olmazsa bu işle uğraşan bir kişinin işini oldukça zorlaştırırsınız. POKE komutları kullanarak yapacağımız program kilitlemesinin ufak bir dezajantajı var, program için- de kullandığınız POKE komutlarının işe yarayabilme- Si İçin önce programın çalışması gerekir. LIST KOMUTUNU ENGELLEME C4128'de hafızanın üçüncü sayfasında LİST komu- tu için olan vektörü işaret eden bir göstergeç vardır. Bu vektör 774/775 (80306/50307) adreslerine sahiptir. POKE 774,61:POKE 775,255 komutlarını yazın ve LİST komutunu verin. Karşınızda açılış ekranını bulacaksınız. Şimdi; POKE 774,38:POKE 775,255 komutunu girip LİST komutunu yazdığınızda sadece programınızın satır numaralarını göreceksiniz. Gör- düğünüz gibi göstergeçleri değiştirerek inanılmaz şeyler başarabilirsiniz. 65