MASTERSEKA v1.75

Çıktı, çıkacak derken sonunda Seka Assembler derleyicisinin en son ve gelişmiş versiyonu olan 1.75'de çıktı. Artık Assembler'cıların değmeyin keyfine... Ben de bundan sonra bu compiler'ı kullanacağım. Programcılara her türlü kolaylık sağlayan bu yeni versiyonda, eskilere göre eklenen bir sürü şey var. Bunlar gadget ve requester'lar kullanan dosya okuma / yazma / silme pencereleri. Aşağıda bütün bu fonksiyonları teker teker tanıtacağım. Fakat ilk önce belirtmem gerekir; şimdiye kadar MasterSeka geliştirme tekelini elinde tutan programcı Buddha, bundan herhalde sıkılmış ki, işi Subway grubundan arkadaşı George H'ye devretmiş.

MasterSeka'ya eklenen bir sürü fonksiyonun en ilgi çekicilerinden biri, kendine ait bir start-up script dosyası olması. Bu sayede MasterSeka yüklenirken belli parametre ayarlamaları otomatik olarak yapılır. Bu script dosyası ya disketin <s>, ya <devs> ya da ana directory'sinde olmalıdır. İsmi, 'MASTERSEKA.STARTUP'. Bu dosya herhangi bir text editörle hazırlanabilir. Burada kullanacağınız komutları aşağıda açıkladım. Unutmayın, yarattığınız dosyada her komut ayrı bir satırda olmalıdır. Bu script komutların her birini Seka'yı CLI'dan çağırdığınızda da kullanabilirsiniz. Bunun için CLI'da Seka'nın disketteki ismini yazdıktan sonra aralarına birer boşluk vererek komutları parametreleriyle kullanmanız yeterli olacak.

-a <adres>: Seka'nın çalışma alanının belirtilen hafıza adresinden sonrasına yerleştirilmesi sağlanır. Bu sayede kritik adresler olan $10000-$30000 arası adreslerde çalışan bir program hazırlıyorsanız, Seka'yı başka bir adrese atarak bu bölgeleri de kullanabilirsiniz.

-b <flag>: Bu komut, scroll çubuğunun yerini belirlemek için kullanılır. Bu çubuk sayesinde Seka'nın editöründe istediğiniz yere kolaylıkla gelebilirsiniz. Bunun için de sadece çubuğu klikleyip istediğiniz yönde (aşağı ya da yukarı doğru) kaydıracaksınız. Editör içinde gözüken source alanı da otomatik olarak scroll çubuğuna göre kayacaktır. Komutta flag yerine girilen parametre 0 olursa, scroll çubuğunun kullanılmayacağını tanımlar. Scroll çubuğunu editörün sağ tarafında isteyenler 1, sol tarafında isteyenler ise 2 değerini kullanmalıdırlar.

-c <boyut>: Chip memory'de ($0-$7ffff) çalışma alanının boyutunu belirlemeye yarar. Çalışma alanı KByte cinsinden girilmeli.

-e <satır>: Editörün satır sayısını belirlemeye yarar.

-h <boyut>: History fonksiyonun kaç aşama geriye kadar gidebileceğini belirler.

History fonksiyonu sayesinde <yukarı ok> ve <aşağı ok> tuşlarını kullanarak istediğiniz adım önceki komutun tekrar Seka'nın komut gönderim satırında girebilirsiniz.

-/ <flag>: Bu komut yardımıyla, editördeki satır numaralarını açıp kapayabilirsiniz. 0 değeri satır numaralarını silecek, 1 değeri ise tekrar yazacaktır.

-r <tip>: Bu komut, hangi requester tipini tercih ettiğinizi tanımlamak içindir. Seka, iki tip requester library'sini de kullanabiliyor. Bunlar ünlü REQ.LIBRARY ve ARP.LIBRARY'dir. İlki, disket kullananlar için daha yararlı; zira son okunan directory'i aklında tutar. Bu sayede her yükleyişte directory'i okumak için beklemeyezsiniz. Fakat bunun dezavantajları da var. Req.library hafızadan yaklaşık 50 KByte kendisine ayırmakta. ARP.LIBRARY ise harddisk kullananlar için düşünülmüş. Hafızada çok az yer kaplamakla beraber, diğer library kadar lüksleri mevcut değil. Artık tercih sizin. Yükleme, kaydetme ve silme gibi fonksiyonlarda karşınıza çıkacak olan pencereyi dileğinizce belirleyebilirsiniz. 0 değeri, hiç library kullanılmayacağını belirler. 1, ARP'ın; 2 ise REQ library'sinin kullanılacağını tanımlar. Bu arada, bu iki library'den birini kullanıyorsanız, libs directory'sine gerekli library dosyasını da koymayı unutmayın. Her iki library dosyası da utility disketlerinde kolaylıkla bulabilirsiniz.

