Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore DonanımCommodore 64 kartuşu yapabilirmiyiz?
Sayfa: 1 2 3 [4] 5 6 ... 9   Aşağı git
Yazdır
Gönderen Konu: Commodore 64 kartuşu yapabilirmiyiz?  (Okunma Sayısı 83611 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
tolga abaci
Uzman
*****
Mesaj Sayısı: 641



Üyelik Bilgileri
« Yanıtla #45 : Temmuz 28, 2010, 15:27:03 ÖS »

Zero Page CPU'nun içinde değil, normal RAM'de. Fakat 6502'nin bazı komutları direk Zero Page adresleyerek daha hızlı erişebiliyor, özelliği o. Komut içinde 16-bit adres yerine 8-bit adres verilip 1 byte'tan kurtarmış oluyor yani.

Logged

"Finished products are for decadent minds." -- attributed to Hari Seldon, in Isaac Asimov's Second Foundation.
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.751


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #46 : Temmuz 29, 2010, 15:28:07 ÖS »

The Flash/EPROM Adaptor

http://vic-20.de/x1541/hardware/2364.html
http://vic-20.de/x1541/hardware/2364-c.html

Nicolas Welte's Hardware Projects

http://vic-20.de/x1541/hardware/index.html
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #47 : Temmuz 29, 2010, 22:17:19 ÖS »

burada sadece commodore için değil bir çok sistem için emulatör kartuşu var,pekde zor görülmüyor,yapan olursa banada yapsın

http://www.instructables.com/id/Emulador-de-Cartucho-Commodore-64/step6/null/
Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.751


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #48 : Temmuz 29, 2010, 23:22:46 ÖS »

burada sadece commodore için değil bir çok sistem için emulatör kartuşu var,pekde zor görülmüyor,yapan olursa banada yapsın

http://www.instructables.com/id/Emulador-de-Cartucho-Commodore-64/step6/null/


Önce ispanyolca öğrenmemiz gerekecek.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #49 : Temmuz 29, 2010, 23:37:16 ÖS »

Biraz fantazi olacak ama bir adet 16F877 ve bir adet I2C ile haberleşen serial eeprom kullanarak yapılabilir mi acaba? seri eeprom ve pic c64'ün bus hızına yetişecek kadar emüle edebilir mi acaba? 16F877'de 33 tane port var bunlar kartuş portu üstündeki adres bus, data bus ve diğer naneler için yeterli sanıyorum... serial eeprom'lar ise sadece 8 bacaklı ve çoğu pic programmer'lar ile de programlanabiliyorlar. Yani böyle bir çözüm olduğunda bir şeyler yazıp sonra değiştirmek oldukça kolay.

Ya da 16f877'nin üstündeki 8192x14bit program hafızasını kullanarak expansion porttan bağlı bir kartuşu simüle etmeye kalksak? Pic'in 20mhz'lik hızı ile çok mu acı çeker acaba? (bu olmaz ise üstte söylediğim hiç olmaz zaten)
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
tolga abaci
Uzman
*****
Mesaj Sayısı: 641



Üyelik Bilgileri
« Yanıtla #50 : Temmuz 30, 2010, 00:07:15 ÖÖ »

I2C Serial EEPROM ile zor gibi... Ama belki 16F877 program hafızasını kullanarak olabilir. PIC'in 20Mhz de çalıştığını, C64 Bus'ın 1Mhz'de çalıştığını düşünürsek, 20 cycle var PIC'in çalışması için. Bu süre içinde, Chip Select / Address Decoding yapıp veriyi Program Memory / I2C'den okuyup Data Bus'a koyması lazım.
Logged

"Finished products are for decadent minds." -- attributed to Hari Seldon, in Isaac Asimov's Second Foundation.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #51 : Temmuz 30, 2010, 00:26:16 ÖÖ »

Hmm 20 cycle'da çok zor gibi... Bir de sürekli pic'in hiç bekleme yapmadan çalışması da herhalde epey bir ısınmasına sebep olabilir
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
aeymur
Üye
***
Mesaj Sayısı: 152



Üyelik Bilgileri WWW
« Yanıtla #52 : Temmuz 30, 2010, 01:10:25 ÖÖ »

16 serisi PIC'lerde dallanmaya yol açmayan komutlar 4 saat darbesinde tamamlanır. Komut dallanmaya yol açıyorsa ihtiyaç duyulan darbe sayısı iki katına çıkar.

20Mhz osilatörle sürülen 16 serisi PIC, normal bir komutu 200ns'de yerine getirir. Yani vaktiniz sandığınızdan daha az, dörtte biri kadar.

18 serisi PIC'lerde durum daha iyi. Normal bir komut 2 çevrimde tamamlanıyor.  Microchip'in sitesinden daha gelişmiş mikrodenetleyiciler araştırılabilir.

PIC'te ısınma problemi olacağını sanmam. Kendi projelerimde yada okuduğum dökümanlarda böyle bir şeye rastlamadım. Bunlar çok yüksek frekanslar değil.

Edit: Isınma konusunda söylediklerimi 16 ve 18 serisi için söylüyorum.
« Son Düzenleme: Temmuz 30, 2010, 01:16:37 ÖÖ Gönderen: aeymur » Logged

C64TPC|Dingoo A-330
tolga abaci
Uzman
*****
Mesaj Sayısı: 641



Üyelik Bilgileri
« Yanıtla #53 : Temmuz 30, 2010, 08:16:41 ÖÖ »

Evet aeymur, 4 cycle konusunda haklısın... Aslında 16 serisindeki /4 olayını biliyordum, ama dün gece teyit etmek için tekrar datasheet'ten bakınca oradaki "all single cycle instructions" lafı beni yanılttı bir an... Marketing olayı...

O zaman bu olay imkansız. Zaten mümkün olsa şimdiye kadar elli kere yapılmıştı tahminen . Ama mesela benim UFE'de kullandığım 80Mhz'lik PIC32 ile rahatlıkla yapılabilir sanırım, o hem MIPS olduğu için tam anlamıyla single cycle execution var, hem de 512 kb flash'ı var (gerçi wait-state'ler de var flash erişimi için ama hız rahat rahat yeter herhalde).

