Commodore sayı 33, sayfa 30

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 30

Out of Memory

SAYIN Commodore Yetkilileri, Sizlere birkaç soru sormak istiyorum: 1- Kendi yaptığım bir programda birden çok matris, hatta üçlü matris kullanıyorum. Tabii “Out of memory” mesajını alıyorum. Bu durumdan kurtulmanın çaresi var mı? Benim aklıma $C000-$D000 alanını kullanmak geldi. Ama bunu nasıl yapacağımı bilmiyorum. Eğer mümkünse açıklar mısınız? 2- Teybe dosya açarken çok zaman kaybediyorum. Acaba dosya açma işleminde turbo programı kullanmak mümkün mü? Yani dosyalarımı turbolu olarak açabilir miyim?

İBRAHİM NURSAL/HATAY

SAYIN İbrahim Nursal, 1) BASIC programlarda hafızanın en büyük düşmanlarından birisi dizilerdir. DIM komutuyla açılan bir dizi elemanlarının dolmasıyla hafızayı da tüketmeye başlar. Böyle bir program ilk çalıştığında hata mesajı vermeden çalışsa bile dizideki elemanların kullanılması sonucu hafıza bitimi olan OUT OF MEMORY hatasına yol açar.

Bu duruma bir çözüm olarak $C000-$D000 arasındaki hafıza kısmını kullanabilirsiniz. Ancak bu kısım size yaklaşık olarak 4Kb'lık bir yer bırakır. İhtiyacınız bundan daha fazla ise BASIC'in program için ayırdığı alanı daha aşağı çekerek kendinize yer açabilirsiniz. Bu işlemi programınız son halini aldıktan sonra kullanılan değişkenler içinde hafızada gerekli yeri düşünerek yapın. Mesela 40 karakterlik isimleri $C000-$D000 arasındaki bölgede saklayalım. Bunun için bu bölgeyi 40 byte'lık dilimlere bölelim.

05 B-49151 10 INPUT A$ 15 IF LEN(A$) -40 THEN 10 20 FOR I-1 TO LEN(A$) 30 A- ASCIMID$(AS,I,1)) 40 POKE B*1, A 50 NEXT I 55 IF “SON” THEN 80 60 70 GOTO 10 80 REM PROGRAM BURADAN DEVAM EDER

10 Numaralı satırda kullanıcıdan veriyi alıyoruz. 15 numaralı satırda alınan verinin istenenden uzun olup olmadığı kontrol ediliyor. 20 numaralı satırda A$ değişkeninin uzunluğu kadar sürecek döngü başlıyor. 30 numaralı satırda A$ değişkenindeki karakterlerin tek tek ASCII kodları alınıyor. Bu kodlar 40 numaralı satırda ASCII kodlar hafızaya konuyor. 50. satırda sonu eriyor. 55 numaralı satırda veri girişine son verilip verilmediği kontrol ediliyor. 60 numaralı satırda veri alan sayacımız bir dilim arttırılıyor. 70 numaralı satır tekrar veri alışına gönderiyor.

Verdiğimiz örnekten başka şekillerde de hafızayı dizi açmak yerine kullanabilirsiniz. Teypte veri dosyası açarken normal olarak TURBO kullanamazsınız.

Bellek Haritası

SAYIN Commodore Dergisi Yetkilileri, Ben Ege Üniversitesi Bilgisayar Bilimleri Mühendisliği II. sınıf öğrencisiyim. Derginizi uzun zamandır takip ediyorum. Derslerim gereği Almanca, İngilizce C-64 ile ilgili birçok yayını okudum. Edindiğim izlenim, derginizin en az bu dış yayınlar kadar kaliteli ve faydalı olduğudur. Aşağıdaki sorularımı cevaplayacağınızı umuyor, şimdiden teşekkür ediyorum. 1- Çok iyi bir Assembler/Disassembler programa ve bir Türkçe Wordprocessor programına ihtiyacım var. Bunların sadece disket üzerinde olduğu söyleniyor. Teyp kullanıcıları için bu programları bulmak mümkün mü? Mümkün ise profesyonel uygulamalar için hangilerini tavsiye edersiniz? 2- Yazmak istediğim makine dili programlarda kullanmak için C-64 işletim sistemindeki rutinler ve konumları hakkında ayrıntılı bir ROM haritasına ihtiyacım var. Bunu nereden bulabilirim? 3- Derginizin Program Döküm Eki'nde okuyuculardan gelen programları yayınladığınızı biliyorum. Kendi hazırlamış olduğum programları size ne şekilde gönderebilirim? ATİLLA ÖZERDİM/İZMİR

SAYIN Özerdim, dergimizin 13. sayısında yayınlanan Süper Assembler son derece kullanışlı bir assembler. Yaptığınız programları diskete veya kasete kaydetmeniz bu programla mümkün. Kelime işlemci olarak Easyscript'i tavsiye edebiliriz. Bu program hem yazım hem de kullanım kolaylığına sahip. Yazdığınız yazıların kayıt ortamını disket veya kaset olarak seçmeye izin veriyor. Genel olarak söylemek gerekirse, çok uzun metinler kaset ortamında sorun çıkarabilir. Uzun metinlerde yükleme ve kayıt süresi son derece uzar. Eğer yazılarınız oldukça uzun olacaksa, disket ortamında çalışmanızı tavsiye ederiz. 2- C-64'ün detaylı bellek haritasını C-64 Programmer's Reference Guide kitabında bulabilirsiniz. 3- Program döküm ekine göndereceğiniz programları mümkünse kaset veya diskette gönderin. Programınızı en az iki kere kayıt edin. Programınızın nasıl çalıştırılacağını ve program hakkında açıklayıcı bilgiyi eklemeyi unutmayın.

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