-s <bitplanes>: MasterSeka ekranının window'da mı yoksa screen'de mi olacağını belirler. 0 değeri window açılmasını sağlar. 1 değeri, tek bitplane'lik (2 renk) screen, 2 ise 2 bitplane'lik (4 renk) screen kullanılmasını sağlar.

-w <x> <y> <en> <boy>: Window kullanımında pencere boyut ve koordinatlarını belirler. <x> ve <y> değerleri pencerenin sol üst köşesinin ekran üzerinde hangi koordinatlarda gözükeceğini belirler. <en> ve <boy> değerleri ise pencerenin boyutunu belirler. Normal PAL/NTSC boyutlarını kullanmak istiyorsanız, her parametreyi 0 konumuna getirin.

-w+ <x> <y> <en> <boy>: Deminkinin aynısı, yalnız verilen değerler yardımıyla

Cem GENCER screen boyutları tanımlanmış olur.

-x: MasterSeka, workbench ortamı üzerinden çağrıldığında (ikon kullanarak) Workbench'in kapatılmasını ve bu sayede 44 KByte tasarruf edilmesini sağlar. Ehh. start-up dosyasının komutları bu kadar. Gelelim MasterSeka v 1.75'in diğer fonksiyonlarına. Sıradaki komutlar Seka'yla çalışmada direkt olarak girebileceğiniz komutlardır.

= : Global bilgilerin gösterilmesini sağlar. Bunlar sırasıyla çalışma alanı (Work), source'un bulunduğu bölge (Src), cut/ copy'de kullanılan buffer'ın yeri (Paste), programın relatif kısmının yeri (RelCC) ve programın kendisinin bulunduğu bölgedir (Code). Her birinin yanında o bölgenin başlangıç ve bitiş adresi yazar. Her satırın en sonunda da bölgenin byte olarak uzunluğu görülebilir. <h> komutu da aynı işlevi görmektedir.

=s: Sembol tablosunun görüntülenmesini sağlar. Bu, bir source compile edildikten sonra özellikle hata aramalarda bir hayli işe yarar. Bu tabloda label'ın adı ve hemen yanında adresi verilir. Tablo beş kolondur. Şayet programınızın başında org ve load komutlarını kullanmamışsanız, bütün label adresleri relatif değerler olarak görülürler. Bu, gerçek label adresini bulmak için tablodaki değere programın başlangıç adresini eklemek gerektiği anlamına gelmekte. Böyle bir durumda zaten sembol tablosunda adres yerine yazan değerlerin hemen sağında bir <+> işareti de bulunur. Programınızı adrese bağımlı olarak (org/load kullanarak) yapmışsanız, tabloda göreceğiniz tüm değerler gerçel adreslerdir.

> [isim]: Bu komut yardımıyla Master- Seka çıktılarını bir dosyaya ASCII karakter olarak gönderebilirsiniz. Bu sayede sembol tablosunu, hafıza dökümünü daha rahat olarak incelemeniz mümkün. Yalnız dosyayı kapamak için tekrar bir [>] işareti vermeyi unutmayın. Bu dosyaya neler mi kaydedilebilir? Tüm çıktısı olan komutların çıktıları direkt olarak dosyaya da kopyalanacağından q, d, n, =, =s, h, a gibi tüm komutlar kullanıldığında ekrana basılan karakterler dosyaya gönderilir.

? [işlem]: Herhangi bir matematiksel işlem yapmak ve bunun sonucunu görmek için kullanılır. Bu işlemler +, -, *, /, A (üs alma), & (matematiksel AND) ve ! (matematiksel OR)'dur. Ayrıca bu komutla herhangi bir sayının dec, hex, ASCII ve binary karşılıklarını da görmek mümkün; zira sonuçlar her zaman her dört sistemde de gösterilmekte. Dec sayıların başında #, hex sayıların başında $ ve binary sayıların başında % görülür. Değer girerken dec'in başındaki # işaretini boşverebilirsiniz. İşaretsiz sayılar dec sayı sisteminde algılanılır. @ [komut]: Herhangi bir CLI komutu'nu gerçekleştirmeyi sağlar, Bunun için komutun ve RUN komutunun disketin c- directory'sinde olması şart. a [adres]: Adres verildiğinde direkt hafızaya komut yazmayı sağlar. Adres verilmediğinde hafızadaki source’u compile ederek çalışmaya hazır hale getirir. Bu komutun ikinci şekliyle kullanılışında size ' Options:' sorusunu soracaktır. Burada kullanabileceğiniz tercihleri daha aşağıda detaylı olarak açıkladım. b: Source'un en son satırına gitmenizi sağlar b[adres]:Verdiğiniz bir adres için bootblockchecksum (kontrol toplamını) hesaplar ve size yenisiyle eskisini bildirir. Bunu, sadece bootblocklu diskete yazmadan önce kullanmalısınız. c:İki hafıza alanını birbiriyle karşılaştırarak aralarındaki farklılıkları gösterir. Sizden istenen değerler şöyle ‘Beg’ ve 'End’ ilk bölgenin başlangıç ve bitiş adreslerini belirler. ‘Dest’ ise ikinci bölgenin başlangıç adresini belirler. cl: Hafızadaki source’u silmenizi sağlar. (ks komutu ile aynı)

