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ı.
Sayfa 31
Geos
SAYIN Commodore Dergisi Yetkilileri, Geos programı ne işe yarar, özellikleri nelerdir? Geos disketini nereden temin edebilirim. Geopaint ve Geowrite gibi programlar bu disketle beraber veriliyor mu? Bir de Geos için mouse'u Türkiye'de bulabilir miyim? Şimdiden teşekkürler.
MURAT YAMAN/ÇORUM
SAYIN Murat Yaman, GEOS: Graphic Environment Operating Systems, kelimelerinin baş harflerinden oluşmuştur. İlk olarak 1986 yılında piyasaya çıktı. Bu program sayesinde C-64 kullanıcıları AMIGA benzeri bir işletim sistemine sahip oldular. Daha sonra GEOS bir dizi yardımcı programa sahip oldu. Bunlardan bazıları GEOPAINT: Resim programı, GEOWRITE: Kelime işlem programı, GEOPUBLISH: Masa üstü yayıncılık. GEOS, ancak disket sürücü ile çalışıyor. Ve disket sürücüye bağlı bir işletim sistemi. AMIGA'nın işletim sistemine son derece benziyor. GEOS'un diğer programları farklı disketlerde ayrı olarak satılıyor.
Yalnız C-64 mü?
SAYIN Commodore Yetkilileri, Benim sorum şu: Program Döküm Eki'ndeki programlar sadece Commodore 64 için mi geçerli, yoksa diğer bilgisayarlar için de geçerli mi? Engin Beri
SAYIN Engin Beri, Program Döküm Eki'nde programların makine dili ile yazılmış olanları sadece Commodore için geçerlidir. Hatta C-64 için yazılmış bir programı C-128 modunda dahi kullanamazsınız (kullanılabilmesi için programın başka adreslere yerleştirilmesi gerekir). Ancak BASIC programların bazılarını kullanmak mümkün olabilir. BASIC programlarının içinde PEEK ve POKE komutu olanlar diğer makinelerde kullanılamaz. Ancak PEEK ve POKE komutunda kullanılan adresin ne işe yaradığını biliyorsanız ve bu komutu çıkarmanız program akışına zarar vermeyecekse, programda değişiklik yaparak diğer bilgisayarlara uyarlayabilirsiniz. Mesela, POKE 53280,10 : POKE 53281,4 Bu satırı çıkarmanız veya diğer bilgisayarda bulunabilecek renk komutları ile değiştirmeniz, program akışına hiçbir zarar vermez.
Modem
SAYIN Commodore Dergisi Yetkilileri Eğer aşağıdaki sorularımı yanıtlarsanız sevinirim. 1- C-64 için en uygun modem çeşidi hangisidir? 2- 64 monitör programını MDE yardımıyla girmek mümkün mü? 3- Program Döküm Eki'nde verdiğiniz MDE yardımıyla girilen programlarda kontrol toplamı nasıl hesaplanıyor.
Alper ERCAN/Edirne
SAYIN Alper Ercan, (1) Commodore 64 için kullanabileceğiniz modemleri BAUD cinsinden değerlendirelim. Normal olarak 300 BAUD'luk modemler şu anda standarttır. Ancak veri hızını arttırmak için 1200 BAUD'luk modemler daha elverişlidir. BAUD birimi saniyede iletilen bit sayısını verir. Buna göre 300 BAUD'luk bir modem saniyede 300 bit gönderir. 10 bit bir byte oluşturduğundan saniyede 300 byte'lık bilgi aktarımı gerçekleştirilmiş olur. Bir byte 8 bitten oluşur ancak iki bit kontrol için gönderilir. Böylece toplam 10 bit bir byte'ı oluşturur. (2) MDE ile makine dilinde verilmiş programları girebilirsiniz. Kontrol toplamları çeşitli yöntemlerle hesaplanır. Genelde bunların toplamı alınır veya buna benzer bir işlem uygulanır. Böylece elde edilen kontrol toplamının, girilecek yanlış sayılarda elde edilecek kontrol sayısından farklı olması sağlanmış olur. (3) C-1541 tek kafalı bir disket sürücüdür. Bu yüzden disketin tek yüzünü okur. Disketin arka tarafından yararlanmak için sağ tarafında bulunan çentiğin benzerini aynı hizada olmak üzere sol tarafında da açmanız gerekir. Bu işlem için gerekli aletleri kullanmanızı tavsiye ederiz. Ancak böyle bir alet bulamazsanız, keskin bir jilet de işinizi görebilir.
BDE'nin Özellikleri
SAYIN Commodore dergisi Yetkilileri, Önce bu dergiyi yayınladığınız ve Commodore ve AMIGA'cı arkadaşlara yardım ettiğiniz için bütün arkadaşlarım adına size teşekkür ederim. Cevaplamanızı istediğim birkaç sorum var. Bu sorularımı cevapsız bırakmayacağınızı tahmin ediyorum. 1- Derginizin Döküm Eki'nde makine dili ile yazılmış programları (Breakout, Fingercount, 64 Klavye Destek Programı vb.) C-64'te nasıl yazabilirim. 2- Bu programları kasette nasıl saklayabilir ve gerektiğinde çağırabilirim. 3- Programları BDE ile nasıl yazabilirim. Bu programlardan yoksun kalmamam için elinizden geleni yapacağınızdan eminim. Saygılarımla...
Alpay BİLGİNDİL
SAYIN Alpay Bilgindil, Dergimizin ikinci sayısında MDE ve BDE adlı iki program yayınlandı. Bunlardan MDE, makine dilinde yayınlanan programları, BDE ise BASIC ile yazılmış programları kolay olarak yazmanızı sağlıyor. Eğer BDE kullanmak istemiyorsanız, satır sonlarında verilen numaraları kullanmadan programı olduğu gibi yazın. Ancak programı yazarken hata yapma şansınız son derece yüksek olacaktır. Makine dilinde verilen programları MDE kullanmadan yazabilmenin tek yolu başka bir monitör programı kullanmaktır.