Commodore sayı 19, sayfa 16
Sayfanın metni

Sayfa 16

İftah olmaz bir bilgisayar kurcalayıcısı mısınız? Bir oyun programını yazdıktan sonra, oynamaya başlamaktansa programı değiştirmeyi mi tercih edersiniz? Bilgisayarınızı yükledikten sonra tam istediğiniz konfigürasyonu sağlamak için bir sürü utility doldurma alışkanlığınız var mı? Programları tepeden tırnağa elden geçirmedikçe içinizin rahat etmediği olur mu? Eğer bu sorulardan herhangi birine evet cevabı veriyorsanız, sizde bir kurcalayıcılık var demektir. “Kurcalama” deyimi kimi iyi kimi kötü birkaç anlam birden taşıyor. Biz burada “yazılım deşen”, ya da “bit çevirenler”den bahsedeceğiz. Modemler aracılığıyla Stratejik Hava Kumandanlığı'nın Savunma İletişim Sistemi'ne nasıl girildiğini, veya en yeni telif koruma sistemlerini etkisiz bırakma yöntemlerini anlatmak niyetinde değiliz. Kendimize daha mütevazi hedefler koyuyoruz; fakat kurcalamacılık ruhuna da sadık kalıyoruz. Bu ay, hafızaya bir makine dili utility'si sokmaya yarayan bir BASIC “yükleme” programıyla başlıyoruz. Makine dili monitörü aracılığıyla bu utility'i hafızanın içinde inceleyeceğiz. Utility'i parçalayıp nasıl çalıştığına bakacağız. Ve son olarak da, utility'nin hafıza içindeki konumunun nasıl değiştirilebileceğini göreceğiz. Neden mi yapıyoruz bütün bunları? İçimizden geldiği için! YÜKLEYİCİ Bugüne kadar bir sürü makine dili yükleme programı görmüşsünüzdür. BASIC'le yazılırlar ve büyük ölçüde ondalık veya onaltılık sayılarla dolu DATA cümlelerinden oluşurlar. Bu sayıların ne anlama geldiğini hiç merak etmemiş miydiniz? Bunu tam olarak anlamanız için, assembly dili konusunda biraz da olsa bilgi sahibi olmanız gerekiyor. Ne yazık ki, bu makalede tek bir dersle assembly dilini öğretmemiz mümkün değil. Gene de, assembly dili uzmanı olmadan da bu tartışmayı izleyebilirsiniz. Burada assembly dilinde yazılmış bir programda nelere dikkat etmeniz gerektiğini ve bazı cevaplara nasıl ulaşacağınızı anlatacağım. (Başında $ olan sayılar onaltılık sayılar, geri kalanlar ise ondalık sayılardır.) 1040. satırdaki CK bütün verilerin toplamını hesaplayıp bir “kontrol-toplamı” (check sum) oluşturur. Son veri değeri okunduktan sonra,

1050. satır, bir byte B verisini hafızada M konumu- — kontrol-toplamı gerçek değerle karna getirir. Başlangıçta, M 1000. satırda 4892'dir. 1100. — şılaştırılarak DATA cümlelerinin yasatırdan okunan ilk byte'ı ise $4C'dir. (Başında $ olan — Zılması sırasında hata yapılıp yapıl-

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