Logged

"Finished products are for decadent minds." -- attributed to Hari Seldon, in Isaac Asimov's Second Foundation.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #54 : Temmuz 30, 2010, 15:30:11 ÖS »

Neye elimi atsam bir yerden eksik malzeme çıkıyor arkadaş
Kartuş olayına gireyim dedim, ne eprom programmer var ortalıkta ne de yazılabilecek flash yahut eprom silme cihazı.

Wii bluetooth modülü üstündeki eeprom'u tamir edeyim dedim en dandik pic programmer'lar serial eeprom'ları desteklerken bendeki bir çok pic'i destekleyen usb programmer'ın desteği olmadığını öğrendim.

@aeymur : peki 80mhz pic32 ve seri eeprom ile olur mu bu iş? olursa da saçma mı olur sence? seri eeprom'un avantajı bacak sayısının çok az olması ve çok basit pic programlama devreleri ile de programlanabilmesi. flash programlamaya kalksak satılan malzemeler en az 150 tl civarı, ayrıyeten 28 bacaklı bir flash'ın devrede kaplayacağı alan ve getireceği karmaşıklık da cabası.

pic32 en azından ucuz da, 5-7€ arası : http://se.mouser.com/search/refine.aspx?N=4294781925&Keyword=pic32
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
aeymur
Üye
***
Mesaj Sayısı: 152



Üyelik Bilgileri WWW
« Yanıtla #55 : Temmuz 30, 2010, 16:15:15 ÖS »

Arkadaşlar veriyi C64'ün bus'ına böyle "on the fly" basmamız şart değil. Yani EEPROM'dan C64 bus'ına direkt olarak.

Yine sıradan bir PIC kullanırız, RAM'i 16KB(Max.oyun boyutu her ne olabiliy ise) veya daha yukarı olur. İstediğimiz seri EEPROM'u kullanırız. PIC istenen oyunu I2C ile eeprom'dan alıp kendi RAM'ına tamamen okur. Bu sadece bir kaç saniye sürecektir. Sonra PIC hazır durumda beklemeye başlar. Adres hatlarındaki değişiklik PIC'de bir IRQ yaratacak şekilde bir tasarım yapılır. IRQ'daki rutin PIC'in RAM'inde zaten hazır olan veriyi C64'ün bus'ına koyar. Başka bir oyun yüklenmek istendiğinde karta reset atılır. Oyun seçimi de daha önce dediğim gibi basit bir dip switch sistemiyle yapılabilir. Ama madem devreye bir PIC ekledik, artık küçük bir tuş takımı ve LCD ile de oyun seçimi yaptırılabilir tabii.

20Mhz/4 = 5mips.
rutine giriş 2 cyc
ram'den w registerine 1 cyc
w reg.den c64bus'ına bağlı porta 1 cyc
rutinden dönüş 2 cyc
-------------
toplam 6 cyc

5 cycle sınırını aştık ama data bus'ındaki veri 4. cyc sonunda hazır. 6502 CISC bir işlemci olduğu için ve en kıytırık komut bile en az 2 cyc harcadığı için PIC adres hatlarındaki bir sonraki değişiklikten önce IRQ'dan çıkmış olur ve hiç bir şey kaçırmaz.
Logged

