Gönderen Konu: ılk Amiga Coding Başlığı :)  (Okunma sayısı 16348 defa)

ılk Amiga Coding Başlığı :)

« : 18.02.2011 02:05:57 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Arkadaşlar, bu forum kaç senedir var? 7? 8? Sanırım henüz "Amiga Coding" bölümüne ilk post atan ben oluyorum. Endo o kadar döküman yazdı ama sanırım burada başlık açılmamış.
 
Aşağıda Plazma #4 ve #5'de yayınlanan Endo kardeşimin Amiga AsmPro Kursu yazısının ilk örneğini görebilirsiniz. Herşeyin bir başı bir de sonu vardır. Bu sanırım başı. :)
 
Gerek yok gibi ama resimlerin üzerine tıklayarak büyük hallerini görebilirsiniz.
 

 

ılk Amiga Coding Başlığı :)

« Yanıtla #1 : 18.02.2011 09:52:36 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Vaay nihayet birileri yazımı okumuş hatta örnek programımı bile yazmış :) Hayırlı uğurlu olsun Amiga'n :)
- endo of glance -

ılk Amiga Coding Başlığı :)

« Yanıtla #2 : 18.02.2011 21:41:31 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
vaay super.
 
Bi gun mutlaka su amigada da biseyler yapmak istiyorum. Ben UAE uzerinden Endo'nun tutorialini takip planlari yapiyordum. Skate sen daha da coskun bir deneyime yelken acmissin a1200 uzerinden giderek :)

ılk Amiga Coding Başlığı :)

« Yanıtla #3 : 19.02.2011 01:10:36 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@nightlord: ben de ilk uae üzerinde denemiştim birşeyler yapmayı. ama sürekli crossdevelopment için uygun bir çözüm araştırıyordum bir yandan. adam gibi birşey bulamayınca emülatör içinden takılmak hiç zevk vermedi.
 
şimdi hem gerçek donanım kullanmanın zevki var, hem de A1200'ün kasa eski ama klavye yenilenmiş sıfır, pamuk gibi. PC klavyesi olarak Logitech Wave kullanıyorum, çok da severim. Ama A1200'ün şu anki klavyesinin rahatlığının yanından geçemiyor. :)

ılk Amiga Coding Başlığı :)

« Yanıtla #4 : 19.02.2011 14:37:19 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Benim bi de şöyle bi planım var, ne dersiniz?
Boot edince pat diye ASM-Pro açılan, üzerinde workbech vs. sistem olmayan, bir UAE setup paketi. Bunu kolayca yapabilirim.
Yani Setup.exe'yi kuruyorsunuz, masaüstünde ikona tıklayınca, asmpro'lu bir uae açılıyor, hdd'li amiga 500 (veya 1200).

Daha önce bunu TotalChaos isimli Amiga oyunu için yaptım, sadece hardfile biraz yer kaplıyor, yani setup.exe 40-50 MB olabilir.

Böylece kimse uae, hdd, asm-pro kurmak ayarlamakla uğraşmaz.
- endo of glance -

ılk Amiga Coding Başlığı :)

« Yanıtla #5 : 19.02.2011 18:00:57 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Alıntı yapılan: endo;27164
Benim bi de şöyle bi planım var, ne dersiniz?
Boot edince pat diye ASM-Pro açılan, üzerinde workbech vs. sistem olmayan, bir UAE setup paketi. Bunu kolayca yapabilirim.
Yani Setup.exe'yi kuruyorsunuz, masaüstünde ikona tıklayınca, asmpro'lu bir uae açılıyor, hdd'li amiga 500 (veya 1200).

Daha önce bunu TotalChaos isimli Amiga oyunu için yaptım, sadece hardfile biraz yer kaplıyor, yani setup.exe 40-50 MB olabilir.

Böylece kimse uae, hdd, asm-pro kurmak ayarlamakla uğraşmaz.

UAE'nin direk asmpro ile başlıyacak  hali olucak heralde...
Peki kod yazıldı derlendi sora .adf imajına nası çevrilecek?..

ılk Amiga Coding Başlığı :)

« Yanıtla #6 : 20.02.2011 05:24:18 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
4-5 saat harcayıp Amiga Hardware Guide'ı baştan sona okudum. Elbette ki başlangıçta çok ihtiyacım olmayacak kısımları çok hızlı geçtim. şimdilik seri/paralel porttan veri gönderip almayacağım sonuçta. :)
 