cls: Ekranı silmeyi sağlar. cs: Source içinde sînüs. Tablosu hazırlamanızı sağlar. İstenen değerler' Şöyle 'Beg' ve 'End' tablo içmdeki başlangıç ve bitiş açılarıdır. 'Amount' ile tablodaki da ta adedi, 'Amplitude' ile de sinüs eğrisinin yüksekliği belirlenir. 'YOffset' her bir dataya ekstradan eklenecek değerdir. En son olarak da 'Size' sorusuna cevap vermelisiniz. Bu, tablodaki her bir datanın hangi uzunlukta (byte, word ya da longword) olacağını belirler ve buraya b, w ya da 1 girebilirsiniz. Yalnız belirtmemde fayda var; bu fonksiyonu kullanabilmek için disketin libs directory'sinde mathtrans.library dosyasının bulunması gerekmekte. Bunu WorkBench disketinden çalışma disketinize kopyalayabilirsiniz. d [adres]: Belli bir adresten sonrasını disassemble yapar (hafızayı komut komut inceler). Bu listelemede her satırda adres, buradaki değer ve bunun komut olarak karşılığı bulunur. En son olarak da gerekli yerlere ufak tefek açıklamalar eklenir. e [satır]: İstediğiniz satırı editöre girmeden değiştirmenizi sağlar. f: Hafızada bir bölge içinde belirleyeceğiniz bir datayı ya da data dizisini arar. 'Beg' ve 'End', bölgenin başını ve sonunu gösterir. 'Data' ise bu bölgede aramak istediğiniz datayı/data dizisini tanımlamak için kullanılır. ASCII bir data/data dizisi aramak istiyorsanız, bunu <'> işaretleri içinde girebilirsiniz. Eğer komutun sonuna duruma göre <.b>, <.w> ya da <.1> takısını eklerseniz, arama işlemi verdiğiniz uzunluğa göre yapılır. fc: Hafızada bir komut aramanızı sağlar. Bu da f komutu gibi çalışır. Aralarındaki tek fark, Data yerine çıkan 'Command' sorusudur. Buraya aramak istediğiniz komutu parametreleriyle beraber yazmalısınız. fî:Hafızanın istediğiniz bir bölgesini sizin belirleyeceğiniz değerle doldurur.

ğ[adres]: İstediğiniz adrese gider ve "oradaki programı çalıştırır. Programı compile ettiğinizde, buraya label da yazabilirsiniz. Komutu girdikten sonra ‘Breakpi' sorusuyla sizden durma noktalan sorulacak. Program çalıştırılıp bu noktalara vardığında otomatik olarak duracaktır. Birden fazla duruş' noktası .belirlenebilir. Bu sdurumda program bunlardan herhangi birine ratsladığında duracaktır. Bu yöntemi kullanarak programınızın akışı sırasında registerleri adım adım kontrol edebirirsiniz. h: Global paramaetreleri gösterir. (bkz. ‘=’ komutu. l: [satır] numarası verilen satırdan hemen sonrasına bir satır eklemenizi sağlar.

J[adres]: Hafızada istenen bir adrese gitmeye ve oradaki komutları işlemeye yaramakta. Adres verilmemişse ve hemen önce compile işlemi yapılmışsa, adres olarak programın başlangıç adresini alır.

ka: INCBIN ve EXTERN ile yüklenmiş olan dosyaları hafızadan siler. Ve hafıza tablosunu (memory-list) temizler.

Kf [isim]: Verilen isimdeki dosyayı siler. ki: Hafızadaki link bölgesi içeriğini siler. kp: Cut ve copyde kullanılan tampon bölge içeriğim siler. . . ks: Hafızadaki source'u siler. l [dizi] : Source içinde istediğimiz bir ASCII karakter dizinini aramamızı sağlar. m [adres]: Verilen adresten itibaren hafıza içeriğini değiştirmemizi sağlar. RETURN sayesinde bir değer içeriği aynen kalır. ESC ise işlemden.çıkmayı sağlar. n [adres]: .Hafızada istenen adres içeriğinden itibaren bir bölgenin ASCIl olarak görüntülenmesini sağlar.

o: ks komutunu kullanarak sildiğimiz source'u geri getirir. Bunun için source silinir silinmez hiçbir program yazmadan bu komut kullanılmalı.

p [satır]: Source içinde son 'kaldığınız yerden itibaren belirtilen sayıda satırı ekranda görüntüler.

q [adres]: Hafızanın içeriğini hexdump olarak gösterir. Burada her satırda başlangıçta adres, ardından 16 adet hex byte ve en sonda da o satırdaki byte'ların ASCII karşılıkları gözükür. Eğer q komutundan hemen sonra sadece <RETURN> tuşuna basarsanız, hexdump işlemi kalınan adresten itibaren devam ettirilecektir.