C64TPC|Dingoo A-330
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.751


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #56 : Temmuz 30, 2010, 16:17:33 ÖS »

Yeni bir proje doğuyor galiba.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
tolga abaci
Uzman
*****
Mesaj Sayısı: 641



Üyelik Bilgileri
« Yanıtla #57 : Temmuz 30, 2010, 16:24:36 ÖS »

20Mhz/4 = 5mips.
rutine giriş 2 cyc
ram'den w registerine 1 cyc
w reg.den c64bus'ına bağlı porta 1 cyc
rutinden dönüş 2 cyc
-------------
toplam 6 cyc

Bu hesap tam doğru olmadı gibi?

İlk aklıma gelen: Address'i nerede okuyoruz? En az 2 cycle da adresi okumak alacaktır (iki 8-bit'lik port). Ayrıca adres üzerinde aritmetik işlem de gerekebilir PIC'in RAM adreslemesine bağlı olarak. PIC16 assembly code yazmayalı bayağı oldu ama indirect addressing için özel bir register falan varsa okunan adresi ona aktarmak için de ayrıca cycle gerekebilir...

Bunun haricinde daha da önemlisi: 6502'de en kıytırık komut 2 cycle harcıyor olsa bile, o cycle'larda arka arkaya gelen bus access'ler olabiliyor. Örneğin, instruction içindeki 16-bit'lik adresi iki cycle'da arka arkaya okuyor. O zaman 6 cycle da yetmez zaten.

Bence bu iş yaş

Edit: 2 8-bit'lik değerden bir 16-bit değer oluşturmak için ayrıca bir shift ve bir de toplama daha lazım normal şartlar altında... Yani 2 cycle daha, address için en az 4 cycle
« Son Düzenleme: Temmuz 30, 2010, 16:27:42 ÖS Gönderen: tolga abaci » Logged

"Finished products are for decadent minds." -- attributed to Hari Seldon, in Isaac Asimov's Second Foundation.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #58 : Temmuz 30, 2010, 17:13:08 ÖS »

Bir de şöyle bir durum var, 16F877'nin ram'i yalnızca 384byte
256+128 = 384 byte assembly yarışması olursa anca ona yeter

Yalnız Pic32 baya baya iş görür, aeymur'ün dediği gibi serial eeprom'dan başlangıçta ram'e yükleme yapılabilirse Pic32'nin hızı da yeter olaya...

Yalnız açılışta bu kopyalama işlemi yapılırken c64'ü bekletmek mümkün olacak mıdır? Zira açıldığı anda takılı kartuştaki koda dallanacak c64... I2C ile serial Eeprom'dan ram doldurulurken bir yandan da sanal bir bekleme rutini beslemek gerekebilir işlemciye... bu rutinin karmaşıklığı da doğrudan emülasyon hızını etkileyebilir.

ps: Bu arada tanesi 4-5 dolara da 1MBit (256KB) serial eeprom'lar mevcut.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
aeymur
Üye
***
Mesaj Sayısı: 152



Üyelik Bilgileri WWW
« Yanıtla #59 : Temmuz 30, 2010, 18:11:42 ÖS »

@tolga: Haklısın, adresin PIC'e malum olacağını düşündüm herhalde

Neyse, 18 serisinde 16mips'lik PIC'ler bile var. Bunlardan birini kullanır, fazladan 4 değil 11 cycle bile kazanabiliriz. IRQ'suz bir tasarım bulunabilirse 2 giriş, 2 çıkış toplam 4 cycle da ordan tasarruf edilebilir ki gerek kalmaz gibi. Datasheet'e bakmadan çok net konuşmak veya hesap yapmak zor. Bence çok yaş bir şey yok Yaşsa bile az yaş, üzerinde düşünülürse kuruyabilir

@iron: Harici bir RAM entegresi de kullanılabilir. Bu da bizi I2C'den kurtarır. PIC seri eeprom'dan seçili oyunu RAM'a yazar sonra da köşesine çekilir. C64 direkt Ram'le muhatap olur. PIC32 de kullanılabilir tabii ama SMT olmayanları var mı bilmiyorum. Yoksa ben hayatta onu lehimleyemem. Mümkün olursa sedece DIP kılıflı elemanlar kullansak herkes daha rahat eder bence. Kartta daha popüler olabilir.

Kartın kendi beslemesi olursa açılıştaki işlemler problem olmaz.  Kullanıcı artık C64'ü açabileceği konusunda bir ledle bilgilendirilebilir. Led yanıncaya kadar kullanıcı, bir kaç saniye dişini sıkarak bekler.
Logged

C64TPC|Dingoo A-330
Sayfa: 1 2 3 [4] 5 6 ... 9   Yukarı git
Yazdır
Gitmek istediğiniz yer: