Bu sayfadaki yazılar
Sayfanın metni
Sayfa 53
Program bu satırda kullanıcının mouse yardımı ile yapacağı veri girişini bekler. Bu işlemi daha basit olarak
IF MOUSE(0) -O THEN SLEEP
şeklinde yapabiliriz. Bir disketin kataloğunu almak için DIR komutunu kullanıyoruz. Ancak eğer disketin kataloğundaki program sayısı çok fazlaysa bu işlem oldukça uzun sürecektir. Böyle bir diskete, eğer başka dosya eklenmeyecekse şu işlemi uygulayın:
DIR. dosyaismi dosyaismi yerine istediğiniz bir ismi verebilirsiniz. Artık bu disketin kataloğunu almak istediğinizde bütün yapmanız gereken:
TYPE dosyaismi yazmak olacaktır. Eğer printer'ınız grafik ekranlarını basarken uyumsuzluk gösteriyorsa, daha doğrusu printer'ınız için gerekli printer driver'ı bulamadıysanız (Workbench 1.2'deki Preferences programında) aşağıdaki altı satırlık programı printer'ı kullanmadan önce çalıştırın. Büyük ihtimalle bu ufak program sorununuza çare bulacak.
OPEN “PAR:BIN” FOR OUTPUT AS | esc$ - CHRS(27)
PRİNT 4, esc$;" PRİNT 1, PRİNT 1, CLOSE 1
İlk satırdaki PAR:BIN isimli dosya paralel portun kullanılacağını belirtiyor. Eğer printer'ınız serial portu kullanıyorsa SER:BIN ismini kullanın. Programda satır numarası kullanmadım. Çünkü AMIGA BASIC satır numarası kullanmayı zorunlu kılmıyor. Programı bu haliyle olduğu gibi yazabilirsiniz. Programın üçüncü satırında printer'ı reset ediyoruz. Böylece açılış durumuna dönüyor. Dördüncü satırdaki
CHR$(8) komutu printer'a satır aralarında 8 nokta takması gerektiğini söylüyor. CLI altında çalışırken uzun komutları kısa olarak yazmak ister misiniz? Mesela EXECUTE komutu yerine X:
ASSIGN X: C/EXECUTE Bu komutu çalıştırmak istediğinizde X: yazmanız yeterli olur.
CLI (Command Line Interface)
Komut satır ara birimi. AMIGA ile haberleşmenin ikinci şekli. AMIGA ile haberleşmenin en kolay yolu Workbench'i kullanmaktır. Ancak bu yolla yapabilecekleriniz son derece kısıtlıdır. CLI kullanmanın en büyük yararlarından birisi AMIGA'ya her türlü komutu girebilmenizdir. Workbench'ten herhangi bir komutu veya programı çalıştırmak için iki dosya bulunması gerekir, mesela programın ismi DOSYA olsun.
DOSYA DOSYA.info
Eğer DOSYA.info olmazsa, bu programa ait ikonu Workbench'te bulamazsınız. Programların çoğunun bu tür .info dosyaları yoktur. Bu durumda diskette bulunmasına rağmen birçok programı çalıştıramazsınız. Bu aydan itibaren harf sırasına göre CLI komutlarını tanıtacağım. Bu komutların çoğunluğu C adlı directory (katalog)'de bulunur.
ASSIGN
Bu komutun mantıksal aletlerle directory'ler arasındaki ilişkileri verir, bunları oluşturur veya siler. Komutun formatı:
ASSIGN aletismi directory-ismi (LIST)
Aletismi: Bir directory, fiziksel alete veya disket ismi yerine geçecek istediğiniz bir isim. Bu işlemden sonra yeni verdiğiniz ismi kullanarak, tanımladığınız aleti, directory veya disket ismini yazmak zorunda kalmadan çalışabilirsiniz. AMIGA ilk açıldığında sistem bu komutu otomatik olarak bazı işlemler için uygular. Tanımlanmış olan mantıksal aletler şunlardır: S:, L:, C:, FONTS:, DEVS:, SYS:. Eğer bu tanımlamalara karşılık gelen directory'ler yoksa tanımla gerçekleşmez. Eğer herhangi bir tanımlamayı iptal etmek istiyorsanız, ASSIGN aletismi yeterli olur. Directory-ismi: Tanımlanmasını istediğiniz directory'nin ismi. Mesela: Burak/Kelimeişlem/Yazılar'daki Yazılar programını çalıştırmak için uzun uzun bu satırı yazmak yerine ASSIGN yazı: df0:Burak/Kelimeişlem/Yazılar yazabilirsiniz. LIST: Eğer şimdiye kadar tanımlanmış mantıksal aletleri görmek isterseniz bu kelimeyi kullanın veya sadece ASSIGN komutunu verin.
Şimdilik hoşçakalın. 53
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 52
12) Knightmare: İlk zindandan nasıl çıkabilirim? (3) Bride of Frankenstein: Oyunu ilk yüklediğimde oyun çıktı, ama sonraki yüklemelerimde bilgisayar READY diyor ve oyun çıkmıyor. Ne yapmalıyım? Eğer oyun ilk kademenin bitiminde bunu yapıyorsa, oyunun diğer bölümü yüklenemiyor demektir. Eğer oyun artık hiç yüklenmiyorsa, büyük bir ihtimalle kasetinizde veya disketinizde bir bozulma olmuş demektir. Adana'dan M.Deniz Göksedef arkadaşımız aşağıdaki soruyu sormuş: Popeye II: İple tırmandıktan sonra karşımıza çıkan kapıları neyin yardımıyla ve nasıl açacağız? Bulduğunuz oyun kolaylıklarını diğer Commodore'cu arkadaşlarla paylaşmak isterseniz bize göndermeyi unutmayın. Adresimiz: Commodore Dergisi Oyunlar İçin Kolaylıklar Köşesi Silahhane Cad. Ralli Apt. 59/3 80200 Teşvikiye - İstanbul
MAKİNE DİLİ
Geçen ay CONT komutunda kalmıştık. Eğer basılan tuş herhangi bir İstediğimiz tuş ise BRK prog- ramın nasıl durdurulabileceğini görelim: 300' JSR SFFE4: klavyede basılan tuşu okuyan Truti- ne git. 3003 BE© 3000: Eğer hiçbir tuşa basılmamışsa 3000 numaralı adrese atla. 3005CMP 13: Basılan tuş RETURN tuşu mu? Eğer başka bir tuş, mesela A harfine basıldığında durul- masını istiyorsanız CMP $41 değerini kullanın. 3007 BNE $300A: Eğer aradığımız tuşa basılmamış- sa RT$ komutuna geç. 3009 BRK: Eğer istenen tuşa basılmışsa dur. 3O0A RTS: Bu rutini çağıran rutine geri dön. Kullanıcı bir tuşa basana kadar program 3000. ad- rese gitmeye devam Bu tür veri alışını ek- randa bir menünüz varsa uygulayabilirsiniz. Sıfırıncı sayfadaki bir adres basılan tuşları bekler. Bu adres C-64'te SCB, C-128'de $D4'tür. LDA $SDA:CMP 10 :BE©O BULUNDU programını kullanabilirsiniz. Burada BULUNDU, A tuşu- na basıldığında bir şeylerin yapıldığı rutin başlangı- cını belirten semboldür. Burada A tuşunun değeri 10 olarak alındı. Çünkü bu adreste tuşların değeri normal ASÇII kodu olarak tutulmamakta. Mesela RETURN tuşu 13 yerine | koduyla gösterilmektedir. Eğer hiçbir tuşa basılmamışsa bu ad- resin değeri C-128'de 88, C-64'te 64 olur.
DATA
DATA komutundan sonra yer alan bilgiler READ komutu için kullanılırlar. Ancak burada yer alan veriler BASIC diline ait değildir. Makine dilinde böyle bölgelere tablo adını veriyoruz. Program hiçbir zaman bu bölgedeki değerleri komut olarak alamaz. Bunun için program sayacı değeri hiçbir zaman bu bölgeyi göstermez. Daha doğrusu göstermemesi gerekir. Mesela yanlışlıkla JMP veya JSR komutları program akışını bu adreslere geçirirse bilgisayarımız kesinlikle kilitlenir. Çünkü bu bölgede yer alan değerler bir makine dili komutunu değil program için kullanılması gereken verileri içerir. İşleri kolaylaştırmak için bu tür tablolar programın başına veya sonuna konur. Ancak en iyi yöntem bunların programın sonuna konmasıdır. Tablolarda, ekrana göndereceğiniz mesajları, değişken değerlerini, belirteçleri ve benzeri bilgileri saklayabilirsiniz. Bir programı disassembler yardımı ile incelediğinizde sık olarak ??? işareti ile karşılaşırsanız büyük ihtimalle bir tabloyu inceliyorsunuz demektir. Bir makine dili programı aşağıdaki yapıya göre yazabiliriz: Veriler Programa Başlangıç Ana Döngü Alt Programlar Veriler
DIM
BASIC, otomatik karakter işlemleri, dizi uygulaması ve hata mesajları ile programcının işini son derece kolaylaştırır. Ancak bu kolaylığın bedeli programın yavaş çalışmasıdır. Makine dilinde çalışırken değişkenler için gerekli hafıza ayrımını bilgisayar bizim için yapmaz. Mesela $6000 ile $6500 arasındaki hafıza bölgesini değişken saklamak için ayırdığınızı bilmeniz gerekir. Bu alanın bir haritasını çıkarmak, kalıcı karakter dizisinin, sabitlerin, değişken karakter dizilerinin, değişkenlerin, belirteçlerin ve benzeri bilgilerin bu bölgenin nerelerinde saklandığını bilmenize yardım olur. Hafızanın verileri içeren bölgeleri mantıklı makine dili komutları taşımayacağı için bu bölgeleri genellikle programın sonuna koyarız. Bu şekilde hafızanın belirli bir kısmını veriler için ayırdıktan sonra gerektiğinde ana programa zarar vermeden bu bölgeyi rahatlıkla genişletebilirsiniz.
AMIGA
BASIC ile yazdığınız bir programın belirli bir nokta- da kullanıcının uyarısını beklemesini isterseniz: BEKLE:
IF MOUSE(0) <0 THEN GOTO BEKLE