r [isim]: Disketten bir source dosyası yüklemenizi sağlar. Eğer isim verilmezse duruma göre ya bir requester penceresi çıkar ve dosya ismini ister, ya da sizden 'FILENAME' sorusuyla dosya ismini elle • girmeniz istenir. ri [isim]: Disketten binary dosya yüklemek için kullanılır. Dosya ismini belirle- 'dakten sonra sizden dosyanın hafızada yerleşeceği /bölgenin başlangıç (beg) ve bitiş (end) adresleri sorulur. Eğer source "u compile etmişseniz, buraya label da girmeniz mümkün.

rl [isim]: Disketten link file yüklemek için kullanılır. Bu tür dosyalar hakkında Daha ayrıntılı bilgiyi Assambler kursumuzun ileriki bölümlerinde göreceğiz.

ro[isim]:Disketten çalışan bir programı yada CLI komutunu segment olarak yükler.

Rs[drive]:Disketten istenen miktarda sektörü okuyup hafızaya kopyalamaya yarar. ‘Beg’ sektörün hafızada yerleşeceği adresi ‘ sector’ başlangıç sektörünü ve ‘amount’ ise sektör adedini belirlemek için kullanılır. Okuma işlemi başarılı olmuşsa , okunan byte adedi ve bunların başlangıç adresi size bildirilecektir. Dilerseniz drive numarasını girmeyebilirsiniz. Bu durumda sektörler aktif olan drive’dan okunur.

rt[drive]: Disketten track okuyup hafızaya atmaya yarar. Tüm paramaetreleri sektör okumayla aynıdır.

s:Register listesini gösterir. t[satır]:Satır belirtilmezse source'un başına, belirtilirse de belirtilen satıra gidilir. u [adres]:Daha önce yüklediğiniz bir şegment'i hafızadan atmayı sağlar. Eğer son yüklenen .segment'in adresini unutmuşsanız, sadece komutu girmeniz yeterli. Bu durumda MasterSeka size son yüklenen segment'in adresini göstererek onu silmek isteyip istemediğinizi sorar.

v [dir]: Parametre kullanılmazsa son okunan directory'i okur. Eğer daha önceden de directory okunmamışsa, drive 0'ın içinde bulunan disketin directory'si okunur. Directory ismini boşluk koymadan komuttan hemen sonra yazarsanız, disketin o directory'si aktif directory olur ve bunun içeriği de ekrana basılır. Fakat directory isminden önce boşluk girerseniz directory okunmaz, sadece o directory aktif directory olur.

w [isim]: O an hafızadaki source'u diskete verdiğiniz isim altında kaydeder. İsim verilmezse sizden ya isim girmeniz ya da bir requester window çıkartılarak ismi belirlemeniz istenir.

wb[flag]: MasterSeka WorkBench üzerinden çağrılmışsa, hafızadan tasarruf etmek için WorkBench'i kapamak isteyebilirsiniz. Bunun için <flag> yerine 0 girmelisiniz. Tekrar WorkBench'i açmak için

<flag> yerine 1 değeri yazmanız yeterli olur.

wi [isim]: Hafızanın bir kısmını dişkete binary dosya olarak kaydetmenizi sağlar İsim verildikten sonra, sizden hafıza Bölgesinin başını ve sonunu belirlemeniz istenecektir.

wl [isim]: Link edilebilir dosyayı diskete kaydeder. MasterSekanın bu versiyonunda link edilebilir dosyalar tam desteklenmediği için bu fonksiyon çalışmaz.

wo [isim]: Compile edilmiş assembler programını diskete object file olarak kaydeder. Yalnız dikkat edin bu şekilde kaydedilen programda resim ve ses dataları kaydedilmeyeceğinden programda aksamalar çıkabilir.

ws [drive]: Hafızanın belli bir kısmını diskete atar. ‘beg’ hafızadaki dataların başlangıç adresi, 'sector’ diskette dataların kaydedilmeye başlanacağı, ilk sektör, 'amount’ ise kaydedilecek sektör adedini belirlemek için kullanılır.

wt[drive]: Hafızanın belli bir kısmını diskete track olarak kaydeder. Aynı sektörlerde olduğu gibi aynı parametrelerle çalışır.

y: Source'unuz assemble edildikten sonra dataların tek bir komutla hafızaya direkt olarak okunmasını sağlar. Bunun için source'unuzda ‘>EXTERN’ komutunun kullanılması lazım.

z[satır]: Kursorun editörde son kaldığı yerden itibaren belirlediğiniz satır sayısı kadar satır silinir. MasterSeka'nın direkt komutları bu kadar. Gelelim, a komutuyla compile ederken kullanabileceğiniz opsiyonlara. Bunları kısaca tanıtacağız. Aşağıda bulunan opsiyonlardan bazıları, global olarak da çalışmaktadırlar. Bunlar parantez içinde bir * harfiyle belirtilmiştir. Bu tür global opsiyonlar, compile işlemi sırasında direkt tanınırlar ('Options: ' satırında belirtmeniz gerekmez). Bunun için source'unuzun gerekli yerlerinde (genelde başta) OPT komutunu yazıp dilediğiniz opsiyonu yazmanız ve sonuna bir de + işareti koymanız yeter (Örnek: OPT A+, OPT E+). Belirlediğiniz opsiyonu tekrar kapamak için + işareti yerine - işareti koymanız gerekmekte. Bu şekilde source'unuzun belli yerlerinde belli şekillerde assemble ederek daha rahat bir programlama biçimi geliştirebilirsiniz. Aşağıda a komutunda kullanabileceğiniz tüm opsiyonlar görülebilir.

