|
Konu Başlığı: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 24, 2015, 01:06:34 ÖÖ NOT: Bir kaç saat önce projeyle ilgili teknik bilgilerin de olduğu uzun bir giriş yazmıştım. Ancak malesef bilgisayar kilitlendi ve tüm yazdıklarım gitti. Şimdi tekrar yazıyorum ancak bu sefer biraz özet olacak. Merak ettiğiniz bir husus olursa belirtirseniz detaylı olarak anlatırım. Teşekkürler.
Doberman-64 Nedir? Doberman-64, Commodore 64'e kartuş portundan takılan bir donanım. Ama bilindik bir kartuş değil. Çok basit anlatmak gerekir ise, normalde C64'e takılan kartuşlar, C64'ün RAM bölgesindeki bir alanı iptal ederek o bölgeye yerleşirler. Doberman-64 ise, C64 adres bölgesinde yer kaplamayan, yani C64 tarafından görülmeyen bir kartuş. Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım. İşlem sonrasında, tekrar kontrolü 6510 CPU'ya bırakarak C64'ün çalışmasına devam etmesine izin verebilen bir kartuş. Tüm bu erişim için temel olarak kartuş portundaki /DMA hattını ve özelliğini kullanıyor. (DMA=Direct Memory Access) Doberman-64 Ne İşe Yarar? Aslında bir çok işe yarayabilir. Benim bu projeye başlama amacım, olabildiğince hızlı bir şekilde istediğim programı yada oyunu yükleyebilmek idi. Bu konuda bir çok çalışma mevcut. Ancak tam olarak istediğim özellikleri taşıyan bir çözüm bulamadığım için bu projeye giriştim. Başlarda standart bir kartuşu emule edebilecek bir donanım geliştirmek istedim, ama çok hızlı bir işlemci kullanılmadığı sürece bunun mümkün olmadığını denyerek gördüm. Doğrudan mikroişlemci yerine RAM kullanarak kartuş emülasyonu yapılabilmesi teknik olarak mümkün, hatta bu konuda forumda i_r_on'un devam bir projesi de mevcut. EasyFlash gibi flash tabanlı kartuş çözümleri var. SD2IEC vb. 1541 emulatörleri mevcut. Gerçi teknik olrak ne çeşit olursa olsun, RAM, EEPROM yada FLASH tabanlı kartuş projeleri malsef tam olarak istediklerimi karşılamıyor. Kartuş çözümleri 8KB yada 16KB oluyor. Sayfa değiştiren kartuşlar var ve 128KB ya kadar çıkabiliyor ama yazılımın bu tarz kartuşlar için yazılmış olması gerekiyor. Benim istediğim ise, herhangi uzunluktaki bir programı bir kaç saniye içerisinde C64'üme yükleyebilecek, birden çok imajı üzerinde barındırabilecek bir donanım. Teorik hesaplara göre Doberman-64 saniyede 250KByte veriyi transfer edebilir. Yani 64KB lık bir C64 programı bile bir kaç saniyede hazır olabilecek. Aynı zamanda Doberman-64 ile, C64 freeze edilip hafıza imajının alınması ve daha sonra tekrar yüklenerek işleme devam edilmesi en azından teorik olarak mümkün. Yada Doberman-64 ile C64 doğrudan PC ile USB üzerinden haberleştirilebilir. (Cross compile işleri için çok yararlı olabilir. c64 PC üzerinden pause edilip memory incelenebilir hatta modifiye edilebilir.) C64'e özellikle hızlı veri iletişimi gerektiren donanımlar eklenebilir. (Scanner, kamera, digitizer vb...) İlerleyen versiyonlrda SD kart desteği eklenebilir vb... Bu ilk versiyonda Doberman-64 üzerinde 4MByte bir seriel flash kullanmayı planlıyorum. Bu sayede en kocamanından 64KB lık toplam 64 program kartuş üzerinde saklanabilecek. Kartuş üzerindeki butona basıldığında çıklan listeden istenilen PRG seçilecek ve hemen çalışacak... Doberman-64 Ne Değildir? Doberman-64 bir disk, kartuş yada tape emulatoru değildir. Dolayısı ile çok parçalı yada ara yüklemeli program yada oyunlar, DSK dosyaları ve CRT dosyaları desteklemez. Şimdilik sadece *.PRG dosyaları modifiye edilmeye gerek olmadan kartuşa atılabilir ve kullanılabilir. Neden Doberman-64? Aslında özel bir nedeni yok. Sadece DMA kelimesindeki harfleri içerdiği için seçtim. Neden 64 oldğunu söylemeye gerek yok sanırım. Bu projenin ilk başalngıç aşamasını aşağıdaki linkte bulabilirsiniz. İlk denemler başarılı olunca konuyu bir proje haline getirmeyi ve gelişmeleri burada yazmayı uygun gördüm. http://www.commodore.gen.tr/forum/index.php?topic=11161 (http://www.commodore.gen.tr/forum/index.php?topic=11161) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 24, 2015, 01:06:49 ÖÖ Öncelikle devre şemasını finalize ediyoruz. Bu versiyonda tüm C64 zamanlama, DMA giriş çıkış, adres latch OE gibi kritik işler için bir CPLD kullanmayı düşündüm. Sol üstteki entegre ATF1504 CPLD. Sol alttaki iki entegre ise adres latchleri. Bu sayede PIC C64'ten izole olacak ve daha üst seviye flash yada SD kart okuma, yazma, PC haberleşmesi ve benzeri işlerle zamanlama kriterlerine takılmadan ilgilenebilecek. C64 ile DMA üzerinden bilgi paylaşması gerektiğinde bunu CPLD'den rica edecek. CPLD, C64 ün müsait olduğu ilk anda araya girerek bu zamanlama kritik işlemleri gerçekleştirecek. Yani bir nevi trafik polisi gibi davranarak, trafik uygun olduğunda PIC'e yol verecek. (http://oi61.tinypic.com/2d2c3uw.jpg) Baskı devre tasarımı neredeyse tamam. Gene bu ilk PCB yi kendim elde basacağımdan, olabildiğince az via kullanmaya çalıştım. Ve viaları da entegreler altında kalmayacak şekilde yerleştirdim. Ayrıca 12mil den ince yol çizmedim. (http://oi62.tinypic.com/b8wqk0.jpg) İlk olarak PCB'nin bir yüzünü beyaz kağıda çıktı alıyoruz. Daha sonra baskının denk geldiği bölüme mavi transfer kağıdı yerleştirerek tekrar baskı alıyoruz. Bu sayede transfer kağıdını gerğinden fazla harcamamış oluyorum. İki yüz için de baskı alıyoruz. Ön yüzü mirrored baskı almamız gerekiyor. (http://oi58.tinypic.com/n2zy0w.jpg) (http://oi58.tinypic.com/xagpc.jpg) (http://oi62.tinypic.com/iypvls.jpg) (http://oi59.tinypic.com/11b2ovr.jpg) Daha sonra çift taraflı PCB'mizi yaklaşık boyutlarda biraz pay bırakacak şekilde kesiyoruz. (http://oi60.tinypic.com/2meookm.jpg) Bu noktadan sonra PCB'yi çok iyi temizlemek gerekiyor. Üzerinde hiç yağ kalmamalı. Temizlği su sabun ve scotch brite kullanarak yapıyorum. Yıkama sonrasında kart üzerinde sürekli halde ince bir su tabakası kalıyor ise kart iyi temizlenmiştir. Bu temizlik kısmı çok önemli zira yeterince temiz olmaz ise transfer iyi olmuyor. (http://oi60.tinypic.com/neahwn.jpg) Yüzlerden bir tanesini dikkatlice ütü ile transfer ediyoruz. Öncelikle trasfer kağıdı ile ütü arasına kağıt havlu koyuyuorum. Bu sayede bir anda ısınan kağıt büzüşüp ölçülerde bozulmaya neden olmuyor. Kullandığım ütüde uygun sıcaklığı en üst kademenin bir alt kademesinde elde ediyorum. (http://oi59.tinypic.com/2yx20qv.jpg) (http://oi62.tinypic.com/2wqbl3l.jpg) İlk yüzün transfer işlemi tamam. KAğıdı kesinlikle çekerek çıkartmıyoruz. Akan soğuk altında kendi kendine düşmesini sağlıyorum. Su sayede herhangi bir bozulma olmuyor. (http://oi60.tinypic.com/98u9sg.jpg) Görüldiği üzere transfer kağısında siyah yol olan tüm yerler artık şeffaf. Bu tüm yolların düzgün bir şekilde PCB ye aktarıldığını gösteriyor. (http://oi59.tinypic.com/2uf9g0n.jpg) Şimdi arka yüzü hizalamak için karşı köşelerde olmak üzere en az iki tane refeans deliği delmemiz gerekiyor. Bu pCB için 3 farklı köşede 3 farklı referans deliği açıyorum. Kullandığım uç 0.5 mm. (http://oi58.tinypic.com/20hxa9t.jpg) Diğer yüz baskısını ütülemeye başlamadan önce, kağıt üzerindeki referans deliklerini iğne ile deliyoruz, ve PCB üzerindeki deliklerle gene iğne vb yardımı ile hizalıyoruz. (http://oi60.tinypic.com/10i7x52.jpg) Bu yüzün baskısı da tamam. Merak edilen konu delikler denk geldi mi? Ama önce asit banyosunda sıra. (http://oi58.tinypic.com/2zf8i2v.jpg) Banyo öncesi PCB'yi bir miktar daha traşlıyorum. Zira fazla bakır olması asit çözeltisini çok çabuk doyuma ulaştırıyor ve işlem daha uzun sürüyor. Kartın asit içinde çok kalmasını sevmiyorum. Bitmiş PCB kalitesi düşüyor. (http://oi57.tinypic.com/2089n9j.jpg) Asit banyosu tamamlandı. Çözelti olarak %50 tuzruhu (Hidroklorik asit), %50 perhidrol (hidrojen peroksit) kullanıyorum. Bu boyda bir PCB'nin çözülmesi yaklaşık 1dakika sürüyor. Daha önce dediğim gibi işlemin hızlı olması deneyimlediğim kadarı ile daha kaliteli çıktı almamı sağlıyor. Banyo sırasında çıkan gaz tehlikeli, solunmamalı. (http://oi57.tinypic.com/2liu3d1.jpg) İnce bir zımpara ile transfer kalıntıları temizleniyor. Elimde en ince 320 olduğundan kullanamadım. Bu zımpara yollara da zarar verebilirdi. Bu sebeple gene yeşil scotch brite ile temizledim. Uzun sürdü ama sonuçtan memnunum. Tüm delikler 0.5mm ile delindi. Sonuç güzel, yüzleri tam hizalayabilmişim. Bir kaç delikte kayıklık var ama delerken elim titrediği için oldu, bir zarar yok. (http://oi62.tinypic.com/2lks07l.jpg) (http://oi60.tinypic.com/2n6eu76.jpg) Şimdi sırada fakir adamın via yapması var. Delik içi kaplama yapacak tehcizatım olmadığı için, via lara direnç bacağı lehimliyorum. Diğer taraftan karşılık lehimini atıp, fazlalıkları kesince via oluyor. Ama bu işi entegrelerin altında yapmak zor, zaten o sebeple tüm viaları boş alanlara yerleştirmiştim. (http://oi59.tinypic.com/2qajuoi.jpg) Tüm vialar tamamlandı. Yaklaşık 100'e yakın via attım. Halbuki az via kullanmak için tasarım esnasında özellikle çapa sarf etmiştim. (http://oi62.tinypic.com/2a4u9l2.jpg) Tüm pasif komponentler lehimlendi. Elektriksel kontroller yapıldı. Kısa devre ve açık devre yok. :) (http://oi57.tinypic.com/im2hhv.jpg) Bu ucube kartı C64'e takmak cesaret ister ama zaten C64 arge için ayrılmış olduğundan korkmadan takıyorum. Birşey olmasını beklemiyorum. Kısa devre olmasın, C64 normal çalışsın yeter. Beklediğim gibi herhangi bir sorun yok C64 normal çalışıyor. (http://oi61.tinypic.com/k4ds1y.jpg) İlk aktif elamanı, PIC'i taktım. Zaten PIC ile C64 şu an için besleme dışında hiç bir bağlantısı yok. CPLD ve LAtchler henüz takılmadı. (http://oi61.tinypic.com/140j890.jpg) Basit bir program atıyorum PIC'e. Mavi Led'imiz yanıp sönüyor. (http://oi62.tinypic.com/nwfrtc.jpg) Şimdi CPLD eklendi artık devreye. CPLD doğrudan C64 Bus'a bağlı olduğu için denemeleri artık C64 dışında yapacağız. Önce CPLD'ye basit bir lojik atıp test etmeli. (http://oi58.tinypic.com/a2ez4g.jpg) Elimde ATF1504'ü progrmalayacak bir JTAG programlayıcı yok. Zaten bu CPLD'yi de en son 5-6 yıl önce kullanmıştım. Tek hatırladığım LPT tabanlı basit bir programlayıcı yaptığım dı. Nete bakıyorum bir çok kablo şeması mevcut. Atmel, ByteBlater vb... Bir tanesini hızlıca yapıyorum. (http://oi59.tinypic.com/2cmoxld.jpg) MAlesef günün geri kalanında ne yaptıysam CPLD'yi gördüremedim. Bir çok kablo denedim, hiçbiri başarılı olmadı. Elimde XP çalışan ve LPT portu olan tek bilgisayar var. Ancak şüphelendiğim konu, o bilgisayardaki LPT port da PCI kart ile takılmış. Yani adres 0378 vb değil, CD00... Acaba bu sebepten mi çalıştıramadım hiçbir kabloyu bilmiyorum. Şimdi birtek bu proje için USB JTAG programlayıcı da almak istemiyorum. Konuyu biraz araştırıp, ilk fırsatta belki üzerinde native LPT olan bir board ile XP kurararak yeniden deneyeceğim... Şimdilik bu kadar, Herkese iyi bayramlar. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: asit üzerinde Eylül 24, 2015, 01:55:30 ÖÖ Elinize sağlık güzel bir çalışma olmuş sonunu merakla bekliyorum
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 24, 2015, 01:57:39 ÖÖ Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 24, 2015, 02:54:05 ÖÖ Yok
Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize :) Yok daha sona cok var. :) Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Eylül 24, 2015, 09:15:33 ÖÖ Vakit bulunca ayrıntılı okuyacağım ama fotoğraflar çok güzel görünüyor. Ellerine, emeğine sağlık. Benim projeler bunun ve i_r_on'un projelerinin yanında oyuncak gibi kaldı. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: AmigaFUN üzerinde Eylül 24, 2015, 10:03:40 ÖÖ Bir nefeste okudum. Konsept oluşturma, tasarım ve prototip imalatı, sitemizde bu işleri kotarabilen birkaç kişiden birisiniz. Maaşallah diyelim :) Merak ettim, uzmanlığınız nedir?
Not: İsim mükemmel durmuş. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Eylül 24, 2015, 11:50:24 ÖÖ şimdiye kadar yapılan projeler arasında en beğendiğim ve en çok işe yarar proje üzerine eğer koyabilirsen sd karttan oyun yükleme imkanıda ekle 4 başı mağrur 10 numara 5 yıldız c64 projesi olur bence.
ayrıca kart yapma tekniğin güzelmiş çok kaliteli olmasada ben pratikliğe çok önem veririm yani kartı 1 yılda basmak benim açımdan çokta önemli değil pratik olması daha önemli. çift taraflı baskılı devrelerde matbacıların kulandığı bir hizalama tekniği mevcut bana eskiden matbacılık yapan emekli bir öğretmen abimiz anlatmıştı ve çokta güzel işime yaramıştı anlatıncıya kadar yarım saat uğraşıp göstermişti nerdeyse anlat öğret desen yapamam ama araştırırsan böyle bir teknik mebvcut bilgine. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Eylül 24, 2015, 12:35:16 ÖS delimawi çok güzel bir proje, çok kısa bir sürede geliştirmiş olman takdire değer, emeğine sağlık. Prototip yapma aşamasında verdiğin bilgiler için teşekkürler, board çizimini bastırmak için hangi marka ve model yazıcı kullanıyorsun merak ettim. Başka bir yerde yazdın mı bilmiyorum, ama c64'e transfer ettiğin oyunu çalıştırmak için 6510'u nasıl yönlendireceksin? Kolay gelsin.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hakkan üzerinde Eylül 24, 2015, 13:48:48 ÖS Harika bir proje, süper bir hırs ve yetenek, bravo gerçekten. Ülkemizde böylesine yetenekler olduğunu görmek gurur veriyor. Projenin devamını ve en kısa zamanda finalini merakla bekliyoruz...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: KNG üzerinde Eylül 24, 2015, 14:15:16 ÖS Tebrikler, çalışmanız mükemmel, bence kutulu nihai ürün olarak satışa çıkarırsanız talep olacaktır.
Ben de uğraşmak istiyorum projelerle ama iş yerindeki yoğunluk, çocuklar ve doktoradan zaman bulamıyorum, tekrar tebrik ederim çok başarılı çalışma oluyor. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 24, 2015, 16:19:08 ÖS Yok daha sona cok var. :) Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p Hiç fikrim yok valla. CPLD ve FPGA dev board'lar aliexpress'te hala wish list'imde duruyor :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: F_P_G_A üzerinde Eylül 24, 2015, 17:06:37 ÖS Yok Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize :) Yok daha sona cok var. :) Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p Selamlar, çalışmanızı merakla izleyeceğim çok güzel görünüyor. PCB oldukça temiz çıkmış. 7-8 yıl önceye kadar Pozitif20, photosensitive film, ütü-kuşe kağıt gibi şeyler kullanarak kartlar yaptım ama 0.50mm pitch'e çok nadiren inebilmiştim. Sizin TQFP kılıftaki chipler 0.50mm veya 0.65mm sanırım. Gayet güzel. Epey uzun zamandır bu yöntemlerle üretilebilecek yoğunlukta PCB tasarlamadığım için bunları görmek beni o günlere geri götürdü. Ek: PCB'nizin oksitlenmemesi için, üzerine monte edeceğiniz SMD malzemelerde soğuk lehim vs sorunları yaşamamak için, montaja başlamadan önce bütün kartı lehimle kaplayabilirsiniz. Bunun için sıvı flux + normal lehim + havya kullanabileceğiniz gibi, varsa ufak bir lehim potası da kullanabilirsiniz. Kartı flux kapladıktan sonra potaya sokup çıkarmak yeterli olacaktır. CPLD konusuna gelince, programmable logic için Xilinx serisi FPGA ve CPLD'ler kullanıyorum. Üretimde genelde bunlara sizin yaptığınız gibi bir JTAG konnektörü bırakıyoruz. Ancak bu konnektörü sadece genelde ya hiç kullanmıyoruz ya da üretimde bir kez kullanıyoruz. Güncellemeleri cihazların gövdelerini sökmeden yapmak için veya uzaktan güncelleme yapabilmek için dış dünya ile bağlantısı olan Host CPU'nun GPIO pinlerini de bu JTAG pinlerine bağlayarak, CPU üzerinde bir host JTAG emulasyonu yapıyoruz. FPGA'lerin binary dosyalarını eskiden XC18 serisi configuration ROM'larda saklardık ancak yıllardır host CPU ile paylaşımlı kullanılan Serial Flash'larda saklıyoruz. Bu konfigürasyonda SPI üzerinden flash memory programlama kadar basit oluyor. Ancak CPLD'lerin (Xilinx XC95144, Coolrunner vs) dahili flash'ları için yukarıdaki gibi bir şey yapıyoruz. Atmel'den sadece FPSLIC diye bir seri kullanmıştım, onunla da üretime gitmedik. Pek hoşuma gitmemişti zaten. PIC18F45K22'de USB var mıymış diye baktım hemen, olsaydı hemen yukarıda anlattığım şekilde denemenizi önerirdim ama yokmuş. PIC18F45K22'de 32KB flash varmış. ATF1504 ne yoğunlukta bir CPLD bilmiyorum ama configuration dosyası bu flash'a sığıyorsa ICSP ile MCU'yu programlarken configuration dosyasını da PIC18F45K22'a atıp oradan JTAG pinlerine bağlayacağınız jumperlar ile CPLD'yi konfigüre edebilirsiniz belki ama asıl amaç Doberman-64'ü çalıştırmak, böyle detaylarda kaybolmanızı istemeyiz. O yüzden elinizdeki paralel port programlayıcıyı tekrar çalışır hale getirmek en kestirme yol olacak herhalde. TCK pininde JTAG clock sinyalini görebiliyor musunuz? Bizim en sık karşılaştığımız sorun dalgınlıkta TDI ve TDO pinlerinin ters bağlanması oluyor bu arada. Ama sanırım onu çoktan kontrol etmişsinizdir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Eylül 24, 2015, 18:19:38 ÖS Keyifli bir proje daha :D
Elinize sağlık. Sonunu bende herkes gibi bekliyorum ;) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 24, 2015, 23:32:17 ÖS Vakit bulunca ayrıntılı okuyacağım ama fotoğraflar çok güzel görünüyor. Ellerine, emeğine sağlık. Benim projeler bunun ve i_r_on'un projelerinin yanında oyuncak gibi kaldı. :) Olur mu ne demek. Daha önce bir yerlerde yazmıştım, esasen C64 için planladığım FPGA tabanlı iki ayrı proje var. Birisi bire bir SD kart ile çalışan 1541 emulatoru, ama SD2IEC gibi değil, tam uyumlu olacak bir proje. Ultimate-II yada Chameleon gibi. Ama onlar kadar kapsamlı ve karışık değil, sadece tam uyumlu ve olabildiğince sade bir tasarım. IEC portuna gerçek bir 1541 gibi takılacak vb. Bir de gene FPGA tabanlı komple C64 redesign yapmak istiyorum. Aslında DTV gibi ama adres ve data bus da erişilebilir olacak. Yani gerektiğinde gerçek SID, C64 klavyesi, alası diğer donanımlar ve hatta gerçek kartuşlar da takılabilecek. Bu iki projenin de aslında benim için hobi, C64'ü hatırlamak, derinlerine inmek, bir anlamda teknolojik nostalji yapmaktan öte bir faydası yok. Belki bir miktar VHDL'imi geliştirme fırsatı bulacağım. 37 yaşındayım, en az 15 yıldır C64'ümü çalıştırmamıştım bile, bu sene DTV ararken bu forumu buldum, çok da mutlu oldum o yıllara dair anıları canlı tutmak isteyen kişilerin olduğunu öğrenince. Özetle, sizlerin kartuş projeleri sayesinde Doberman-64 için heveslendim ve başladım. İlk başta PIC tabanlı kartuş emulatörü yapacaktım ama teknik olarak PIC yeterli gelmeyince kendimi DMA ile cebelleşirken buldum, umarım projeyi tamamlayabilirim. Bu sayede belki diğer arkadaşlara da bir yararım dokunmuş olur. Bir nefeste okudum. Konsept oluşturma, tasarım ve prototip imalatı, sitemizde bu işleri kotarabilen birkaç kişiden birisiniz. Maaşallah diyelim :) Merak ettim, uzmanlığınız nedir? Selam, Endüstri ürünleri tasarımı okudum. Ama küçüklüğümden beri bilgisayar yazılım ve elektronik ile ilgileniyorum. Meslek hayatıma ilk başladığımda, Win 3.1 zamanlarıydı, uzun yıllar PC için yazılım geliştirme ile ilgilendim. Elektronik benim için bu süre zarfında hobi olarak kalmıştı. Yıllar sonra imkanlar oluşunca elektronik ürünler de geliştiren küçük bir tasarım şirket kurdum ve hala devam ediyorum. (Bana sorulduğunda genelde 'fason ARGE' yaptığımı söylüyorum.) Yani kısaca gerçek hayatımda da elektronik ürün tasarımı, gömülü yazılımlar ve gerektiği sürece, PC ve mobil yazılım geliştirme ile ilgileniyorum. çift taraflı baskılı devrelerde matbacıların kulandığı bir hizalama tekniği mevcut bana eskiden matbacılık yapan emekli bir öğretmen abimiz anlatmıştı ve çokta güzel işime yaramıştı anlatıncıya kadar yarım saat uğraşıp göstermişti nerdeyse anlat öğret desen yapamam ama araştırırsan böyle bir teknik mebvcut bilgine. Açıkçası bu hobi projesi olduğu ve özellikle eski günlere dönmek istediğim için elle basılacak şekilde tasarladım. Gündelik yaptığım tasarımlarda artık neredeyse hiç el ile baskı yapmıyorum. Zaten günümüzün teknolojisi buna da pek olanak tanımıyor. BGA entegreler, 10 mil yol aralıkları vb elle basılacak gibi değil. Ama bu yöntemi de merak ettim, araştıracağım. Teşekkürler. delimawi çok güzel bir proje, çok kısa bir sürede geliştirmiş olman takdire değer, emeğine sağlık. Prototip yapma aşamasında verdiğin bilgiler için teşekkürler, board çizimini bastırmak için hangi marka ve model yazıcı kullanıyorsun merak ettim. Başka bir yerde yazdın mı bilmiyorum, ama c64'e transfer ettiğin oyunu çalıştırmak için 6510'u nasıl yönlendireceksin? Kolay gelsin. Samsung SCX-4623 all in one laser printer ile bastım. Ama laser olduktan sonra hepsi benzer sonuçlar veriyor sanırım. Yani daha önceleri birçok farklı marka ile de başarılı sonuçlar aldım. Programların nasıl çalıştırılabileceğini i_r_on ile bir miktar tartışabilmiştik. Şu an için ben de tam olarak emin değilim, öncelikle DMA transfer işini çözmeye odaklandım, nasılsa bir şekilde çalıştırırım diye. Bu konuda önerbileceğin fikir varsa seve seve kabul ederim. Zira daha o konuya detaylı kafa patlatmadım. Daha önce i_R_on önermişti sanırım, aslında DMA işleminin son byte transferi biter bitmez gene aynı DMA içerisinde RASTER interrupt kurularak belli bir koda dallanılması sağlanabilir belki. Harika bir proje, süper bir hırs ve yetenek, bravo gerçekten. Ülkemizde böylesine yetenekler olduğunu görmek gurur veriyor. Projenin devamını ve en kısa zamanda finalini merakla bekliyoruz... Teşekkürler, umarım proje başarılı olur. Açıkçası proje ile ilgilnen insların olduğunu görmek çok güzel bir duygu. Her ne kadar bir çok kişi için boş bir işle uğraşıyor bile olsam, destekleyen sesleri duymak güç veriyor. Boş bir iş derken de, açıkçası 80 lerin teknolojisi ile yapılmış, neredeyse çoktan unutulmuş bir makine için donanım geliştirmek, hem de hiç bir ticari amaç gütmeden buna saatler, günler harcamak, akıl sağlığı yerinde olan ve analitik düşünebilen bir başka insana anlatılabilir bir olay değil ve aslında hiç bir savunulur tarafı da yok. :D Tebrikler, çalışmanız mükemmel, bence kutulu nihai ürün olarak satışa çıkarırsanız talep olacaktır. Ben de uğraşmak istiyorum projelerle ama iş yerindeki yoğunluk, çocuklar ve doktoradan zaman bulamıyorum, tekrar tebrik ederim çok başarılı çalışma oluyor. Teşekkür ederim. Bu proje sanırım hiç bir zaman bir kutu içerisine girip satılacak bir ürün olmayacak. Eğer başarılı bir şekilde sona gelirsek belki PCB bastırır buradan arkadaşlara dağıtırız. Zaten bilgi herkese açık, kaynak kod ve compiled binary'leri de istek olursa gene buradan yayınlarız, hepsi bu. Selamlar, çalışmanızı merakla izleyeceğim çok güzel görünüyor. PCB oldukça temiz çıkmış. 7-8 yıl önceye kadar Pozitif20, photosensitive film, ütü-kuşe kağıt gibi şeyler kullanarak kartlar yaptım ama 0.50mm pitch'e çok nadiren inebilmiştim. Sizin TQFP kılıftaki chipler 0.50mm veya 0.65mm sanırım. Gayet güzel. Epey uzun zamandır bu yöntemlerle üretilebilecek yoğunlukta PCB tasarlamadığım için bunları görmek beni o günlere geri götürdü. Açıkçası ben de çok nadir elde baskı yapıyorum. Genelde tüm ticari işler eğer 2 layer ise yerli imalat, 4 layer ise yurt dışı imalat olacak şekilde çıkıyor. Ek: PCB'nizin oksitlenmemesi için, üzerine monte edeceğiniz SMD malzemelerde soğuk lehim vs sorunları yaşamamak için, montaja başlamadan önce bütün kartı lehimle kaplayabilirsiniz. Bunun için sıvı flux + normal lehim + havya kullanabileceğiniz gibi, varsa ufak bir lehim potası da kullanabilirsiniz. Kartı flux kapladıktan sonra potaya sokup çıkarmak yeterli olacaktır. Evet haklısınız, ama potam yok. Normal lehim teli içerisindeki pastayı da çok sevmiyorum. Aslında kalayla kaplanabilse ne güzel olur. Ben dün PCB'yi yaparken CPLD'de problem yaşayacağımı tahmin etmemiştim. Tüm dizilecek herşey başlandığı gibi biter diye okitlenmeye karşı önlem almamıştım malsef. :/ CPLD konusuna gelince, programmable logic için Xilinx serisi FPGA ve CPLD'ler kullanıyorum. Üretimde genelde bunlara sizin yaptığınız gibi bir JTAG konnektörü bırakıyoruz. Ancak bu konnektörü sadece genelde ya hiç kullanmıyoruz ya da üretimde bir kez kullanıyoruz. Güncellemeleri cihazların gövdelerini sökmeden yapmak için veya uzaktan güncelleme yapabilmek için dış dünya ile bağlantısı olan Host CPU'nun GPIO pinlerini de bu JTAG pinlerine bağlayarak, CPU üzerinde bir host JTAG emulasyonu yapıyoruz. FPGA'lerin binary dosyalarını eskiden XC18 serisi configuration ROM'larda saklardık ancak yıllardır host CPU ile paylaşımlı kullanılan Serial Flash'larda saklıyoruz. Bu konfigürasyonda SPI üzerinden flash memory programlama kadar basit oluyor. Ancak CPLD'lerin (Xilinx XC95144, Coolrunner vs) dahili flash'ları için yukarıdaki gibi bir şey yapıyoruz. Atmel'den sadece FPSLIC diye bir seri kullanmıştım, onunla da üretime gitmedik. Pek hoşuma gitmemişti zaten. PIC18F45K22'de USB var mıymış diye baktım hemen, olsaydı hemen yukarıda anlattığım şekilde denemenizi önerirdim ama yokmuş. PIC18F45K22'de 32KB flash varmış. ATF1504 ne yoğunlukta bir CPLD bilmiyorum ama configuration dosyası bu flash'a sığıyorsa ICSP ile MCU'yu programlarken configuration dosyasını da PIC18F45K22'a atıp oradan JTAG pinlerine bağlayacağınız jumperlar ile CPLD'yi konfigüre edebilirsiniz belki ama asıl amaç Doberman-64'ü çalıştırmak, böyle detaylarda kaybolmanızı istemeyiz. O yüzden elinizdeki paralel port programlayıcıyı tekrar çalışır hale getirmek en kestirme yol olacak herhalde. TCK pininde JTAG clock sinyalini görebiliyor musunuz? Bizim en sık karşılaştığımız sorun dalgınlıkta TDI ve TDO pinlerinin ters bağlanması oluyor bu arada. Ama sanırım onu çoktan kontrol etmişsinizdir. CPLD programlama için açıkçası JTAG pinlerini keşke PIC'e bağlamış olsaydım diye geçirdim içimden. Ama bir yandan da dediğiniz gibi seri üretilecek bir donanım değil, bir tane elde üretiyorum, programlar geçerim diye düşündüm. Ayrıca dün başarısız olunca kafamda iki olasılık vardı. Ya USB-JTAG alacaktım. Ama yurtdışından tedarik beklemek gerekecek, yada native LPT portu olan bir PC bulacaktım. Şimdilik ikinci yöntemi tercih ediyorum. Ofiste duran bir board var ona hızlıca XP kurulum yapıp deneyeceğim. JTAG ile jedec dosyasının CPLD ye nasıl atıldığı konusunda en ufak bir bilgim yok. Aslında spi flash yazmak gibi basit bir protokol ise denenebilir. HAtta dışarıdan gene ayrı bir pic ile bir programlayıcı bile yapılabilir sorun yok. Ama dahili PIC kullanılacak olsa bile, USB olmaması bir kısıt değil zira Doberman-64 üzerinde TTL seviye bir RX/TX mevcut. Bunu FTDI üzerinde PC USB prota bağlayabilirim ve zaten bu şekilde bağlayarak ileriki günlerde denemeler ve data aktarımları da yapmayı planlıyorum. TDI ve TDO yu dediğiniz gibi ters çevirip de denedim ama zaten LTP üzerinde 2,3,4.. vb olmayan diğer ayrık olan pin genelde LPT tarafına giriş pini. Buradan emin olabiliyorum. TCK da bir clock göreceğimi ben de tahmin ettim ama protkolü bilmediğim için bunu bir anlamı yoktu, hiç kontrol etmedim. Yani Clock üretmeye başlamadan önce bir şekilde orada bir cihaz var mı yok mu detect etmeye çalışmak gibi bir algoritma yada yöntemi olabilir belki diye düşündüm. İlgi ve desteğiniz içi teşekkür ederim herkese. Fırsat bulabilir ve CPLD kısmını atlatabilirsem gene gelişmeleri yazıyor olacağım. Hatta mümkün olduğunca teknik bilgileri de paylaşacağım. İyi akşamlar... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: F_P_G_A üzerinde Eylül 24, 2015, 23:43:31 ÖS Alıntı TDI ve TDO yu dediğiniz gibi ters çevirip de denedim ama zaten LTP üzerinde 2,3,4.. vb olmayan diğer ayrık olan pin genelde LPT tarafına giriş pini. Buradan emin olabiliyorum. TCK da bir clock göreceğimi ben de tahmin ettim ama protkolü bilmediğim için bunu bir anlamı yoktu, hiç kontrol etmedim. Yani Clock üretmeye başlamadan önce bir şekilde orada bir cihaz var mı yok mu detect etmeye çalışmak gibi bir algoritma yada yöntemi olabilir belki diye düşündüm. Configuration tool'u (sizin durumda PC'de çalışan tool) önce cihazın JEDEC ID kodunu okumak isteyecektir. Bunun için TCK'da clock sinyali ve TDI'da (evet bu kafa karıştırıcı oluyor, slave cihazın data input pini) JEDEC ID okuma komutu datası oluşmalı. Aynı zamanda da TDO'da JEDEC ID'si çıkacaktır. Programmer-> Device Under Test ->Programmer gibi bir chain aslında JTAG. Ve evet SPI gibi düşünebilirsiniz. En azından PC'de çalıştırdığınız tool'un porta fiziksel olarak erişebildiğinden emin olmuş olursunuz. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 25, 2015, 00:00:42 ÖÖ O zaman TCK sinyalini kontrol ederim tabiki. Bu fikir verecektir.
Gerçi benim demek istediğim aşağıdaki şemaya bakacak olursanız mesela, bir transistor ile karşıda power-on durumunda bir devre var mı kontrol ediyor sanki LPT üzerinden. Bu sinyali almadığı sürece hiç ID okuma ve dolayısı ile TCK üretmeden belki de hatayı çakıyordur emin olamam diye bakmadım bile bu hatlara... (http://www.savel.org/stuff/altera.png) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Eylül 25, 2015, 01:07:45 ÖÖ Bu tarz projeler beni aşıyor olsa da başlığı baştan sona büyük bir ilgiyle okudum, fikir olarak gerçekten de çok çok iyi bir proje bu. Sonucunu da merakla bekliyor olacağım. Kolay gelsin delimawi :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: F_P_G_A üzerinde Eylül 25, 2015, 17:27:11 ÖS Benim de seneler once bastirdigim Byteblaster kartlari bir yerlerde olacak. Altera'nin serisini hatirlamadigim 84pin PLCC kiliftaki FPGAlerini programlamak icin kullaniyordum. Hafta ici bakacagim. Bulabilirsem ve sizdeki karttaki sorun cozulmemis olursa size gonderirim. Ulvi bir ise yaramis olurlar.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 25, 2015, 23:49:15 ÖS Merhaba,
Bugün CPLD'yi programlayabilmek için diğer PC yi bir güzel kurup, WinXP yükledim. Günün yarısı driverlar, güncellemeler vb ile geçti. Herşey bitip de JTAG kablosunu takıp tekrar denediğimde gene çalışmadığını gördüm. :/ En sonunda LPT konnektörünün bozuk olduğuna karar verip değiştirmeye karar verdim ve o anda farkettim ki, konnektör üzerindeki numaraları ters taraftan lehimlemişim. Yani önceki gün ve bugünümün yarsını boşa harcamış oldum. Neyse kabloyu düzeltince CPLD gayet güzel programlandı. Zamanlama, Phi2 senkronizasyonu, DMA giriş çıkış vb tüm kritik işleri CPLD içerisinde bitirmek istiyorum. Bu bağlamda CPLD tarafına aşağıdaki işleri yıkmayı planlamış durumdayım: 1-Doğru zamanda DMA'ya giriş. 2-Doğru zamanda DMA'dan çıkış. 3-Doğru zamanda R/W, Adress Enable edilerek C64'e byte yazma (poke) 4-Doğru zamanda R/W, Adress Enable edilerek C64'den byte okuma (peek) 5-C64' Reset atma Hatta Phi2 ve BA gibi sinyalleri bile hiç PIC tarafına taşımamaya karar verdim. Şu şekilde çalışacak; - PIC DMA başlatmak istediğinde 'DMA Request' pinini kaldıracak. - CPLD uygun zamanı bekleyerek DMA başlatacak ve DMA'nın başlamış olduğunu PIC'e IN_DMA pini ile bildirecek. - PIC Adres latchlerine yazmak yada okuma istediği adresi strobe edecek. Ama latch outputlar CPLD tarafından kontrol edildiğinden C64 tarafına henüz giden birşey yok. - PIC hazır olduğunda yazmak istediği DATA'yı bus'a koyarak, 'WR Request' pinini kaldıracak. - CPLD komutu aldığını 'WR Busy' pini ile PIC'e bildirecek. - CPLD ilk uygun zamanda Phi2 ile senkronize olarak işlemi yerine getirecek ve sonra 'WR Busy' pinini tekrar low yapacak. - PIC bu sayede işlemin bittiğini anlayacak ve varsa sonraki işlemi request edecek vb... Çok fazla detaya girmeden bu sistemin nasıl işlediğini gösteren bir kaç foto: CPLD içerisinde Flip-Flop lar ile küçük bir timer yaptım. Bu sayede BA sinyali low'a düştükten sonra 3 cycle daha sayıp, gerçekten güvenli olarak DMA başlatılabilecek zamanı belirliyor. Aşağıdaki foto da en altta görülen sinyal bu. (http://i60.tinypic.com/10ydqiq.jpg) Burada da DMA ya giriş prosedürü görülüyor. PIC yeşil sinyal ile, herhangi bir zamanda DMA Request ediyor. CPLD ilk uygun zamanı (BadLine+3Cycle) bekliyor ve gerçek DMA'yı başlatıyor. (Sarı Sinyal). DMA'dan çıkarken de benzer bir mantık var. Aynı şekilde bir sonraki Bad Line beklenio DMA kapatılıyor. Fotoda ayrıca iki Bad Line arasında DMA açık iken, 6510 AEC hattının hep low da kaldığı görülebiliyor. Yani kontrol bu aralıkta tamamen PIC'te. (http://i61.tinypic.com/2licw1i.jpg) Burada da DMA ile C64'e bilgi aktarılması görülüyor. PIC yeşil sinyalde görüleceği üzere herhangi bir yere senkronize olmadan WR Request yapıyor. CPLD mavi ile görülen BUSY sinyalini kaldırıyor. PIC Bekliyor. İlk uygun zamanda Phi2 high iken işlemi yapıyor ve BUSY sinyalini tekrar indiriyor. (http://i61.tinypic.com/10gcn4p.jpg) İşlemlerin sonucu aşağıdaki fotoda. Burada DMA ile gene ekran rengi değiştirme işini test ediyorum. Gayet başarılı şimdilik. Dikkat edilirse DMA sadece Bad Line olan satırlda gerçekleşiyor. Ekranın üst ve alt kısmında DMA başlatılamıyor. Ayrıca her bir karakter satırının ilk raster hattında DMA olduğundan, çizgiler 8 pixel yani bir karakter yüksekliğinde görülüyor. (http://i60.tinypic.com/mkuic2.jpg) Son olarak kartın Latchler de takılmış bugünlük son hali. (http://i57.tinypic.com/2f0dhqp.jpg) CPLD ile DMA giriş çıkış işleri çok güzel oldu, içime sindi. Artık tekrar fırsat bulduğumda CPLD'nin RD ev WR algroitmalarını geliştireceğim. En son olarak karta bir de SPI flash eklenince sona iyice yaklaşmış olacağız... İyi geceler. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: F_P_G_A üzerinde Eylül 26, 2015, 00:03:13 ÖÖ Mukemmel olmus tebrikler :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Levent üzerinde Eylül 26, 2015, 01:04:05 ÖÖ Gözlerim felfecir okudu resmen. Ne güzel imrenilesi işler yapıyorsunuz. Yakında yeni tasarlanmış amiga board, c64 board çıkarırsanız şaşırmam gibi geliyor. Ellerinize sağlık.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: msvstpl üzerinde Eylül 26, 2015, 10:06:52 ÖÖ Tebrikler. DMA duvarını aştınız.
I_ron_n’ un “NoFlash64-Eprom kullanmayan 8k/16k kartuş” projesinde sürükleyerek kenarına kadar getirdiği konuyu siz çözdünüz. DMA’yı geçtikten sonra artık her şey daha ‘kolay’ olacaktır, yada (daha çok) zaman-bağımlı olacaktır. Hepsinden önemlisi artık bundan sonra hiçbirşey eskisi gibi olamayacaktır. İnternet ortamında telif hakları, proje yapıp satma kaygısı.. vb nedenlerle DMA hakkındaki bilgiler dağınık ve sınırlı. Bu forumda şu ana kadar yazılanlar internette olanların derli toplu , anlaşılır çok daha ileri olan hali. Logic analizer’ın sağladığı görsellik (görmeden el ve baston ile yol almaya çalışanların önüne) yepyeni bir pencere , anlama ve düşünme alanı açıyor. DMA için bilgileri özetleyen İngilizce (ve Türkçe) ayrı bir başlık açılması yararlı olur. Projenin ilerleyen sıcaklığında ek bir yük gibi görünsede, başka insanların anlamak için bizim kadar uğraşmayacakları onlara da kolaylık sağlayabilecek bir şekle sokulması faydalı olacaktır. Son 10 gün içinde yazılanlar yüzlerce ingilizce web sayfasının içinde C64 literatürüne şimdiye dek yapılmamış bir katkının bu forum içinde olanaklı olduğunu ve bunun zamanının da geldiğini anlatıyor. Kolay gelsin.. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: KNG üzerinde Eylül 26, 2015, 11:49:14 ÖÖ Tebrikler delimawi, çok güzel çalışma oldu. Forumdan harika projeler çıkıyor, buradan iron, metallic ve simon arkadaşlarımızı da tebrik etmek lazım, forumdaki proje yapma bilinci onların sayesinde çok yukarılara çıktı, bu işlere zaman ayırmak kolay değil.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibeser (Ayak Takımı) üzerinde Eylül 26, 2015, 12:07:56 ÖS Tebrikler. Forumumuz her geçen gün daha da güzel oluyor. Elinize sağlık.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Eylül 26, 2015, 12:12:13 ÖS @delimawi bir yerde "Teşekkürler, umarım proje başarılı olur. Açıkçası proje ile ilgilnen insların olduğunu görmek çok güzel bir duygu. Her ne kadar bir çok kişi için boş bir işle uğraşıyor bile olsam, destekleyen sesleri duymak güç veriyor." yazmışsın...
Ne demek boş işle uğraşmak...Diğer arkadaşların projeleride harika, çok güzel...Ama bu proje hayallerin gerçeğe ulaşacağı bir proje... Anladığım kadarıyla tek parça istediğimiz oyunu, programı tek tıkla çalıştıracağız... Bu harika...Hatta bir de geri kayıttan bahsetmişsin ki, bu da inanılmaz güzel olacak....Sanrım bir oyunu kaldığımız yerden kayıt edip, sonra kaldığımız yerden devam edebileceğiz... Harika...hem anlatım (her ne kadar teknik kapasitem yetmese de), hem fotoğraflar, herşey 10 numara... Bizlerle birlikte olduğun, paylaşımların için çok teşekkürler... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 27, 2015, 00:40:05 ÖÖ Arkadaşlar iyi niyetleriniz için teşekkür ederim.
Bayram bitmeden yarın bir yarım gün daha ayırabileceğim. Artık bir PRG atıp çalıştırabilirsek gerisi gelir. Sonrasında gündelik işlerden kalan zamanlar bu kadar bol olmasa da bir şekilde devam edeceğim projeye. İlgi ve destleriniz için tekrar teşekkürler, Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 27, 2015, 18:12:05 ÖS Merhabalar
Forumdaki projeler içinde en çok bu proje hoşuma gitti. Hem 6510 hem de Z80 bilen biri olarak kafamdaki büyük!! proje için epey katkısı olacak gibi gözüküyor. Proje kısaca şu: C64 donanımını IO bölgesi olarak kullanan Z80 tabanlı bir bilgisayar. CPLD, FPGA vs. konulardan hiç anlamadığım için tüm tasarımı TTL olarak yapmıştım. Doberman-64 6510'u disable ederek okuma-yazma yaptığına göre 6510 yerine başka bir CPU C64 donanımını kullanabilir diye düşünüyorum. Konuyu başından itibaren sadece okuyucu olarak takip ediyorum. C64 çalışırken Doberman-64 tarafından hafızaya atılan bir PRG'nin çalıştırılması konusunda aklıma gelenler şunlar. 1a - JRS $A659 - JMP $A7AE komutlarına karşılık gelen op-code'ları hafızada uygun bir yere yazmak. Mesela tape buffer olabilir. Bahsettiğim komutlar RUN komutuna karşılık gelir. b - opcodeların bulunduğu hafıza bölgesinin adresini yığına atmak 2 - Bir kaç byte ile Klavye buffer kullanarak RUN komutunu vermiş gibi işlem yapmak. 3 - IRQ vektörünü değiştirerek, kısa bir interrupt rutini ile PRG'yi çalıştırmak. $0313'e $3C, $0314'e $03 yazarak IRQ vektörü Tape buffer adresini gösterecek. Tape bufferde ise JSR $A659 - JMP $A7AE komutları olacak. 6510 tekrar çalışmaya başladığında IRQ rutini de devreye gireceğinden bizim komutlar işlenecektir. PRG yüklenecek ve /DMA serbest bırakılacak. Eğer C64'e /RESET sinyali gönderilirse yukarıdaki değişikliklerin hiç bir anlamı kalmaz. Çalıştırma konusunda aklıma gelenler bunlar ama işe yarar mı bilemem. Başlığın ilk mesajında "Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım." demişsin. Burada 6510'un 0-1 adreslerine erişim yaparak tüm hafızayı Ram yapma durumu mu var yoksa 6510 ve PLA?? devreden çıktığı için mi tüm okuma/yazma işlemleri Ram'e ait oluyor. Ayrıca Doberman-64 ile C64'ün IO bölgesine erişmek mümkün değil mi? Kolay gelsin. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Eylül 28, 2015, 07:46:57 ÖÖ @delimawi tebrikler, süper bir çıkartıyorsun. Tabii I_ron_n, Metallic ve Simon'ı da unutmamak gerek. Forumdaki proje sayılarının artması sevindirici bir durum.
Aslında Yavuzg'nin yaptığı arcade tarzı projelerin, forumdaki bu tür projelerin artmasın da çok önemli bir yeri var diyebilirim. ;) @Hades, forumda birbirinden önemli projeler hayata geçmiş durumda. Abi senin rüya projeni de forumca hayata geçirelim diyorum. ;) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 28, 2015, 23:32:56 ÖS Merhabalar,
Bayramın son günü basit bir loader yazmak için kolları sıvadım. Ancak üzerinden geçen bunca yıldan sonra c64 assembly programlama düşündüğüm kadar hızlı sonuç vermedi. Loader'ı istediğim hale getirene kadar bir miktar daha çalışmam gerekiyor. Bunun haricinde, CPLD kısmındaki son detaylar ve ince ayarları bitirdim. Hatta ilk fırsatta CPLD içerisindeki logic mantığı biraz detaylı anlatan bir post atacağım. Gel gelelim, iki gündür 17KB lık bir imajı DMA ile RAM'e atıp çalıştırmak için debeleniyorum ama çalışmıyor... :/ Her seferinde farklı bazı byte'lar bozuk gidiyor. Denemediğim olasılık kalmadı. Artık C64'ün DRAM sinyalleri olan, RAS, CAS vb'yi de problayıp hatanın ne olduğunu anlamaya uğraştım durdum. Sonra madem DMA yapıyorum, her byte'ı attıktan sonra tekrar DMA ile kontrol ederim dedim, ama gene sonuç vermedi. Phi2'den çok şüphelendim. Dalga şekli hiç kare dalgaya benzemiyordu. C64'ün 8MHz civarında olan Dot Clok'unu alıp, bunu CPLD ile işleme tabi tutarak kendi Phi2 sinyalimi ürettim, gene olmadı. Ne yaptıysam transfer sırasında bazı byte'lar bouluyor. Hatta bu akşamüzeri bu DMA işi olmayacak galiba noktasına kadar geldim. Artık o kadar inat ettim ki, mesai gününü tamamen harcayıp daha derinlere indim. Bu sefer data bus üzerindeki her bir biti de problayıp bozulan byte'ı yakalamaya çalıştım. Gerçi bu foto'da aslında problem kabak gibi görünüyormuş ama ben artık o ruh hali ile farkedemedim bile: (http://oi62.tinypic.com/2h5oayh.jpg) Bus üzerinde gidip gelen tüm trafiği incelerken farkettim ki bozulan byte'ların bozulmasında bir mantık var. Şöyle ki bozulan bir byte'ın 6.biti bazen 1 iken 0 olarak RAM'e gidiyor, bazen de 0 iken 1 oluyor: (http://oi61.tinypic.com/2n829s8.jpg) Zaten bir önceki foto'da 6. bitin neredeyse hep 0 seviyesinde olduğu görülüyormuş. (Alttan ikinci sinyal) Hatayı tespit ettikten sonra nedenini bulmaya geldi sıra. CPLD'nin o biti süren bacağı yada içerisindeki MacroCell uçtu herhalde dedim hemen, yeni CPLD lehimlendi. Sonuç aynı. C64 tarafında bir sıkıntı var dedim, 2. bir C64'te denedim. Sonuç aynı. Emin olmak için ilgili bitin yolunu C64 kartuş slotundan kestim. Bu sefer 6. bit hiç 1 olmadı, hep sıfır da kaldı. Hemen büyüteci elime alıp Doberman-64'e yakından bakınca hatayı buldum. Lütfen kırmızı ile işaretlediğim yere bakın. O yolun kalınlığı 12 mil. İşaretli yerde ise kılcal bile denemeyecek bir kesik var. (Tahmin ediyorum 1-2mil kalınlığında bir kesik) (http://oi61.tinypic.com/2cg0jf6.jpg) Bu PCB'yi ilk bastığımda yoktu. Yada bazen temas ediyordu bilemiyorum, zira elektriksel kontrol yapmıştım, ve hata yoktu PCB de. Neyse lafı çok uzatmadan, hemen burayı lehimledim ve sonuç kısa bir video ile aşağıda: W4vKLWhB4UU Uzun lafın kısası, artık PRG atıp çalıştırabiliyorum. Tabi iki gün boşa gitmiş oldu gene. Artık iş loader'ı yazıp bitirmeye kaldı. Son olarak aşağıda 17KB lık imajın yüklenme plot'u var. Yaklaşık 125ms sürüyor ki herhangi bir optimazasyon henüz yapmadım. Örneğin addrh değişmediği sürece sadece addrl 'yi latchlemek yeterli olacak vb... Bu şekilde kaba bir hesapla 64KB yı bile 0.5 sn de yükleyebiliyor olacağız. (http://oi60.tinypic.com/dme00l.jpg) @delimawi tebrikler, süper bir çıkartıyorsun. Tabii I_ron_n, Metallic ve Simon'ı da unutmamak gerek. Forumdaki proje sayılarının artması sevindirici bir durum. Aslında Yavuzg'nin yaptığı arcade tarzı projelerin, forumdaki bu tür projelerin artmasın da çok önemli bir yeri var diyebilirim. ;) joker_, sana aynen katılıyorum. Bir kartuş projesi yapma enerjisini zaten i_r_on ve Simon'dan aldım. Yaparken de resimli olarak anlatıyor olma fikri de Yavuzg'nin arcade kabinleri serisini zevkle okurken oluştu. CPLD, FPGA vs. konulardan hiç anlamadığım için tüm tasarımı TTL olarak yapmıştım. Doberman-64 6510'u disable ederek okuma-yazma yaptığına göre 6510 yerine başka bir CPU C64 donanımını kullanabilir diye düşünüyorum. TTL tasarım yaptığınıza göre bence hiç vakit kaybetmeden tasarımı CPLD'ye taşıyın. Çok rahat edersiniz. Hem de CPLD öğrnemiş olursunuz ki hiç te zor değil aslında. Ben ilk uygun zamanımda Doberman-64 için yaptığım CPLD tasarımını detaylı olarak anlatacağım. Umarım ilginizi çeker. Evet, DMA ile 6510 devre dışı kalıyor, yada duruyor, bekliyor, tüm adres, data ve RW hatlarını siz kullanabiliyorsunuz. Ama tabiki başından beri yazılmış olan VIC ile senkronize olma kısmını atlamamak gerekiyor. Ben ilk mesajımda 6510'u devre dışı bıraktığım anda (DMA açıldığı anda yani), hiç VIC ile falan uğraşmadan kullanacağım sistemi diye düşünüyordum. HAtta ilk sorum da o idi. Ama o kadar basit değilmiş konu. Detayları zaten yazdım... 1a - JRS $A659 - JMP $A7AE komutlarına karşılık gelen op-code'ları hafızada uygun bir yere yazmak. Mesela tape buffer olabilir. Bahsettiğim komutlar RUN komutuna karşılık gelir. b - opcodeların bulunduğu hafıza bölgesinin adresini yığına atmak 2 - Bir kaç byte ile Klavye buffer kullanarak RUN komutunu vermiş gibi işlem yapmak. 3 - IRQ vektörünü değiştirerek, kısa bir interrupt rutini ile PRG'yi çalıştırmak. $0313'e $3C, $0314'e $03 yazarak IRQ vektörü Tape buffer adresini gösterecek. Tape bufferde ise JSR $A659 - JMP $A7AE komutları olacak. 6510 tekrar çalışmaya başladığında IRQ rutini de devreye gireceğinden bizim komutlar işlenecektir. Ben de KERNAL'daki RUN komutunu çağıracak bir kodu orya buraya bir yere koyarak, raster interrupt vectoru ile dallanmayı düşünmüştüm. Daha doğrusu olasılıklardan biriydi. Ama 2. çözüm çok hoşuma gitti. Dedim ya çok uun zaman oldu, klavye buffer'ı olduğunu bile hatırlamıyorum C64 de. Eğer var ise en basit çözüm bu. Bunu deneyeceğim ilk fırsatta. RESET'i ise, transfer başlamadan önce atmayı düşünüyorum, bu sayede transfer öncesinde hafıza temiz olacak, VIC çalışıyor olacak vb herşeyden emin olacağım yani. DMA serbest bırakılınca ikinci bir reset olmayacak. Başlığın ilk mesajında "Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım." demişsin. Burada 6510'un 0-1 adreslerine erişim yaparak tüm hafızayı Ram yapma durumu mu var yoksa 6510 ve PLA?? devreden çıktığı için mi tüm okuma/yazma işlemleri Ram'e ait oluyor. Ayrıca Doberman-64 ile C64'ün IO bölgesine erişmek mümkün değil mi? Malesef sadece 6510 devreden çıkıyor. Yani PLA devrede. Bu sebeple 0 ve 1 adreslerindeki konfig ne ise, o şekilde erişim oluyor. Yani ROM'lar kapatılmış ise, RAM okunuyor ama ROM açık ise ROM okunuyor o adreste. Kısaca 6510 nereyi nasıl görüyor idi ise, DMA anında da o oluyor. Dolayısı ile IO bölgesi konfigürasyona bağlı olarak erişilebilir. Bu konuda benim denemek istediğim bir DMA FREEZE fonksiyonu var. O işlem esnasında bir şekilde örneğin tape buffer a bir kod atıp, 0 ve 1 aderslerinin durumunu da okuyup gerekiyor ise değiştirip DMA yapacağım. 0 ve 1 adreslerine yazılan değerler tamamen 6510 içerisinde yapıldığı için adres ve data busdan o iki adrese erişilemiyor. Sadece 6510 içerisinde çalışacak bir kod ile okunup yazılması mümkün bildiğim kadarı ile. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 00:10:39 ÖÖ Golü insan genelde iyi olduğunu düşündüğü yerden yiyor. Şimdiye kadar bana genelde öyle oldu :) Ben yazılımda iyiyimdir diyorum, donanımda sorunu bulmaya odaklanıyorum, sorun yazılımda çıkıyor :)
Bazen bu son yaşadığın problemde olduğu gibi problem kabak gibi sırıtıyor ancak bizim odak noktası değiştiği için kolayca çözemiyoruz. Güzel gelişmeler var, gayet iyi gidiyor proje. Autorun için tavsiyem hades'in de önerilerinden biri olan kaset buffer'ına yahut stack'in dibine (günün birinde belki lazım olur) küçük bir kod parçası transfer et. Sonra da $0314/$0315'deki IRQ vektörünü buraya işaret et. Makine dili programları destekleyebilmek için pic kodunda yüklenen programın başlangıç adresini kontrol edebilirsin $0801 adresine yükleniyorsa basic programların çalışma şekline göre CLR ve RUN rutinlerini peşpeşe çağırabilirsin, herhangi bir adrese yerleşen makine dili rutini ise doğrudan indirect jump yapabilirsin. Benim devrede işleyiş c64 tarafındaki kodun devreden datayı çekmesi üzerine kurulu olduğu için ben şöyle bir şey kullandım, Kod: LDA DATA_LOW Senin kontrol işini PIC'te yapıp uygun kodu göndermen lazım. Ya da free olan $FB-$FE aralığına yükleme adreslerini gönderirsen oradan da okuyabilirsin. Yalnız iş burada bitmiyor, Interrupt rutinini ele geçirmiş olmak yetmiyor interrupt'a girilmiş olan kodu da dizginlemek lazım. Yani o interrupt'tan çıktığında esas CLR ve RUN'ı yapman lazım. Bu noktada benim bilgim de sınırlı. Benim devrede reset sonrası initialization kısmı kernal'den bağımsız kendi başına olduğu için benim böyle bir sıkıntım olmadı. Buna en yakın olanında da önyüzde koşan kod kendi kodum olduğu için durum sadece idle bekleyen kodu devam ettirme şeklinde oldu. İlk aklıma gelen interrupt'a girildiğinde ilk dönülecek adresi stack üstünde değiştirmek geliyor. Evet sanırım çözüm bu. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 01:34:45 ÖÖ Bu arada DMA ile yapılabilecekler noktasında 1541 Ultimate'in source'larından faydalanabilirsin.
https://xp-dev.com/svn/1541UltimateII/trunk/software/io/c64/c64.cc Senin dokümanda paylaştığın yöntemin kod hali burada var. ps: Kodlardan yanlış anlamadıysam bu vatandaş menüsünü bile DMA ile çiziyor :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 29, 2015, 09:36:00 ÖÖ Bu arada DMA ile yapılabilecekler noktasında 1541 Ultimate'in source'larından faydalanabilirsin. https://xp-dev.com/svn/1541UltimateII/trunk/software/io/c64/c64.cc Senin dokümanda paylaştığın yöntemin kod hali burada var. ps: Kodlardan yanlış anlamadıysam bu vatandaş menüsünü bile DMA ile çiziyor :) Enteresan. Vakit olunca incelemek lazım. Aklımda bir ara onun kodlarına bakmak vardı ama ne zaman olur kim bilir. 2 - Bir kaç byte ile Klavye buffer kullanarak RUN komutunu vermiş gibi işlem yapmak. Çok basit olduğu için bu sabah bunu denedim. Gayet güzel çalıştı. PIC tarafındaki kod aşağıda; void c64_basic_run(void) { c64_start_dma(); c64_poke(631,82); // Keyboard Buffer 0 R c64_poke(632,85); // Keyboard Buffer 1 U c64_poke(633,78); // Keyboard Buffer 2 N c64_poke(634,13); // Keyboard Buffer 3 <RETURN> c64_poke(198,4); // Keyboard Buffer Count c64_stop_dma(); } Ama birşey dikkatimi çekti. Arka arkaya 3 kez çalıştıktıktan sonra bir daha çalışmıyor. Gerçi bu benim için bir sorun değil ama nedenini merak ettim. Acaba bu buffer'a atılan bilgi otomatik olarak işlenince sıfırlanmıyor mu? Keyboard buffer normalde 10 byte sanırım. RETURN gönderince, bir şekilde KERNAL bunu halletmiyor mu ki? Yada bu buffer nasıl bir buffer, başı sonuna bağlı FIFO gibi mi acaba? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Eylül 29, 2015, 10:23:52 ÖÖ AAY-Helpfiles (http://www.the-dreams.de/aay.html)'a göre 10 byte FIFO. ;)
http://unusedino.de/ec64/technical/aay/c64/zpmain.htm (http://unusedino.de/ec64/technical/aay/c64/zpmain.htm) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 12:40:16 ÖS Klavye bufferi kullanmadan önce C64'ü resetleyip çalışır hale geldikten sonra start_dma yapılsa daha iyi olmaz mı?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 29, 2015, 13:17:23 ÖS Zaten oyle. Once reset. Sonra dma upload. En son klavye buffer ile run...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 13:38:58 ÖS Kernal'e elleşmiyorsan reset sonrası makinenin kendine gelmesi için 2sn kadar beklemen lazım. Erken devreye giriyor olabilirsin.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 15:03:12 ÖS Doberman devredeyken 0 ve 1 nolu adresler okunduğunda hangi değerler dönüyor?
Eğer okunan değer 1 nolu adres için 37h ise buraya yazılacak yeni değer Dma Stoptan sonra c64'ü konfigure edecektir. Belki de 6510 kendi içindeki 0 ve 1 adreslerindeki değeri ram'de mirrorluyordur. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 29, 2015, 15:46:56 ÖS Doberman devredeyken 0 ve 1 nolu adresler okunduğunda hangi değerler dönüyor? Eğer okunan değer 1 nolu adres için 37h ise buraya yazılacak yeni değer Dma Stoptan sonra c64'ü konfigure edecektir. Belki de 6510 kendi içindeki 0 ve 1 adreslerindeki değeri ram'de mirrorluyordur. Ilk firsatta denerim. Ben de merak ettim. Gerci ram de mirrorlandigini pek sanmiyorum ama deneyip yazacagim. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 18:57:35 ÖS 0 ve 1 adreslerine erişimler databus üstünde gözükmüyor. Cpu bunlara içerideki register'lar gibi muamele ediyor aslında.
http://skoe.de/kernal/kernal-cartridge.pdf (http://skoe.de/kernal/kernal-cartridge.pdf) Alıntı For a fully compatible Kernal cartridge with no additional wire, another way must be used to find out the state of /HIRAM. One obvious idea is to sniff the bus traffic and keep track on write accesses to the address $0001. Unfortunately this does not work, since these accesses are kept inside the 6510 CPU and are not visible on the bus. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 29, 2015, 19:27:42 ÖS Evet bunu ben de okudugumu hatirliyorum zaten. Ama 6510 un pdf inde de enteresan birsey yaziyor. Portu input olarak tanimlarsan bu alana disaridan erisilebilir diyor. Yani buraya yazilabilir. E neden okunamasin o zaman?
By assigning the 110 Pins as inputs(using the Data Direction Registeo the user has the ability to change the contents of address 0001 (the Output Register) using peripheral devices. The ability to change these contents using peripheral inputs, together with Zero Page Indirect Addressing instructions, alfows novel an( versatile programming techniques not possible earlier. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 19:29:40 ÖS 0 ve 1 adreslerini kontrol için aklıma gelen tek seçenek şu. Kartuş 6510 soketine takılacak şekilde düzenlenecek. Yeni halinde 6510 kartuş üzerine takılacak ve bize lazım olan 1. adresin kontrol ettiği ve 6510 üzerinde bulunan P0, P1 ve P2 pinleri (LORAM, HIRAM ve CHAREN bitleri) Pic üzerinden kontrol edilecek. Kartuş devreye girip 6510'u disable ettiğinde Pic'in ilgili portları çıkış modunda, kartuş devre dışıyken giriş modunda olmalı.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 19:35:49 ÖS Sana bir ornekle açıklayayım.
Atmega işlemcideki C portunu düşün. C portunun çip üstündeki fiziki pinlerinin karşılığı 6510'daki P0-P5 pinleri. Erişilebilirlikten kasıt bu. DDRC 0 register'ına, PORTC de 1 register'ına karşılık geliyor. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 19:36:10 ÖS Benim tahminim şu şekilde. 0 ve 1 'e yazılan değerler aslında Ram'a yazılıyor. Yazma anında 6510'de bulunan bir adres decoder ile databustaki değer 6510 içinde latch edilerek ayrıca 6510 üzerindeki P0...P5 pinlerine gönderiliyor.
Datasheetlerde herşey belirtilmeyebilir. En iyisi delimawi'nin denemelerini beklemek. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: spunky üzerinde Eylül 29, 2015, 19:58:30 ÖS Valla ellerinize, zihninize sağlık. Son dönemde forumda oluşan hareketlilik ve kaliteli bilgi artışı çok heyecan verici. Benim gibi yoğunluktan pasif üyeleri ve hatta gördüğüm kadarıyla bazı "ihtiyar" abileri bile heyecanlandırıyor :D
Hızınıs kesilmesin, Allah havyalarınıza zeval vermesin :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Eylül 29, 2015, 20:07:14 ÖS Valla ellerinize, zihninize sağlık. Son dönemde forumda oluşan hareketlilik ve kaliteli bilgi artışı çok heyecan verici. Benim gibi yoğunluktan pasif üyeleri ve hatta gördüğüm kadarıyla bazı "ihtiyar" abileri bile heyecanlandırıyor :D Hızınıs kesilmesin, Allah havyalarınıza zeval vermesin :D Forumda beğen tuşu olsa direk basardım valla. :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 20:15:58 ÖS "ihtiyar" sanırım ben oluyorum :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 20:17:33 ÖS Tabii denemekten zarar gelmez ancak elemanlar bu işi yapabilmek için fpga içine ufak bir 6510 bile yerleştirmişler. Kolay yolu olsa o yola giderlerdi.
Olay şöyle gelişiyor, LDA $01 dendiğinde Cpu LDA komutunu fetch ediyor, sonra da operand'ı fetch ediyor. Sonra internal olarak A register'ına 01 portunun değerini set ediyor. Data bus'ta 01 portunun içeriğini göremiyoruz bu yüzden. Bu arada niye $01'in değerini bilmeye ihtiyaç var? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Eylül 29, 2015, 20:48:29 ÖS Bu arada niye $01'in değerini bilmeye ihtiyaç var? Sanırım konu delimawi'nin "Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım." mesajına bağlı olarak $01 adresine kadar geldi. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 21:10:36 ÖS Sanırım konu delimawi'nin "Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım." mesajına bağlı olarak $01 adresine kadar geldi. Hardware çözümüne gitmeden (çoğu kullanıcı için uygulaması zor olacaktır) önce software yollu da denenebilir. DMA yapılacağı anda c64'ün durumu önemli. Yani Reset halinde yazılımsal olarak müdahale ile bir demo çalışıyorken müdahale etmek tamamen farklı şeyler. Kendisi muhtemelen daha net ifade eder ancak bir demo çalışıyorken belleğin tamamına ulaşmayı kastetmiyor olabilir. DMA'ya giriş kısmı VIC'in durumuna göre değişiyor. 1541 ultimate sırayla üç yöntem belirlemiş. Önce badline yakalamaya çalışıyor. Ekran kapalı ise bu yemiyor. Sonra cpu'nun en fazla 3 yazma yaptığı bir interrupt'a giriş kısmını bulmaya çalışıyor. Interrupt'lar disable edilmiş ve o anda 6510 sadece okuma yapar şekilde döngüde ise bunu da başaramaz ise en son yöntem olarak belirli bir süre bekleyip dalıyor. Reset sonrası DMA durumunda en kötü ufak bir kodu DMA yapıp 01 adresin değerini bu programa okutabilir, ya da değiştirmek istiyorsa değiştirebilir. Arkada demo çalışırken dma yapıyorsa zaten iş program freeze etmeye dönüşüyor. Bunun için de değişik yöntemler uygulanabilir. 1541 ultimate mesela çalışan programın hangi raster'da kaldığını da saklayıp freeze ediyor çalışan program yamulmasın diye. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 29, 2015, 21:25:03 ÖS @delimawi : Arada kaynamasın, 1541 ultimate'in yaptığı ya da yaptığını tahmin ettiğim gibi c64 tarafındaki önyüzü de DMA ile yapmak sana c64 tarafında yazacağın kod için inanılmaz bir sadelik sağlayabilir.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 29, 2015, 23:53:17 ÖS Hardware çözümüne gitmeden (çoğu kullanıcı için uygulaması zor olacaktır) önce software yollu da denenebilir. DMA yapılacağı anda c64'ün durumu önemli. Yani Reset halinde yazılımsal olarak müdahale ile bir demo çalışıyorken müdahale etmek tamamen farklı şeyler. Kendisi muhtemelen daha net ifade eder ancak bir demo çalışıyorken belleğin tamamına ulaşmayı kastetmiyor olabilir. DMA'ya giriş kısmı VIC'in durumuna göre değişiyor. 1541 ultimate sırayla üç yöntem belirlemiş. Önce badline yakalamaya çalışıyor. Ekran kapalı ise bu yemiyor. Sonra cpu'nun en fazla 3 yazma yaptığı bir interrupt'a giriş kısmını bulmaya çalışıyor. Interrupt'lar disable edilmiş ve o anda 6510 sadece okuma yapar şekilde döngüde ise bunu da başaramaz ise en son yöntem olarak belirli bir süre bekleyip dalıyor. Reset sonrası DMA durumunda en kötü ufak bir kodu DMA yapıp 01 adresin değerini bu programa okutabilir, ya da değiştirmek istiyorsa değiştirebilir. Evet burada bir karışıklık oldu sanırım. "Tüm RAM Bölgesi" kavramını, 6510'un adresleyebildiği bölge olarak düzeltmek yerinde olacak. Yani adreslenen bölgede ROM açıksa o bölge DMA ile dahi okunsa ROM okunacak. Kısaca tekrar etmek gerekirse, DMA açıldığı anda herhangi bir adreste 6510 ne görüyor ise DMA ile de o değer görülecek. Bir yerde DMA yapan cihaz 6510 yerine geçici olarak yerleşmiş gibi bir olay. NOT: Eğer ROM açık olan bir adrese yazılmaya çalışılırsa o bölgenin altındaki RAM'e yazılmış oluyor ama bu konunun zaten DMA ile ilgisi yok. Normal C64 işleyişi bu şekilde. Bir başka konuda da biraz daha detaya girmek gerekirse, bu DMA olayını cooperative ve non-cooperative olarak ikiye ayırmak sanırım doğru olacak. Yani c64'te çalışmakta olan kod, DMA yapıldığını biliyor, buna uygun yazılmış ve hatta DMA yapılmasını kendi request etmiş olabilir. Buna en güzel örnek REU çalışma mantığı. DMA requesti kod kendi yapıyor, ve DMA yapılana kadar okuma yazma işlemi yapmadan bekliyor bu sayede DMA'ya giriş hardware açısından sıkıntılı olmuyor. Non-Cooperative DMA ise, programdan habersiz asenkron DMA yapmak. Bu durumda DMA yapacak olan donanım yukarıda aynen i_r_on un dediği yöntemi izlemek durumunda. Zira ekran kapatılmış olabilir, IRQ lar disable edilmiş olabilir vb vb... Bu durumda DMA ya uygun giriş şartları aynı olmaz. Şimdi en basit DMA ya giriş, temiz resetlenmiş C64'te yapılabilir ki donanım kendi önce reset göndererek bundan emin olabiliyor. Bu durumda ekran açık olduğu için ilk bad line ile beraber DMA kanalı açılabiliyor. Benim Doberman da varmak istediğim yere bu şekilde varabiliyorum aslında. Ek bir özellik olarak, şu anki fonksiyonu bitirdikten sonra bir de FREEZE işlemi yaptırmak istiyorum. Bu da Non-Cooperative DMA ya örnek olacak. Çalışan bir kodu durdurup imajını almak için. Gene Doberman için konuşacak olursak bu şekilde bir FREEZE anında çok büyük olasılıkla ekranın açık olacağını varsayabiliriz. Zira ya bir demo yada bir oyun çalışmaktadır. Ekran açıktır. DMA giriş te problem olacağını sanmıyorum. FREEZE için yapılması gerkenler bence aşağıdaki gibi olmalı; - DMA ya girer girmez hiç vakit kaybetmeden Raster No yu al bir yere kaydet, lazım olacak. Nasılsa DMA dayız diye bekleme, zira VIC çalışmaya devam ediyor, Raster de birazdan değişecek. - Tüm 64KB yı DMA ile oku bir yere yaz. - Renk RAM bilinen 64KB haricinde bir RAM, bir şekilde burayı da almalıyız. - Şimdi burada kritik kısım başlıyor. Bir kod atıp C64 üzerinde çalıştırmamız gerekecek ama X,Y,A,PC,Flagler gibi bilgilerin hiçbirini kaybetmek istemiyorum. Bunlar da RAM de değil 6510 içerisinde registerlar. Bunları okumak kolay ancak okumak için C64'e atılacak kodun RUN edilmesi esnasında değişmemeleri gerekiyor. Yada değişseler bile daha önceki değere erişebiliyor olmam gerekiyor. Bu kısım için ne yapılabilir henüz bilmiyorum. Araştıracağım. - Aynı kod, 0,1 adreslerine de bakacak ki bu iki adres tahmin ettiğim kadarı ile gene 6510 içerisindeki registerlar. Bu iki değer yedekleneceği gibi aynı zamanda kontrol edilecek. Eğer örneğin KERNAL açık ise kapatılacak. vb. Bu sayede ROM ların altındaki RAM lerde programın sakladığı başka bilgi varmı kontrol edilip gerekiyorsa gene DMA ile alınarak, bir önce alınan memory dump refresh edilecek. Yani final Memory Dump sadece RAM bölgesini kapsıyor olacak, ROM ları değil. Freeze için düşündüğüm yöntem kabaca bu. Önerilerinize açığım. Ama dediğim gibi freeze öncelikli hedefim değil en sona bıraktığım bir özellik... @delimawi : Arada kaynamasın, 1541 ultimate'in yaptığı ya da yaptığını tahmin ettiğim gibi c64 tarafındaki önyüzü de DMA ile yapmak sana c64 tarafında yazacağın kod için inanılmaz bir sadelik sağlayabilir. @i_r_on: Kaynamadı, okudum aslında yazdığını. Şimdi loader için aslında basit bir menü tasarımı yaptım ama tam olarak istediğim bu değil. Gene yıllar önce uğraştığım intro ve demo programlama günlerinden kalma bazı detaylar eklemek istedim ben loadera. Kabaca bir logo, aynı zamanda seçim menüsünün yanında bir grafik imaj. Belki bir smooth scroll vb. Diyeceksin ki ne gerek var? Aslında bir gerek yok ama yapmak hatırlamak istedim o günleri. Hatta sprite dönüşümü için program sorma sebebim de buydu. Menü ile yan yana duracak bir grafiği karakter seti yada sprite multiplexing yaparak oluşturabiliyorum. O noktada sprite multiplexingi deneyecektim ilk olarak. Dolayısı ile DMA ile sadece ekranı refresh ederek oluşturacağım bir menu beni kesmeyecek... :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 30, 2015, 00:30:41 ÖÖ @i_r_on: Kaynamadı, okudum aslında yazdığını. Şimdi loader için aslında basit bir menü tasarımı yaptım ama tam olarak istediğim bu değil. Gene yıllar önce uğraştığım intro ve demo programlama günlerinden kalma bazı detaylar eklemek istedim ben loadera. Kabaca bir logo, aynı zamanda seçim menüsünün yanında bir grafik imaj. Belki bir smooth scroll vb. Diyeceksin ki ne gerek var? Aslında bir gerek yok ama yapmak hatırlamak istedim o günleri. Hatta sprite dönüşümü için program sorma sebebim de buydu. Menü ile yan yana duracak bir grafiği karakter seti yada sprite multiplexing yaparak oluşturabiliyorum. O noktada sprite multiplexingi deneyecektim ilk olarak. Dolayısı ile DMA ile sadece ekranı refresh ederek oluşturacağım bir menu beni kesmeyecek... :D Tercih meselesi tabii zengin bir arayüz de yapılabilir bunda sorun yok. Ancak pic ile ekran çizmenin, sprite'lara elleşmenin vesaire seni sınırlayacağını sanmıyorum, bilakis daha yüksek hızda bir işlemci ile bu işi yaptığın için 6510'a göre avantajlı konumdasın. Ekrana müdahale ettiğin gibi tüm VIC IO'suna müdahale edebilirsin. Color ram ile ilgili kısıtlama gözüme çarpmadı. $D000 - $DFFF aralığı I/O ise ki default hali bu erişebilmen lazım bence. ps1: Her ekran taramasında bir miktar süreyi c64'e klavyeyi falan tarasın diye vermen lazım tabii. ps2: Raster zamanlamasını nasıl yaparsın bilemiyorum. Split falan yapmaya kalkarsan :) Satırların başını sonunu kolayca tutturursun da ortasından zor olabilir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Eylül 30, 2015, 07:32:33 ÖÖ - Şimdi burada kritik kısım başlıyor. Bir kod atıp C64 üzerinde çalıştırmamız gerekecek ama X,Y,A,PC,Flagler gibi bilgilerin hiçbirini kaybetmek istemiyorum. Bunlar da RAM de değil 6510 içerisinde registerlar. Bunları okumak kolay ancak okumak için C64'e atılacak kodun RUN edilmesi esnasında değişmemeleri gerekiyor. Yada değişseler bile daha önceki değere erişebiliyor olmam gerekiyor. Bu kısım için ne yapılabilir henüz bilmiyorum. Araştıracağım. (Sadece sesli düşünüyorum, kesin olur diyemem) Bu bilgileri stack'e atıp daha sonra geri alabilirsin. pha txa pha tya pha .... .... daha sonra da; pla tax pla tay gibi. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 30, 2015, 13:00:05 ÖS Evet ama sorun şu.
Örneğin C64 te çalışan bir kod var. Dolayısı ile PC o an işlenmekte olan komutu işaret ediyor. Ben freeze edecek ufak kod parçasını C64 hazfızasında uygun bir yere DMA ile atıp, attığım kodun çalışmasını sağlayacağım. Yani aslında attığım kod çalışmaya başladığı andan itibaren PC değişmiş olacak. En mantıklısı sanırım ilgili koda NMI ile gidilmesini sağlamak. Bu sayede return değerini stack ten geri okuyabilirim. Açıkçası düşünülmesi gerekiyor bu kısmın. C64 için bir kırıcı kartuş vardı. ISEPIC di galiba adı. Bu kartuş tam da bu iş için yapılmış. Sadece oyun freeze etmek için. Ayrıca ROM bulundurmuyor, sadece RAM vardı kartuşta. Kartuşun kodunu sanırım önce distekle yüklemek gerekiyordu vb. Bu sistemin nasıl çalıştığını biraz incelemek sanırım yol gösterir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Eylül 30, 2015, 13:03:55 ÖS Ufak kod parçasını atacağın hafıza bloğunu, önceden bir yere geçici olarak kopyalayıp, işin bitince de tekrar geri taşısan olmaz mı?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 30, 2015, 13:08:59 ÖS Olur tabi, zaten önceden tüm RAM i bir yere kopyalacağım.
Ama 6510 içerisinde PC denen 16 bitlik bir register var. O an hangi adresteki kodun çalışmakta olduğunu gösteriyor. Ben bu registeri DMA ile okuyamıyorum çünkü RAM de değil. Bu registeri okumak için kod çalıştırmam lazım. Ama o kod da çalışınca PC nın değerini değiştirmiş olacak. Yani PC yi okduğunda FREEZE öncesi çalışan adresi değil, attığım kodun bulunduğu adresi gösteriyor olacak... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Eylül 30, 2015, 13:17:25 ÖS Bu registeri okumak için kod çalıştırmam lazım. Ama o kod da çalışınca PC nın değerini değiştirmiş olacak. Yani PC yi okduğunda FREEZE öncesi çalışan adresi değil, attığım kodun bulunduğu adresi gösteriyor olacak... Quantum Fiziğine döndü bu olay. Gözlemci mevcut duruma bakmak istediğinde mevcut durumu değiştiriyor falan. https://tr.wikipedia.org/wiki/Qubit (https://tr.wikipedia.org/wiki/Qubit) Kendimi Geleceğe Dönüş (http://www.imdb.com/title/tt0088763) filminde veya Quantum Leap (http://www.imdb.com/title/tt0096684) dizisinde gibi hissettim. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 30, 2015, 13:21:37 ÖS @simon : Aynen ... :)
@i_r_on: C64 te Color RAM için ayrı fiziksel chip var. O zaman Color RAM altında kalan bölgede de gerçek RAM olmalı. Orayı da bir şekilde okumak lazım bence ama oraya ulaşmak mümkün mü bilmiyorum. Yani normal 6510 kodu ulaşabiliyor mu o bölgeye. ROM kapatma gibi bir yöntem var mı Color RAM i kapatmak için? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 30, 2015, 13:24:43 ÖS @delimawi: 01'in default değeri olan konfigürasyonda okuyup yazabiliyorsun diye biliyorum. Memory konfigürasyonlarında color ram için bir ayrım yok, io bölgesi içinde geçiyor.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Eylül 30, 2015, 13:41:12 ÖS @delimawi: 01'in default değeri olan konfigürasyonda okuyup yazabiliyorsun diye biliyorum. Memory konfigürasyonlarında color ram için bir ayrım yok, io bölgesi içinde geçiyor. Şimdi hızlıca bir test yaptım da, Color RAM'in olduğu bölgeye DMA ile yazamıyorum. Neden acaba incelemek lazım? 55296 Bu adrese gönderdiğim byte'ı C64 te göremiyorum. Eski hali duruyor. Ama ekran ram vb ye rahatlıkla yazabiliyorum. Acaba Color RAM'in timingi falan mı farklı? Yada doğrudan VIC'e bağlı olduğu için mi birşeyler karışıyor. İncelenecek... :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Eylül 30, 2015, 14:11:23 ÖS Aslında tamamen VIC'e bağlı değil, A0..A9 adres hatları ve D0..D3 data hatları bus'a bağlı. Zaten 1kx4bit bir ram, 10 bit adres hattı yeter. VIC sadece farklı adreslerle erişiyor ve buradaki 4 data bit'i ile bus'dan gelen 8 data bit'ini birleştirip 12 bitlik bir databus kullanıyormuş.
Ancak dikkatimi çeken R/W sinyali Color RAM'a VIC'ten geliyor. VIC'in iç tasarımına falan bakmak lazım. C64 schematic'lerinde tam olarak Color Ram'in CS ve OE hatlarının nereden beslendiği belirtilmemiş. Şunu incelemediysen bir incele : http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/servicemanuals/C64_Service_Manual_314001-02_(1985_Sep).pdf (http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/servicemanuals/C64_Service_Manual_314001-02_(1985_Sep).pdf) Ancak senin testi doğrulayan şöyle bir tartışma da gördüm http://csdb.dk/forums/?roomid=7&topicid=110532&showallposts=1 (http://csdb.dk/forums/?roomid=7&topicid=110532&showallposts=1) Beri yandan 1541 ultimate içinde color ram'a yazması için kod da gördüm :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: F_P_G_A üzerinde Eylül 30, 2015, 21:00:33 ÖS Bu registeri okumak için kod çalıştırmam lazım. Ama o kod da çalışınca PC nın değerini değiştirmiş olacak. Yani PC yi okduğunda FREEZE öncesi çalışan adresi değil, attığım kodun bulunduğu adresi gösteriyor olacak... Quantum Fiziğine döndü bu olay. Gözlemci mevcut duruma bakmak istediğinde mevcut durumu değiştiriyor falan. https://tr.wikipedia.org/wiki/Qubit (https://tr.wikipedia.org/wiki/Qubit) Kendimi Geleceğe Dönüş (http://www.imdb.com/title/tt0088763) filminde veya Quantum Leap (http://www.imdb.com/title/tt0096684) dizisinde gibi hissettim. Mükemmel bir benzetme olmuş üstad. :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 02, 2015, 01:06:22 ÖÖ Bir kaç gündür ciddi birşey yapamadım proje adına ama Chameleon'nun dökümantasyonunu okurken şu dikkatimi çekti:
Take note that the signal has a clean high to low transition, but a slow not well defined low to high transition. Therefore the FPGA should only use the high to low transitions of the Phi-2. As signal is inverted the stable transition represents a rising-edge on the actual FPGA pin (phi2 n). Aynen benim de farkettiğim durumu yazmış. Phi2 nin çıkan kenrı bozuk onun için düşen kenerı kullanmak lazım diye. Ben de CPLD içerisindeki clockları buna göre değiştireceğim ilk fırsatta. Bu arada FREEZE mantığında Color RAM altında düşündüğüm gibi kullanılabilir bir RAM varmış. Eğer IO bölgesi kapalı ise o normal RAM'e erişiliyor, IO bölgesi açık ise aynı adreste Color RAM beliriyor. Benzer durumunu VICE'in teknik dökümantasyonunda da gördüm. Emülatörde FREEZE yapıldığında, RAM, ColorRAM ve Registerlar ayrı ayrı kaydediliyor. Sorun şu ki ben Color RAM e yazmaya çalıştığımda IO bölgesi açıktı, yani DMA ile yazabilmem gerekiyordu. Büyük ihtimal ile CPLD de bir timing problemi oldu. Son olarak enteresan bir bilgi, logic analyser ile C64 üzerinde inceleme yaparken şunu farkettim. Dinamik RAM ler için üretilen CAS ve RAS sinyalleri var. Bunlardan biri PLA üzerinden geçerek RAM'e ulaşıyor ve şemada CASRAM olarak belirtilmiş. Şimdi RAM'e ister okuma, ister yazma yapılması durumunda bu sinyalin RAM'e uygulanması gerekiyor. DMA ile RAM'e yazmak için R/W sinyalini LOW a çekiyoruz. PLA da RAM e yazılmasını gerektiğini buradan anlayarak RAM'e CASRAM sinyalini gönderiyor. Enteresan olan durum ise, okumak için R/W sinyali high olarak bırakılıyor (Normal Durum) sadece Adres Hatları sürülerek, Data hattı dinleniyor. Ama bu durumda bile PLA RAM'den okuma yapılmak istendiğini anlayarak CASRAM sinyali üretiyor. Bunu nereden anlıyor çözemedim. Adres Hattını sürmez isem, yani okuma yada yazma yapmak istemediğim durumlarda CASRAM sinyalini RAM'e göndermiyor. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 02, 2015, 01:15:57 ÖÖ Gene Chameleon'un dökümantasyonu okuyorum, burada belirtmiş. DMA ile C64'e bilgi atarken, içerideki her bir chip'in farklı timingleri olduğundan bahis ediyor.
For sending data to the C64 the datalines should be stable as early as possible and should stay driven slightly into the next half-cycle. When reading from the C64 the data should be taken over as late as possible, but definitely before the end of the cycle. The CIAs take over data at the very begin of the cycle. The main memory chips (DRAM) are very slow and can have access times upto around 300 ns. The color-ram is SRAM (static RAM) and wants to see stable data from the beginning until late in the cycle. The Kernal and BASIC ROMs can be fast (EPROM) to very very slow (400ns+ or almost a full cycle in case of the original SX-64 Kernal ROM chip). The VIC-II has multiple sample points and can best be treated the same as the SRAM (give data fast and keep it stable). This can be a challenge as often video data will be coming from SDRAM which takes time. The main Chameleon core has three points in the cycle where data is transfered. At the very beginning of the cycle for (emulated) CPU writes to CIA, SID and VIC-II registers. Somewhere half-way the cycle after SDRAM reads are complete to feed the VIC-II chip character or sprite data. The actual spot in the schedule is a comprimise between SDRAM speed and VIC-II setup time. And finally at the very end just before the cycle ends for reads from ROMs and I/O space. Bu sebeple ColorRAM'e yazamamış olma ihtimalim yüksek. Sanırım timing problemi. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 02, 2015, 18:18:05 ÖS Merhaba,
Bu gün bir kaç saat vaktim oldu, Doberman64'ün flash çipini de taktım. Daha önce söylediğim gibi bu versiyon flash'lı olacak. Belki sonrakini SD kart yapabilirim. Flash çipi 4MByte. Bir file sistem yapmadım. Kabaca 64KB lık 64 adet slot tanımladım. Zaten iyi oyunlar 40-50KB. 64 İyi oyun da bu tarz bir kartuş için yeterli. Bu arada arkadaşların bahsettiği gibi yollar oksitlenmeye başladı malesef. En azından C64 kontaklarının olduğu kısmı ince zımpara yaparak kapladım. Bir süre idare eder. (http://i62.tinypic.com/2w7mwxk.jpg) Flash'a prg atabilmek için PC de şimdilik basit bir arayüz hazırladım. Aşağıdaki imajları flash'a yükledim. Herhangi bir sorun yok hepsi çalışıyor. Ancak halen bir loader yok. Haftasonu belki birşeyler çıkartabilirim loader anlamında. // 0:Zorro // 1:Commando // 2:Duotris // 3:Ghostbusters // 4:Giana Sisters // 5:Boulder Dash // 6:Rambo // 7:Galaxian // 8:Arkanoid // 9:Aztec Chalange // 10:1942 // 11:Barbarian I // 12:Barbarian II // 13:Green Berret // 14:Ghost'n Goblins // 15:Cyberdyne Warior // 16:Ikari Wariors // 17:Impossible Mission // 18:Delta İki tane sıkıntı var. Birincisi bu imajların başında cracker introları var. Ve yükleme zamanlarını kısaltmak için sıkıştırılmışlar. (imajı küçültmek için bazı grafik vb yerlerde de oynama yapılmış olması da bence çok olası.) Dolayısı ile DMA çok hızlı olarak imajı yüklesem bile ortalama 10sn abuk sabuk introlar ve decrunching için beklemek gerekiyor. Buna bir çözüm bulunmalı. FREEZE işini bitirmiş olsam aslında intro sonrasında, oyunun başlama anında bir snaphot almak çok daha mantıklı. Ama şu an için bunu da yapamıyorum. Bu oyunların orjinal hallerini nereden bulurum acaba? Ve acaba orjinal hallerinde de decrunching var mı merak ediyorum. İkinci bir sıkıntı ise, RESET pini ile C64'ü resetlesem bile bazen sonraki oyun çalışmayabiliyor. En tipik örnek Commando da oldu. Oyun açık iken RESET yapıyorum, reset süresince oyunun müziği bile çalmaya devam ediyor. Demekki 6510 çalışmaya devam ediyor. Acaba RESET e karşı önlem almanın bir yolu mu var? Aklıma basit bir çözüm olarak DMA ile bir RESET kodu atıp, bunu da NMI ile çalıştırmak geldi. Belki denenebilir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: AmigaMan üzerinde Ekim 02, 2015, 18:29:38 ÖS Seri üretim nezaman hocam bende iki tane sipariş vereyim
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 02, 2015, 18:56:35 ÖS Harika gidiyor. :)
Flash'taki oyunları değiştirmek için bir arabirim mevcut mu? Bu arada tasarımında bir eksiklik buldum, kartuş kutusuna montaj için Commodore ve ICOMP standardında delikleri unutmuşsun. :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 02, 2015, 19:03:29 ÖS @amigaman,
Şimdilik seri üretim düşünmüyorum. FREEZE işlerini de yapabilirsem ondan sonra belki bir miktar PCB basarız, buradan isteyenlere ulaştırırız ama üretim takibi ıvır zıvır yetişebileceğimi sanmıyorum şu an için. Zaten daha erken... :) @simon, Evet şimdilik basit bir PC arayüzü yaptım. Ama kartuş üzerinde direk USB çıkış yok. 115200 TTL Seri port var. Dolayısı ile USB>TTL dönüştürü lazım kullanmak için. Zaten kendim için yapmıştım o portu. Sözüne ettiğin deliklerin de bir standardı olduğunu sonradan farkettim. Ama zaten kutuluma derdim olmayacağı için hiç önemsemedim. Zaten PCB nin tam ortası o kadar dolu ki iyi ki de eklememişim bu aşamada. Ama hani proje biter, hedeflerime ulaşırım o zaman elde basma derdim olmayacağı için rahat rahat revize edebilirim PCB yi gerekirse daha sıkışık olarak ve o delikleri yerleştiririz... :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ekim 02, 2015, 19:32:57 ÖS Gene yıllar önce uğraştığım intro ve demo programlama günlerinden ... Daha önceki mesajlarda dikkatimi çeken bir kısım. Yıllar önce intro ve demo kodladığına göre acaba tanıdık biri olabilir misin? Biraz bilgi vermen mümkün mü? Hangi gruptaydın, nickin vs. ? Bu arada oksitlenmeye karşı en basit çözüm exp. slota giren yerleri tamamen lehim kaplamak, geri kalan kısmı -komponentler dahil- çift yüz olarak vernikle kaplamak. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 03, 2015, 00:55:33 ÖÖ İki tane sıkıntı var. Birincisi bu imajların başında cracker introları var. Ve yükleme zamanlarını kısaltmak için sıkıştırılmışlar. (imajı küçültmek için bazı grafik vb yerlerde de oynama yapılmış olması da bence çok olası.) Dolayısı ile DMA çok hızlı olarak imajı yüklesem bile ortalama 10sn abuk sabuk introlar ve decrunching için beklemek gerekiyor. Buna bir çözüm bulunmalı. delimawi selam. İntro ve depack beklemelerinden kurtulmak için oyunun kodunu takip edip, tam oyun başlayacağı anda kodu durdurarak oyunun açıldığı bellek aralığını kaydetmek gerekli. Ben şu an bunlarla uğraşıyorum, biraz zaman alıyor. Decruncher, depacker ve introlar üst üste binmiş durumda, bunların çalışmalarını/açılmalarını takip edip oyunun başlayacağı ana kadar gittikten sonra oyunun hangi aralığa açıldığını ve start adresini, depacker rutinine bakarak tespit edip oyunu kaydetmek gerekiyor.Açılmış durumdaki örnek bir oyun olarak International Karate Plus'ı vereyim: https://dl.dropboxusercontent.com/s/x0nvyqduoagfwct/ik%2B%200800-fd86.prg ik+, $0800-$fd86 aralığına yükleniyor. $01 adresinde $37 değeri varken (normal bellek konfigürasyonu), oyunu bu aralığa yükleyemezsin. Önce $01 adresine $30/$34/$38 değerlerinden birini yazarak $d000-$dfff aralığındaki ram'i açmak gerekli. Oyunun çalıştırma adresi $fd20. $01 adresinde $37 değeri varken, $fd20'e jump yaparsan oyun çalışmaz, önce sei yaparak irq'yu engelleyip ardından $01 adresine $35 yazarak kernal romu kapatmak gerekli. ik+'ı, Doberman64 ile nasıl yükleyip çalıştırabilirsin diye düşünüp örnek bir asm kod yazdım: https://dl.dropboxusercontent.com/s/2kzuhiq4lgy6mfw/cbm80.asm https://dl.dropboxusercontent.com/s/tt8y45dg71jbd9n/cbm80.prg cbm80.asm'yi Acme assember ile derleyebilirsin. Derlenmiş hali cbm80.prg. Çalışma mantığı şu şekilde: c64 reset'lendiği an (ya da ilk açılıyorken), dma yaparak 6510'u durdurup cbm80.prg'yi $8000 adresine yüklüyorsun. 6510'u serbest bırakıyorsun. 6510 çalışmaya devam ettikten sonra $fd02 rutini ile CBM80 metoduyla çalışacak bir kod var mı diye kontrol ediyor ve ardından $8000'deki vektöre göre $8009'a dallanarak yoluna devam ediyor. CBM80 metodu için Alphaworks'ün şu (https://dl.dropboxusercontent.com/s/jbsdzqrr6opbfcy/Cartridge_Development_Guide.pdf) dökümanına bakabilirsin. $8009'dan itibaren reset/init rutini başlıyor. Burada custom $fd50 rutini kullandım (kernal'daki $fd50 rutini, ram testi yaptığı için çok vakit harcıyor). init rutininden sonra wait rutini $0334'e transfer ediliyor. $01 adresine $38 değeri yazılarak tüm 64KB ram açılıyor. $ff adresine 1 değeri yazılıyor ve $0334 adresine jump yapılıyor. $0334'de 6510, $ff adresinin sıfırlanmasını beklemeye başlıyor. Bunun ardından dma ile oyunu belleğe yüklüyorsun (cbm80.prg'yi yükleyip 6510'u serbest bıraktıktan 1sn sonra yapman yeterli). Oyunu yükledikten sonra yine dma ile şu adreslere yazıyorsun: $fb : $01 adresine yazılacak değer (ik+ için $35) $fc : irq durumu (0=cli , 1=sei) (ik+ için 1) $fd : oyunun jump adresinin low byte'ı (ik+ için $20) $fe : oyunun jump adresinin high byte'ı (ik+ için $fd) $ff : 0 6510'u serbest bıraktıktan sonra, $ff adresi sıfırlanmış durumda olduğu için 6510 yoluna devam ediyor ve yukarıdaki değerlere göre ik+'yı çalıştırıyor. Ben WinVice'da Action Replay v6 freezer ile deneme yaptım, verdiğim kod çalışıyor. FREEZE işini bitirmiş olsam aslında intro sonrasında, oyunun başlama anında bir snaphot almak çok daha mantıklı. Ama şu an için bunu da yapamıyorum. Bu oyunların orjinal hallerini nereden bulurum acaba? Ve acaba orjinal hallerinde de decrunching var mı merak ediyorum. Oyunların orjinallerinde decrunching olmaz, ama orjinallerin disket/kaset versiyonlarını (d64 ve tap dosyaları) Doberman64 ile c64'e nasıl yükleyeceksin? Disk drive / tape emulasyonu yaptırman gerekir, ayrıca orjinallerin yüklenmesi çoğunlukla crack'lere göre daha uzun sürer. En güzeli freeze fonksiyonunu bitirirsen, prg'leri çalıştırıp oyun çalışmadan önceki adı freeze'lersin. Sonra hızlı yüklemeler için bu freeze imajını kullanırsın.İkinci bir sıkıntı ise, RESET pini ile C64'ü resetlesem bile bazen sonraki oyun çalışmayabiliyor. En tipik örnek Commando da oldu. Oyun açık iken RESET yapıyorum, reset süresince oyunun müziği bile çalmaya devam ediyor. Demekki 6510 çalışmaya devam ediyor. Acaba RESET e karşı önlem almanın bir yolu mu var? Bazı oyunlar reset'e karşı CBM80 metodunu kullanarak tekrar çalışırlar, Commando'nun reset'lenince tekrar çalışması bu şekilde. Yukarıda anlattığım gibi reset'ten hemen sonra 6510'u durdurup dma ile kendi CBM80 kodunu $8000 adresine yazarsan bu sorundan kurtulmuş olursun =)Aklıma basit bir çözüm olarak DMA ile bir RESET kodu atıp, bunu da NMI ile çalıştırmak geldi. Belki denenebilir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 03, 2015, 17:55:51 ÖS @hades,
Malesef hiç bir grupta değildim. Evde oturup assemly yazardım sadece. Commodore Dergisinde master/Clique'un yazılarını okurken öğrendim 6510 programlamayı. Tabi o zamanlar master olduğunu bilmiyordum. Ama tanıdığım kişiler var sceener olan. Bu arada yazmayı unuttum. 0 ve 1 adreslerine DMA ile baktığımda random değerler alıyorum. Bazen 0, 85 ve 170 görmüşlüğüm var. Sanırım bu iki adres hiç bir şekilde bus'a bağlı değil, internal çalışıyor. Edit: master yerine remix yazmisim. @Metallic Teşekkür ederim, çok değerli bilgiler. Bu gün CPLD ile uğraştım vaktim olmadı. İlk fırsatta yazdıklarını tekrar detaylıca okuyarak deneyeceğim. Gerçi her bir oyunla ayrı ayrı uğraşmak niyetinde değilim. Şu FREEZE işine sanırım girişmenin zamanı geldi. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 03, 2015, 17:57:10 ÖS Merhaba,
CPLD Logic kısmını artık tam olarak bitirdim sanırım. Color RAM'e de yazabiliyorum, bir sıkıntı kalmadı. CPLD kısmı ile ilgili teknik bilgi vereceğimi belirtmiştim, şimdi biraz fırsat buldum. CPLD kodunu WinCUPL ile yazıyorum, VHDL den biraz farklı ama kolay bir mantığı var. CPLD vb programlarken bilinmesi gereken şey, yazılan kodun sıralı bir şekilde çalışmadığı. Yani örneğin A=!B dediğinizde, A bacağı her zaman B bacağının tersi olacak şekilde mantık programlanmış olur. A=!B önermesinin gerçekleşmesi için yazılan kodun ilgili satırına gelmesine gerek yoktur, bu önerme her zaman için geçerlidir. Bu kısa ön bilgiden sonra, Doberman64'ün logic kodunu aşağıda açıklayarak paylaşıyorum; /* C64 INTERFACE */ PIN[11,10,8,6,5,3,2,44]=[C64_DATA0..7]; PIN[43]=C64_DMA; PIN[42]=C64_RW; PIN[40]=C64_BA; PIN[37]=C64_PHI2; PIN[35]=C64_RESET; PIN[33]=C64_DOTCLK; Burada, C64 tarafında kullandığımız hatları CPLD pinlerine tanımladık. /* ADDRESS OUTPUT ENABLE */ PIN[12]=ADDR_OE; /* PIC INTERFACE */ PIN[27]=REQ_DMA; PIN[30]=IN_DMA; PIN[23]=P_RW; PIN[25]=P_START; PIN[34]=P_DONE; PIN[28]=REQ_RESET; PIN[13,14,15,18,19,20,21,22]=[BUS0..7]; Burada da PIC tarafındaki pinleri tanımladık. ADDR_OE pini ise, 2 adet 573 latch'ine bağlı durumda. /* ********************************************************** */ /* RESET HANDLER */ /* ********************************************************** */ C64_RESET.oe=REQ_RESET; C64_RESET.le='b'1; C64_RESET.l='b'0; Burada, PIC tarafından reset request gelir ise, C64 tarafındaki C64_RESET pini tetikleniyor. Mantık şu, C64 tarafına bağı olan RESET Cell, her zaman 0 durumunda. (Son iki satır bunu sağlıyor.) PIC tarafından RESET req. gelir ise, bu cell'in outputları enable ediliyor ve hat low'a çekilmiş oluyor. Bu sayede pini open collector gibi kullanmış oluyorum. Normalde bu çıkış high-z, yani boşta kalıyor. /* ********************************************************** */ /* C64 PHI2 SHAPER */ /* ********************************************************** */ /* Usage: PHI2 & C64_PHI2 */ /* ********************************************************** */ /* C64_PHI H-L Delay:10ns */ /* C64_PHI L-H Delay:40ns */ /* ********************************************************** */ PINNODE = PHI2; PHI2.ck=!C64_DOTCLK; PHI2.d=C64_PHI2; Burada enteresan bir mantık kullandım. Bildiğiniz gibi Phi2 clock'un çıkan kenarının şekilsiz olduğunu farketmiştim. Aynı zamanda okuduğum bazı bilgilere göre, Phi2 nin bu çıkan kenarını referans olarak kullanmak doğru değilmiş. Normalde yapılması gereken, düşen kenara senkronize olan bir Phi2 clock yaratmak ve onu kullanmak. Ama bu CPLD içinde dışarıdan eleman kullanmadan kolay olmayacağı için başka birşey yaptım. Phi2 çıkan kenardan sonra gelen ilk DOT_CLOCK'un düşen kenarını referans aldım. DOT_CLOCK bilindiği üzere, 8MHZ civarı yani Phi2 den 8 kat hızlı çalışan bir clock. Kodun geri kalanında bu yeni ürettiğim PHI2 sinyalini kullandım ve daha önce yaşadığım problemler ortadan kalktı. Buna ait plot aşağıda: (http://i61.tinypic.com/es3pqb.jpg) /* ********************************************************** */ /* DMA_SAFE = BA + 3 PHI2 CYCLE COUNTER */ /* ********************************************************** */ /* Usage: DMA_SAFE3 */ /* ********************************************************** */ PINNODE = [DMA_SAFE0..3]; [DMA_SAFE0..3].ck=PHI2; [DMA_SAFE0..3].ar=C64_BA; DMA_SAFE0.d='b'1; DMA_SAFE1.d=DMA_SAFE0; DMA_SAFE2.d=DMA_SAFE1; DMA_SAFE3.d=DMA_SAFE2; Burada da, DMA'ya giriş için daha önce konuştuğumuz BA Low olduktan sonraki 3 clockluk gecikmenin nasıl yapıldığı görülüyor. 4 Adet Flip Flop arka arkaya bağlı. Hepsinin clock'u PHI2. Yani her PHI2 cycle da bir sonraki FF High oluyor. Son FF da high olduktan sonra DMA ya girebiliriz. Buna ait plot aşağıda: (http://i59.tinypic.com/6gac2c.jpg) /* ********************************************************** */ /* DMA REQUEST HANDLER */ /* ********************************************************** */ /* Sadece DMA_SAFE iken DMA'a gir... */ /* PHI2 Low iken yani VIC-II cycleda iken cikabiliriz... */ /* ********************************************************** */ IN_DMA.le=DMA_SAFE3; IN_DMA.l=REQ_DMA; IN_DMA.ar=(!C64_RESET) # (!PHI2 & !C64_PHI2 & !REQ_DMA); C64_DMA.le='b'1; C64_DMA.l=!IN_DMA; Burada, PIC'ten gelen DMA Requesti, sadece biraz önce bahsettiğimiz DMA_SAFE durumunda işlenecek şekilde bir mantık var. DMA'dan çıkış için bir optimizasyon yaptım. Artık bir sonraki Bad Line'ı beklemek yerine, PHI2 Low iken yani VIC-II devrede iken çıkabiliyorum. Burada dikkat edilmesi gereken, PHI2 High iken DMA'dan çıkılmaması. Giriş ve çıkış plotları: (http://i62.tinypic.com/f27pe.jpg) (http://i60.tinypic.com/2eebzw8.jpg) /* ********************************************************** */ /* PIC <-> C64 PROCESS HANDLER */ /* ********************************************************** */ /* Three Step State Machine */ /* P_START oldugunda sira ile tetiklenirler */ /* WAIT: Isleme baslamadan once ilk VIC-II cycle'i bekler */ /* PROG: VIC-II Cycle biter bitmez tetiklenir (Gercek islem) */ /* DONE: Tekrar VIC-II Cycle basladiginda islemimiz bitmistir */ /* ********************************************************** */ PINNODE=WAIT; PINNODE=PROG; PINNODE=DONE; WAIT.l = 'b'0; WAIT.ck = 'b'0; WAIT.ap = P_START & (!PHI2) & (!C64_PHI2); WAIT.ar = !P_START; PROG.l = 'b'0; PROG.ck = 'b'0; PROG.ap = WAIT & PHI2 & IN_DMA & C64_BA; PROG.ar = !P_START; DONE.l = 'b'0; DONE.ck = 'b'0; DONE.ap = PROG & (!PHI2); DONE.ar = !P_START; Burada transfer işlemini gerçekleştiren state machine arka rkaya bağlı üç FF ile kuruldu. İlk Flip Flop VIC-II sırasının gelmesini bekliyor. Bu sayede sıra bizdeyken, yani clock'un yarısında transfere başlamamış olduğumuzdan emin oluyoruz. Zaten request geldiğinde, eğer sıra VIC-II deyse bu state hemen geçiliyor. İkinci FF, gerçek transfer işleminin yapıldığı zaman yani Phi2 iken set oluyor. Phi2 tekrar low a düşünce yani sıra tekrar VIC-II ye gelince işlem tamamlanmış oluyor. /* ********************************************************** */ /* DONE Signal To PIC */ /* ********************************************************** */ P_DONE.l=DONE; P_DONE.le='b'1; İşlem bitince bunu tekrar PIC'e bildirdiğim bölüm. /* ********************************************************** */ /* ADDRESS Ouput Logic (Both Read & Write) */ /* ********************************************************** */ ADDR_OE.l=!(PROG & (!DONE)); ADDR_OE.le='b'1; İşlem read veya write, farketmiyor, adres bilgisini PIC latchlere zaten yazdı. Bizim sadece doğru zamanda, yani PROG anında bunu output etmemiz gerekiyor. /* ********************************************************** */ /* C64 R/W Pin (Only in Write Operation) */ /* ********************************************************** */ C64_RW.l='b'0; C64_RW.le='b'1; C64_RW.oe=PROG & (!DONE) & P_RW; /* ********************************************************** */ /* C64 DATA Bus Output Enable (Only in Write Operation) */ /* ********************************************************** */ [C64_DATA0..7].l=[BUS0..7].io; [C64_DATA0..7].le=P_RW; [C64_DATA0..7].oe=PROG & (!DONE) & P_RW; Bu iki işlem sadece PIC Write yapmak istemiş ise yapılacak. Yani C64 tarafındaki R/W Pini low'a çekilecek, ve BUS'taki data C64 Adres Bus'ına basılacak. /* ********************************************************** */ /* C64 DATA > PIC Internal Bus Latch (Read Operation) */ /* ********************************************************** */ [BUS0..7].l=[C64_DATA0..7].io; [BUS0..7].le=PROG & (!DONE) & (!P_RW); [BUS0..7].oe=(!P_RW) & (DONE); Son olarak eğer PIC read yapıyor ise, doğru zamanda, C64 Data Bus'ı, internal BUS'a latchliyoruz. PIC, Requesti sonlandırana kadar data orada kalıyor ve PIC okuyabiliyor. Tüm CPLD kodu bu kadar. Bu kod kullandığım CPLD'nin yaklaşık yarısını kaplamış durumda. Total I/O pins used 31/32 (96%) Total Logic cells used 31/64 (48%) Total Flip-Flop used 30/64 (46%) Total Foldback logic used 0/64 (0%) Total Nodes+FB/MCells 31/64 (48%) Eğer merak ettiğiniz bir yer varsa seve seve açıklarım. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 03, 2015, 18:05:58 ÖS Bu arada, gün içerisinde PC'deki tool'u da ilerlettim. Bu tool ile Doberman64 USB üzerinden PC ile haberleşiyor. PC tarafından DMA başlatılıp, durdurulabiliyor. Flash'e PRG atılabiliyor. Program çalışırken Poke ve Peek yapılabiliyor vb.
Malesef C64 Tarafındaki Loader'a elim gitmiyor. Bakalım kısmet. :D Küçük bir de video çektim birazdan ekleyeceğim. (http://i57.tinypic.com/nyeooi.jpg) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 03, 2015, 19:37:53 ÖS Bu proje bugüne kadar C64 için yapılmış en ciddi, güzel kartuşlardan birisi.. Bizi bu kartuştan mahrum etmeyeceğini umuyoruz :) Üretim konusunda deneyimli arkadaşlar var, muhakkak yardımcı olacaklardır...
Videoyu ve sonuç ürünü büyük bir heycan ve ilgiyle bekliyoruz... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Ekim 03, 2015, 19:54:47 ÖS Bu proje bugüne kadar C64 için yapılmış en ciddi, güzel kartuşlardan birisi.. Bizi bu kartuştan mahrum etmeyeceğini umuyoruz :) Üretim konusunda deneyimli arkadaşlar var, muhakkak yardımcı olacaklardır... aynen katılıyorum ve ilave olarak şunu ekliyim türkçe olarak paylaştığın bilgiler için ayrıca teşşekür ederim.Videoyu ve sonuç ürünü büyük bir heycan ve ilgiyle bekliyoruz... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 03, 2015, 20:05:25 ÖS Videoyu ekledim.
YyQPdv_zcgI Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Ekim 03, 2015, 20:53:24 ÖS gayet güzel olmuş şimdiden devamını beliyoruz :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 03, 2015, 21:02:31 ÖS Bu arada yazmayı unuttum, video'da yüklenen tüm imajlar kartuşun Flash'ından yükleniyor. Henüz bir loader olmadığı için PC'den hangi slot'un yükleneceğini seçip gönderebiliyorum. Ayrıca DMA yüklemeler 1sn bile sürmüyor, videoda görülen renkli bordür geçişleri ve beklemeler tamamen imajın kendi decruncher depacker yazılımı ile alakalı.
Video'da PC DMA başlatıp, C64'ü durdurmayı, oyun esnasında poke yapılabildiğini göstermek için basitçe ekran rengine müdehale vb mevcut. Sanki şimdilik hardware kısmı bitti gibi. Gerçi FREEZER özelliği için şu an mevcut olmayan NMI hattına da ihtiyacım olacak. CPLD ve PIC'te yer ayarlayabilirsem final şema ve PCB yi çizmeden önce NMI'yı eklemeyi düşünüyorum... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: arnavutrafet üzerinde Ekim 04, 2015, 14:45:14 ÖS Tüm zamanların en iyi kartuşlarından biri olacak inşallah bitince. Saygıyla eğiliyoruz.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 04, 2015, 16:31:03 ÖS Güzel gelişmeler. CUPL dilinde programlayabilmek iyiymiş. Ben de bir adet Altera Max II EPM570 geliştirme board'u sipariş verdim. VHDL'in basit taraflarından giriş yapayım diyorum CPLD'lere. Bunlarda 5v olmaması gibi bir handikap var, sen Atmel'i biraz da bu yüzden tercih ediyorsun sanıyorum. Ancak Atmel'in geliştirme board'larına bakınca ucuz yollu bir şey göremedim. O taraftan böyle çin menşeli ucuz ürün tavsiyen var mıdır?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 04, 2015, 21:42:01 ÖS Evet aslında Atmel kullanmam, pek sevmiyorum. Ama dedigin gibi 5v desteği diğer markalarda pek yok. Ayrıca birebir bu ürünü daha önce kullanmıştım, kutuda duruyordu. Yeni sipariş edecek olsam projeye daha uygun en azindan 64 bacaklı sipariş eder, adres latchlerini de iceriye alırdım. Gerçi bur sonraki pcb için hala bunu düşünebilirim. Daha temiz bir tasarım olur.
Dev kit olarak, fpga için konuşmuyorum ama cpld için bence ekstra hiçbirşeye ihtiyacın yok. Yani sadece chip bile tek başına yeterli. Gerekiyorsa 44tqfp den dip e çeviren bir adaptör edin yada yap bence yeterli. Lpt üzerinden 4 pin ile jtag ile programlanıyor ve programlandıktan sonra aynen bir logic chip gibi calışıyor. Tak board a dene. Ben cpld için bir dev board kullanmadım açıkçası başlarken. Kolay gelsin. Eğer yardım lazım olur ise elimden geldiğince destek veririm. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ekim 04, 2015, 22:39:27 ÖS Bu yaştan sonra galiba FPGA öğrenmek gerekecek. VHDL kafama yattı gibi. Biraz daha araştırayım Xilinx - Altera - Lattice - Actel - Quicklogic - SiliconBlue vs.
Şirket aracılığı ile bunlardan hangisini temin edebilirim, fiyatları vs. nedir? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 04, 2015, 22:44:38 ÖS Fiyat falan çok bilmiyorum da benim sonraki iki projem de fpga var. Gene paylaşırım buradan detayları. 1541 emulatoru ve full c64 yapacağım fpga ile...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 04, 2015, 22:51:46 ÖS @hades : Actel ve Lattice gibi daha çok volume çalışanları bulamayabilirsin ancak Xilinx ve Altera fpga board'ları Aliexpress ve Ebay'de ucuza bulabilirsin.
İkisi de sanıyorum en alt segment... Bu tip dev board'ların fiyatı 25 dolar ile 100 dolar arası değişiyor. Altera Cyclone IV http://www.aliexpress.com/item/CoreEP4CE6-EP4CE6E22C8N-EP4CE6-ALTERA-Cyclone-IV-CPLD-FPGA-Development-Core-Board-with-Full-IO-Expanders/709604488.html?spm=2114.01020208.3.2.vQIRNA&ws_ab_test=201556_3,201527_1_71_72_73_74_75,0_0 (http://www.aliexpress.com/item/CoreEP4CE6-EP4CE6E22C8N-EP4CE6-ALTERA-Cyclone-IV-CPLD-FPGA-Development-Core-Board-with-Full-IO-Expanders/709604488.html?spm=2114.01020208.3.2.vQIRNA&ws_ab_test=201556_3,201527_1_71_72_73_74_75,0_0) XILINX Spartan 3 http://www.aliexpress.com/item/XILINX-XC3S250E-Spartan-3E-FPGA-Development-Evaluation-Board-LCD1602-LCD12864-12-Modules-Open3S250E-Package-B/706325844.html?spm=2114.01020208.3.144.M0Lnis&ws_ab_test=201556_3,201527_1_71_72_73_74_75,0_0 (http://www.aliexpress.com/item/XILINX-XC3S250E-Spartan-3E-FPGA-Development-Evaluation-Board-LCD1602-LCD12864-12-Modules-Open3S250E-Package-B/706325844.html?spm=2114.01020208.3.144.M0Lnis&ws_ab_test=201556_3,201527_1_71_72_73_74_75,0_0) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ekim 04, 2015, 22:59:04 ÖS Şirkette ST'nin microlarını kullanıyoruz ve bildiğim kadarıyla empa elektronikten temin ediyoruz ürünleri. Sitesinde xilinx bağlantısı var.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 04, 2015, 23:38:53 ÖS Benim linkini verdiğim ürünler clone ürünler. Orjinalleri bunlardan kat kat pahalıdır. En az bir 200-300 dolardan başlar tahminen. TR'ye getirmek demek 2 misli 3 misli üstüne koymak demek. Konuyla daha içli dışlı olan arkadaşların daha pratik bilgileri vardır muhtemelen.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 05, 2015, 18:47:17 ÖS Tövbe tövbeeeee. Adamı zıvanadan çıkarıp CPLD/FPGA denemelerine daldıracaksınız. Bir daha hiç toparlanamayacağım. :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ekim 05, 2015, 19:24:56 ÖS Farkettiniz mi bilmem ama ben bu projenin sonunu yeni bir scene gibi görüyorum.
Nasıl mı? Bir kere C64'ün belleğine /DMA kullanılarak erişiliyor ve devredeki Pic tarafından okuma/yazma yapılabiliyor. Benim bir mesajımda "Doberman-64 6510'u disable ederek okuma-yazma yaptığına göre 6510 yerine başka bir CPU C64 donanımını kullanabilir diye düşünüyorum." ifadesi vardı. Aslında her şey gözümün önündeymiş ama o an farkında değildim. Başka bir cpu derken zaten Pic bir mcu (cpu + io). Yani C64'e başka bir cpu erişim yapıyordu. Denemelerde border rengi değişiyordu ama bu değişim pic tarafından doğrudan $d020'ye mi yazılarak yapılıyordu yoksa önce C64'e yüklenen bir rutin tarafından mı yapılıyordu bilmiyorum. Kesin cevabı delimawi verir. Eğer $d020 pic tarafından değiştiriliyorsa benim açımdan bunun anlamı Pic C64'ün IO bölgesine erişim yapabiliyor demektir. Daha geniş düşünürsek Pic ile C64'ün klavyesi kontrol edilebilir, Sid kullanılabilir, joystickler okunur vs. Ve gelelim yeni scene dediğim konuya. Pic üzerinde çalışan bir intro / demo yazılabilir. Mesela pc kullanarak pic için bir program yazılacak, sd karta aktarılıp doberman-64'e takılacak. Pic çalışmaya başladımı sd karttaki demo pic'in içine aktarılacak (böyle bir özellik var mı bilmiyorum) ve yazılan kod C64'te Vic, Sid , Cia gibi çipleri kontrol edecek. Mesela C64'ün Ram'ine fli grafik atıp pic tarafında fli viewer çalışacak. Ne bileyim belkide hız nedeniyle yapılamayan bazı efektler varsa pic bunları rahatça yapabilir. Kartuşun adı da PIC-64 olabilir. Ama ufak bir sorun var. Hangi Pic kullanılmalı. Yazılacak kodlar Pic portlarını kontrol edeceğinden Pic standart olmalı. Neyse aklıma gelen uçuk bir fikirdi. Sözü delimawi'ye bırakıyorum. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 05, 2015, 20:17:43 ÖS @hades : Çoğu zaman aslında bu fikir insanların aklına gelmiş ancak gördüğüm kadarıyla scener'lar bu tip çözümlere hiç rağbet etmemişler. Bir önceki sayfada bir link vermiştim color ram'i ile ilgili sorun sırasında. Elemanın birisi fpga ile 1.2 ghz işlemci embed edeceğim kartuş portundan demiş. Scene tayfası c64'ün kısıtlı imkanları tatlıydı demiş.
http://csdb.dk/forums/?roomid=7&topicid=110532&showallposts=1 (http://csdb.dk/forums/?roomid=7&topicid=110532&showallposts=1) Supercpu örneğinde misal fazla bir demo desteği gelmemiş gözüküyor, http://supercpu.cbm8bit.com/demos.php#devel (http://supercpu.cbm8bit.com/demos.php#devel) Tabii tekrar denemekten zarar gelmez. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 05, 2015, 22:35:17 ÖS Fiyat falan çok bilmiyorum da benim sonraki iki projem de fpga var. Gene paylaşırım buradan detayları. 1541 emulatoru ve full c64 yapacağım fpga ile... :o :D :-X Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 06, 2015, 00:32:41 ÖÖ Denemelerde border rengi değişiyordu ama bu değişim pic tarafından doğrudan $d020'ye mi yazılarak yapılıyordu yoksa önce C64'e yüklenen bir rutin tarafından mı yapılıyordu bilmiyorum. Kesin cevabı delimawi verir. Doğrudan DMA ile IO bölgesine erişiliyordu. C64 te çalışan bir rutin yok orada. Eğer $d020 pic tarafından değiştiriliyorsa benim açımdan bunun anlamı Pic C64'ün IO bölgesine erişim yapabiliyor demektir. Daha geniş düşünürsek Pic ile C64'ün klavyesi kontrol edilebilir, Sid kullanılabilir, joystickler okunur vs. Evet bunların hepsi yapılabilir. Yani 0 ve 1 adreslerindn IO bölgesi kapatılmamış ise IO bölgesine erişilebilir. Emin olmak için DMA yapmadan önce bir kere reset gönderilebilir, yada C64 ilk açıldığında bu işler başlatılabilir, yada en kötüsü 0 ve 1 adreslerini düzenleyecek bir ufak kod gene DMA ile C64 te çalıştırılabilir. Ve gelelim yeni scene dediğim konuya. Pic üzerinde çalışan bir intro / demo yazılabilir. Mesela pc kullanarak pic için bir program yazılacak, sd karta aktarılıp doberman-64'e takılacak. Pic çalışmaya başladımı sd karttaki demo pic'in içine aktarılacak (böyle bir özellik var mı bilmiyorum) ve yazılan kod C64'te Vic, Sid , Cia gibi çipleri kontrol edecek. Mesela C64'ün Ram'ine fli grafik atıp pic tarafında fli viewer çalışacak. Ne bileyim belkide hız nedeniyle yapılamayan bazı efektler varsa pic bunları rahatça yapabilir. Kartuşun adı da PIC-64 olabilir. Ama ufak bir sorun var. Hangi Pic kullanılmalı. Yazılacak kodlar Pic portlarını kontrol edeceğinden Pic standart olmalı. Neyse aklıma gelen uçuk bir fikirdi. Sözü delimawi'ye bırakıyorum. Açıkçası bir şekilde bu yapılabilir ancak i_r_on'un bahsettiği gibi bu tarz girişimler scene dünyasında pek rağbet görmüyor. Zaten bu projenin de aslında temel amacı sadece hızlı bir şekilde kod atmak ve C64 hafızasını dump edebilmek vb. Yani live çalışacak bir işlem için düşünmemiştim ben DMA yı. İllaki PIC kullanmak ta şart değil ama PIC örneğinden devam edecek olursak, şunları söyleyebilirim: - Güncel 8 bit PIC ler 16MIPS çalışabiliyor. Yani C64'ün 16 katı hızında. - Bu tarz işler yapmak için PIC ile C64 clocklarını senkronize etmek gerekiyor. Yoksa demo için vb işe yaramaz olur. Bu kolaylıkla yapılabilir. 16MHZ civarı çalışan bir VCO yapılacak, üretilen frekans 16 ya logic olarak bölünüp, kartuş portundaki 1MHz C64 clock'u ile karşılaştırılıp frekans hatası üretilecek. Bu hata low pass filtreden geçirilip VCO ya feedback olarak girilecek. Yani aslında bir nevi PLL. C64'ün 1 MHZ hızını 16 ile çarpmış oluyoruz. Bu tarz bir işi daha önce yapmıştım, 1-2 entegre ile halloluyor. - Esas sıkıntı ise şu ki, Doberman64 ün var olan donanımı ile bir adrese bir veri atabilmek için; Adres High Byte Latch (3 PIC Cycle) Adres Low Byte LAtch (3 PIC Cycle) Data Set (1 PIC Cycle) RW Set (1 PIC Cycle) DMA START (1 PIC Cycle) Wait Complete (1-2 C64 Cycle + 1-2 PIC Cycle) DMA STOP (1 PIC Cycle) Yani bir adrese poke yapabilmek için neredeyse 1-2 C64 Cycle harcanıyor. PIC'in getirdiği 16MIPS avantajı kaybetmiş olduk. Peki ne yapılabilir? Amaç tüm C64 çevrebirimlerini başka bir CPU ile kontrol ise, açılıştan itibaren DMA hep low'da tutularak, 6510 hiç çalışmadan, doğrudan Adress, Data ve RW hattı ile kontrol ele alınabilir. Bu durumda bacak sayısı daha çok olan bir PIC seçilir. Yani 16 Bit adres ve 8 bit data'nın tamamı doğrudan kullanılır. Böylece latchlere gerek kalmaz ve işlem çok daha hızlı olur. Sonuç olarak, amaç bu ise bu işe uygun bir donanım tasarlanmalı. Yapılması gayet olası, ama buna gerçekten ihtiyaç var mı? Pek emin olamıyorum açıkçası... Benim aklımda olan bir diğer projeden bahsetmem gerekirse, tüm C64'ü FPGA içerisinde software olarak oluşturmak istiyorum. Bu yapıldı zaten. Ultimate-II hatta DTV de bile kullanıldı. Ama benim yapmak istediğim, data ve address hatlarını fiziksel olarak FPGA dışarısına taşımak. Bu ne getirecek? Herhangi bir chip'i (Özellikle hedefim SID mesela), soft olarak emüle etmeden gerçeğini kullanabilme şansı verecek. Yani FPGA içerisindeki bir yada daha çok chip'i disable ederek dışarıdan gerçeğini bağlayabilmeyi hedefliyorum. Şimdi bunu sizin isteiğinizle birleştirirsek şu ortaya çıkıyor. 6510 dışındanki tün chipleri gerçek kullan, 6510 yerinede hayal ettiğiniz herhngi bir CPU'yu, hatta belkide olmayan örneğin hades marka bir CPU'yu FPGA içerisinde tasarlayarak, bu CPU ile C64 çevrebirimlerini kontrol etmek olası. Hatta ana CPU C64'ün çok farklı bir hızında bile çalışabilir... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 10, 2015, 17:55:48 ÖS Merhaba,
Bugün bir kaç saat zaman ayırabildim, Metallic ile daha önce konuştuğumuz The Last Ninja'nın depacker'sız halini çalıştırmak için bazı çalışmalar yaptım, sonuçlar gayet güzel. Öncelikle Metallic'e teşekkür ederim, depacker'sız, introsuz, demosuz kılçıksız halde The Last Ninja'yı hazırlayıp denenem için verdi. The Last Ninja'nın açılmış haldeki imajı $0812 den RAM'in sonuna kadar yer kaplıyor. Bu büyüklükte bir imajın C64'e upload edilmesi Doberman64 için herhangi bir problem teşkil etmiyor, yarım saniyenin de altında imajın yüklenmesi sağlanabiliyor. Ancak bu DMA upload işleminden önce, ROM ların kapatılmış olması gerekiyor ki, upload edilen imaj çalışabilsin. Aksi halde RAM bölgesi üzerindeki KERNAL ve BASIC ROM görünür olacağı için imaj çalışmayacaktır. Bu konu hakkında forumda arkadaşlarla çeşitli yöntemleri değerlendirmiştik. Bugün denediğim yöntem şu oldu: Temiz açılmış yada RESET'lenmiş C64'e önce Doberman ile küçük bir kod atılıyor. Bu kod interruptları, ROM'ları ve I/O bölgesini kapatıyor. Bu sayede tüm C64 RAM'i açılmış oluyor. Sonra belirli bir adresi set ederek döngü içerisinde, set etmiş olduğu adres DMA tarafından başka bir değere set edilene kadar beklemeye başlıyor. Son olarak döngüden çıkınca upload edilmiş imajın JMP değerine sıçrayarak programın çalışmasına yol veriyor. Atılan bekleme kodunu $0800 den aşağıda bir yere koymak istedim çünkü DMA yükleme işlemi genelde $0800 üzerine yazacaktır, daha önce konuştuğumuz üzere seçtiğim yer tape buffer oldu. Ayrıca interruptları da kapatıyoruz çünkü ROM'lar iptal edilince timer vb bir interrupt ile, RAM bölgesindeki bir yere sıçranmasını istemiyorum. Çıkışta şimdilik interruptları kapalı bıraktım, nasıl olsa yüklenmiş olan imaj init sırasında hem 01 adresini hem de interrupt configürasyonunu kendi istediği gibi ayarlar diye düşündüm. Doberman'ın yüklediği kod aşağıda: * =$033F SEI ; Disable Interrupts LDA #$01 ; Set Flag to Ready STA $033C LDA #$34 ; Turn off ROM's & IO STA $01 loop: ; Wait DMA Complette LDA $033C CMP #$02 BNE loop JMP $9C00 ; Goto Program Start Bu kodu Doberman upload ederken en sondaki JMP adresini yüklediği imajın start adresi olarak set ediyor. Kodun çlıştırılması için şimdilik eski yöntemi kullandım, keyboard buffer'a SYS831+ENTER tuşları atılıyor ve DMA serbest bırakıldığı anda kod çalışıyor. Bu işi daha sonra NMI ile yapmak üzere kafa yoracağım. Ara yüklemeli oyunlara Doberman'ın destek vermesi için gerekli olan ilk adımı atmış olduk. Şimdi Ninja'nın ara yükleme kısımlarına bakacağım. Fakat oyun oynama konusunda o kadar yeteneksizim ki, ilk bölümün sonuna hızlı bir şekilde nasıl gelebileceğim konusunda en ufak bir fikrim yok. :D Tekrar Metallic'e teşekkür ederken ufak bir video ile bitiriyorum günü. Ekranda SYS831 yazısını gördüğünüz an DMA işlemi başlıyor ve introsuz, depacksiz, kılçıksız Ninja 0.5 sn de çalışıyor. :) hL7I61EeeX8 Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Ekim 10, 2015, 19:39:49 ÖS Muhteşem.
Bilgilerinizi birbirinizle ve bizlerle paylaşıp takip etmesi bu kadar heyecanlı projeler ürettiğiniz için ne kadar teşekkür etsek azdır herhalde. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 10, 2015, 20:37:02 ÖS İyi iş çıkmış. Bence oyunu oynamadan sonuna en hızlı dma ile gelirsin :)
Bir kaç poke ile iş bitebilir, cracker arkadaşlar yardımcı olsun. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 10, 2015, 23:49:02 ÖS Öncelikle Metallic'e teşekkür ederim, depacker'sız, introsuz, demosuz kılçıksız halde The Last Ninja'yı hazırlayıp denenem için verdi. Rica ederim =)Ara yüklemeli oyunlara Doberman'ın destek vermesi için gerekli olan ilk adımı atmış olduk. İkinci adım olarak level yüklemelerde c64'ün dobermanı tetiklemesini sağlaman lazım, dobermanın şu anki donanımına ek yapmadan bunu nasıl yapmayı düşünüyorsun? Benim başlıkta belirttiğim gibi geçici bir çözüm olsa da ninja'ya özel olmamalı, genel olarak diğer programlarda da kullanılabilmeli.Şimdi Ninja'nın ara yükleme kısımlarına bakacağım. Fakat oyun oynama konusunda o kadar yeteneksizim ki, ilk bölümün sonuna hızlı bir şekilde nasıl gelebileceğim konusunda en ufak bir fikrim yok. :D Hehe bölümü bitirmene gerek yok, en baştaki trainer da ikinci bölümü seç =)Kodun çlıştırılması için şimdilik eski yöntemi kullandım, keyboard buffer'a SYS831+ENTER tuşları atılıyor ve DMA serbest bırakıldığı anda kod çalışıyor. Yalnız bu keyboard buffer yönteminin kullanılamayacağı bir durum olan Commando örneğini konuşmuştuk. Yani CBM80 yöntemiyle reset yapılmasının engellendiği durumlar. İlk oyunu çalıştırabileceksin, ama Commando gibi bir oyundan sonra ikinci oyunu yükleyebilmek için c64 resetlenemediğinden kapatılıp açılması gerekecek. Bu çok can sıkıcı bir durum, çünkü bir tek Commando değil, bir sürü oyun var bu şekilde olan. Yakın zamanda oyun paketleme işlerini yaparken çok karşılaştım bunlarla. Özellikle eski kısa oyunların çoğu bu şekilde.Bu işi daha sonra NMI ile yapmak üzere kafa yoracağım. Doberman NMI yaptığı an $e000-$ffff aralığına yani kernal rom'u yerine bir rom map'leyeceksen olabilir, fc3'te olduğu gibi.Reset'ten sonra CBM80 yöntemini kullanabilirsin demiştim önceki mesajlarımda, uygulayabilmen mümkün değil mi? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 11, 2015, 01:17:38 ÖÖ Reset'ten sonra CBM80 yöntemini kullanabilirsin demiştim önceki mesajlarımda, uygulayabilmen mümkün değil mi? Burada tam olarak anlayamadığım bir durum var. Seneryo anladığım kadarı ile şu şekilde. C64 Reset anında KERNAL'daki bazı rutinleri çalıştırıyor, sanıyorum memory test vb. Sonra da CBM80 kontrolü yapıp, eğer uygun kod varsa dallanıyor. Peki bu seneryoda Doberman ne zaman devreye girmeli? Reset bitmeden RAM'e erişim yaparsam, KERNAL rutini benim yazdığım datayı ezebilir gibi geliyor test esnasında. Reset bittiğinde bu işi yaparsam da, KERNAL'in CBM80 kontrolünü kaçırmış olacağım. Tam netleştiremedim açıkçası bu olayı. C64'ün açılış ve RESET anında tüm yaptıklarını bir flowchart olarak kağıda döküp bir anlamam gerekiyor sanırım önce. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 01:30:56 ÖÖ Aslında çözüm burada basit değil mi? Kartuş imzasının ve vektörlerinin bulunduğu bölgeyi reset öncesi boşaltırsan senin reset'ine engel olamaz. Oyunun bu bölgeyi ROM'a çevirme şansı da yok. $8000'de başlayan default bir rom yok, $A000'da başlayan basic var ancak reset yediğinde 6510 herhalde $00 ve $01 register'larını default değerlerine alıyordur.
Buradan kernal'in exrom ve game sinyallerine bakmaksızın kartuş imzasını kontrol ettiğini de çıkarabiliriz. (Gerçi nasıl kontrol etsin o da ayrı konu :) ) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 01:37:52 ÖÖ >delimawi c64 açılırken ya da reset yapıldığı an doberman hemen 6510'u durduracak ve dma ile $8000 adresine CBM80 kodunu koyacak. Sonra 6510'u serbest bırakacak. 6510 yoluna devam edince normal reset rutinine geçmeden önce CBM kodu var mı diye kontrol edecek ve bulduğu için de ona dallanacak. CBM80 kodunda da önce bir reset/init bölümü olacak. 6510 bu bölümü tamamlayınca bir bekleme kodunu teyp tamponuna transfer edip, oraya dallanarak beklemeye başlayacak. Bunun ardından doberman, ikinci dma'yı yaparak oyunu belleğe yükleyecek, bitince 6510'u beklemeden çıkarmak için kullanılacak flag'i sıfırlayacak. 6510 da yoluna devam edecek ve oyunu çalıştıracak.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 11, 2015, 01:38:47 ÖÖ Exrom ve game hatlarina bakmadigini biliyorum. Bu hatlari sadece hardware olarak adres space e kartusun epromunu map etmek icin kullaniyor. Hatta cbm80 yontemi ile kartuslar rom a yazilmadan once debug edilebiliyor ramdeyken.
Diger konu icin haklisin, reseti engelleyen oyunlar icin cozum olur ancak benim aradigim sadece bu degil, keyboard buffer degil daha solid bir yontem ile dma ile attigim kodu run etmek istiyorum. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 11, 2015, 01:41:59 ÖÖ @metallic, gene bir sikinti var. Dma bir bad line olusmadan baslayamiyor. Reset bitmeden de sanirim vic bad line olusturmuyor.
Reset aninda bad line olmadan dma yapabilecek miyim denemem lazim. Saniyorum reset basladigi anda daha 6510 hic calismadan araya girersem olabilir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 01:46:20 ÖÖ Aslında çözüm burada basit değil mi? Kartuş imzasının ve vektörlerinin bulunduğu bölgeyi reset öncesi boşaltırsan senin reset'ine engel olamaz. Oyunun bu bölgeyi ROM'a çevirme şansı da yok. $8000'de başlayan default bir rom yok, $A000'da başlayan basic var ancak reset yediğinde 6510 herhalde $00 ve $01 register'larını default değerlerine alıyordur. i_r_on söylediğin yöntem işe yarar, ama dobermanın reset yapıldığı an 6510'u durdurup $8004'deki CBM80 imzasını bozması lazım. Doberman eğer bunu yapabiliyorsa, $8000'e kendi CBM80 kodunu da yazabilir ve onun üzerinden 6510'u yönlendirebilir.Buradan kernal'in exrom ve game sinyallerine bakmaksızın kartuş imzasını kontrol ettiğini de çıkarabiliriz. (Gerçi nasıl kontrol etsin o da ayrı konu :) ) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 01:50:42 ÖÖ @metallic, gene bir sikinti var. Dma bir bad line olusmadan baslayamiyor. Reset bitmeden de sanirim vic bad line olusturmuyor. Bad line beklemesiz bir dma bekliyoruz senden =) Umarım bir çözüm bulursun.Reset aninda bad line olmadan dma yapabilecek miyim denemem lazim. Saniyorum reset basladigi anda daha 6510 hic calismadan araya girersem olabilir. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 01:52:49 ÖÖ Aslında iş dönüp dolaşıp 1541 ultimate'in yöntemine geliyor. Reset gerektirmeksizin dma yapabilmek lazım. Yani ekran kapalı olsa da devre 6510'a bir dur kardeşim diyebilmeli.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 02:23:03 ÖÖ Aslında iş dönüp dolaşıp 1541 ultimate'in yöntemine geliyor. Reset gerektirmeksizin dma yapabilmek lazım. Yani ekran kapalı olsa da devre 6510'a bir dur kardeşim diyebilmeli. i_r_on ultimate'in dma'dan sonra 6510'u nasıl yönlendirdiği ile ilgili bilgi var mı?Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 02:25:46 ÖÖ Aslında iş dönüp dolaşıp 1541 ultimate'in yöntemine geliyor. Reset gerektirmeksizin dma yapabilmek lazım. Yani ekran kapalı olsa da devre 6510'a bir dur kardeşim diyebilmeli. i_r_on ultimate'in dma'dan sonra 6510'u nasıl yönlendirdiği ile ilgili bilgi var mı?Source'ları var direkt :D https://xp-dev.com/svn/1541UltimateII/trunk/ Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 02:35:49 ÖÖ O source'lardan çıkartamam ben ne yaptığını ama sanki bir reset çekiyordur gibi geliyor bana.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 02:37:08 ÖÖ Daha spesifik olmak gerekirse şurada : https://xp-dev.com/svn/1541UltimateII/trunk/software/io/c64/c64_subsys.cc
dma_load metodunda yapıyor bu işi. İşin içine bir kartuş imajı sokuyor bu işe girmeden önce. Sonra da kartuş imajındaki programla haberleşiyor. Zero page'deki özellikle 2 olmak üzere bir kaç adresi kullanıyor haberleşme için. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 02:44:57 ÖÖ Kartuş imajı kullanıyorsa, kernal rom'un yerine kendi rom'un map'liyordur. Onun üzerindeki $fffa nmi vectörünü kullanıyordur. Dobermanda belleğe rom map'lenmiyor ama.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 02:50:36 ÖÖ https://xp-dev.com/svn/1541UltimateII/trunk/software/io/c64/c64.cc
Buradaki unfreeze metoduna bakılırsa reset yapıyor dma load yapmadan önce. Hani reset öncesi dma yapıp kartuşa haber salıyor $2 adresine bir şeyler set edip. Kartuşu aktif yapıp resetliyor. Çalışan kod kendi kodu zaten kartuş üstündeki. Dma yapan kısım ile haberleşerek memory'i doldurmasını sağlıyor. Sonrasını çok iyi anlamadım detaylı incelemediğim için ancak dma yapmadan önce en son kartuşta çalışan şeyi durduruyor sanırım, yükleme bitince yükleme ile ilgili bilgileri gerekli yerlere doldurduktan sonra kartuşa tekrar yol veriyor. Muhtemelen devamında kartuştaki kod benim işim bitti diyerek kendinin devreden çıkabilmesi için geri bilgi gönderiyordur ancak kodu da kendisi çalıştırıyordur. Benim IrqHack64'de kullandığım yönteme çok yakın. Bende sadece dma yok veri transferini 6510'a yaptırıyorum. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 11, 2015, 03:01:36 ÖÖ Kartuş imajı kullanıyorsa, kernal rom'un yerine kendi rom'un map'liyordur. Onun üzerindeki $fffa nmi vectörünü kullanıyordur. Dobermanda belleğe rom map'lenmiyor ama. Bu aletin 1541 emülasyonunu nasıl yaptığı ile ilgili aslında çok fazla bilgim yok. ultimax modunu da kullansa, normal kartuş modlarından birini de kullansa kartuşu reset sonrası aktif hale getirebilir. Kernal değişimi olayı apayrı bir olay zaten. Evet doberman'da bu rom map etme yok. Bunun için delimawi'nin paralel flash/eprom vesaire kullanması lazım. Burada olay garanti freeze yapabilmek. Freeze için kartuş imajına gerek var mı / 1541 ultimate bunu kullanıyor mu dersen olabilir. Dediğin gibi ultimax moduna geçip nmi yaptığında aslında bunu halledebilir. Tam olarak öyle mi yapıyor bilmiyorum. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 11, 2015, 03:18:38 ÖÖ Dobermanın şu anki donanımıyla 6510 yönlendirmek için nmi kullanmak yerine reset'in ardından 6510'u durdurarak bad line'sız dma yapmak, CBM80 kodunu kullanmak mantıklı görünüyor. delimawi denemelerini yapsın artık =)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 13, 2015, 19:03:52 ÖS Merhaba,
Geçtiğimiz günlerde Doberman'a özellikle Reset ile ilgili birkaç yeni komut ekledim. Örneğin commando gibi, CBM80 metdou ile RESET koruması olan programları resetleyebilmek için, AntiCBM80Reset komutumuz oldu. Reset yapmadan hemen önce DMA ile $8000 adresinde CMB80 işareti varsa bu işareti bozup, reseti o şekilde atıyoruz, ve korumalı programlar bile buna artık dayanamıyor. Aynı zamanda, normal Reset işlemi 2 sn kadar sürdüğünden, bunu kısaltmak için gene CBM80 yöntemi ile modifiye edilmiş bir Reset rutinini DMA ile gönderip, Reset atabiliyoruz. Buna da FastReset diyorum. Bu konudaki ilhamı sağolsun, Metallic'den aldım. Freeze işlemi üzerinde çalıştım, oldukça ilerleme kaydedebilmiş olmama rağmen, pratik olarak kullanımda bazı ciddi sıkıntılar mevcut. Özellikle IO bölgesindeki register'ların bir bölümü sadece yazılabiliyor, ama okunamıyor. Örneğin $D012, buraya yazdığınızda Raster Interrupt'ın oluşacağı satırı belirliyorsunuz. Ama bu adres okunduğunda, set edilmiş olan değer değil o anki gerçek raster değerini veriyor gibi. Buna benzer sıkıntılar mevcut. Şimdilik Freeze işlemi rafta. Daha ilerleyen dönemlerde tekrar bakılacak vakit olursa. Son olarak haftasonu gözümü karartıp loader yazma işine giriştim. Gerçekten çok hamlaşmışım. Uzun sürdü ama en azından artık çalışan bir loaderımız var ve Doberbam artık standalone çalışabiliyor. Flash versiyonu için motto: "Tek kartuş, 64 unutulmaz oyun..." :D Denemek için 20 ye yakın oyun attım, ufak videomuz aşağıda. Şimdi geriye kalan bu oyunların başlarındaki gereksiz intro ve decruncherlardan kurtulmak. ncLVRvNMUdc Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 13, 2015, 19:37:55 ÖS Menüye bayıldım. Yılların pasını atmışsın üzerinden. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Ekim 13, 2015, 20:14:30 ÖS Menü muhteşem olmuş. Resim convert sanırım. Fakat menü tasarımıyla bütünleşmiş.
Kartuşun hızı inanilmaz. Eline saglik. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Ekim 13, 2015, 20:25:33 ÖS Menü süper olmuş, resim seçimi cuk oturmuş. Böyle de sık sık eline sağlık mesajı atmak istemiyorum ama yine dayanamadım :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: kirkoryan üzerinde Ekim 13, 2015, 20:43:34 ÖS Gerçekten harika olmuş ellerinize sağlık :o
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: asit üzerinde Ekim 13, 2015, 20:51:03 ÖS Süper olmuş elinize sağlık :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: egemenk üzerinde Ekim 13, 2015, 20:58:11 ÖS Muazzam olmuş ya, ne cevherler var aramızda :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 13, 2015, 21:23:31 ÖS Menü muhteşem olmuş. Resim convert sanırım. Fakat menü tasarımıyla bütünleşmiş. Kartuşun hızı inanilmaz. Eline saglik. Evet, resim webden, photoshop ile convert ettim. Logo da photshop da alele acele yapıldı. Zaten C64'te grafik pikselleyecek ne yeteneğim ne de ilgim var. :D Arkane ile bu aralar sık görüşemiyoruz, yoksa ondan rica ederdim bir pixel art. Arkaplandaki SID de bir demodan ödünç alındı. :P Ama kodlama bana ait. Hatta bir kaç ufak nüans var. Daha eski günlerdeki gibi takır tukur yazamıyorum ama alışıyorum yavaş yavaş. Sağ taraf text mode iken solda multicolor grafik var. Bunun için sprite multiplexing yaptım, ekranda aynı anda görünür 32 det sprite var vb... Hız konusunda ise oyunların kendi depackerlarını aradan kaldırmadan istediğim hıza ulaşamayacak. Menüden seçer seçmez açılış ekranı gelsin istiyorum. Başladım bir kaç oyundan ama vakit alıyor her biri için çalışmak gerekiyor ayrı ayrı... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 13, 2015, 22:13:56 ÖS Menü şık olmuş, kıskandım valla :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ekim 13, 2015, 22:40:31 ÖS Tek kelimeyle süper ötesi olmuş.
Bildiğim kadarıyla devrede sd card interface vs. yok. Oyunlar ve menü pc'den mi aktarılıyor anlayamadım? Projede ilerleme oldukça iyice gaza geliyorum. Bu arada sd cardlı final versiyon gibi bir şey olursa şimdiden siparişimi veriyorum. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Geos üzerinde Ekim 13, 2015, 22:41:35 ÖS eline sağlık donanım süper olmuş. :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 13, 2015, 23:28:27 ÖS Tek kelimeyle süper ötesi olmuş. Bildiğim kadarıyla devrede sd card interface vs. yok. Oyunlar ve menü pc'den mi aktarılıyor anlayamadım? Projede ilerleme oldukça iyice gaza geliyorum. Bu arada sd cardlı final versiyon gibi bir şey olursa şimdiden siparişimi veriyorum. Teşekkürler, evet devrede SD Card yok. PC Bağlantı özelliği var ama artık bağlı olmadan da çalışıyor, videoda bağlı değil zaten, salt kartuş çalışıyor. Butona basılınca PIC, C64'ü resetliyor. Ardından kendi içerisinde gömülü olan yaklaşık 10KB büyüklüğündeki Menu/Loader programını C64'e DMA ile aktarıyor ve çalıştırıyor. Kart üzerinde ayrıca 4MByte seri flash chip var. PIC Bu chipin üzerinde belirlediğim her biri 64KB lık 64 adet slotu okuyarak, header bilgilerini yani slot içerisindeki programın adını, başlangıç adresini uzunluğunu vb, gene DMA kanalı açarak C64 içerisindeki RAM'de bir bölgeye yazıyor. Bu esnada C64 tarafında artık çalışmakta olan Menu/Loader yazılımı bu RAM bölgesindeki program bilgilerini alarak ekrana yazıyor. Kullanıcı bir seçim yapınca, C64 tarafındaki program yapılan seçimi gene C64 hafızasındaki bir memory adresine yazıyor. PIC bu adresteki bilgiyi Menu/Loader çalışmakta olduğu sürece periyodik olarak gene DMA ile kontrol ediyor. Buraya kullanıcının yaptığı seçim bilgisi düşünce, gene C64'ü Resetliyor ve bu sefer DMA ile, kart üzerindeki flash'dan okuduğu yazılımı C64'e gönderip çalıştırıyor. Yazınca karışık oldu ama oldukça basit ve hızlı işleyen bir yöntem. ;) SD Kart meselesine gelince, aslında kulağa hoş geliyor ama ben bu konuda gidip gidip geliyorum. SD kart olmadan, bu hali ile daha bir solid ve kartuş havasında. Ayrıca SD kart ile yapılıp bu hali ile yapılamayacak herhangi birşey yok. Kartuş gerektiğinde USB ile PC ye bağlanarak içerisindeki programlar değiştirilebiliyor zaten. Belki ileride diğer konular da hallolursa SD kartlısını da yaparım. Zaten zorluğu yok, aynı seri flash chipi gibi bağlanıyor elektriksel olarak PIC'e. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 14, 2015, 09:22:13 ÖÖ Menü şık olmuş, kıskandım valla :) Ben de sana baskı yapacaktım ama 256 byte'a böyle bir menü sığdıramazsın değil mi? Yoksa sığdırabilir misin? :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 14, 2015, 09:28:18 ÖÖ Menü şık olmuş, kıskandım valla :) Ben de sana baskı yapacaktım ama 256 byte'a böyle bir menü sığdıramazsın değil mi? Yoksa sığdırabilir misin? :D Menü için boyut sınırı yok, tek kısıt büyük olması durumunda açılması noktasında 1sn. falan kadar oynar. Benim son önceliğim menü güzelliği, işlevsel ve çok fonksiyonlu olması şu anda benim için birinci planda. Görseli hoş şeyleri başta yapıp diğerlerini sonra yapmak benim için daha zor. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Ekim 14, 2015, 09:50:18 ÖÖ Menü çok güzel olmuş, elinize sağlık.
Ama bir eksik var. En tepede 9999999 in 1 yazmıyor :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 14, 2015, 09:51:57 ÖÖ Menü için boyut sınırı yok, tek kısıt büyük olması durumunda açılması noktasında 1sn. falan kadar oynar. Evet menünün PRG olarak SD karttan yükleneceğini söylemiştin, ROM'da 256 kere tekrarlanan 256 byte'lık koda gitti benim kafam. :DBenim son önceliğim menü güzelliği, işlevsel ve çok fonksiyonlu olması şu anda benim için birinci planda. Görseli hoş şeyleri başta yapıp diğerlerini sonra yapmak benim için daha zor. En doğrusu o aslında. Vakti gelince o da olur. :)Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Ekim 14, 2015, 10:18:12 ÖÖ güzel olmuş herkez bi şeyler söylemiş bende söyliyim ben 2 şeyi beğenmedim
1- dobermanın arka fonundaki müzik reseti çektiğin anda dooooooooooooong diye gelen ses güzel bir oyun oynadıktan sonra geceliyin reset attığını düşün dooooooong diye bir ses pek hoş olmayabilir 2- doberman formatına uygun olarak köpek kafasını koymuşşun ama oda bence pek hoş olmamış tabi bunlar benim fikirlerim aslında olumsuz yorum yapmak istemem ama sadece fikir verdim benim düşüncelerimde böyle genel olarak gayet güzel çalışması çalışmasını gayet beğendim. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 14, 2015, 11:32:35 ÖÖ Bence süper bir kartuş...
Sadece aklıma birşey takıldı... Misal, kendi oyunumuzu bir slota yükledik...Menüyü nasıl editleyeceğiz? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 14, 2015, 11:40:08 ÖÖ Sadece aklıma birşey takıldı... Misal, kendi oyunumuzu bir slota yükledik...Menüyü nasıl editleyeceğiz? Slotlara yükleme daha önceki videolardan birinde delimawi'nin kendi yazdığı program ile yapılıyordu. Bu programda o tür bilgiler için de yer olur sanırım. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 14, 2015, 13:25:52 ÖS 2- doberman formatına uygun olarak köpek kafasını koymuşşun ama oda bence pek hoş olmamış Merhaba, tabiki zevkler tartışılmaz. Ben genel olarak hayvanları severim, gerçi özellikle köpeklere karşı bir düşkünlüğüm yok ama merak ettim, neden köpeğin hoş olmamış olduğunu düşündünüz? :) Sadece aklıma birşey takıldı... Misal, kendi oyunumuzu bir slota yükledik...Menüyü nasıl editleyeceğiz? Oyun isimleri loader'da gömülü değil. Flash içerisinden otomatik okuyup oluşturuyor menüyü. Simon'un dediği gibi PC tarafındaki loader programı flash'a oyun atarken, oyunun başına 128 byte'lık bir header bilgisi ekliyor. Oyun adı, başlangıç adresi, çalıştırma tipi, memory konfigürasyonu vb. Loader bunu flashtan okuyup hem menüyü hazırlıyor hem de seçim yapılınca nasıl çalıştıracağına karar veriyor. (Basic RUN yada SYS ... gibi.) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 14, 2015, 14:58:14 ÖS Belki yine kaçırdığım bir başka konu... Bu kartuşla herhangi bir anda, C64'deki programın ya da oyunu snapshot'ını alabileceğiz diye hatırlıyorum. Yani oyun oynuyorken, dur şurayı kayıt edeyim diyerek, hafızada ne var ne yoksa almak gibi...Sonra kartuştan çağırıp oynamak gibi... Bunu ben mi hayal ettim, böyle bir özellik var mı? olacak mı :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 14, 2015, 15:03:02 ÖS O özellik olacaktı ancak henüz doğru düzgün çalışmasını sağlayamadım. Bazı zorluklar var. Eğer bir yolunu bulabilirsem paylaşırım. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 14, 2015, 15:25:33 ÖS Bunu ben mi hayal ettim, böyle bir özellik var mı? olacak mı :) Gerçek olması için önce birilerinin hayal etmesi gerekir. ;)Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Ekim 14, 2015, 15:29:00 ÖS 2- doberman formatına uygun olarak köpek kafasını koymuşşun ama oda bence pek hoş olmamış Merhaba, tabiki zevkler tartışılmaz. Ben genel olarak hayvanları severim, gerçi özellikle köpeklere karşı bir düşkünlüğüm yok ama merak ettim, neden köpeğin hoş olmamış olduğunu düşündünüz? :) Sadece aklıma birşey takıldı... Misal, kendi oyunumuzu bir slota yükledik...Menüyü nasıl editleyeceğiz? Oyun isimleri loader'da gömülü değil. Flash içerisinden otomatik okuyup oluşturuyor menüyü. Simon'un dediği gibi PC tarafındaki loader programı flash'a oyun atarken, oyunun başına 128 byte'lık bir header bilgisi ekliyor. Oyun adı, başlangıç adresi, çalıştırma tipi, memory konfigürasyonu vb. Loader bunu flashtan okuyup hem menüyü hazırlıyor hem de seçim yapılınca nasıl çalıştıracağına karar veriyor. (Basic RUN yada SYS ... gibi.) yanlış anlamazssın umarım amacım yapıcı eleştiri başka bir şey değil kartuşun çalışma sistemi gayet hoş ancak doberman menusu gerek müzik gerek köpek kafası gerek renklendirmesi olsun sanki korku filimlerinden çıkmış gibi geldi bana bence daha sevimli bir resim + müzik konulsa daha hoş olurdu diye düşünüyorum ama sonuçta zevk meselesi tabiki. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 24, 2015, 19:57:42 ÖS Merhabalar,
Bu aralar işlerin yoğunluğundan fazla zaman ayıramıyorum projeye. Hafta içi bir kaç oyunun başındaki intro vb kısımları ayıklayıp hazırlamıştım. Bugün onları yükleyerek bir test yaptım. Yükleme hızı oldukça tatminkar. Ekte videoda görebilirsiniz. Bunun haricinde çok parçalı oyunların en azından bazılarını destekleyebilmek için biraz kafa yordum. EasyFlash ta olduğu gibi, oyunlar patchlenerek Doberman64 ile çalışacak hale getirilebiliyor. Bu teoriyi test etmek için birkaç oyunu patchledim. Gene videoda bir tanesinin testi de mevcut. Bu çok parçalı oyunların desteklenmesi işi şu şekilde oluyor. Normalde Doberman içerisinde 64K lık 64 adet slot var. Zaten başlangıçta sadece tek parça PRG ler için düşündüğümden böyle bir yapı öngörmüştüm. Çok parçalı oyunlar doğal olarak 64K dan daha büyük oluyor toplamda. Öncelikle parçaları birleştirerek 64K dan büyük olmayan bloklar elde ediyorum. Daha sonra bunları ardışık olarak Doberman64 içerisindeki slotlara upload ediyorum. Videoda test edilen The Last Ninja III örneğinden gidecek olursak, Intro 51KB End Screen 28KB High Scores 10KB Death 9KB Ve herbiri yaklaşık 56KB olan 5 ayrı bölüm mevcut. End Screen, High Scores ve Death toplam 1 slot Intro 1 slot, Her bir level 1 slot olmak üzere oyun toplamda 7 slotluk yer kaplıyor Doberman64 hafızasında. Daha sonra oyunun kodu incelenerek, bu parçaların nerede nasıl yüklendiğini buluyoruz. Bu kısım biraz zaman alıyor. Oyunun kendi içindeki yükleme mantığını anladıktan sonra, kendi loaderımızı yazarak, oyun kodu yükleme yapacağı zaman bu rutine dallanmayı sağlıyoruz. Kendi loader rutinimiz ise şu işi yapıyor. Yüklenecek olan parçanın hangi slotta olduğunu, başlangıç adresini ve yükleme yapılacak uzunluğu C64 hafızasında Doberman'ın da bildiği bir yere yazıyor. Tabiki Doberman da zaten bu hafıza bölgesini periyodik olarak DMA yaparak test etmekte. Tesadüfi bir DMA request yaratmamak için, bu hafıza bölgesinin başında 'DMA' harflerinden oluşan bir magic sequence de mevcut. Daha sonra rutin bir bekleme dögüsüne girerek, Doberman'ın DMA ile istenilen datayı hafızaya yazmasını bekliyor. Herhangi bir IO işlemi yapması gerekmediğinden bu loader rutini çok kısacık. Ve oyunun kendi loader rutininden daha kısa olduğu için bu rutini yerleştirecek yer bulmak da kolay oluyor. Bu oyun için yazdığım loader rutin aşağıda. Burada oyun orjinalinde $BB,$BC pointerının gösterdiği yere, "L0", "L1", "INTRO", "DEATH" vb text stringler koyarak kendi loader'ına dallanıyordu. Ben bu loader'e dallanmasını sağladım... Kod: *=$0338 Burada StartDMA label'ından sonra göreceğiniz enteresan bir durum var. $D011'in 4.bitini set etmek zorunda kaldım. Zira denemelerim sırasında rutin bir türlü çalışmadı. En sonunda farkettim ki, oyun loader rutine geçmeden önce ekranı kapatıyormuş. Böyle oluncada bad line oluşmuyor ve Doberman DMA başlatamıyor. Videoda göreceğiniz yüklemeler esnasında ekrana çıkan garip şekillerin sebebi benim ekranı DMA oluşsun diye zorla açmamdan kaynaklı. Buna daha güzel bir çözüm üreteceğim şimdilik sadece test edip emin olmak için bu şekilde yaptım. Ayrıca videoda görebileceğiniz gibi Doberman yükleme yaparken LED'i yakıyor. Buradan ne zaman yükleme yapıldığını ve yükleme hızını görebilirsiniz. Ayrıca LED'in kısa çakmalar şeklindeki yanmaları ise, Doberman'ın C64 tarafında DMA request var mı yok mu test etmek çin yaptığı kısa DMA lar... Bu haftalık bu kadar, Herkese selamlar. P0TmH4a54Vk Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 24, 2015, 23:26:12 ÖS Güzelmiş, ancak yama yama nereye kadar. Hakikaten 1541 emülasyonu lazım.
$0338'e kodu ne zaman atıyorsun? Oyunun yüklemesi basic'ten de aşağıda adreslerden mi? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 24, 2015, 23:37:55 ÖS Orjinal oyunda da loader rutini $338 de aslında. Yani orjinal derken tabiki cracklenmiş halinde. Ama loader rutini buraya sığmamış anladığım kadarı ile, 338 deki orjinal loader, önce 0400'e gerçek loader'ı upload ediyor, sonra 0400 de çalışıyor gerçekte yükleme yaparken... Ben sadece 338 deki loader'ın yerine kendi loader'ımı patchledim ve ana programın içine gömdüm. Yani 338 e o programı sonradan load etmiyorum hep orada ilk yüklendikten itibaren.
Ama haklısın 1541 emulasyonu projesine geçmek gerekiyor artık. Bir de şu freeze işini bir deneyeceğim NMI ile sonra o projeye devam. ;) EDIT: Bu arada görmemişim, oyunun yüklemesi normal BASIC bölgesi ama çalışınca RAM de herbir yere saldırıyor. :D 338'e de loaderini koyuyor. Tabi ben patchleyince ana programı benim loader'i koymuş oldu oraya... Eğer merak edersen aşağıda orjinal loader rutini ve benim aldığım notlar var. Kod:
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 31, 2015, 19:26:37 ÖS Merhaba,
Bugün defreeze kısmı için de biraz kod yazdım. İlk testler gayet olumlu. Freeze/Defreeze şimdilik şu şekilde çalışıyor: Freeze edilmek istendiğinde, doberman DMA yaparak hafızada bir yere ufak bir freeze kodu atıyor. Daha sonra oyun yada programın interrupt vektörlerini okuyor, bunu bir yere kaydedip, bu vektörleri kendi freeze kodunun adresi ile değiştirip, DMA yı kapatıp beklemeye başlıyor. Oyuna ait ilk IRQ gerçekleştiğinde, oyunun kendi interrupt rutini yerine dobermanın içeriye sokmuş olduğu trojan freeze kodu çalışıyor. Bu rutin de, Dobermanın rahat rahat DMA yaparak istediği bilgileri okuması için kapıları sonuna kadar açıyor diyebiliriz. Çok detaya girmeyeceğim, aşağıda freeze ve defreeze kodlarını ekliyorum. Merak eden olursa cevaplamaya çalışırım. Sonuç olarak yaklaşık 1sn gibi bir sürede, C64'ün tüm RAM'i (Freeze anında ROM lar açık olsa bile), ColorRAM'i ve I/O bölgesi registerlerinin okunabilen büyük bir kısmı flash'a yazılıyor. Ve oyun çalışmaya devam ediyor... De-Freeze daha da basit. Önce Doberman temiz bir reset atıyor c64'e. Defreeze rutinini yüklüyor. Benzer şekilde DMA yaparak flash'tan okuduğu RAM, ColorRAM ve I/O registerlerini geri yüklüyor. Freeze anında not etmiş olduğu oyunun orjinal interrupt rutinine dallanıyor ve program kaldığı yerden açlışmaya devam ediyor. :D FREEZE Kod: DMAS .byte $20 ; DMA Status $20-C64 Not Ready, $21-C64 Ready, $22-Doberman DMA Done DEFREEZE Kod:
Bu arada bu freeze işlemine ait kodun, PIC tarafı da aşağıdaki şekilde: Kod:
Aşağıda da hızlı bir video. NOT: Henüz freeze/defreeze için bir buton yok Doberman'da. Bu sebeple komutları PC den veriyorum. Sanıyorum Doberman'ın bir butonu daha olacak. Freeze ve Menu... Videoda Commando oynuyor iken 24. saniyeler civarında oyunu freeze ediyorum. Videoda 1 sn lik donma ile anlaşılabiliyor. Daha sonra yandıkça bir kaç kere defreeze edip kaldığım yerden devam ediyorum. Defreeze işlemi de yaklaşık 1 sn içinde tamamlanıyor. Freeze'in kesin flash'ta tutulduğunu göstermek için 57. saniyede bilgisayarı tamamen kapatıp, açıkldıktan sonra tekrar defreeze ediyorum ve aynı kaldığımız yerden devam ediyoruz. Daha sonra Doberman ile hızlıca bir başka oyun yükleyip, onu da bir miktar ilerleyince freeze edip aynı işlemleri tekrarlıyorum. Bu arada oyun oynama konusunda gerçekten yeteneksizim, kusura bakmayın... :) b87i42vTWjk Bu arada bugün yurtdışından bir paket geldi. içinden bir miktar bu kutulardan çıktı. :) Aslında şeffaf ama flash'lı çekince böyle çıktı... (http://i63.tinypic.com/ilkao9.jpg) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Ekim 31, 2015, 20:00:11 ÖS Süper olmuş. LW3D'nin en çok istediği özellik geliyor. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Ekim 31, 2015, 20:07:54 ÖS Ooo çok iyi ilerliyor proje.. :)
------------------------------------- Bütün projecilere sesleniyorum.. 30 sene önce nerelerdeydiniz ? :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: ibo1973 üzerinde Ekim 31, 2015, 20:08:50 ÖS süper olmuş eline sağlık
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 31, 2015, 20:17:18 ÖS Harika... Bir kartuştan başka ne istenir ki ? Süper kullanışlı bir özellik olmuş. Tebrik ederim...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ekim 31, 2015, 20:19:47 ÖS Unutmadan freeze, defreeze özelliğini neden çok önemsedim? Ben de oyun konusunda çok kabiliyetsizim :P Bu sayede ilerlemek mümkün olabilir :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Ekim 31, 2015, 20:24:51 ÖS Nefis olmuş, tebrikler. Freeze/defreeze çok hızlı, sanki emulator'da snapshot yapılıyor gibi. Artık oyunları gerçek makinede oynarken freeze yaparak rahatça bitirebiliriz. icomp kutu da gelmiş, üzerine doberman resimli bir etiket iyi gider. icomp kutu protovision'dan mı yoksa daha ucuz bir kaynak bulabildin mi?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Enson üzerinde Ekim 31, 2015, 21:16:26 ÖS ghosts'n goblins değil mi o, bu oyunun 2. bölümüne bir kere geçebilmiştik yirmi seneden fazla oldu sanırım, yani oyun konusunda yalnız değilsin, fakat bu özellik sayesinde artık kaldığımız yerden devam edeceğiz, eline sağlık.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Ekim 31, 2015, 21:23:42 ÖS Şık olmuş yeni özellik. Bence ekran belleğinde kod çalıştırmadan önce ekranı kapasan daha şık bir görüntü olur.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Ekim 31, 2015, 21:39:16 ÖS Şık olmuş yeni özellik. Bence ekran belleğinde kod çalıştırmadan önce ekranı kapasan daha şık bir görüntü olur. Görüntüyü dondurarak veya siyah ekran yaparak, kanal geçişi yapan uydu cihazları; Aynı hızda kanal geçişi yapsa bile; görüntüyü dondurarak geçiş yapanlar, daha hızlı geçiş yapıyormuş gibi geliyor bana. :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Ekim 31, 2015, 22:38:05 ÖS sadece yok artık diyorum. Sadece Doberman için söylemiyorum, forumdaki diğer projelerin hepsi Commodore camiasında ses getirecek tarz da projeler. Hepinize ne kadar teşekkür etsem azdır.
Bu tarz projeleri yapanlar bizden birileri olunca inanılmaz gurur duyuyorum ;) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ekim 31, 2015, 22:46:37 ÖS Arkadaşlar, teşekkür ederim.
Bütün projecilere sesleniyorum.. 30 sene önce nerelerdeydiniz ? :D Açıkçası bende o zamanlarda da aynı heves ve ilgi vardı ama malesef teknik ve maddi imkanlar elvermiyordu. O yıllarda öğrenci harçlığı ile yanan bir C64'ü yaptırmak pek kolay değildi.Ayrıca bugün artık peynir ekmek gibi bulunan bazı işlemciler, logic chipler vb o zamanlar yoktu yada çok kısıtlı idi... :) Nefis olmuş, tebrikler. Freeze/defreeze çok hızlı, sanki emulator'da snapshot yapılıyor gibi. Artık oyunları gerçek makinede oynarken freeze yaparak rahatça bitirebiliriz. icomp kutu da gelmiş, üzerine doberman resimli bir etiket iyi gider. icomp kutu protovision'dan mı yoksa daha ucuz bir kaynak bulabildin mi? Teşekkürler Metallic. Icompları ben vesalia.de den aldım. Bence 6euro+shipping anlamsız pahalı ama başka ucuz bir kaynak da bulamadım. Zaten fazla almadım ben. Bir kaç prototiplik aldım... https://www.vesalia.de/e_c64cartshell (https://www.vesalia.de/e_c64cartshell)[7220].htm ghosts'n goblins değil mi o, bu oyunun 2. bölümüne bir kere geçebilmiştik yirmi seneden fazla oldu sanırım, yani oyun konusunda yalnız değilsin, fakat bu özellik sayesinde artık kaldığımız yerden devam edeceğiz, eline sağlık. Evet, Ghosts'n Goblins. Bu oyunun müziğine ve ambiyansını çok seviyorum. Grafikler de kaliteli sayılır. Aslında bu oyun 6 bölüm ama C64 versiyonunda sadece 4 bölüm var. Yapımcı şirket ara yüklemesiz olması için ısrarcı olmuş, bu sebeple 4 bölümü sığdırılabilmiş. Müzikte de Chopin Prelude No:20 den esinlenilmiş... Şık olmuş yeni özellik. Bence ekran belleğinde kod çalıştırmadan önce ekranı kapasan daha şık bir görüntü olur. Selam i_r_on. Teşekkrüler. Açıkçası ben ekran belleğinde kod çalıştırmıyorum. Freeze ve DeFreeze daha aşağı bir yerlerde çalışıyor. Ekrana çıkan o textlerin sebei başka. Defreeze esnasında önce 64KB RAM'i yüklüyorum DMA ile. Sonra da D000 sonrasındaki IO bölgesini. İlk başta RAM yüklenirken eğer orjinal programcı yada kıran artık herkimse 0400 lerde birşeyler bırakmış ise, D000 daki I/O bölgesine yüklenene kadar ekranda o textler görünüyor. Zaten bu ilk deneme, görselliğe falan vakit ayırmadım hiç. Belki önce IO bölgesini yükleyip sonra RAM'i yüklemeyi deneyebilirim. Ama ekranı kapatma şansım yok. Çünkü ekran kapalı olunca VIC Bad Line yaratmadığı için Doberman DMA yapamıyor. Hani o da belki DMA gerekmeyen zamanlarda kapatılıp, açılabilir ama bu sefer freeze ve defreeze kodları büyüyecek. Olabildiğince kısa olmaları için özen gösterdim. Zira freeze ve defreeze kodu oyunun içinde lazım olan bir bölgeye denk gelirse kötü şeyler olur ... :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 23, 2015, 19:15:05 ÖS Doberman'lar hayırlısıyla yoldalar... :D ;D
(http://i68.tinypic.com/f5hjm.jpg) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Kasım 23, 2015, 19:24:53 ÖS Profesyonel tasarım kendini hemen belli ediyor. Bizimkiler bunun yanında oyuncak gibi kaldı. :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 23, 2015, 19:38:49 ÖS Profesyonel tasarım kendini hemen belli ediyor. Bizimkiler bunun yanında oyuncak gibi kaldı. :D Teşekkürler. PCB Tasarımı bittikten sonra, üzerinde vakit harcayıp gözüme hoş gelecek şekilde detaylandırmayı seviyorum açıkçası. Ama bu tarz bir projede, gelen ilk parti PCB'nin üzerinde düzeltme, atlama, kesme vb. yapmadan çalışması daha önemli. Gelince göreceğiz artık bakalım nasıl olacak, çalışacak mı ilk seferde... :D Bu arada daha önceki PCB çizimini neredeyse tamamen yeniledim. O ilk tasarım elde basmak için o şekilde idi, ayrıca USB konnektörü, buttonlar, kartuş vida deliği falan da eklenince bayağı bir değişikklik oldu... NOT: Bir de buna bol miktarda test point ekledim görüleceği üzere. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Kasım 23, 2015, 19:46:04 ÖS Vay canına, hakikaten ne kadar güzel görünüyor PCB'si bile :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Kasım 23, 2015, 20:17:48 ÖS Pcb güzel görünüyor delimawi, eline sağlık. Senin pcb'lerin gelmesine kaç gün var? =)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Kasım 23, 2015, 22:09:06 ÖS Acayip bir şey bu...çok şağlam. Görünüyor...eline sağlık...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Kasım 23, 2015, 22:19:16 ÖS Pcb oldukça şık gözüküyor :)
Hepsi ok ama o U6'yı lehimlemek epey bir ter attırır adama :) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 23, 2015, 22:34:12 ÖS Hepsi ok ama o U6'yı lehimlemek epey bir ter attırır adama :) U6, QFN kılıfında bir entegre. Bu güne kadar karşılaştığım QFN ler iki tipte. Bazılarında bacakları yan duvarlarda kesilmiş olarak görebiliyorsun. Bazıları ise sadece alt yüzde. Eğer yan duvarlarda bazaklar var ise, kolaylıkla bıçak tipli bir havya ile lehimlenebiliyor aslında. Esas sıkıntı sadece alt yüzde pad olanlar. Bunları ancak sıcak hava ve flux ile lehimlemek mümkün oluyor. Benim devrede U6, kolay lehim yapılabilir tipte... :D (https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTX-v4eT6Y1w4ZyCcuZwPXwfB3_rnIm_kGKijNrE9q_RYNQUaub) (http://cfnewsads.thomasnet.com/images/large/816/816319.jpg) Bu da zor tipte olana bir örnek: (http://alternet.us.com/wp-content/uploads/2011/07/QFN-6.jpg) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 23, 2015, 22:39:45 ÖS Pcb güzel görünüyor delimawi, eline sağlık. Senin pcb'lerin gelmesine kaç gün var? =) Emin değilim Metallic, herhalde ocak ayını bulacaklar. Bu arada sen kutuları nereden sipariş verdin? Daha ucuz bir kaynak bulabildin mi? Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Kasım 23, 2015, 23:13:07 ÖS Ben Protovision'dan alıyorum, gördüğüm kadarıyla en ucuz satan yer orası. 5.90€ olan fiyat, Almanya dışı satışlarda VAT olmadığı için 4.96€'ya düşüyor.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: byeni üzerinde Kasım 23, 2015, 23:26:45 ÖS Yurtdışında yaşayan bir arkadaşım şu adresi gönderdi. İşe yarar mı bilmiyorum, fiyat çok ucuz.
http://www.sklep.cyfronika.com.pl/en_US/p/Z-7-Obudowa-z-tworzywa-Z7-wymiary-19-x-68-x-90-mm-CARTRIDGE-czarna/16448 (http://www.sklep.cyfronika.com.pl/en_US/p/Z-7-Obudowa-z-tworzywa-Z7-wymiary-19-x-68-x-90-mm-CARTRIDGE-czarna/16448) http://www.sklep.cyfronika.com.pl/en_US/p/KM-20-Obudowa-z-tworzywa-KM20-wymiary-91x68x18mm-czarna-polistyren-1/30264 (http://www.sklep.cyfronika.com.pl/en_US/p/KM-20-Obudowa-z-tworzywa-KM20-wymiary-91x68x18mm-czarna-polistyren-1/30264) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 23, 2015, 23:32:15 ÖS Hakikaten bedavadan biraz pahalı. Acaba kalite nasıl?
Bu fiyata açıkçası transparan mavi olmamasına bile katlanılabilir... :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hekimoglu78 üzerinde Kasım 23, 2015, 23:58:03 ÖS Üstadım inanın sözün bittiği yer :) Bu proje forumda nasıl gözümden kaçmış şaşırdım...
Kendinizi bu denli geliştirmiş olmanız ve dönüp yıllar sonra bu makineye bu denli hayat verip heyecan verici kartuşu hazırlamanız ayakta alkışlanacak bir durum. Tek solukta 11 sayfayı okuyuvermişim. Ayrıca sizlere projenizde destek veren, iron, metallic, LW3d, Simon ve ismini sayamadıklarıma da selamlar... Eğer ki üretime geçerseniz beni de 2 adet olarak eklemenizi rica ederim... Nasıl ki c64 ümü 30 senedir sakladıysam emin olun ömrüm vefa ederse emeğinizi o denli saklamak isterim. tekrardan saygılar, sevgiler.. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Kasım 23, 2015, 23:59:27 ÖS >delimawi Pek ucuz sayılmaz, artı kargo masrafı var. Ama icomp kutularını almak için en uygun yer olarak Protovision görünüyor. FC3+'larda kullandığım kutuları oradan aldım, kalite ortada =) Zaten tek bir üretici var, hepsi icomp yani Individual Computers'ın ürettiği kutuları satıyorlar. Protovision'daki şeffaf mavi ve şeffaf kırmızıları ben bitirdim =) Şeffaf maviden 7 adet kalmış maalesef. Adetli alacak olursan siteden mesaj atabilirsin. Jakob ilgileniyor kutularla, muhabbeti iyi bir c64 scener & 6510 asm coder kendisi.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 28, 2015, 16:56:17 ÖS Selamlar,
Bir miktar PCB'yi de sadece denemek için Dirty haricinde başka bir yerden daha sipariş ettim. Fiyat olarak Dirty'nin 10 adetlik prototip adedinin üzerine çıkıyorsanız burası daha uygun. 4. günde siparişi gönderdiler. Kalitesini gelince göreceğiz. (http://i64.tinypic.com/2qrzznl.jpg) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Kasım 28, 2015, 17:13:45 ÖS Heyecanlanalım mı? Eline geçti mi yoksa paketi göndermeden önce fotoğrafını mı çekip göndermişler? :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Kasım 28, 2015, 17:39:01 ÖS Göndermeden önce foto çekmişler. Ben bu firma ile ilgili de bilgi olsun diye paylaştım fotoyu... ;)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: arnavutrafet üzerinde Aralık 19, 2015, 00:55:36 ÖÖ foto da değişiklik olmuş...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 19, 2015, 10:30:26 ÖÖ Dün gece foto değişik görünüyordu. Bu sabah baktım düzelmiş... :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 22, 2015, 09:41:17 ÖÖ Doberman PCB'leri için PTT kargo takip aşağıdaki şekilde çıktı veriyor. Bu gümrüğe takıldı mı demek? Bilen var mı?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: byeni üzerinde Aralık 22, 2015, 10:08:25 ÖÖ Şu an Gümrüğe sevk edilmiş daha incelenmemiş gözüküyor. Akşamüstüne doğru Gümrükten çıktı yazısını görürsün inşallah.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 22, 2015, 16:46:43 ÖS Torba kapanmış, ne demekse artık... :D
Hastayım bu Türkçe'leştirilmiş terimlerin. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: joker_ üzerinde Aralık 22, 2015, 16:48:56 ÖS Muhtemelen, gümrük kontrol işlemleri bitti. Dağıtıma çıkartılmak üzere adresine en yakın postaneye gönderiliyor. ;)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 22, 2015, 16:56:16 ÖS Hadi hayırlısı bakalım... :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Aralık 22, 2015, 16:59:43 ÖS Muhtemelen yarın elinde. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Aralık 23, 2015, 09:23:08 ÖÖ "Hav, hav" sesleri yakınlaşmaya başladı.
Hadi bakalım Doberman, kopta gel. :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 23, 2015, 23:35:51 ÖS Evet PCB'ler akşamüzeri geldi.
Biraz geç geldiği için henüz çalıştıramadım ama prototip dizgi tamam gibi. (http://i63.tinypic.com/2i2772x.jpg) Bu arada bu PCB'ler dirty'den sipariş ettiklerim değil. Daha dirty'den gelecek olanlardan haber yok. Bunları yaklaşık 1 hafta sonra başka bir firmaya daha sipariş etmiştim. Hakikaten hem daha hızlı geldi, hem daha ucuz hem de takip no veriyorlar. Firma 'elecrow' tavsiye ederim... http://www.elecrow.com/20pcs-2-layer-pcb-p-1176.html (http://www.elecrow.com/20pcs-2-layer-pcb-p-1176.html) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Aralık 24, 2015, 00:16:10 ÖÖ Elecrow'u öğrendiğimiz iyi oldu, teşekkürler delimawi. Özellikle 10x10cm pcb'nin fiyatı çok iyiymiş, 20 adet 10x10cm pcb : 27.80$ + 6.34$ kargo. Dirtypcbs'den 18$ daha ucuz, bilseydim son pcb'leri orada bastırırdım valla. Takip numarası vermesi de tam benim aradığım şey, Dirtypcbs'de takip numarası olmaması adetli siparişler için çok riskli oluyor. Senin pcb'ler sorunsuz çalışırsa Elecrow'dan devam ederiz artık.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Aralık 24, 2015, 00:20:07 ÖÖ Bir lehimli, bir lehimsiz, bir köpeksiz :P
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 00:24:01 ÖÖ Shipping icin 16 kusur aldi yalniz 6.34 degil... Gene dirtyden ucuz...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 00:29:04 ÖÖ @LW3D, abi sen simdi bir de programlanmis istersin tahminimce cpld ve pic'i...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Aralık 24, 2015, 00:38:00 ÖÖ Oo 16$ kargo biraz fazla olmuş. O zaman registered shipping'i de hesaba katarsak Dirtypcbs'le arasında 5-6$ gibi bir fark var, yine de iyi fiyat.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Aralık 24, 2015, 00:38:54 ÖÖ Evet, Elecrow da iyiymiş. PCB'ler de gayet kaliteli görünüyor.
Eagle dosyalarını direk kabul etmiyor ama hata kontrolü için DRU ve gerber üretimi için CAM dosyalarını vermişler. DRU: http://www.elecrow.com/download/Elecrow_PCB_eagle_rule.zip (http://www.elecrow.com/download/Elecrow_PCB_eagle_rule.zip) CAM: http://www.elecrow.com/download/Elecrow_Gerber_Generater_DrillAlign.zip (http://www.elecrow.com/download/Elecrow_Gerber_Generater_DrillAlign.zip) Bir de panelize olarak sipariş vermek isterseniz ekstra ücret ekliyor ama yine de adedine göre DirtyPCBs'den daha ucuz oluyor sanırım. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Aralık 24, 2015, 00:42:37 ÖÖ @delimawi :) hepsinden... little little in the middle
EZrxskBeFOY Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 00:47:13 ÖÖ Ben eagle ile çizmediğim için mecburen gerber oluşturuyorum. Dolayısı ile bu açıdan fark olmadı benim için. Dirty de 1usd karşılığında pcb satışı avantajı var tabi tercih edilirse. Birde preview imaj oluşturması gayet şık. Gel gelelim registered göndermesi en büyük artı bence elecrow için. Birde neden benden 16 dolar aldı anlamadım. Şimdi tekrar baktım hakikaten estimate 6 küsür gösteriyor... Bir kaç post yukarıda fotoda görebilirsiniz faturanın rakam olan kısmı açık. Toplam 44 dolar...
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Aralık 24, 2015, 00:55:09 ÖÖ 16$ shipping enteresan olmuş gerçekten, 6.34$ alması gerekirdi. Ödeme yapma aşamasına gelene kadar bir sipariş daha ver bakalım yine aynı fiyatı mı verecek.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 01:07:23 ÖÖ Anlaşılan 20 adet 10x10cm olunca shipping weight değiştiği için fiyat artıyor. 810 gram hesaplamış. Tabiki aslında PCB ler 10x10 olmadığı için bu kadar ağır değil ama 5x5cm yi geçtiği için bu şekilde hesaplıyor ve alıyor parayı... :/
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 01:12:42 ÖÖ Tam siteyi kapatıyordum siparişi vermeden aşağıdaki mesaj çıktı. 2 dolar daha kırdık fiyatı... :D
Bir de bu firma siparişlerden puan falan veriyr ama ne kadar ne işe yarıyor bilemiyorum. Bakarız bir sonraki siparişte... İyi geleceler... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Metallic üzerinde Aralık 24, 2015, 01:25:23 ÖÖ 5x5cm pcb için 210 gr diyor ve 6.34$ shipping alıyor, 10x10cm pcb için 810gr diyor ve 16.84$ istiyor. 810gr'ı hesaplarken 210gr'ı 4'le çarpmış, biraz düşüğünü almış. Ağırlık hesabı doğru, ama 810gr için 16$ biraz fazla olmuş.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Aralık 24, 2015, 12:01:47 ÖS Bu çinliler çok komik. Siparişi vermeden sayfadan çıkarken 2dolar teklif etmişti. Arkamdan gece mail gelmiş. Hadi siparişi ver 5dolar indirim yapıyorum diye... :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Aralık 24, 2015, 12:25:41 ÖS Bit pazarı pazarlığı gibi olmuş. Demek ki sipariş verecek olursak çok istekli görünmeyeceğiz, naza çekeceğiz biraz. :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: i_r_on üzerinde Aralık 24, 2015, 21:49:13 ÖS Şanslısın valla. Bu aralar çinden gönderilen postalarda bir acayiplik dönüyor. Benim 1 ay önce gönderilen takipli postaların tümü Gönderi yurt dışına sevk edildi'de bekliyor. Şu 11/11 belimizi büktü sanırım.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: dodogildo üzerinde Aralık 24, 2015, 21:55:10 ÖS Aralık ayı Noel yüzünden dünya posta sisteminin her yıl dizleri uzerine çöktüğü ay:)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ocak 06, 2016, 16:00:14 ÖS Dirty PCB'ler hala elime ulaşmadı. Dayanamadım elecrow dan gelenlerle bir iki örnek dizgi yapıp test ettim. Gerçi her iki grup PCB de ulaşınca kalite farkı var mı kontrol edip o şekilde dizecektim. Bu deneme oldu. Elektronik sıkıntısız çalıştı.
Şimdi PC yazılımını ve C64 loader kısmını finalize etmem gerekiyor. Az kaldı... :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ocak 06, 2016, 17:43:33 ÖS Biri benim. :)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Enson üzerinde Ocak 06, 2016, 17:49:57 ÖS bende ona bakındım, sipariş başlığını bulamadım Dobermanın, karıştırdım mı yoksa?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: LW3D üzerinde Ocak 06, 2016, 18:03:32 ÖS Köpek olmayaydı iyiydi :P
Çok sağlam duruyor...Çok esaslı bir kartuş...C64'e takmadan, ben burdayım diyor hakikaten Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Ocak 06, 2016, 19:50:50 ÖS Köpeksiz olmaz :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Samurai üzerinde Ocak 06, 2016, 20:37:18 ÖS Öncelikle projede başarılar diler kısa zamanda bitip istenildiği gibi olması dileğimle...
Doberman ismi sakat abi zamanında Doberman cinsi köpeğin saldırısına ugruyodum sahibi komut vermese nalları dikmiştik :D Köpeğin maması fazla gelmişti galiba o da bizi buldu yanından bir kaçmıştım İST Avrupa yakasından Anadolu yakasına kadar kosmusumdur herhalde :D Doberman bıraksın bu işleri hiç sevmem Doberman köpeğini :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Ocak 06, 2016, 20:59:02 ÖS Öncelikle projede başarılar diler kısa zamanda bitip istenildiği gibi olması dileğimle... Doberman ismi sakat abi zamanında Doberman cinsi köpeğin saldırısına ugruyodum sahibi komut vermese nalları dikmiştik :D Köpeğin maması fazla gelmişti galiba o da bizi buldu yanından bir kaçmıştım İST Avrupa yakasından Anadolu yakasına kadar kosmusumdur herhalde :D Doberman bıraksın bu işleri hiç sevmem Doberman köpeğini :D C64'ü seven Dobermanına katlanır :D Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ocak 07, 2016, 11:20:17 ÖÖ @hades, sana özel dizeceğim, bunlar yakışmaz... :D
@Enson, daha üretime falan vakit var. Ben açıkçası satış düşünmüyorum, öncelikle yazılımları tam içime sindireyim sonra istek durumuna göre birşeyler planlayacağım. Bu arada bir gün daha sabretseymişim daha iyi olacakmış. Dün akşam üzeri Dirty'ler de elime ulaştı... (http://i68.tinypic.com/2mgo7lk.jpg) Görünrde ciddi kalite farkı yok. Henüz dizmedim ama bence elecrow lar bir tık daha iyi. Özellikle silkscreen baskısı daha net ve yoğun. Dirty'nin kalayı daha fazla. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ocak 07, 2016, 11:54:24 ÖÖ pic için kristal göremedim. dotcl'yimi kullanıyorsun?
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Ocak 07, 2016, 12:07:11 ÖS Piclerde internal osilatör ve PLL var. Full 64 MHZ e kadar internal clock kullanılabiliyor. Ayrıca gerekirse internal osilatör calibre edilebiliyor da.
Ben açıkçası hassas zamanlama işleri olmadıkça kristal kullanmıyorum. Hem devre küçülüyor hem de iki bacak daha boşa çıkıyor... Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: hades üzerinde Ocak 07, 2016, 12:48:16 ÖS Hem Pic hem Z80 için iki ayrı kristal kullanmayı planlıyordum. Sonra her iki çip için C64'ün Dotcl'si geldi aklıma. Ama ikisini sürebilirmi diye emin olamadım.
Olmazsa Z80'i Dotcl ile Pic'ide internal osc olarak çalıştırayım. İki kristal + bir entegre eksilmiş olur. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: AstronBnX üzerinde Şubat 06, 2016, 23:40:01 ÖS 10 numara 5 yıldız. Bravoo..!
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Şubat 07, 2016, 00:38:01 ÖÖ 10 numara 5 yıldız. Bravoo..! Teşekkürler, bir de elime yapışıp kalan şu loader'ı bitirebilsem çok güzel olacak. Konuyu boşladım sanmayın, boş zamanlarımda devam ediyorum ufak ufak. Hatta tüm loader'ı baştan yazmaya başladım... (http://i66.tinypic.com/15gxzm1.jpg) EDIT: Sizce bu basit ekranda kaç farklı karakter seti var? :P Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: arnavutrafet üzerinde Şubat 07, 2016, 00:39:56 ÖÖ Muhteşem. Page down için DW öneriyourm izninizle.
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: AstronBnX üzerinde Şubat 07, 2016, 00:50:25 ÖÖ 10 numara 5 yıldız. Bravoo..! Teşekkürler, bir de elime yapışıp kalan şu loader'ı bitirebilsem çok güzel olacak. Konuyu boşladım sanmayın, boş zamanlarımda devam ediyorum ufak ufak. Hatta tüm loader'ı baştan yazmaya başladım... (http://i66.tinypic.com/15gxzm1.jpg) Eski ben olsa şuanda size c64 programcılık konusunda çok yardımım olurdu, bir süre önce Bülent Çakır sağolsun bir C64 hediye etti, 1986 yılına gittim geldim. Amigayıda çıkarttım açtığımda mouse iconu bile bir garip geldi bana. Programlarımı buldum yazdığım demoları filan ama sanki ben değilde biri gelmiş yazmış koymuş harddisk'e. Çok üzüldüm doğrusu. Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Enson üzerinde Şubat 07, 2016, 01:02:36 ÖÖ beş adet ? (renk uyumu tasarım, işin uzmanı değilim ama benim hoşuma gitti)
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Simon (Özay Turay) üzerinde Şubat 07, 2016, 09:40:39 ÖÖ Ben de çok beğendim. Yalnız ilgimi çeken bir seri numarası olayı gördüm orada. Cihaz firmware'inde seri numarası ile ilgili bir kısım mı koydun?
Bir de sayıdan sonrası için deneme yapmışsın sanırım, nokta daha çok yakışmış. ;) Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: Cengiz Demir üzerinde Şubat 07, 2016, 10:48:46 ÖÖ @delimawi, sayısını bilmem ama, baya karakterli bi ekran olmuş :D
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Şubat 07, 2016, 22:57:50 ÖS Teşekkürler.
Eski ben olsa şuanda size c64 programcılık konusunda çok yardımım olurdu, bir süre önce Bülent Çakır sağolsun bir C64 hediye etti, 1986 yılına gittim geldim. Amigayıda çıkarttım açtığımda mouse iconu bile bir garip geldi bana. Programlarımı buldum yazdığım demoları filan ama sanki ben değilde biri gelmiş yazmış koymuş harddisk'e. Çok üzüldüm doğrusu. Ah keşke, çok sevinirdim... :) Yalnız ilgimi çeken bir seri numarası olayı gördüm orada. Cihaz firmware'inde seri numarası ile ilgili bir kısım mı koydun? Evet, PIC'lerde program ve eeprom hafızasından ayrı olarak 4 byte'lık bir ID memorysi var. Oraya her bir PIC için farklı bir değer yüklenebiliyor. Kod bunu okuyabiliyor. Hatta firmware değişse bile (upgrade vb) bu bölge aynı kalbiliyor. O alanı kullandım. Ama daha tam olarak yazılımın C64 tarafı bitmedi. Ekrandaki değer temsili şimdilik. Bir de sayıdan sonrası için deneme yapmışsın sanırım, nokta daha çok yakışmış. ;) Teşekkürler, notumu aldım. Bana da öyle geldi. Ekrandaki üst kısımdaki Doberman logosu da evet karakter setine gömülü ama gerçek bir karakter seti sayılmaz. Onun haricinde 3 farklı boyda 3 adet karakter seti var birbirlerine benzeyen. Her birini tek tek elle çizdim. :P Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: AstronBnX üzerinde Şubat 08, 2016, 00:13:53 ÖÖ Bu arada biraz araştırma yapmaya başladım C64 Studio diye bir Ide gördüm bu Vice2.4 Emulator ile çalışıyormuş, bu durumda Doberman64 ile sanırım uygun bir exe yazılırsa ki siz bunu yapıyorsunuz sanırım ve direk asm kodu compile edip C64'e atabilir ve debug yapabilirsiniz gibi geldi bana..
Konu Başlığı: Ynt: Doberman-64 (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Şubat 08, 2016, 00:21:35 ÖÖ Bu arada biraz araştırma yapmaya başladım C64 Studio diye bir Ide gördüm bu Vice2.4 Emulator ile çalışıyormuş, bu durumda Doberman64 ile sanırım uygun bir exe yazılırsa ki siz bunu yapıyorsunuz sanırım ve direk asm kodu compile edip C64'e atabilir ve debug yapabilirsiniz gibi geldi bana.. Aynen öyle. Hatta C64'üzerinde çalışan kodu da çat diye durdurup, memory debug edilebilir, kod yada hafızada modifikasyon yapılıp normal işleyişe tekrar devam edilebilir. Ama gel gelelim buna bu boyutta bir yazılım desteği vermek çok mümkün olsa da, sanki bir 20 yıl geç oldu bu iş. :P Bu donanıma bu kadar kapsamlı toollar yazmak için açıkçası benim enerjim yok. Birileri uğraşsa ne güzel olur... Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: AstronBnX üzerinde Şubat 09, 2016, 11:38:55 ÖÖ Yani kesinlikle haklısınız bu kadar zaman geçmiş etmiş. Ama işte bu scener ruhu olayı var ya bu durumdan bir türlü kurtulamıyorum. Bir ton işimiz olmasına rağmen buraya forma bakmak yazdıklarını okumak aslında beni dinlendirme ve kafayı boşaltma noktası oluyor. Bu nedenle bu olaya hobi olarak bakmak ama fırsat oluncada bir tuğlada olsa duvarın üzerine koymak iyi olur gibi. Takdir sizin.
Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: arnavutrafet üzerinde Mart 11, 2017, 14:47:02 ÖS Doberman kartuşu merak ediyoruz...
Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: Decypher üzerinde Mart 11, 2017, 15:36:59 ÖS Arada böyle gündeme getirmek lazım :)
Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: eins üzerinde Mart 12, 2017, 14:23:00 ÖS Doberman64 bitmiş durumda zaten. Kendim kullanıyorum. Toplam 2 yada 3 tane dizilmiştir. Kartuşun maliyeti beklenenden yüksek olduğunu düşündüğüm için üretim konusuna hiç girmiyorum bile. Bir çok özelliği olsa da kitle kartuşu sadece PRG yüklemek için kullanacaktır. Bu durumda çok daha ucuz ve pratik alternatifleri mevcut olduğundan bence çok bir cazibesi yok. C64 DMA olayının olabilirliğini göstermek ve öğrenmek için yaptığım bir çalışma olarak kalması yeterli bence. Bu sayede de bu sayfalarda bu konuyu yeterince dökümante etmiş olduk.
Ha ben program yazacağım, PC üzerinden USB ile C64 ile haberleşeceğim, C64 ile DMA ile ilintili beklentileri ve projeleri olanlar için anlamlı olabilir. Eğer varsa bu arkadaşalar benle iletişime geçerlerse gerekli desteği ve gerekiyorsa kartuş sağlayabilirim. Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: alexc64 üzerinde Nisan 23, 2021, 17:33:55 ÖS @eins All schematic infos and fotos of your excellent project are dead links! please contact me via pm. Thank you Konu Başlığı: Re: Doberman (DMA Tabanlý Kartuþ Projesi) Gönderen: alexc64 üzerinde Ocak 26, 2023, 09:01:06 ÖÖ why I cannot send PMs...?
Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: witchdoktor üzerinde Ocak 26, 2023, 09:05:38 ÖÖ why I cannot send PMs? Not enough forum messages (must be > 5) for private messaging. Konu Başlığı: Ynt: Doberman (DMA Tabanlı Kartuş Projesi) Gönderen: Kaan Akkurt üzerinde Ocak 26, 2023, 09:12:53 ÖÖ In the section below, we ask you to write an article introducing yourself. If you reply to each responder, your message count will increase in a short time (amigaesref style)
https://www.commodore.gen.tr/forum/index.php?board=4.0 (https://www.commodore.gen.tr/forum/index.php?board=4.0) (https://www.commodore.gen.tr/forum/index.php?action=dlattach;topic=11187.0;attach=46758;image) @eins All schematic infos and fotos of your excellent project are dead links! please contact me via pm. Thank you Konu Başlığı: Re: Doberman (DMA Tabanlý Kartuþ Projesi) Gönderen: alexc64 üzerinde Ocak 26, 2023, 09:13:04 ÖÖ Thank you my friend!
|