Bu sayfadaki yazılar
Sayfanın metni
Sayfa 73
LIBRARIES AND DEVİCES adlı kitapta açıklanmıştır Herneyse geçelim konumuza programımızın(PROGRAM 1) konusu 2 bitplaneli yani biri background color olan 4 renkli bir ekran açmak. Bu ekran üçyüzyirmiye ikiyüzlük bir ekran. Eğer $70000 adresine bir bitmap resim yüklerseniz, ve hafıza silme rutinini kaldırırsanız, programı çalıştırdığınızdao dört renkli resmi ekranda göreceksiniz. Sol butona basarsanız; tekrar seka assembler ekrana dönersiniz. Şimdi programın satır satır açıklamasına geçelim. basla: Bu satır programın başlangıç labelidir. Programı çalıştırmak için jpasla komutunu vermelisiniz. a0-a6/d0-d7,-(a7) Bu komut, tüm sistem registerlerinde bulunan verileri stack registerine iter. (Bu operasyonları geçen sayıda öğrenmiştik). lea $70000,a0 Bu komutla $70000 adresi a0 registeriyle edilir. Yani bu komuttan sonra a0 registerinin değer'i yada poınt ettiği şey değiştirilinceye kadar $70000'le ilgili operasyonlarda a0 registeri kullanılır. lea $78000,a1 Yine bir üstteki komut gibi bu komutta af registerine $78000 değerini pornt ettirir. hizsıl: (a0)4 Bu satırise a0 dolatısıyla $70000 adresinde bir longword kadar veri temizler. Bu komuta her gelindiğinde a0 registerinin ettiği $70000 adresi bir artar. cmpa.l a0,af Bu satır a0'da bulunan adres ile at registerinde bulunan adresi karşılaştırır Sonuçları durum kodu registerindeki il-
Eğer a0 registerinde bulunan adres eşit değilse. hfzsıl labelina git. lea oldy,a3 Eğer a0 daki adres a1 deki adrese eşitse program bu satırdan devam eder. Bu satırda oldy değişkenini a3 registerine poınt ettirir. move.| $dff080,(a3) Sistem copperını oldy değişkenine koy. Programın işi bittiğinde tekrar okunacak. lea Kendi yaptığımız copper list'i a0 registeri point etsin. move.| a0,$dff080 a0 registerinde bulunan copperlist'i install eder. solbuton:btst Mouse solbutonu'nun basılıp basılmadığını kontrol eder. solbuton Eğer basılmamışsa solbutona git. lea oldy,a3 Basılmışsa burdan devam eder. Bu satır oldy değişkeninde bulunan sistem copperinı tekrar a3 registerine koyar. move.| (a3),$dff080 a3 te bulunan sistem copperını copper processora gönder. movem.! (a7)4,a0-a6/d0-d7 a7 stack registerde bulunan sistem verilerini tekrar registerlere it. d0 d0 registerini temizle. Tüm program sonuçlarını sil. rts Derleyiciye geri dön. newy: dec.w ,$0007 ,$00e2,$0000 de.w $00e4 ,$0007 ,$00e6,$1f40 de.w $0100 ,$2200 $0180 ,$0000 ,$0182 ,$0eca ,$0184 ,$0e00 ,$0186 ,$0a00
gili bite yazdırılır $ifff ,$iffe bne.| hfzsıl Üstteki liste copperlisttir. Copperin ba- se chıple di- PROGRAM 3 rekt kontağı öne ) olduğu için cmp.b #$kod,$bfec0i bağına: öt bne.s start yazmak ge- rts reksizdir. Buradaki kod yerine şu rakamlardan birini koyabilirsiniz. oldy: del O Sol shıft : $3F Oldy değiş- Sağ Shıft : $3D keni, sistem copperını Yek işken. Sol Amıga : $33 Bü Sağ Amıga : $31 nin uzunluğu Help :$41 birdöngword Reset atmak için şunu yazmanız yeterli. yani 32 bittir. jmp ende: program bit- ti.
Programın açıklaması bu kadar | © umarım yeterli ol- | lea buffy,a3 muştur. Prog- lea addys,a6 ramla ilgili bir so- desty,a5 run olursa dergi- | moveg #1,d2 den sorabilirsi- | here:
niz. Eğer birimizden birimiz ora- (33),d0
(a6),di
Şimdide sırada bir MOVE komutu örneği var. Bu değişkeni bulunan sayıyı addys değişkeninde bulunan sayıyı toplayıp, sonucu desty değişkenine yazar. (PROGRAM 2) 0: Programın başlangıç label'ı. Program buradan başlatılır. lea buffy,a3 a3 registeri buffy değişkenini point eder. lea addys,a6 a6 registeri addys registerini point eder. lea a5 registeri ise desty değişkenini point eder. moveq #1,d2 d2 veri registerine 1 değerini koyar. here: Döngünün başlangıç label'ı. move.l (a3),d0 a3'te bulunan değişkeni d0 veri registerine atar. move.l (a6),d1 a6'da bulunan değişkeni d1 veri registerine atar. add.l d1,d0 d0 registerinde bulunan değere d1 registerinde bulunan değeri ekle. Çıkan sonucu d0 registerine yaz. move.l d0,(a5) d0'da bulunan değeri a5 registerine at. dbra d2,here d2'nin değeri kadar, here label'ına git. Bu bir döngü oluşturur. Bu sayıyı arttırıp, değişkenlerde bulunan değerleri birden fazla yaparsak, birden fazla işlem yapmamız mümkün. buffy: dc.w 20 buffy değişkeni, word uzunluğunda ve 1 adet 20 değeri bulunuyor. addys: dc.w 12 addys değişkeni, word uzunluğunda ve 1 adet 12 değeri bulunuyor. desty: dc.w 0 desty değişkeni, word uzunluğunda ve 1 adet 0 değeri bulunuyor. Bu ayda bu kadar, bir sonraki sayıda görüşmek üzere hoşça kalın.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 72
Selam arkadaşlar... Yararlı olduğunu bulduğunuzu umduğumuz yazı dizimizle yine karşınızdayız. Yazımızın ilk bölümünde, köşemize gelen mektupları değerlendireceğiz. İkinci bölümünde ise geçen ay anlattığımız, komutlar hakkında bazı örnekler ve birkaç program döküm ve açıklaması vermeye çalışacağız. İlk olarak Göztepe'den Güney Özgül'ün mektubu; SORU : Ben assembler köşesine ilgi duyuyorum. Masterseka 1.51 kullanıyorum. Masterseka 1.51 ile masterseka 1.53 arasında ne fark vardır ?... Nasıl source temin edebilirim. Seka assembler'da Müzik nasıl çaldırılır?... Türkiye'deki cracker grupları hakkında bilgi verebilir misiniz. SAM ve HOOLIGAN nedir 2.
CEVAP: Masterseka 1.51 ile Masterseka 1.53 arasında çok büyük farklar olduğunu söyleyebilirim. 1.51 versiyonunda bulunan birkaç bug (program hataları) temizlenmiş, birçok yeni fonksiyon eklenmiş. Bu fonksiyonlar Masterseka'yı çok güçlendirmiş. En yakın zamanda Masterseka 1.53 derleyicisini temin etmeni tavsiye ederim. Bizden assembler source'u temin etmek için dergiye gelebilirsin. İstanbul dışındaki dostlarım ise mektupla ödemeli olarak temin edebilirler. Seka assembler'da müzik çalmak için bir replayer source'una ihtiyacın olacak. Bu source da elimizde bulunuyor. Türkiye'deki cracker grupları hakkında bilgi verecek olursak, şunları söyleyebiliriz; Türkiye'de birkaç tane gerçek cracker grubu var. Bunlar DOUBLE TROUBLE, Bronx ve Accuracy. Bunlardan başka sadece dışarıdan oyun getirip dağıtan bazı gruplar var. SAM ve HOOLIGAN'a gelince; her cracker'ın bir takma adı vardır. Benim adım SAM.
BAHADIR AKCAN BURAK ÖZIŞIK
(Burak), arkadaşımın adı ise HOOLIGAN (Bahadır) (oooğğğluuum, reklamları seyret de yat artık). Crackerlar hakkında daha geniş bilgi için PK.56 Acıbadem İstanbul adresine yazınız. Ya da Double Trouble grubuyla contact kurmak için PK 489 Sirkeci İstanbul adresine yazınız. İkinci mektup ise Kerem Gez'den... SORU: Ben assembler öğrenmeye çalışıyorum ama elimde source yok. Nasıl elde edebilirim (Lütfen siz de Murat Adanç gibi bir source 10000 TL demeyin. Emperyalist herif n'olcek. Hem coderlar arasında paranın lafı mı olur)... CEVAP: Maalesef öyle sevgili okurum. Diskiyle beraber bir source 10000 TL. Geleceğin coderları için büyük bir para olmasa gerek. Şimdi ise sırada Harun Arabulan'ın mektubu var. Harun arkadaşımızın soruları şunlar. SORU: Biz dos komutlarıyla ekrana yazı yazdırıyoruz ama bu yazılarda dört renk kullanıyoruz. Bunun yerine
(PROGRAM 1) move.l (a3),$dfT080 makina codu ile nasıl basla: movem.| (a7)4,20-26/d0-d7 ili. ris AM len $78000,a1 newy: de.w $00c0 ,$0007 pointerdaki hizsıl: cir.! ,$0000 yazısınınasıl de- ,$0007 istirebiliriz ? ?... Ben: den” ,$2200 le resource programı move.l de.w $0180,$0000 ,$0182 var. Bu program çe- lea şitli assemblerların movel al gol: bist dew sourcelarını veriyor. bnel sol oldy: del 0 Seka için böyle bir lea ende: program varmı ?...
Var ise bana gönderebilir misiniz. Ayrıca Harun arkadaşımız küçük bir program göndermiş ve bazı tuş adreslerini göndermiş kendisine teşekkür ederiz. Gönderdiği şeyleri (TABLO 3)'te bulabilirsiniz. Ayrıca sizin çalışmalarınızı bekliyoruz. Şimdiki mektup ise bu ayın favori mektubu. Mektubu gönderen arkadaş geçen sayının dizgi kurbanı Tarhan Temuçin... Yazdığı mektubu okuyabilmek Londra Üniversitesi eski yazıları inceleme kuruluna yaptığımız başvurular sonucu, Indy amcamızın da çözebildik. Bu vesileyle, bize yardımcı olan değerli assembler sever profesörlere teşekkürü borç bilirim. SORU: Seka'da programı nasıl bitirip DOS'a döneriz?... Bir programdan başka bir programı nasıl yükletip çalıştırabiliriz?... Disassemble programı olarak SEKAGENERATOR V7.0 ve RE-SOURCE kullanıyorum. Daha iyi bir program var mı?... Monitör programlarıyla incelediğimiz programlarda nasıl değişiklikler yapabiliyoruz?... Reference olarak hangi kitabı önerebilirsiniz?... ARP library ve DOS library ne işe yararlar?... CEVAP: Bu ilk soruyu mükemmel yazı sayesinde galiba gene tam olarak anlayamadık ama öyle zannediyorum ki RTS komutuyla geri dönme olayını kastetmektesin. Eğer bu da derde deva olmazsa gönderdiğimiz source'un bitiş rutinini sorunun cevabını ise bu ay yer kalmadığından gelecek sayıya atıyoruz. Şu anda Seka Generator 7.0 en iyi disassemble programı statüsünde, onu kullanmaya devam. Monitör programı hakkındaki soruyu ise bize hangi monitör programını kullandığını söylersen cevaplayabiliriz.- Şimdi ise her coder'a önereceğimiz kitaplar: AMIGA HARDWARE MANUAL, AMIGA ROM KERNAL: LIBRARIES AND DEVICES, 68000 HARDWARE GUIDE, 68000 MACHINE LANGUAGE. Evet bu kitaplar bütçenizi oldukça sarsacaktır onu da belirterek yazıya devam edelim. Arp.library requester olarak adlandırdığımız library ise şu işe yarar: Diyelim ki DeluxePaint III kullanıyoruz. Load dediğimizde ekrana bir pencere çıkar. Bu pencere ve benzerleri arp.library kullanılarak yapılır. Dos.library ise her türlü dos işlemini gerçekleştirdiğimiz library'dir. Bu ikisi ve diğer tüm library'ler AMIGA ROM KERNAL
Ke