A (*): Direkt hafıza adreslemede (örnek: move.l #50,label) hata mesajı verir.

E: Compile etme işleminde yapılanlar yazıcıya gönderilir.

H: Compile ederken listeleme modu seçilmişse bunun her sayfasının sonunda bir tuşa basmanız beklenir.

L (*): Link edilebilir dosya yaratmak için kullanılır.

O (*): Gerekli komutların daha hızlı bir çalışma için kısaltılmasını sağlar.

P: E opsiyonunun aynısı. R: Reloc tipi programlamada (pc indeksli adreslemede kullanılmayan) hata mesajı verir.

Y(*): >EXTERN'leri otomatik yükler. Şimdi gelelim editörde kullanabileceğimiz kısaltma tuşlarına. Bunlardan bazıları sadece editör dışında kullanılabilir. Bu tip kısaltmalar yanlarında bir (*) işaretiyle belirtilmiştir.

<sağ Amiga>+<a>: Search işlemini geriye doğru yap ve bir önceki eş diziyi bul.

<sağ Amiga>+<A>: Editörden çıkmadan direkt compile etme. Burada opsiyon kullanılmaz.

<sağ Amiga>+<b>: Source’un belli bir bölümünü markala.

<sağ Amiga>+<c>: Markalanan bölümü Pastebuffer'ına kopyala.

<sağ Amiga>+<G>: Global replace. Bul ve değiştir işlemi tüm source içindeki eşlenikler üzerinde geçerli olur.

<sağ Amiga>+<i>: Paste buffer'daki bloku cursor'dan itibaren source'a ekle.

<sağ Amiga>+<k>: Kursorun üzerinde bulunduğu satırı paste buffer'a atarak source'dan siler. <sağ Amiga>+<L>: Satır numaralandırmasını açar/kapar.

<sağ Amiga>+<o>: (*) Hafızadaki source'u siler ve yeni source yükler.

<sağ Amiga>+<q>: Master Seka'dan çıkmanızı sağlar.

<sağ Amiga> + <q>: Editörden çıkmanızı sağlar.

<sağ Amiga> + <Q>: Programınızı compile edip çalıştırır.

<sağ Amiga>+<r>: Bir sonraki eşleniği bulup değiştirir (replace).

<sağ Amiga> + <R>: Gireceğiniz dizinin aranmasını ve değiştirilmesini sağlar.

<sağ Amiga> + <s>: Bir sonraki eşleniği bulur.

<sağ Amiga>+<S>: Gireceğiniz diziyi bulur.

<sağ Amiga> + <t>: Source'un ilk satırına gitmenizi sağlar.

<sağ Amiga>+<T>: Source'un sonuna gitmenizi sağlar.

<sağ Amiga>+<x>: Markalanan bloku Paste buffer'a atarak source'dan siler.

<sağ Amiga>+<y>: Satır üzerindeki kursörden satır sonuna kadar olan kısmı paste buffer'a atarak source'tan siler.

<sağ Amiga>+<;>: Markalanan blokta açıklama yapmanızı sağlar.

<sağ Amiga>+<.>: Markalanan bloktaki açıklamaları siler.

<CTRL>+<A>: Editör ekranını bir ekran boyu kaydırır.

<CTRL>+<B>: Blok markalama, <CTRL>+<C>: Bloku kesip paste buffer'a atma (cut).

<CTRL>+<D>: Kursörden itibaren satır sonuna kadar olan karakterleri siler.

<CTRL>+<E>: Kursörü satır sonuna getirir.

<CTRL>+<F>: Paste buffer'daki bloku source'a kursörden itibaren ekler.

<CTRL>+<I>: ASCII yazı aranmasını sağlar.

<CTRL>+<K>: Kursörün üzerinde bulunduğu satırı siler.

<CTRL>+<L>: Markalanan bloktaki harfleri küçük harflere çevirir.

<CTRL>+<O>: Kursorun bulunduğu yere boş bir satır ekler.

<CTRL>+<P>: Paste buffer'ın içeriğini kursorun bulunduğu yerden sonrasına ekler.

<CTRL>+<Q>: Kursoru satır başına getirir.

<CTRL>+<R>: Markalanan bloğu kafa üstü çevirir.

<CTRL>+<S>: Editörde 100 satır yukarı gitmenizi sağlar.

<CTRL>+<T>: Source'un başına gitmenizi sağlar. Eğer source'un başındaysanız sonuna gidersiniz.

<CTRL>+<U>: Markalanan bloktaki tüm harfleri büyük harfe çevirir.

<CTRL>+<W>: Markalanan bloğu diskete kaydeder.

<CTRL>+<X>: Editörde 100 satır aşağı gitmenizi sağlar.

<CTRL>+<Y>: Editörde bir ekran boyu aşağı gitmenizi sağlar.

<CTRL>+<Y>: Editörde bir ekran boyu aşağı gitmenizi sağlar.

<CTRL>+<]>: ESC ile aynı işlemi yapar; editörden çıkışı sağlar.

