Gönderen Konu: 6510 Asm  (Okunma sayısı 31180 defa)

6510 Asm

« : 06.01.2005 21:02:05 »
Hızlı düğmeleri aç

kuducuk

İleti: 2

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
merhabalar, ben mesut eskisehirde oturuyorum. ufakken bir c64um vardi, simdi pc kullaniyorum. code alaninda gw basicten baska gecmisim yok ama scene icin 6510 asm ogrenmek istiyorum. gw basiclede bir kac cok fazla basit seyden baska bir sey yapmisligim yok. hades'in dergilerini ve nightlord'un dokumanlarini indirdim az once ama ilk gordugumden olsa gerek asmden hicbisey anlamadim :rolleyes: ama zamanla ogrenirim diye dusunuyorum. ornegin bu hafıza adresine sunu yazip, su bellek alaninada sunu atiyoruz. ondan sonra hop ekranda kayan yazilar filan, kafayi taktim, bu isi ogrencem ama su basit islerden baslayip ilerlemek istiyorum. nasil oluyorda oluyor yani asmde isler? sorularimi cevaplayacaklara simdiden tesekkurler...
not: wizard of war'u basicte yapilmis zannediyodum 12 yasindayken...  :D bu yasta da asm ile yazildigini ogrenecegim aklima gelmezdi... hatta o yillar asm diye biseyin varligindan bihaber basicle ekrana grafik cizmeye calisiyordum... acemilere selamlar :P

6510 Asm

« Yanıtla #1 : 06.01.2005 22:07:46 »
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/
Wizard of War, Pacman gibi oyunlar A* Path Finding algoritmasının en temel örnekleridir. Hangi dilden yazılırsa yazılsın algoritmasına saygı duymak lazım o oyunların :)

Gelelim Asm öğrenme isteğine. Sen zaten en güzel dökümanları bulmuşsun. İngilizcen varsa C=Hacking de süper bir kaynak olur sana.

http://www.ffd2.com/fridge/chacking/

Ancak bence yeni başlayanlar için Hades'in dökümanı C=Hacking'e göre çok daha iyi ve anlaşılır. Senin şikayetin ilk bakışta assemblerdan fazla birşey anlamamak ve birkaç saatte assembler öğrenememekse hiç endişe etme, bu yalnızca senin gereğinden fazla bir üstün zekaya sahip olmadığını kanıtlar. Assembler öğrenmek senin için zor bir süreç olacaktır. Bu süreçle paralel bir diğer süreç de öğrendiklerinle istediğin programı yazabilmek olacaktır. İki süreci de başarıyla tamamlarsan, aramıza hoşgeldin :) Sen yalnızca focusunu kaybetme, o dökümanları yala yut, biz sana sonuna kadar destek verir, tüm sorularını forum üzerinden cevaplarız.

6510 Asm

« Yanıtla #2 : 07.01.2005 09:32:40 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
selamlar kuducuk

1- 6510 assembly ogrenmek guzide bi olaydir. assembly dilleri arasinda az sayida komut icermesi ve mantik yapisinin basitligi bakimindan ogrenmesi kolay ve cok da zevklidir.herhangi bir programi bu kadar basit isler yapabilen az sayidaki komutla yapabilmeyi ogrenmek biraz alismayi (ve calismayi) gerektirir ama sonunda verdigi tatmin duygusu harikadir.

2- scene basli basina harika bi olaydir. uluslarasi dostluklar, rekabetler, kavgalar barismalar icerir. 3-5 insanin hicbir mali kaygi gutmeden biraraya gelip bi isi projelendirebilmesi ve bitirebilmesi aliskanligini yaratir (ki ben ulkemizdeki en onemli eksiklerden birinin bu oldugunu dusunuyorum). bilgisayar kullanicilarini pasif tuketicilerden, aktif ureticilere donusturur.

