Bu sayfadaki yazılar
Sayfanın metni
Sayfa 12
Optimizer-2 için tipik bir uygulama şöyle olabilir:
10
(RND(1)*1000) gibi ondalıklı bir hesaba bağlı olsa bile A değişkeni bir tamsayıdır. Optimizer-2 bu programı kolaylıkla derleyecektir. Optimizer-2 ile derlenecek programlarda mümkün olduğunca az sayıda ondalık sayı kullanılmalıdır. Ondalıklı sayı kullanılacağı zaman orijinal BASIC program içinde REM GR - komutu kullanılarak derleyiciye burada ondalıklı sayı kullanılacağı belirtilmelidir. Bu konuyu ileride açıklıyoruz. Optimizer-2'nin diziler üzerinde etkisi “04” işareti eklenmelidir. BASIC 64'ü kullanırken, en sonda anlatılanlardan ayrıca şu noktalara özellikle dikkat edin: - Bir dizinin boyutu bilinmediğinde derleme esnasında kullanıcıya sorulur. Örneğin:
10 INPUT X:DIM A(X)
satıri derlenirken X (yazılır ve bir soru işareti konur. Buraya sizin yazacağınız değer o dizinin alabileceği en büyük değerdir. Bu işlem sadece boyutu bilinmeyen diziler için uygulanır. - Ayrı bir çalıştırma programı (runtime modül) yaratmak için şu programı derleyin: 10 REM Ayrı bir RUNTIME modülü için bu programı derleyin Programın sunduğu en önemli özellik ise derleme sırasında uygulanacak işlemleri kontrol etmenizi sağlayan Advanced Development (ileri geliştirme) paketidir. Ana menüde *3'e basarak geleceğiniz bu menüde karşınıza uzunca bir liste çıkacaktır. Bura- A- BASIC programın makine dili, hızlı kod veya kodsuz olarak derlenmesini Eğer makine dili olarak derleme yapacaksanız optimizer-2'yi kullanın. Optimizer-İ ile makine dili olarak derleme yaparsanız, hızlı koddan daha hızlı olacaktır ama zaten makine dili olduğu için tam sayı işlemi yapıla- M-önekini alacaktır. B- Derlemeden önce yüklenmesi gereken sembol tablosunun adını girmenizi sağlar. Bir sembol tablosu aynı değişkenleri kullanan derlemiş programların çalıştırılması sırasında gereken bir karşılaştırma listesidir. C-Bir sembol tablosunun diske kaydedilmesini sağlar. Daha sonra bu sembol listesini ekrana veya yazıcıya dökebelirsiniz. D- Bir adres listesi yaratır. İstenirse bu adres listesi diske de yazılabilir ve dosyaadı”,8 komutuyla yüklenip listelenebilir. Hafıza adresleri ekranda solda, satır numaraları ise sağ tarafta yer alır. Derlenen programın çalışması sırasında hata olursa bu liste yardımıyla BASIC program satırı incelenerek sorunlar giderilebilir. E- Hafıza sonunu değiştirmenizi sağlar. Normal hafıza sonu 65535 kabul edilmiştir. BASIC'in bitiş adresi ise 40960'tır. F- Derlenmiş programın başlangıç adresini yükseltmenizi veya düşürmenizi sağlar. modülü denen ve derlenmiş programın çalıştırılmasını sağlayan program parçasını ayrıca yükleyip çalıştırmanızı da sağlar (bu aşağıda açıklanmıştır). Bu yüzden programınızın başlangıç adresini hafızada daha ileriye koymanız gerekir. 16384 başlangıç için iyi bir noktadır. G- Runtime modülünün programa bağlanmasını kontrol eder. Bazı durumlarda, örneğin maske özelliği kullanılırken birkaç program birleştirildiğinde, runtime modülünün ana programllar)dan ayrı olması gerekebilir. bu hem zaman, hem de diskte yer tasarrufu sağlar. H- BASIC'e yardımcı programların da derlenmesini sağlar. Bu genişletici programlardan kabul edilenleri BASIC, Victree (Exbasic II), BASIC 4.0 ve diğerleridir (others). Bu listedekilerden başka bir genişleme programınız varsa Others seçeneğini kullanmanız gerekir. Bu sefer başlangıç adresi gibi birkaç başka parametre daha sorulacaktır size, Genişletilmiş BASIC komutlarının kaç bayte olarak tanımlandığını belirtir. Normalde bu sayı birdir. Simons' BASIC için bu sayı iki olmalıdır. J- Else komutunu bulur ve düzgün olarak derlenmesini sağlar. K- Derleme sırasında hatayla karşılaşıldığında ne yapılacağını belirler. Yani bir hata oluştuğunda derleyici durmayacaktır. BA-SIC programınıza 0. satırı eklemek hata sis- L- Karakter dizilerinde sorun yaratabilecek olan maske özelliğini kaldırır. M- Diske komut göndermenizi sağlar. Komut işlendikten sonra diskin durumu yazılır. Maske özelliği tuşuna basılarak seçilir ve aynı set değişkenleri kullanan programların ardarda derlenmesini sağlar. Bu özelkullanmak için önce ana menüden '4” tuşuna basarak maske menüsüne girin. Burada “1” tuşuna basarak ilk seferi yapacağınızı belirtin. Şimdi ana menüye döneceksiniz.
basarak programınızı derleyin. Bu maskelemenin ilk seferi olduğu için derleyici normal davranmayacaktır. Derleme bittiğinde çıkan mesajında RETURN'”e basın. Ana menüden maske menüsüne tekrar girerek *2” tuşuyla ikinci seferi yapacağınızı belirtin. Yine ana menüden *1' tuşuyla programı tekrar derleyin. Bu işlemi kalan tüm programlar için tekrarlayın. Derleyici bu işlemlerin sonunda S-OVERLAY adlı bir değişken dosyası kaydedecektir. Önemli birkaç noktayı hatırlatmadan geçmeyelim: - Programlar birbiri içinde çağrılacağına göre, BASIC programların içindeyken gereken yerde yükleme komutunu vermeyi unutmayın:
999 BÖLÜM”,8
- Maskelenen programlardan ilki diğerlerinden uzun olmalıdır. 45 ve 46. adreslere Poke komutu vererek BASIC başlangıcını kesinlikle değiştirmeyin. - Bir maskenin yaratılması sırasında A$- “DATA” gibi karakter dizisi değişkenleri kaybedilir. Derleyiciye BASIC'ten komut da iletebilirsiniz. Derleme sırasında uygulanan işlemlerin değiştirilmesi ve farklı bölümlerin uygun şekilde derlenmesi açısından bu gereklidir. Bu komutlar BASIC programa bir 'REM&” ile başlayan bir satırın ardından verilir. Yani bir derleyici komut satırı her zaman şöyledir:
komut
Komutlar: - Değişken adreslerin ayarlanması:
A değişken — adres
Tanımlanan değişken verilen adreste tutulur. Örneğin tamsayı bir değişkeni sprite kontrol adresine vererek spite'ı kolaylıkla kontrol edebilirsiniz. Ancak 768'in altındaki adresler kabul edilmez, çünkü bu bölgeler sistem bölgeleridir. - Hata kontrolünün ayarlanması:
REME E satır numarası
Bu özellik alt menüden K tuşu ile de değiştirilebilir. Bu kontrol başlangıçta açıktır. BASIC programınıza 0. satırı eklemek de bu kontrolü açacaktır. Bazı BASIC geliştirici programlar da bunu sağlamaktadır. - Tamsayı değişkenlerin tanımlanması:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 13
I- değişken, değişken, ...
Bu en çok kullanılan derleyici komutudur. Ondalıklılar da dahil olmak üzere tüm değişkenler programın hızlı çalışması için derleyici tarafından tamsayıya çevrilirler. Ancak bazı durumlarda ondalık sayı hesabı gerekebilir. Bu komut sadece optimizer-2 ile kullanılmalıdır. - Makine dili yaratıcısının açılması:
REMâ M
Bu satırdan sonra derleyici makine dili olarak derleme işlemine devam eder. Derlenen program çalıştırıldığı zaman da buradan itibaren makine dili işlemeye başlayacaktır. - Hızlı kod yaratıcısının açılması:
REMG P
Bu satırdan itibaren derleyici işleme hızlı kod yaratarak devam edecektir. (?M ve komutlarının kullanılması dikkat gerektirir. Özellikle Goto ve Gosub komutlarının bekod bölgesinin dışına çıkmaması gere
O1 için) O2 (optimizer-2 için)
Bu komut derleme sırasında optimizer değiştirilmesini sağlar. Sadece bundan önce kullanılmamış değişkenler etkilenecektir. - Ondalık sayı değişkeni tanımlanması:
REM R- değişken, değişken, ...
Listelenen tüm değişkenler ondalıklı sayı hesabı ile işleneceklerdir. Bu komut sadece optimizer-2 ile kullanılabilir.
10 FOR 1-1 TO 1000 20 A: 30 NEXT
Bu programı optimizer-2 ile derlemek için şu satırı eklemeniz gerekir:
R-A - Kaset tampon hafızasının boşaltılması:
REM S- adres Derleyici kolay erişilmesi açısından kaset tampon bölgesini değişkenler için kullanır. Kendi kullanımınız için burayı ayırmak isterseniz tamponun bitiş adresini vermeniz yeterlidir. Örneğin:
S- 1024
Tüm derleyiciler için BASIC programların sahip olması gereken veya kullanılması yararlı olacak bazı özellikler vardır. Aklınızda tutmanız gereken birkaç tanesini şöyle sıralayabiliriz: - Goto/Gosub komutları Return'den daha yavaş çalışır. - If/Then döngüleri, For/Next döngülerinden daha yavaş çalışır. - Goto/Gosub atlamalarının hızı atlanan miktarı ile orantılıdır. - Boşluk kullanmak programın daha rahat okunmasını sağlar ama çalıştırılma süresini etkilemez. - Dizileri mümkün olduğunca programın ilk satırında tanımlayın. - Eğer bir program çoğunlukla Data satırlarından oluşuyorsa, büyük ihtimalle zaten makine dili bir program yaratıcıdır. Bu derlemek hızdan fazla kazandırmayacaktır. - Bir programı derlemek istiyorsanız işlemesini çok iyi anlamalısınız. O yüzden mümkün olduğunca kendi programlarınızı derleyin. Üç derleyici programı karşılaştırırken bazı sorunlarla karşılaştık. Örneğin, Austro ve Blitz satırların en başındaki iki nokta işaretlerini kabul etmeyip hata veriyorlar. Bu yüzden programın düzgün okunması için satırları içeriden başlatmayın. Ayrıca dosya isimleri aynı olacağı için deneme yaparken dosya isimlerini değiştirmeyi unutmayın. Austro ve Blitz'in derlenmiş dosya adları aynı şekildedir. Karşılaştırma sırasında kullanılan programlardan biri grafik ekranına geçip orayı temizleyen bir döngüdür. Diğeri ise daha önce dergimizde yayınladığımız ve data sıralamalarına yönelik bir programdır. Sıralama tekrar listesini vermiyoruz. Ekran temizleme programı ise şöyledir:
10 POKE 53265,59:POKE 53272,29 20 TI$ — “000000” 30 FOR T<0 TO 8000:POKE 81924 T,0: NEXT 40 PRINT “CLR/HOME” TI$,TI:POKE 53272,21:POKE 53265,27