64'ler sayı 12, sayfa 51

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 51

Şimdiye kadar anlattıklarımızı tam anlamıyla takip ettiyseniz, Speech-Basic'in nasıl çalıştığını ve neler yapılabileceğini anlamış olmanız gerekir. Fakat gene de, aşağıda yer alan (oldukça sıkıcı bir işlem ama ne yapalım), komutların kullanımını anlatan bölümü okumanız gerekiyor. Ayrıca, şimdiye kadar bahsedilmemiş birkaç komut ile ilgili açıklamaları da bulacaksınız aşağıda,

KOMUT LİSTESİ

Aşağıda, tüm komutlar yaptıkları işlerin benzerliği altında gruplanmıştır. Anlatım sırasında kullanılan büyük harfler komutların kendisi, küçük harfler ise bunlara ait parametrelerdir. Parantezler, sadece parametrelerin kullanılmama sırasını göstermek için konmuştur. Kullanılmayan parametrelerin yerine bilinen bir değer kullanılır. “Str” diye bahsedilen şey karakterlerden oluşmuş bir string'i temsil eder. Blok adı ile anılan şey belli bir hafıza bölgesidir ve üç türlü belirtilebilir:

1- FROM başl.adr. TO bit.adr. 2- başl.adr., bit.adr. 3- BLOCK x

Büyük 'a' harfi $4A5, iki byte'lık bir tamsayıyı (adres) simgeler. Büyük 'n' harfi ise (N), bir byte'lık bir tamsayıyı temsil eder. Dv kısaltması, alet numarasıdır (device number).

Disketle yapılan tüm bilgi taşıma işlemleri, 127 no.lu mantıksal dosya kanalını kullanırlar. Bu kanalın bir özelliği, RUN/STOP + RESTORE işlemi sırasında otomatik olarak kapanmasıdır. Bu dosya kanalını kendi programlarımızda kullanamazsınız. LISTING sırasında, (SHIFT) tuşu ile bekletme yapmak mümkündür. Her yerde, onaltılık ve ikili sistemde sayılar kullanmak mümkündür, (PRINT $A000, %011011). Onaltılık sayılar, önlerinde yer alan '$' dolar işareti ile ayırt edilirler. İkili sayıların önünde ise '%' işareti bulunmak zorundadır. Onaltılık sayıların kullanımında karşınıza çıkabilecek bir sorundan bahsedelim. İçinde 'DEF' dizilimi bulunan onaltılık sayıyı 'D EF' gibi ayrı olarak yazın. Sayı olarak bu son kullanım gene geçerli olacaktır. Fakat, Basic yorumlayıcısının, bunu 'DEF' komutu olarak yorumlayıp, ona ait token'ı (Basic yorumlayıcısının kendi komutlarını ayırt etmek için kullandığı kodlama) yerleştirmesi önlenecektir. Bu kurala uymadığınız takdirde, hata mesajı ile karşılaşırsınız. IF komutları ile kurulmuş şartlı programlama satırlarında, THEN komutundan sonra yeni komutlardan biri gelecekse iki nokta üst üste ile ayrılmış olması gereklidir. Yoksa, yazılımınız doğru olsa bile, hata mesajı ile karşılaşırsınız.

A) BAZI TEMEL KOMUTLAR

RESET-SID çipini, VİC çipini ve CIA çiplerini siler. Kernal'ın (işletim sistemi) sistem vektörlerini ilk değerlerle yükler. RESET komutu, her BASIC programın ilk komutlarından biri olmalıdır. BASIC-Speech-Basic yardımcı programını terk etme ve normal BASIC'e dönme. Bu komutu verdiğinizde "are you sure?" (emin misiniz?) sorusu ile karşılaşırsınız. Cevap olarak 'Y' (yes) verirseniz, komut yürütülür. Başka herhangi bir cevapta, komut yürütülmez ve normal işlemler devam eder. Şayet, bu komut bir program satırının içinde kullanılmışsa bu soru sorulmaz ve komut doğrudan yürütülür. Bu arada, BASIC'in LOMEM (BASIC işlemleri için kullanabileceği en düşük adresli hafıza) değişkeni tekrar $0800 adresine oturtulmaz ve sadece yeni eklenmiş komutların yürütülmesi kesilir. HELP-Speech-Basic'e özel tüm komutları listeler. HELP* şeklinde bir kullanım, normal BASIC V2 komutlarını listeler.

B) DİSKET KOMUTLARI VE ÖZEL KOMUTLAR

KEY (n,str)- Fonksiyon tuşlarına bazı işlevler yüklemek. Bu komutu parametresiz kullandığımızda, tüm tuşlara atanmış işlevleri, ekranda edit edilebilecek bir şekilde görürüz. Eksi işareti hiçbir tuşun tanımı sırasında kullanılamaz. Çünkü, bu işaret RETURN tuşunun kodunu ($0D) temsil etmektedir. Maksimum 15 karakterden oluşmuş tanımlar kullanılabilir. Speech-Basic'i ilk kullanmaya başladığınızda, kendisinden bazı tanımlar bu tuşlara yüklenmiştir. Bunlar:

Fi RUN F2 F3 F4 -HEAR:RECORD FS -HELP/DISPLAY KEYS F6 -BLOCK F7 -DİRECKTORY F8 -DISK-STATUS

Aslında, normal çalışma sırasında, FS tuşunu 'SPEED' komutu ile yüklemek oldukça uygun olur. Diyelim ki sözkonusu değişikliği yaptınız ve Speech-Basic'inizin artık böyle çalışmasını istiyorsunuz. Yapacağınız tek işlem Speech-Basic'in yeni versiyonunu diskete saklamak. Bunun için

BSAVE "SPEECH-BASIC”, 8 FROM soB01 TO$1800

komutunu kullanın. MEM-O sıradaki hafıza bölüşümünü rapor eder. Rapor aşağıdaki örnekteki gibi görünür:

BASIC : $1801 to $1803 SOUND : $a000 to $a0f8 KEYS : to $0cef BLOCKS: $165b to $17db DISK (str, (,dv)- Disk kanalı ile ilgili işlemleri yürütmek. Bu komut parametresiz kullanıldığında, disket sürücüsünün durumunu ekranda gösterir. Eğer komut stringini kullanırsanız, bu disket sürücüsüne gönderilir. Fakat disket sürücüsünün mesajı alınmaz. Böylece istenirse, program içinde INPUT komutu ile hatanın veya durumun daha ayrıntılı işlenmesine olanak sağlanır. Disketin içeriğini görme. Parametresiz kullanıldığında disketin tüm içeriği gösterilir. Gönderilen parametre, dosya adı ve tipine göre seçim yapılmasını sağlayan bir maskedir. Bu maskenin kullanımının detayları için 1541 Disket Sürücüsü Kullanım Kılavuzu'na bakın. BLOAD “prog.ismi” (,dv) (block)- İsmi verilmiş dosyayı 'dv' numaralı aletten hafızaya yüklemek. Blok kullanılırsa, yükleme işlemi burada belirtilen adresten başlar. Şayet kullanılmazsa, dosya kendi belirlediği adrese yüklenir. Yükleme işlemi dosya bittiğinde veya (belirtilmişse) bitiş adresine varıldığında biter. BLOAD komutunun LOAD komutundan bir başka farkı ise bunun normal bir BASIC komutu gibi yürütülmesi. Yani LOAD'daki gibi yükleme işlemi bittikten sonra program baştan başlanmıyor. Yüklenen dosyanın başlangıç ve bitiş adresini belirlemek istiyorsanız BLOCK 0'ı kullanabilirsiniz. BLOAD komutu daimi RAM'e yükler (zaten istese de ROM'a yükleyemez. Burada belirtilmek istenen bütün yükleme işlemi sırasında RAM konfigürasyonunun kullanıldığı, yani $D000-$DFFF adresleri arasını yüklerken bile bilgisayar ertmiyor, çünkü dosya buranın üç kat altındaki RAM bölgesine yükleniyor) BLOAD komutunun kullanımına bazı örnekler vermek istersek:

BLOAD"'s.test” BLOAD'"'s.test”,8 FROM SA000 FROM SA000, $8000 BLOCK 31:REM blok tablosunu yüklemek.

BSAVE “prog. ismi” (,dv) (block) Başlangıç ve bitişi belirtilen bölge verilmiş isim altında dv numaralı alete saklanır. Burada dosyaları ayırabilmeniz için bir önerimiz var: Diyelim ki aynı örnekler için ses bilgilerini ve bunların içindeki başlangıç ve bitişlerini belirtilen blok tablosunu saklamak istiyorsanız. Her iki dosyayı aynı isimle saklayın; tek farkla: Ses bilgilerinin başına 's.' (ses), blok tablolarının başına 'b.' (blok) ekleyin. Böylece, ileride oluşabilecek karışıklıkların önüne geçersiniz. BSAVE komutuna ait birkaç örnek:

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