Bu sayfadaki yazılar
Sayfanın metni
Sayfa 27
<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
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 26
<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.