İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - esmaeild

Sayfa: 1 2 3 [4] 5 6 7
46
c64 / javascript ile 6502 emülgatör
« : 08.01.2007 18:07:04 »
electronic workbench gibi bir ortamda 6510 simulasyonu var mı?

47
c64 / VIC kursu preview
« : 08.01.2007 14:09:14 »
bu akşam kendi başıma ilk effectimi yapmaya çalışıcam. nasıl birşey ortaya çıkıcak merak ediyorum. bana şans dileyin:)

48
c64 / VIC kursu preview
« : 08.01.2007 00:13:35 »
hocam şurdaki +$00 ın ne işe yaradığını anlayamadım. ldy sin_table+$00,x
 
düzeltme : devamını okuyunca anladım:D .

49
c64 / VIC kursu preview
« : 07.01.2007 00:43:56 »
ok. 6510 VIC ten haber bekliyor. 6510 VIC e uymak zorunda çünkü VIC monitörü bekletmemek zorunda. hani monitörde beklerde başında monitöre bakan adam beklemez dimi. eli mahkum. :) orayı hemen düzelteyim.

50
c64 / VIC kursu preview
« : 07.01.2007 00:07:21 »
anladım. yaklaşık 6 saattir adım adım aşağıdaki örneği yapıyordum az önce bitti :) biraz uzun gibi gelebilir ama ben biraz geç anlıyorum. benim gibi acemiler için aşağıya koydum (notlarıda alınmış vaziyette)
 
 
Kod: [Seç]
[SIZE=1][COLOR=#008000]
[B][SIZE=4]!to[/SIZE][/B][/COLOR][/SIZE][COLOR=#800080][B][SIZE=4]"raster0.prg"[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#008000][B]*=[/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$c000[/SIZE][/B]
[/COLOR][COLOR=#000040][B][SIZE=4]baslangic:[/SIZE][/B]
[B][SIZE=4]jsr rasterIrqHazirla[/SIZE][/B]
[/COLOR][COLOR=#000040][B][SIZE=4]son:[/SIZE][/B]
[B][SIZE=4]jmp son[/SIZE][/B]
[/COLOR][FONT=FixedSys][COLOR=#804000]
[/COLOR][/FONT][COLOR=#000040][B][SIZE=4]rasterIrqHazirla:[/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];kimse bana irq gondermesin elimi sürmem[/SIZE][/B]
[B][SIZE=4];transaction burda basliyor[/SIZE][/B]
[/COLOR][COLOR=#000040][B][SIZE=4]sei[/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];cia bana irq gonderme[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][/SIZE][/B][COLOR=#804000][B][SIZE=4]$7f[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$dc0d[/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];raster irq fonksiyonunu set et (1 ile orlanıp sadece son bit değiştiriliyor)[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#804000]$d01a[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4];bu vic registerlerinden birinin adresi[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]ora [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$01[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$d01a[/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];irq nun 6510 a gonderilecegi satir icin 9 bitlik satir no gondericez[/SIZE][/B]
[B][SIZE=4];312 satırdan dolayı ancak 9 bite sığıyor.[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#804000]$d011[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; dokuzuncu bit[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]and [/COLOR][COLOR=#008080]#[/COLOR][COLOR=#804000]$7f[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; sıfırlanıyor 01111111 [/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$d011[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][COLOR=#804000]$20[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; 32. satir[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]sta [/COLOR][COLOR=#804000]$d012[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; ilk 8 bit[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][COLOR=#000040]<irqRutini[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; irq rutini adresinin düşük ve yüksek bytelarını alınıp [/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$0314[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][/SIZE][/B][COLOR=#000040][B][SIZE=4]>irqRutini[/SIZE][/B]
[B][SIZE=4]sta [/SIZE][/B][/COLOR][SIZE=4][COLOR=#804000][B]$0315[/B][/COLOR][/SIZE][COLOR=#808080][B][SIZE=4]; adreslerine yazarak altrutinimizin hangi adreste olduğunu 6510 un default olarak bakacagi yere koymus oluyoruz.[/SIZE][/B]
[/COLOR][COLOR=#000040]
[/COLOR][COLOR=#808080][B][SIZE=4];transaction burda bitiyor[/SIZE][/B]
[B][SIZE=4];artik gonderebilirsiniz[/SIZE][/B]
[/COLOR][COLOR=#000040][B][SIZE=4]cli[/SIZE][/B]
[/COLOR][COLOR=#000040][B][SIZE=4]rts[/SIZE][/B]
[/COLOR][FONT=FixedSys][COLOR=#804000]
 
[/COLOR][/FONT][COLOR=#000040][B][SIZE=4]irqRutini:[/SIZE][/B]
[B][SIZE=4]inc [/SIZE][/B][/COLOR][SIZE=4][COLOR=#804000][B]$d019[/B][/COLOR][/SIZE][COLOR=#808080][B][SIZE=4]; irq sinyalini aldim isliyorum az kadi. haberin olsun. (bu adres VIC in registerlerinden birinin adresi)[/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];syc. tam burda oluyor. bu register 1 olarak set edilmis oluyor  [/SIZE][/B]
[/COLOR][COLOR=#808080][B][SIZE=4];tam VIC isaretledigimiz satira geldiginde 6510   cerceve rengini beyaz gosterttiriyor. boylece sadece isaretledigimiz bolge beyazmis gibi gorunuyor.  dolayisiyla elektron demetine hukmetmis oluyoruz. sonrada VIC 0 olarak set ediyor.[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][COLOR=#804000]$01[/COLOR][/SIZE][/B][COLOR=#808080][B][SIZE=4]; cerceve beyaz - siyah bir flashing yapıyor buda efektimizi olusturmak icin tarama satirimizi elde etmemizi sagliyor[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$d020[/SIZE][/B]
[/COLOR][B][SIZE=4][COLOR=#000040]lda [/COLOR][COLOR=#008080]#[/COLOR][/SIZE][/B][COLOR=#804000][B][SIZE=4]$00[/SIZE][/B]
[/COLOR][SIZE=4][COLOR=#000040][B]sta [/B][/COLOR][/SIZE][COLOR=#804000][B][SIZE=4]$d020[/SIZE][/B]
[/COLOR][COLOR=#000040]
[B][SIZE=4]jmp [/SIZE][/B][/COLOR][SIZE=4][COLOR=#804000][B]$ea81[/B][/COLOR][/SIZE][COLOR=#808080][B][SIZE=4]; irq rutininden geri dönüp kaldigin yerden devam edebilmek icin bu islemi bizim icin romun otomatik yapabildigi bir adres.[/SIZE][/B]
[/COLOR]

51
c64 / VIC kursu preview
« : 06.01.2007 23:02:49 »
hocam 6510 belleğe erişirken cycle ın ilk yarısını kullanıcak şekilde dizan edilmiştir dediniz. bu donanımsal olarak mı böyle her iki yarısınıdada erişmesini sağlayacak bir anahtar yokmu. bu cpu nun cycle paylaşımı yapmayacağı bir devre dizanı düşünülmemiş mi.

52
c64 / VIC kursu preview
« : 06.01.2007 22:35:43 »
ben sorunu anladım. sende VIC e takmış durumdasın sürekli benim sorumu yanlış anlıyorsun. ben 6510 dedikçe sen VIC diyorsun. VIC cipini gecici bir süreliğini sök hocam makineden şimdi DMA satırları yok, spritelar yok, rasterlar yok. soruma bu şekilde bakarmısın.

53
c64 / VIC kursu preview
« : 06.01.2007 21:47:35 »
Alıntı yapılan: skate
Bu arada madem c64 donanımıyla 1mhz'nin üstüne çıkmayla ilgili zihni sinir yöntemlerine bu kadar meraklısınız, o zaman size bu konudaki ilginç fikirlerden birini söyliim. şahsen hiç uygulamasını görmedim henüz. 1541'in içinde de ufak bir işlemci ve yanılmıyorsam 8k'lık bir hafıza var. Bunları kullanarak 1541'e asynchronous hesaplamalar yaptırmakla ilgili fikirler vardı. Örnek olarak ekranda çevirmen gereken 500 tane vertexin var ama cycle sayın yetmiyor. bir kısmını 1541'e veriyorsun, o hesaplıyor, sen o arada sonuçları beklemeksizin kendi hesaplamalarını yapıyorsun. daha sonra kendi işin bitince 1541'in hesapladığı değerleri de okuyorsun v.s. Böyle birşeylerden bahsedildiğini hatırlıyorum ama ekstra donanım modifikasyonu gerektiriyor mu ya da 1541'e ne yaptırıp ne yaptıramıyoruz hiçbir fikrim yok. Bu kadar kafayı taktığınız için sizinle paylaşiim dedim bu konuyu. Yine de bana kalırsa bu konuya hiç kafa yormayın. ınanın değmez :) Öncelikle cyclelar size yetmeyecek hale gelsin. Ondan sonra kafa kafaya verip bu tür konularda birlikte mantık yürütürüz.

peki hocam 4 tane soruya cevap vermekten sıkılacağını hiç düşünmedim ondan soruyorum. özür dilerim. söylemesen sorularım böyle uzayıp gidecekti. şimdi durup dururken 1541 araya sokup niye kafamı karıştırıyorsun. ben bir taraftan nightlordun dökümanını uyguluyorum şu anda bir taraftanda kafama takılanı soruyorum. sorduklarım sizin seviyenizde olmayabilir ama cevap vermek istiyorsanız sabretmeniz lazım.
 
kısacası aklıma ne takılırsa sorucam şimdenden söyliyim (biraz geç oldu).

54
c64 / VIC kursu preview
« : 06.01.2007 21:23:08 »
hocam DMA satırları olmazsa 6510 un kazancı 1 sayfada belleğe erişim yönünden 25 * 40 = 1000 cycle olmaz mı.

55
c64 / VIC kursu preview
« : 06.01.2007 20:15:43 »
Alıntı yapılan: nightlord
RasterIRQHazirla:
sei
6510 içinde “Dışarıdan Gelecek Kesinti ısteklerini Bloklama” imkanı mevcut. Bunun için Durum Registerinde Interrupt Flag adlı bir bit var. Bu bit 1 yapıldığı zaman 6510 IRQ pinine sinyal gelse bile kesinti uygulamaz ve hiçbirşey olmamış gibi devam eder. Sei komutu işte bu bit'i 1 yapar. Tersi olan cli komutu ise bu biti 0 yaparak bundan sonraki interruptlara izin verir. Yani sei ve cli komutlarının arasındaki komutlar çalışırken başka bir interrupt sinyali gelip de 6510'un herhangi bir yere atlama şansı yoktur. Bunun neden önemli olduğunu birazdan göreceksiniz.
lda #$7f
sta $dc0d
C64 içinde 6510'a kesinti isteği gönderebilen tek çip VIC değil. Disket sürücü, klavye gibi pekçok çevre birimini kontrol eden CIA çipleri de 6510'a kesinti isteği gönderebiliyor. Normalde C64 ilk açıldığında Kernal'deki başlangıç rutini içinde CIA çiplerinde bulunan timerlardan biri programlanır ve bu timer her 20 ms'de bir 6510'a kesinti isteği gönderir. Bu kesinti isteği ile beraber 6510 yine ROMdaki başka bir bölgeye atlar ve bazı rutin işlerle ilgilenir (klavyeyi kontrol etmek, cursoru yakıp söndürmek gibi). Bizim programımızda bu rutin hizmetlerin hiçbiri ile ilgilenmediğimiz için bu kesinti isteğinin gelmesini engellemek istiyoruz. Bunun için isteği gönderen CIA çipine “bana IRQ gönderme” dememiz gerekiyor. CIA çıpının ayrıntıları konumuz dışında. Fakat bu iki komutun bu işe yaradığını bilin yeter.

sei ile interrupt flagını 1 olarak set ettiğimizde artık 6510 un kesinti isteklerine cevap vermiyeceğini belirttiğiniz halde extradan cia neden kesinti isteği gönderme demek zorunda kalıyoruz?

56
c64 / VIC kursu preview
« : 06.01.2007 10:29:59 »
Alıntı yapılan: skate
Adam orda yalnızca ekranı kapatıyor ve azcık tasarruf ediyor DMA satırlarından hepsi bu. Yaklaşık oran da dediğim gibi %5. Aynı olay yükleme sırasında ekranın kapatılmasında da kullanılır. Yükleme zamanı azcık kısalsın diye ekranı kapatırsın, daha hızlı yükler.

burada da merak ettiğim bir şey var. 63 cycle lık belleğe erişmek için yarım zamanlara sahip VIC  25 karakter satırlık ekran olduğuna göre normal şartlarda her karakter satırının ilk raster satırında DMA sinyali ile belleğe erişecek ve 25 kez 6510 un belleğer erişme payanın 63 te 40 ını gasp edicek. yani 25 * %63.5 bu durumda full belleğe erişim gerektiren bir uygulamada bu çok büyük bir pay değilmi.

57
c64 / VIC kursu preview
« : 06.01.2007 09:40:04 »
Alıntı yapılan: nighlord
6510 için zaten yarım cycle kavramı yoktur. o yine 1 cycle içinde 1 cylce lık iş yapar. Ama o cycle içinde eğer belleğe erişmesi gerekiyorsa bunu cycle'ın ilk yarısında yapacak şekilde dizayn edilmiştir.

sorumun cevabıda bu galiba. yani bir şekilde VIC i durdursan bile belleğe erişmek için 6510 o cycle ları kullanamaz diyor. yahu insan oraya bir register koymaz mı set edince cycle'ın altını da üstünü de kullansın. 1 cycle içinde 1 cycle lık işyapar cümlesi üzerinde düşününce şimdi aklıma bir soru daha geldi. 6510 belleğe erişemediği diğer yarımlar esnasında ne iş yapıyor? şöyle mi : 1. cycle ın ilk yarısında bellekten okuyor. ikinci yarısında okuduğunu işliyor. 2. cycle ın ilk yarısında sonuçları belleğe yazıyor. ama 2. yarımlar esnasında belleğe erişmesi gereken bir durum oluşursa 1. yarımı beklmek durumunda. iş gücü kaybı. bir işlem yapacak. işlem çıktısını hesaplayacak zamanı var ama girdi için beklemek zorunda.

58
c64 / VIC kursu preview
« : 06.01.2007 09:14:09 »
işlemci 1 Mhz. donımsal olarak bir hack olmadığı sürecede 1 Mhz ok. oh be en azından 1 Mhz. :) fakat 6510 bu 1 Mhz nın yarım cycle ını kullanıyor.diğer yarım cycle da VIC kullanıyor.
hatta DMA ayağına yatıp 40 cycle da ikide bir 6510 dan gasp ediyor.  benim sorum şu 6510 VIC ten 63 cycle'ı gasp edebilir mi?  bu gasp mekanizması nasıl çalışıyor?
 
@skate:
evet yükleme olayındaki gibi ekranı kapatıp hız kazanıyordu. 2 mhz de geçmişten aklımın bir köşesinde duruyor. yani elbetteki üstadlar olarak siz daha iyisini bilirsiniz. iki olay kafamın içinde bir yerlerde ilişikenip karşıma bir bütün olarakta çıkmış olabilir :) Yani ısrarım bu olayın ayrı olaylarmı olduğunu yoksa gerçektende 2 mhz yi ordamı gördüğümü bir açıklığa kavuşturup kafamın içinde kalmış olan ? ni gidermek.  ama şunu iyi anladım acilen kocaman bir sürü rafı olan bir kitaplık almam gerekecek.  1. ve 2. sayının ekleri kayıp. scannerdan tarayıp websiteme aktarmak için yıllardır durdukları yerden çıkarmıştım. daha öncede 3-4 kez aynı sayılar kaybolup hiç ummadığım yerlerden çıkmıştı.

59
c64 / VIC kursu preview
« : 05.01.2007 22:34:30 »
yok bunlar değil o zaman büyük ihtimalle 2. sayının döküm ekinde. komple scan yapmana gerek yok sadece rotasyon ve fonksiyon diye 2 tane program vardı. onun açıklama kısmında yazan bişey kafama acayip takıldı. 3 boyutlu grafikler çiziyordu program. evet %80 2. sayıdaydı. kahverengiyidi şimdi hatırladım. Sadece bu programlar açıklamaları ile birlikte lazım.

60
c64 / VIC kursu preview
« : 05.01.2007 21:55:21 »
Commodore dergisi 1. ve 2. sayılarının program dökümlerini evde kaybettim. 2 buçuk saatir arıyorum hiç bir yerde yok. ikisindeden birinde rotasyon ve fonsiyon diye ikitane porgram olması lazım. elinde olan var mı.

Sayfa: 1 2 3 [4] 5 6 7