<ALT>+<KURSOR SAĞA>: Benzeşen ilk label'a gitmenizi sağlar.

<ALT>+<KURSOR SOLA>: Bir önceki label'a gitmenizi sağlar.

<SHIFT>+<KURSOR SAĞA>: Bulunduğunuz satırın en sonuna gitmenizi sağlar. Bu, editör dışında da kullanılabilir.

<SHIFT>+<KURSOR SOLA>: Bulunduğunuz satırın en başına gitmenizi sağlar. Bu, editör dışında da kullanılabilir.

<SHIFT>+<KURSOR YUKARI>: Editörde bir ekran yukarı gitmenizi sağlar.

<SHIFT>+<KURSOR AŞAĞI>: Editörde bir ekran aşağı gitmenizi sağlar.

Tuş kısaltmalarını da verdikten sonra, kalanlar arasında ilk gözüme çarpanlar ekstra komutlar. Bunlar, source'u yazarken kullanılıyor ve çoğu diğer assembler derleyicileriyle uyumlu bir çalışma sağlamak için eklenmiş.

ALIGN <boşluk>(,<ofset>): Program sayacına boşluk ve ofsetin toplamını ekler. Bu sayede ileriye doğru ufak bir atlama yapılır.

BLK.B/W/L <boyut>(,<data>): <boyut> ile belirtilen boyutta (byte/word/longword) göre blok ayırtarak <data> ile doldurur. Örneğin –blk.l 5,0 komutu 20 byte (=5 long-word)’lık bir bölge ayırtarak bunu 0 değeriyle doldurur.

CODE: Programın kod kısmının başladığını belirtir.

CNOP <boşluk>(,<ofset>): Align ile aynı işlemi yapar. DC.B/W/L: Data tanımlamalarında kullanılır.

DS.B/W/L <boyut>(,<data>) Blk ile aynı işlemi yapar.

ENDIF: Şartlanmadan çıkışı sağlar. ENDM: Makro tanımlamasını bitirir. EQU: Sembol tanımlamayı sağlar. Bunlar değişken olmayan değerlerdir. Programınızın daha anlaşılır olmasını sağlar. Bu komutu bir label'dan sonra kullanmalısınız.

ELSE: Şartlı assembler komutları. EVEN: Program sayacını çift numaralı bir adrese getirir. Bunu tek bir byte’lık değişken kullandığınızda kullanmalısınız.

END: Source'un sonunu belirler. Kullanılmasa da olur.

FAIL: Compile etme işlemini yarıda keser. Şartlı makro kullanımında çok işe yarar.

GLOBL: Link işleminde kullanılan global sembolleri tanımlamak için kullanılır.

IF<koşul>: Şartlı assemble için kullanılır. ILLEGAL: Program çalışırken bu satıra gelindiğinde durulmasını sağlar. MasterSeka ekranına dönmek için, <sol Amiga>+<M> tuş kombinasyonunu kullanmanız gerekmekte. Bu komut aslında program içinde duruş noktası (breakpoint) koymanızı sağlar. Hex kodu $4afc'dir. Bu komutu kullanarak programınızın belli yerlerinde register içeriklerini öğrenebilirsiniz.

INCBIN <isim> (,<adres>): Compile edildikten sonra gerekli dataların obje dosyasına yüklenmesini sağlar. Hafızada yer olarak direkt source'ta bulundukları yer gösterilir. Adres verilirse datalar o adresten itibaren yerleştirilir. Bu komut, EXTERN komutundan daha kullanışlıdır; zira yükleme işlemi direkt compile sırasında otomatik olarak yapılır.

INCDIR <dir>: INCBIN ve INCLUDE komutları için directory belirlenir.

INCLUDE <isim>: Compile sırasında disketten başka bir source'u da kendi source'unuza eklemek için kullanılır. Fakat eklenen bu source, sadece derlenmiş olan object file'da gözükür. İsterseniz bu şekilde değişik alt rutinleri diskete kaydedip kullanın, isterseniz diğer assembler derleyicilerinde olduğu gibi sembol ve structure’ları bu dosyalarda tanımlayarak source’unuzun daha düzenli gözükmesini sağlayın.

LIST: Compile ederken listelemeyi açar.

LOAD<adres>: Compile ederken programınızın adresten sonra yerleştirilmesini sağlar. Bu şekilde program adrese bağımlı çalışacağından relatif olmaz. (reloc tipi programlama)