arti bugun bisey uretip butun dunyaya ulastirmak cok kolay. gecen gun benim demolarin durdugu sitenin istatistiklerini inceledim. 35-40 ulkeden baglanilmis ve demolar indirilmis. bunlarin arasinda basta bizzat bildigimiz scenerlarin oldugu avrupa ulkeleri (isvec danimarka almanya finlandiya polonya vs.) amerika ve nerden duyup baglandigini anlamadigim rusya federasyonu, cin, arjantin falan gibi ulkeler var. zaten cin ve arjantini gordum koptum abi. zevkten dort koseyim bugunlerde :)

velhasil gecen paragrafi ovunme gibi algilamayin. sadece biseyler uretebildigimizde ulasabildigimiz seyirci kitlesinin aslinda hic fena olmadigini vurglamaya calistim. bu yuzden de bazi geceler sabahlamaya bazen sinemaya gitmemeye vs deger.

3- skate'in soyledigi cok onemli bisey var. program yazmaya calisma sureci... bunun icin hakkaten kod yazmaya calismali bir takim problemlerle karsilasmalisin. bunlari cozemedigin noktalarda bu forumlari aktif olarak kullanip soru sormalisin. bilebildigimiz kadariyla herkes cevap vermeye calisacaktir.

kolay gelsin

6510 Asm

« Yanıtla #3 : 08.01.2005 14:36:58 »
Hızlı düğmeleri aç

kuducuk

İleti: 2

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
ikinizide bu sicak karsilama icin en basta tesekkurler...
benimaklima takilan bisey surda mesela:

Kod: [Seç]
     
      
     *= $0900 Programın başlangıç adresi
     SEI   İnterruptları durdur.
     LDA #$00  
     STA $D011 Ekranı görünmez yap.
BEKLE CMP $D012 Raster satırının
     BNE BEKLE 0 olmasını bekle
TEKRAR LDA #$00 Ekran rengi
     STA $D020 SİYAH yapılıyor.
     LDA #$01 Ekran rengi
     STA $D020 BEYAZ yapılıyor.
     LDA #$02 Ekran rengi
     STA $D020 KIRMIZI yapılıyor.
     LDA #$03 Ekran rengi
     STA $D020 CAMGÖBEĞİ yapılıyor.
     LDA #$04 Ekran rengi
     STA $D020 MOR yapılıyor.
     LDA #$05 Ekran rengi
     STA $D020 YEŞİL yapılıyor.
     LDA #$06 Ekran rengi
     STA $D020 MAVİ yapılıyor.
     LDA #$07 Ekran rengi
     STA $D020 SARI yapılıyor.
     LDA #$08 Ekran rengi
     STA $D020 TURUNCU yapılıyor.
     LDA #$09 Ekran rengi
     STA $D020 KAHVERENGİ yapılıyor.
     JMP TEKRAR İşlemi tekrarla

diye yazilmis bir code var elimde, c64tr 1. sayidan...

simdi,

lda komutu:Aküye sabit bir sayıyı veya adresteki değeri yükle. anlamina geliyorsa
LDA #$00   adresinde o sirada hangi deger vardi? sta yazmadan nasil oraya veri koyulmustu? yoksa makina acilinca otomatikman mi gerceklesiyordu? sonrada STA $D011 denince akudeki degeri yazinca nasil ekran gorunmez oldu? akunun o siradaki degeri bir anahtar acma kapama vazifesimi goruyor? ornegin akudeki deger sifir ise ekran ayni kalsin ama akudeki deger bir ise ekrani gorunmez yap gibi...

gorusmek uzere...

not:pek sik gelemiyorum ama haftada bir iki soruyla basinizi agritmaya devam edecegim gibi gorunuyor... :rolleyes:

6510 Asm

« Yanıtla #4 : 08.01.2005 16:14:57 »
Hızlı düğmeleri aç

Guest_HADES


  • Ziyaretçi
SELAM KUDUCUK

-->lda komutu:Aküye sabit bir sayıyı veya adresteki değeri yükle. anlamina geliyorsa
LDA #$00 adresinde o sirada hangi deger vardi? sta yazmadan nasil oraya veri koyulmustu? yoksa makina acilinca otomatikman mi gerceklesiyordu? sonrada STA $D011 denince akudeki degeri yazinca nasil ekran gorunmez oldu? akunun o siradaki degeri bir anahtar acma kapama vazifesimi goruyor? ornegin akudeki deger sifir ise ekran ayni kalsin ama akudeki deger bir ise ekrani gorunmez yap gibi...<--

birazda ben döktüreyim  :D

Asm ile uğraşmak bence iki aşamalıdır.

1-Önce komutlar ne işe yarar, nasıl kullanılır vs.. gibi bir ön bilgi gerekir. Buna teorik bilgi diyebiliriz.
2-Daha sonra bu bilgileri bir sistem üzerinde kullanmak gerekir. Buna ise pratik uygulama veya programcılık diyebiliriz.

Bir merdivenin en üst basamağına hoop diye çıkılmasının mümkün olmadığı gibi asm programcılığıda ufaktan başlar ve yeter artık dediğinde de biter. Teorik bilgi  
tek başına yeterli değildir. Mutlaka uygulama gerekir. Bunun içinde asm yazacağın sistemi -yani C64'ü- az çok tanıman lazımdır. Fazla edebiyat yapmadan kafana takılan sorulara yanıt vermeye çalışayım.

LDA #$00 adresinde o sirada hangi deger vardi?

Sanırım burada bir yanlışlık var. Aslında register demen gerekirdi. Register(ler)de o an için hangi değer olduğu tamamen o anda çalışmakta olan bir programa bağlıdır. Yani belirsizdir denilebilir. Eğer STA komutundan hemen önce LDA kullanmazsan AKüde o an için bulunan değeri adrese yazmış olursun. Bu değer ise 0 ile 255 arasında bir sayı olabilir. Asm yazarken bütün değerleri sen belirlersin ve işlem yaparsın.

STA $D011 denince akudeki degeri yazinca nasil ekran gorunmez oldu? akunun o siradaki degeri bir anahtar acma kapama vazifesimi goruyor?

Ekranın görünmez olması C64'te görüntü işlerinden sorumlu VIC denilen çip'in bir registeri olan $D011 adresinden kaynaklanıyor. Aküdeki o sıradaki değerinin bir anahtar gibi olması söz konusu değil. Çünkü $D011 adresinin bitleri Y ekseninde scroll, rasterin 9. biti, ekranın 24/25 satır olarak seçilmesi gibi işleri yapar. Ama en basit olarak ekranın görünmez yapılması için $D011'e #$00 yazılması yeterlidir.

Registerlerdeki değerler eğer bir adrese yazılmayacaksa veya üzerinde işlem yapılıp kullanılmayacaksa önemli değildir. Ekranın açık kalması için $D011 adresine hiç bir sayı yazmazsın. Yoksa o sırada aküde 0 olmuş 100 olmuş önemli değil.

Umarım yardımcı olabilmişimdir.

6510 Asm

« Yanıtla #5 : 09.01.2005 04:27:56 »
Hızlı düğmeleri aç

bzdgn

İleti: 13

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Herkses tekrar selamlar ;

Öncelikle bu forumun üreticilerine ve tüketicilerine saygılarımı sunarum ;

Benim de eski bir c-64'üm var , her ne kadar şu günlerde bilgisayar başına fazla oturamıyorsam (malum sınavlar , finaller) da bugün bir şekilde dellendim , crescent'ın jerk'out şarkısını dinliyordum ve en sonunda evin altını üstüne getirerek (tam anlamıyla) eski c-64 ümü ve adaptörünü buldum.Bir video ara kablosunun bir ucuna bükülmüş bir tel takarak da ara kablo sorununu halletim ve c-64'ümü çalıştırdım.Eskiden bende olmayan , hayatım boyunca elime alamadığım c-64 kitabını da buldum (daha sonraları sahaflardan mı ne almıştım ) , ve poke ları deneyerek çok güzel şeyler yapılabildiğini gördüm sonra kafama assembly olayı takıldı.Şimdi kafama ard arda takılan soruları dile getirmek istiyorum ;

