Commodore sayı 21, sayfa 62

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 62

ralı satırda bir bloğu serbest olarak işaretliyoruz. Bu komut sayesinde o blokta herhangi bir bilgi varsa silinmiş oluyor. 30 numaralı satırda açmış olduğumuz tampon bölgeyi işaret eden bir belirteç tampon bölgenin ilk byte'ını gösterecek şekilde ayarlanıyor. Daha sonra gelen ilk üç byte'a CBM karakterleri yazılıyor. 50 numaralı satırdaki komut, veri tamponunun disketin TRACK 1 SECTOR 0 bölgesine yazılmasını sağlıyor. 60 numaralı satırda bu bloğu kullanılmış olarak gösterdikten sonra 70 ve 80 numaralı satırlarla dosyaları kapatıyoruz. Ufak programı yazıp çalıştırdıktan sonra,

SYS DEC(“FF53”),8.8 veya SYS DEC(“F890”),8,8

ile programın etkisini görebilirsiniz. Bu komutlardan birisini uygulamanızla birlikte disket sürücünün çalışmaya başlamasından kısa bir süre sonra ekrana

BOOTING...

Mesajı çıkacak. Daha sonra büyük bir ihtimalle bilgisayar MONITOR'e girecek. Şimdilik bunu normal karşılamak gerek. Biz otomatik başlama mekanizmasının çalışmasını sağlayan ilk üç byte'ı diskete yazdık. Diskette yer alan bloğun geri kalan kısmı büyük ihtimalle sıfır değeri ile doludur. Bilgisayar başka bir mesaj alamadı ve başka blokları okuyamadı. Bundan sonra da bir makine dili programı çalıştırmak istedi ve sıfır değerli byte'larla karşılaştı. Makine dilinde sıfır değerli byte BRK komutunu temsil ettiğinden bilgisayarımız MONITOR'e girip kaldı.

OLD

Diyelim sizin için çok önemli bir program yazıyorsunuz ve programınızı yazmadan NEW komutunu verdiniz. Hemen üzülmeyin, kaybetmiş olduğunuz programınızı kurtarmanın yolları var. NEW komutunun verilmesi ile birlikte programın başında bulunan iki byte sıfırlanır. Programın başında sıfırlanmış olan ilk iki byte bir sonraki programın sıfır numarasının adresini belirtir. NEW komutunun gazabına uğramış bir programı kurtarmak için değişkenlerin başlangıcını da düzeltmek gerekir. Kaybetmiş olduğumuz programı üç aşamada kurtaracağız. 1. Programın ilk iki byte'ına sıfır hariç bir sayı verin. BASIC'in başlangıç adresinin high byte'ını vermeniz en iyi sonucu verir. 2. Genelde programa yeni satır ilavesinde kullanılan BASIC program satırlarını düzenleyen sistem rutinini çağırın. Bu rutin programın tüm satır bağlantı belirteçlerini değiştirip tekrar hesaplar. Böylece prog-

ramın ilk satırını gösteren belirteç yeniden hesaplanıp hafızaya yazılmış olur. 3. Kaybetmiş olduğunuz programın sonunda bulunan değişkenlerin başlangıcı yeniden ayarlanır. Bu işlemleri C128'de uygulamak çok daha kolay. 3 numaralı aşamayı C128'de iptal etmemiz mümkün, çünkü değişkenler BANK1'de saklanırlar. Kaybetmiş olduğunuz programı aşağıdaki komutu girerek kurtarabilirsiniz. Bu komut anlatmış olduğumuz aşamaları gerçekleştirecek:

POKE PEEK(45) 4 256*PEEK(46) 4

45/46 numaralı adresler BASIC başlangıcını işaret ederler. Bu rutin, belirteçleri eski haline getirir. Yaptığımızın makine dilinde karşılığı:

OBOO 0B02 BASIC ram : başlangıcı ıcın 28 OBO4 94 2D STA ($2D),Y OBO6 20 4F JSR SAFAF; Bağları belirler 0B0O9 60 RTS Makine dilindeki programımızı S0BOO adresi yeri- ne başka bir adrese de yerleştirebilirsiniz.

LİST

Bir program hazırlarken eninde sonunda programınızın dökümünü Printer'dan almak ihtiyacını duyarsınız. Ama bu iş için uzun uzun OPEN 4,4:CMD 4:LIST:CLOSE 4 komutlarını yazmanız gerekir.

Program Döküm Eki'ndeki yazıp, SYS komutu ile çalıştırdığınızda istediğiniz programın dökümünü yazıcıdan alabilirsiniz. Makine dili ile ilgilenen arkadaşlar için programımızı makine dilinde de yazdık:

A9 OOLDA $00 ;Konfigirasyon 1A02 8D 00 FF STA SFFOO A9 OOLDA $00 ;Dosya ismi 4A07 20 BD FF JSR SFFBD :Dosya ısmını ayarla YADA AŞ $04 ;Logic dosya numarası TAX ;Arac numarası SO7 adres 1A0OF 20 BA FF JSR $FFBA ;Dosya parametre ayarı 4A42 20 CO FF JSR SFFCO ;OPEN Kernal rutini YAS A2 $04 Logic dosya numarası 20 C9 FF JSR ;Çıkıs aracını ayarlama SAYA A5 2D LDA $2D ;BASIC ram baslangıcı-low 85 61 STA $61 A5 2E LDA $2E ;BASIC ram baslama-hıgh 1A20 85 62 STA $62

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