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