1-C-64 de assembly nasıl kullanılır
2-eski c-64 kartuşlarını nereden bulabilirim ( bende destek 64 var idi ama kayıp şu an)
3- kaset çalar nasıl bulabilirim ( ya da disket sürücü)
4- sadece c-64 ile (kartuş yok , kaset calar ya da sürücü yok) assembly calısmam mumkun mudur ?

En kısa sürede cevap vermeniz dileği ile
Saygılarımla
ulgen717

Not: c64 assembly ile ilgili hicbirsey bilmiyorum su sıralarda (1-2 hafta once) pc assembly ile ugrasmakta idim ama komutları gordum ve arada pek bir baglantı yok gibi.

6510 Asm

« Yanıtla #6 : 09.01.2005 15:05:58 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
selam once kuducukun ilk sorusuna bi cevap vermeye calisayim

lda #$00

satiri $00 adresindeki degeri akumulatore yuklemez. 0 degerinin kendisini akumulatore yukler. sanirim yanlis anladigin yer bu.

lda #deger

akumulatore 'deger'i yukler

lda adres

ise akumulatore bellekte 'adres'te bulunan degeri yukler

aradaki fark lda'nin hemen ardindan gelen # isareti. $isareti zaten her hex sayinin onunde kullaniliyor.

yani eger 0 adresindeki degeri akumulatore yuklemek istersek
lda $00

yaziyoruz. eger akumulatore 0 degeri yuklemek istersek
lda#$00
yaziyoruz.

sevgiler

6510 Asm

« Yanıtla #7 : 09.01.2005 15:50:24 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
selam ulgen

senin sorularina cevap vermeye calisayim.

oncelikle birilerinin daha oncelikle scen ile daha sonra da c64 ile ilgilenmesi super bi olay. bi insan neden scene ile ilgilenmeli ve neden c64'e bulasmali konularindaki dusuncelerim icin

http://nightlord.dr2.net/c64/3boyut_01/3_boyut_01.html

ayrica baska bikac yazim daha var sitede.


c64 assembly ile ilgii sorularin icin ilk etapta seni c64 turkiye dergisine yonlendirmek istiyorum.  

geocities.com/c64turkiye

eski sayilari alirsan orada hadesin assembler tutorial'leri var. ayrica hw bulmak ile ilgili actigin topikte verdigim cevapta oldugu uzere ilk etapta pc de calisabilirsin. c64turkiye#7'de bununla ilgili biseyler yazdim

bir c64 scener'icin su an bence en ideal setup:

1- c64
2- 1541 veya 1541-ii disket surucu
3- iyi bi kartus (final3, multi-ice3 veya retro-replay 6)
4- xe-1541 pc-c64 transfer kablosu
5- pc :)

sevgiler

6510 Asm

« Yanıtla #8 : 10.01.2005 00:15:31 »
Hızlı düğmeleri aç

Hydrogen

İleti: 932

Çevrimdışı
  • 7DX Organizer
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.glance.ws
Selam Ulgen. Wisdom/Crescent'in Jerk Out şarkısı superdir valla. Sid ile ilgilenen birilerini görünce sevindim de araya alakasız bir mesaj atayım dedim. Phantom Force, Cyberghost ve Creation da superdir. Aslında super müzik çok wisdom'da, hepsini dinlemeli 8)

6510 Asm

« Yanıtla #9 : 10.01.2005 17:36:32 »
Hızlı düğmeleri aç

Guest_ulgen717


  • Ziyaretçi
1541 disket surucusunu ve de multi-ice 3 u nereen bulabilirim ?

6510 Asm

« Yanıtla #10 : 11.01.2005 22:02:49 »
Hızlı düğmeleri aç

