Program Döküm Eki sayı 10, sayfa 24

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 24

Tek tuşa basarak disketin directory'sini görmek ister miydiniz? Hem de o sırada hafızada bulunan programı silmeden?.. Valla, ben olsam isterdim.

Program yazarken, disketin directory'sini görmek istediğinizde yapacağınız yegane şey LOAD"$",8 yapmak, sonra da LIST vermektir. Ama böylece hafızadaki BASIC programınıza elveda diyebilirsiniz, hatta önceden diskete kaydetmemişseniz, ebediyen göremezsiniz onu...

BASIC ilerletme programlarında (SIMON'S BASIC, EX-BASIC vs.) buna uygun komutlar var. Ama ya bu programlara sahip değilsek ne yapacağız? İşte o zaman bu program yetişecek imdadımıza.

Programı yazdıktan sonra yükleyin ve RUN ile çalıştırın. Bilgisayarın açılış durumuna geldiğini göreceksiniz. Ama korkmayın, program bozuk değil. Şimdi bir disket takın ve F1 tuşuna basın. Ne oldu? Tüm directory satır satır ekrana geldi, değil mi? Bitince bir daha basın, bir directory daha...

İsterseniz SYS 64738 yapın, isterseniz RUN-STOP/RESTORE... F1 tuşu işlerliğini yitirmeyecektir. Hatta dışarıdan RESET tuşuna (eğer varsa) bassanız bile farketmez. Tek olanak bilgisayarı kapayıp açmak. Peki bu nasıl oluyor?

C-64'ün bir AUTOSTART-MODUL kullanma olanağı vardır. Bu daha çok, arka tarafa taktığınız kartuşların bilgisayar açılır açılmaz çalışması için yapılmıştır. Ancak yönetimini bildikten sonra biz de bu kolaylığı kendi programlarımız için kullanabiliriz (nitekim kullandık da).

Bilgisayarı açtığınızda, SYS 64738 yazdığınızda veya RESET tuşuna bastığınızda bilgisayar otomatik olarak 64738 ($FCE2) adresine atlar. Burada başlayan rutin, öncelikle $8004-$8008 (32772-32776) arasını kontrol eder. Eğer burada "CBM80" yazısını oluşturan harflerin ASCII kodları yoksa, normal işlemlerine devam eder. Eğer varsa, $8000-$8001 (32768-32769) arasında yer alan iki byte'in gösterdiği adrese atlanır ve işlemlere orada devam ediliir. Örneğin, her kartuş buraya kendi başlangıç adresini yazar ve böylece bilgisayar açıldığında kartuş çalışmaya başlar.

Buna benzer bir işlem RUN-STOP/RESTORE'da da vardır. Yalnız bu sefer $8000-$8001'in değil de, $8002-$8003 (32770-32771) arasındaki iki byte'ın gösterdiği adrese atlanır. Tabii ki CBM80 yazısı varsa. Bu arada dikkat edersenız, CBM80 yazısı büyük harflerin kodlarından oluşmak zorunda.

Bizim programımız da bu işlemi yapıyor. CBM80 yazısını yerine yerleştirip $8000-$8003 arasındaki adres byte'larına gereken değerleri yerleştiriyor. Böylece programımız hep çalışır durumda kalıyor.

Peki directory yüklemesi nasıl oluyor? Ve F1 tuşuna basıldığı nasıl anlaşılıyor? F1 tuşuna basıldığının belirlenmesi, daha önceki sayılarda da bahsettiğimiz interrupt programlamasıyla yapılıyor.

Çok sayılar önce, C-64'ün interrupt (kesinti) tekniği kullanılarak programlanabileceğini belirtmiştik (Bkz: HYPERSCREEN, Sayı:1). Birazcık hatırlatalım.

C-64, saniyede 60 kere işi gücü bir kenara bırakıp, belli bir rutine atlar ve bazı kontroller yapar; tuşa basılmış mı, cursor yanıp sönüyor mu, saati ayarlamak gerekiyor mu ve bunun gibi işler. Sonra da normal işine kaldığı yerden devam eder. Böylece biz onun farkına bile varmayız. İşte bu rutinin

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