Copper ve Blitter, Bitplaneler hakkında hep kulaktan dolma, yüzeysel olan bilgilerimi oturttum. Sonra da ilk ekranda sonuç göreceğim örnek olarak yine Endo kardeşimizin Plazma #5'deki copper örneğini yazdım. Yazdıktan sonra ise copper dataları üzerinde ufak tefek oynamalar yaptım. Amiga'da ilk grafik ekranı görüntülerimi almaya başladım bu sayede. Bu da ikinci adım. Üçüncü adım yine copper üzerinden ancak animatik birşey olabilir belki. Dördüncü adımın Blitter olacağından kimsenin şüphesi olmasın. :)










ılk Amiga Coding Başlığı :)

« Yanıtla #7 : 20.02.2011 09:04:34 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
3. aşamada bir rasterbar'ı sinüse bağladım ve iç ekranın rengi de hareketle uyumlu bir biçimde değişiyor. özetle artık adam gibi bir mainloopum var ve copper ile dinamik olarak elleşebiliyorum. tabii asmpro'da nasıl sinüs table yaratılır, nasıl table'a ulaşılır, lea star wars'daki prenses midir yoksa bir opcode mudur v.s. v.s. birçok şey biraz daha netleşti kafamda.
 
[youtube]wmlgA0XKyo8[/youtube]

ılk Amiga Coding Başlığı :)

« Yanıtla #8 : 20.02.2011 23:24:56 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Alıntı yapılan: paradox;27165
UAE'nin direk asmpro ile başlıyacak  hali olucak heralde...
Peki kod yazıldı derlendi sora .adf imajına nası çevrilecek?..


Setup, ayarları yapılmış bir UAE ve bir hardfile (hdf) ile gelecek. Yani birşey kaydederseniz doğrudan hdf'nin içine kaydedilmiş olacak. Harddiskli bir amiga yani.
Bir dosyayı dışarı (PC'ye) almak gerekirse, bir klasörü ikinci bir harddisk gibi gösterip oraya kopyalayabilirsiniz. Sonra o klasörden ADF Opus gibi bir programla bir adf'ye kopyalayabilirsiniz. Tabii buna gerek olmayacak normalde de ille de bir adf'ye koymak gerekirse diye dedim.

@skate: süpersin, eline sağlık! sonraki sayılarda copper'ı sinüse bağlayacaktım ama sen şimdiden yapmışşsın :)
« Son Düzenleme: 20.02.2011 23:45:28 Gönderen: endo »
- endo of glance -

ılk Amiga Coding Başlığı :)

« Yanıtla #9 : 21.02.2011 01:12:25 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@endo: saat gecenin bir yarısı olmasa on kere telefon etmiştim sana. bazı şeyleri çözene kadar kafayı çizdim ama birçoğunu şans eseri buldum, hallettim. bahsettiğim sadece 68k asm değil, aynı zamanda asmpro kullanımıyla ilgili.
 
yaşadığım komik olaylar.
 
1) nasıl satır silineceğini bilmiyorum. sinüs tablosunu yanlışlıkla copper kodlarının altında oluşturmuş durumdayım. ne block cut paste yapmayı biliyorum ne de hızlı bir silme yöntemi. neyse ki hemen öncesinde kodu kaydetmiştim, önceki versiyonu yükleyerek çözdüm.
2) debug işleminin [A]+D olduğunu görüyorum menüden. Tuşlara basıyorum ve o da ne... Bir satır uçuyor. Bu benim az önce aradığım özellik. Meğer olay case sensitivemiş. [A]+D demek [A]+Shift+d imiş. :) Bu sayede hem satır silmeyi keşfediyorum hem de shift ile debug kısayolunu kullanmayı öğreniyorum.
3) Assemble et demek için [A]+a'ya basıyorum. Yukarıdakine benzer bir hata ile "Add Watch"un kısa yolunu bulmuş oluyorum ki o anda ihtiyacım olan şey de tam bu zaten. :)
4) En son Endo'nun AsmPro ile ilgili Plazma #5'deki 2. yazısı olan AsmPro Kılavuzu'na baştan sonra bir göz atıyorum ve birçok şeyi oradan öğreniyorum.
 
Bu sorunları yaşamamdaki en büyük neden ise çok komik. Elimde bir tane Amiga Mouse'u var şu anda (diğer annemleri eski evde kalmış). Onun da sağ tuşu çok zor basıyor ve temassızlık yapıyor. Yani üstteki menüleri bir türlü kullanamıyorum. Onları kullanabilsem herşey çok daha basit olacak tabii. En kısa sürede annemlerdeki sağlam mouse'u alıp bu sorunu da aşıcam. Ama bu sorun sayesinde de epey bir keyboard shortcut öğrendim ki beni çok hızlandırdı.
 