MACRO: Makro rutin tanımlamasını başlatır. Bu komutu bir label'dan sonra kullanmalısınız.

NARG: Bu makro tanımlamalarında kullanılmak üzere rezerve edilmiş bir semboldür. Bu sayede makroya aktarılan data adedini algılayabilir ve buna göre davranabilirsiniz.

LABEL MACRO 
IF NARG=1 
Move.l #1.d0 
ELSE 
FAİL 
ENDM 
Bu örnekte makroya aktarılan data sayısı 
kontrol edilmekte eğer data sayısı 1’den 
farklıysa compile etme işlemi kesilir.

NLIST: Compile sırasında listelemeyi kapar. NOLIST: NLIST komutu ile aynı işlemi yapar.

ODD: Program sayacını (PC) tek adrese getirir.

OPT <opsiyon><+/->: Compile sırasında kullanılacak opsiyonları belirlemek için kullanılır. Her satırda ayrı bir opsiyon kullanılmalıdır. <+> ile o opsiyonu açar, <-> ile de aynı opsiyonu kapayabilirsiniz.

ORG <adres>: Programınızın verilen adresten başka adreste çalışmamasını (absolute code) sağlar.

PAGE: Compile ederken listelemede her sayfa sonunda bir tuşa basmanızı bekler.

PLEN <satır>: Compile ederken sayfa yüksekliğini ayarlamanızı sağlar.

PVID <kolon>: Compile ederken sayfa genişliğini ayarlamanızı sağlar.

PINIT<parametre>: Sayfa ayarlamalarını yapmanızı sağlar.

SECTION <isim>,<tip>: Programınızın belli kısımlarını farklı hunklara böler. Tip olarak code (assembler kod), code_c (chip memory'e yerleştirilecek assembler kod), bss (programın çalışması sırasında değeri belli olan datalar) ve bss_c (chip memory'e yerleşecek olan belirsiz datalar) kullanılabilir.

Bunların dışında MasterSeka 68010/68020 komutlarından birçoğunu da desteklemekte. Bu komutları 68010/68020 olmayan bir bilgisayarda kullanmaya kalkışırsanız, MasterSeka sizi uyaracaktır. Eğer 68010/68020'niz varsa ve bu komutlardan birini kullanırsanız, komutun olduğu satıra açıklama koymayın.

Şimdi gelelim MasterSeka hakkında bazı kullanım notlarına. Bunlar genel çalışma sırasında işinizi kolaylaştırır.

-> Compile ederken O opsiyonunu kullanıyorsanız ve bazı dallanma komutlarının değiştirilmesini istiyorsanız, takısını küçük harfle yazın; bra, bra.s, bra.l komutları daha uygun bir bra komutuyla değiştirilir. Fakat .S/.L takısını büyük harfle yazarsanız bunlara dokunulmaz.

-> f komutu, daha uzun data tiplerini de aramayı sağlamakta. Data satırına virgüllerle ayrılmış bir sürü byte yazacağınıza bunların arasına hiçbir işaret koymadan da yazabilirsiniz.

-> <SHIFT>+<Fn> ile kursorun bulunduğu yeri işaretleyerek daha sonra buraya sadece <Fn> tuşuna basarak buraya direkt gelebilirsiniz.

-> Bulunduğunuz directory ve drive pencerenin üst çubuğunda görülebilir.

-> MOVEQ komutuna yeni iki mod daha eklenmiş. Bunlardan ilki MOVEQ.L #x, Dn. Bu komut sayesinde -128 ile 128 arası bir değer, quick modda yazılmakta (moveq komutu daha önce sadece 0 ile 7 arasında çalışmaktaydı). Aynı komutun bir değişik kullanımı da .L takısını atmak -256 ile 256 arasında bir rakamı quick modda yazmak içinse, şu komutu kullanabilirsiniz: MOVEQ.B #y,Dn. Bu tür bir komut normalde 68000'de bulunmamakta!!!

-> Editörde <HELP> tuşuna art arda basarak pencerenin üst çubuğunda bazı yardımcı bilgiler görebilirsiniz. Bunlar <sağ Amiga> ile birlikte kullanılabilecek tuşlardır. <CTRL>+<HELP> ile de <CTRL> tuşuna basarken kullanabileceğimiz komutları görebilirsiniz.

-> MasterSeka'yı CLI'dan çağırıyorsanız burada startup komutlarını kullanabileceğiniz gibi sadece sayı girerek çalışma alan boyutunu belirlemeniz mümkün. Aynı şekilde sadece isim girerek source'un otomatik olarak yüklenmesini de sağlayabilirsiniz. Tabii bütün bu komutları art arda aralarında birer boşluk bırakarak kombine kullanmanız da mümkün.

-> Değişken label ya da sembol tanımlarken artık <:> işaretlerini kullanmamıza gerek yok.

-> Makro tanımlamalarında eksik olan ENDM komutu varsa, uyarı ile karşılaşırsınız.

