Bu sayfadaki yazılar
Sayfanın metni
Sayfa 17
DALE RUPERT madığı kontrol edilir. Eğer hata yoksa, 1090. satır işleme girer ve her şeyin yolunda olduğunu bildirir. Bu noktaya kadar, 4892'den başlayarak hafızaya 32 byte veri girmiş bulunmaktadır. Bu veriler, BASIC'den alabileceğiniz bir makine dili utility'sidir, belirli sayıda özdeş karakteri ekranda yazmaya yarar.
Makine dilindeki hizmet
SİCİM utility'si (hızı hariç) şu BASIC rutinine eşdeğerdir:
10 CH-65 20 FOR J-1 TON 30 PRİNT CHRS (CH);
40 NEXT J
CH, yazılacak karakterin ASCII
programlarını nasıl kırabiliriz?
değeri, N ise karakterin yazılma adedidir. Yazmayı FOR-NEXT döngüsü gerçekleştirir. Örneğimizde, ASCII değeri 65 olan “A” harfi ekranda 500 kere yazılacaktır. Sicim Yükleyici programı doğru bir şekilde işletildikten sonra, hafızada 4892'den başlayan bir makine dili programı bırakacaktır. C-128 BASIC
Klavyeyle gezinmek için ← ve → tuşları.
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-