şu anda yapmayı öğrendiğim en önemli şey editörü birçok debug özelliğiyle birlikte sağlam bir biçimde kullanmayı öğrenmem oldu. breakpoint koymak, watch'a label eklemek, step by step debug etmek, tekrar bu noktaya gelene kadar çalış demek (loop içinde muhteşem bir özellik) v.s. hepsini klavye shortcutlarıyla hızlıca kullanabiliyorum. Bundan sonrası için çok çok önemli bir gelişme bu.
 
Gelelim alışmam gereken şeylere. 68k asm oldukça kolay (hele ki 6502'nin limitlerini düşünürsek). Kaldı ki 68000+'a özel komutları da düşünürsek artık işin cılkı çıkıyor, x86 Asm gibi birşey resmen. Ancak beni zorlayan şeyler daha çok OpenGL ve DirectX'in ikisini birden kullanmış kişilerin karşılaştığı farklılıkları gibi. Mesela Blitter EOR fill'i yukarıdan aşağı değil soldan sağa yapıyor (sanırım reverse mode ile sağdan sola da yapabiliyor). Ben C64'den gelen alışkanlıkla bu güne kadar EOR filling için line slopları çizdirirken hep 45 dereceden büyük açılardaki değerler için step atlanması gerektiğini düşünmüşken burada olay tersine dönüyor. OpenGL ve DirectX'in matrislerinin eksenleri birbirine göre swap edilmiş biçimde kullanması gibi. Yani elbette ki C64'deki bilgilerimin bana sağladığı çok büyük avantajlar var. Ama bir o kadar da alışkanlıklarımı değiştirmem gereken nokta var. Neyse ki Blitter lineları çizmeye kadar herşeyi üstleniyor da ben kafamı çok yormayacağım bu işlere. :)

ılk Amiga Coding Başlığı :)

« Yanıtla #10 : 21.02.2011 01:31:22 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@endo: aklıma gelmişken hızlı bir soru. copper'da 256'dan büyük çözünürlüklerde 2. bölgeye nasıl geçiyoruz? yani diğer bir deyişle $d011'in most significant bit'i nedir? :)
 
bir yerlerde birşeyler okudum ama tam anlamadım. adamın teki demiş PAL'da zaten en fazla 256 satır olur diye (laced mode hariç tabii). diğeri de demiş olur mu, daha fazla satır var (sanırım o da 262 satır var diyordu). bak önce 256 satır beklet, sonra bir 6 satır daha beklet görürsün falan demiş. senin örnekte de 320*256'lık bir alan ayrılmıştı ama 255. satır videodaki alttaki sabit alanın başlangıcına denk geliyor. Benim kullandığım çözünürlük 256'dan büyük (576x288'di sanırım) tamam ama yine de o kadar boşluk kalmasa gerek sanki. bu arada ekranın üstü de epey bir dışarıda kalıyor gibi. copper PAL'da ilk 25 satırla elleşemiyordu diye okumuştum ama görünen alanın kaçıncı rasterından başlıyor bilmiyorum.
 
şu yazdıklarımdan anlayacağın üzere sağdan soldan okuduğum bölük pörçük bilgileri bir toparlar ve durumu açıklarsan çok mutlu olurum.
 
edit: basit imla hataları düzeltildi.
« Son Düzenleme: 21.02.2011 01:34:30 Gönderen: skate »

ılk Amiga Coding Başlığı :)

« Yanıtla #11 : 22.02.2011 13:44:23 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
Plazmanın son sayısında galiba bu konuya değinmiştim, hızlıca yazayım vaktim dar şimdi, sonraki sayı için bi örnek yazmıştım galiba, bulunca buraya post edeyim.

ntsc'de 262 raster, pal'de ise 312 raster satırı var kullanabileceğin.

wait ile 0,255 pozisyonunu bekliyorsun. sonra 0-56 arası bir pozisyonu tekrar bekletiyorsun. Bu şekilde 256 + 56 arası satırlarda copper'ı kullanabiliyorsun.
- endo of glance -

ılk Amiga Coding Başlığı :)

« Yanıtla #12 : 22.02.2011 17:06:54 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@endo: okuduğum forumda da buna benzer birşey yazıyordu ancak özellikle şu PAL'da kaç rasterline var v.s. emin olmak istedim. Haliyle c64'deki ile aynı. Sonuçta PAL PAL'dır di mi. :D