-> Makro tanımlamalarında ana programdan gelen bilgileri tanımlamak için hem @, hem de <?> işaretlerini kullanabilirsiniz:

RUTİN: MACRO move.w #?1,d0 move.w #2,d1 ENDM Program başında bu satırları kullandıktan sonra program içinde gerekli yere şöyle bir satır eklerseniz, bu assemble ederken otomatik olarak değiştirilir.

RUTİN    5,15 
compile edildikten sonra: 
move.w   #5,d0

move.w #1,d1 Tabii makro içinde istediğiniz komutları ya da rutinleri kullanabilirsiniz. Makronun tek dezavantajı çağrılan her satıra makro rutinini aynen yerleştirmesi. Fakat avantajı da bir hayli büyük; bu şekilde, kendi komutlarınızı yaratabilirsiniz. Dilerseniz BASIC komutlarının assembler karşılık rutinlerini oturup makro olarak yazın ve gerektiğinde kullanın.

=> Eğer program sonuna varılırsa PC’de EOP ('End OF Program') yazısı gözükür.

=> Programınızı yazarken mümkün olduğunca az direkt adresleme kullanmanızı öneririm. Zira bazen direkt adresleme sayesinde Seka’nın kendisini ya da librarylerden birinin üzerine bir değer yazabilirsiniz. Bu da MasterSeka’nın aksak ya da hatalı çalışmasına sebep olur. Bu yüzden mümkün olduğunca PC-indeksli, relatif adresleme kullanın.

=> Birden fazla MasterSeka'yı aynı anda çalıştırırsanız (hepsi de aynı versiyon olmalı) hepsi de bir Seka'nın hafızada kapladığı yer kadar bölge işgal eder.

*Birden fazla MasterSeka aynı anda çalışıyorsa, hepsinin de paste buffer'ı aynıdır. Bir Seka’dayken source içinden bir yeri kesip alın ve diğer Seka’ya geçerek oradaki source'a ekleyin.

=> Programınızdaki taskları ya da interruptları değiştirip kapatmıyorsanız, ESC ile programın istediğiniz yerinde durup Seka ekranına dönebilirsiniz. Bunun için ESC tuşuna bastıktan sonra sol Amiga+M tuş kombinasyonunu kullanmalısınız.

=> Register listesinde (s komutu) VBR (vector base register) ve CACR (cache control register) ile tanımlanmış iki register sadece 68020/68030 olan bilgisayarlarda kullanılabilir.

=> Label’dan sonra bu <%> işareti kullanmanın da değişik bir fonksiyonu vardır. Bunun sayesinde en son section başlangıcıyla olan uzaklık ofset olarak alınır.

=> Editörde ekran içinde yer değiştirmek için mouse'u da kullanabilirsiniz. Bunun için cursor'un gelmesini istediğiniz yere mouse işaretçisi ile bir kez klik etmeniz yeter.

=> Daha önce startup-sequence'te kendi klavye tanımlamanızı kullanmışsanız (setmap ile) bu tanımlamaları Seka içinden de çağırabilirsiniz. Bunun için istediğiniz tuşla beraber ALT tuşuna basmanız yeterli.

=> Search ve Replace komutlarında <?> kullanabilirsiniz. Bu işareti bilinmeyen karakterler yerine koyabilirsiniz.

=> Program yazarken sayıları girmede büyük kolaylık: >> ve << işaretleriyle sayıyı kendi içinde istediğiniz kadar sağa ya da sola kaydırabilirsiniz. (bit rotate) Bunun anlamı şu:

Move.l #5,d0 
Asl #4,d0 
yerine:   ' 
move.l #5<<,d0 
yeterli olacak!!!

=> Bir Include dosyası içinden diğer bir Include dosyasına erişebilirsiniz. Bunu istediğiniz kadar iç içe yapabilirsiniz. Tek sınırlamanız hafıza.

=> Kendi kendini çağıran IF... THEN... END IF yönergeleri kullanabilirsiniz. (nested loops) Bir de IF... THEN örneği vermekte fayda var.

REG=1 
LABEL: 
IF REG=2 
DC.B ‘olumsuz 
IF REG=1 
DC.B ‘kararsız 
ELSE 
DC.B ‘olumlu 
ENDIF 
Bu örnekte REG sembolüne bağımlı olarak 
LABEL’dan sonra gelen data değişmekte.

REG=2 ise LABEL:DC.B olumsuz REG=1 ise LABEL:DC.B kararsız REG yukarıdaki değerlerden farklı ise LABEL:DC.B olumlu olur.

=> Editördeyken mouse’u kullanarak satır sayısını değiştirebilirsiniz. Bunun için editörü komut ekranından ayıran çizginin üzerine klik ederek mouse’un sol tuşunu bırakmadan yukarı/aşağı hareket ettirmelisiniz. Uygun satır sayısını bulunca mouse tuşunu bırakabilirsiniz...

MasterSeka v 1.75'in açıklaması bu kadar. Zaten yeter de artar bile... Artık başka utility'lerde görüşmek üzere hoşça kalın.