eirik

İleti: 312

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://localhost/
1541 disket surucusunu zor da olsa kadIkoydeki rus pazarIndan bulabilirsin dicektim ki orayI da ta$IdILar mI kaldirdilar mi akIbetini bilmiyorum. pazarlarI topkapIda ve kadIkoyun ara sokaklarInda oluyor eski $eyler satan adamlar oralardan bi dene. asLInda yanli$ hatirlamiyorsam birilerine vermedimse elimde bi tane vardI ama bakayIm onu verebilirim belki en azIndan odunc olarak (kusura bakma, :) ama bu zamanda oyle bi aleti bulmak cok zor o yuzden) verebilirim.

6510 Asm

« Yanıtla #11 : 26.09.2005 02:48:02 »
Hızlı düğmeleri aç

bzdgn

İleti: 13

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Alıntı
Originally posted by nightlord@Jan 9 2005, 01:50 PM
selam ulgen

senin sorularina cevap vermeye calisayim.

oncelikle birilerinin daha oncelikle scen ile daha sonra da c64 ile ilgilenmesi super bi olay. bi insan neden scene ile ilgilenmeli ve neden c64'e bulasmali konularindaki dusuncelerim icin

http://nightlord.dr2.net/c64/3boyut_01/3_boyut_01.html

ayrica baska bikac yazim daha var sitede.


c64 assembly ile ilgii sorularin icin ilk etapta seni c64 turkiye dergisine yonlendirmek istiyorum.

geocities.com/c64turkiye

eski sayilari alirsan orada hadesin assembler tutorial'leri var. ayrica hw bulmak ile ilgili actigin topikte verdigim cevapta oldugu uzere ilk etapta pc de calisabilirsin. c64turkiye#7'de bununla ilgili biseyler yazdim

bir c64 scener'icin su an bence en ideal setup:

1- c64
2- 1541 veya 1541-ii disket surucu
3- iyi bi kartus (final3, multi-ice3 veya retro-replay 6)
4- xe-1541 pc-c64 transfer kablosu
5- pc :)

sevgiler
[post=974]Quoted post[/post]
[/b]


tekrar merhaba;

bende sadece şunlar var;

c64, arakablo ve adaptör malesef başka bir şey yok.

fakat internetten CCS64 adında bir emulator indirdim. C64 turkiye adlı derginin birinci sayısını indirdim orada C 64 icin Turbo Assemblerdan bahsediliyor fakat internetten emulatorde calısacak .d64 uzantılı bu programı bulamadım.

sizden ricam c64 assembly ile ugrasabilmem icin bana bir link vermeniz(eger bliyorsanız) veyahut eger mumkunse , sizde varolan bir assembler programını pc'ye aktarmanız , emulatorde kullanabilecegim .d64 uzantılı bir dosyaya cevirmeniz. (biraz cok sey istedim galiba)

saygılar

6510 Asm

« Yanıtla #12 : 26.09.2005 08:42:40 »
Hızlı düğmeleri aç

Bakkada

İleti: 1.073

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
Forum daha cok basiniz agriycak icinde benim de bulundugum(arkadaslar ben de ASM bilmiyorum haberiniz olsun yanlis anlasilmasin) bir acemi scene grubu geriden geliyor ...

Bu arada aklima bise geldi acaba acemi coderler biraraya gelip bi grup mu kursak yanilmiosam 4-5 kisi olduk hem beraber ogreniriz sifirdan hem beraber uretiriz sifirdan,cok mu uctum ne yaptim  :blink:

6510 Asm

« Yanıtla #13 : 26.09.2005 09:45:41 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
Alıntı
Originally posted by ulgen717+Sep 26 2005, 01:48 AM-->
QUOTE(ulgen717 @ Sep 26 2005, 01:48 AM)
\n\t\t\t\t\t\t\t\t\t
<' + '/div>\n\t\t\t\t\t\t\t\t\t