Commodore sayı 35, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

Beş Soru...

SAYIN Commodore Dergisi yetkilileri, 6 aylık C-64'cüyüm. Derginizi 18. sayısından itibaren ilgiyle izliyorum. Merak ettiğim konularda beni aydınlatırsanız sevinirim. 1. Print komutuyla ekrana çıkmasını istediğim ifadede aynı anda hem büyük hem küçük harf karakterini nasıl kullanabilirim? 2. Reset Switch veya SYS 64738 komutu hafızadaki makine dili programını silmiyor. Oysa ben, bilgisayarı açıp kapamadan hafızayı temizlemek istiyorum. Böyle bir şey mümkün değil mi yoksa? 3. ST değişkenine yükleme yapamıyorum. Status değişkeni olduğunu öğrendiğim bu (bana göre ilginç) değişkenin içeriği hakkında bilgi istiyorum. 4. Dataset kullanıcısı olduğumdan Koala Painter programını kasette temin edebilir miyim? 5. Program Döküm Eki'nde yer alan MDE ile yükleyin dediğiniz ve Assembler adı altında yayınlanan programları ben, kendi MDE programımla yazamıyorum. Assembler listing denilen, MDE'den farklı mı? Ayrıca başlangıç adresi ve bitiş adresi şeklinde sorularak yazılan makine dili programlarındaki ikili karakterler nedir? Eğer bu konu çok ayrıntılı anlatım gerektirip de eski sayılarınızda yayınlandıysa hangileri olduğunu öğrenmek istiyorum.

pamı

6. Program Döküm Eki'ndeki birçok “Program Yardım” programlarını yazdım. Bazıları SYS komutu ve iki hatta üç programı birden çalıştırmam gerektiği oluyor. Aynı anda hafızada kaç SYS'li program bulunabilir? Yoksa programların birbirleri ile kesişip kesişmemesi mi söz konusu?

Okan Varol SAYIN Okan Varol, Ekrana çıkacak yazılarda hem küçük hem de büyük harflerin çıkmasını istiyorsanız, programınıza şu satırı ekleyin:

İstanbul

PRİNT CAR$(14)

Eğer programınızın başka bir noktasında eski duruma dönmek isterseniz, şu satırı programınıza ekleyin:

PRINT CHR$(142)

Hem reset switch, hem de SYS 64738 komutu bilgisayarı açılış durumuna döndürüyor. Ancak, söylediğiniz gibi hafızadaki makine dili program kaybolmuyor. Ancak bu durumun çalışmanıza hiçbir zararı olmayacaktır. Buna rağmen hafızayı temizlemek isterseniz, yazacağınız ufak bir makine dili programla size gerekli hafıza adreslerini 0 değeri ile doldurabilirsiniz. Veya bu işlemi BASIC yardımı ile de yapmanız mümkün: Mesela 4000 - 8000 numaralı adresleri silelim:

10 FOR 1-4000 TO 8000 20 POKE 1,0 30 NEXT |

ST değişkeni (veya tam adı ile STATUS) değişkeni özellikle teyple uğraşırken çok işinize yarar. STATUS kelimesinin dilimizdeki anlamı DURUM'dur. Bu değişkenin içeriği yükleme saklama işlemleri ile ilgili bilgiyi yansıtır. Mesela bu değişkenin içeriği sıfır olduğu sürece teypten bilgi alımına devam edilir. Aşağıdaki program teypten sequential bir dosyayı okuyor. Okuma işlemi ST değişkeni sıfır değeri dışında bir değer elde edene kadar devam ediyor.

10 DIM (100,3) 100 OPEN 1,1,0, “ISIMLER” 110 FOR I-1 TO 100 120 FOR

125 IF ST 0 THEN 200 1301NPUT 1, 140 1F “ THEN 200 160 NEXT J 170 NEXT 1

200 REM PROGRAM DEVAM EDİ- YOR

Assembler listing ile verilen program MDE'den farklıdır. Çünkü MDE heksadesimal sayıları kabul eder. Böyle bir satıra örnek verelim:

0801 AA BA CC 12 DA 54 72 8D SA

olacaktır. Buna karşın Assembler listing ile verilen programa bir örnek verelim:

0801 DEX 0802 LDA 0804 INX

$BA

Bu tür bir programı assembler yardımı ile girmeniz gerekir. Dergimizin program döküm eklerinde son derece kullanışlı bir assembler programı yayınlanmıştı. Aynı anda birden fazla sayıda istediğiniz kadar çok sayıda makine dili programı hafızada bulundurabilirsiniz. Ancak bir şart var. Her program diğerlerinin bulunduğu adres bölgelerinden farklı bir hafıza bölgesinde yer almalı. İkinci olarak her programın kullandığı veriler hafızanın başka bir bölümünde yer almalı. Her programı hafızadaki başlangıç adresini SYS komutunda kullanarak çalıştırabilirsiniz. Bu tür kullanımda sizi sınırlayacak tek şey hafıza miktarı olacaktır.

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