|
Konu Başlığı: Z80+C64 Gönderen: hades üzerinde Aralık 19, 2015, 17:53:55 ÖS Bazılarınız bildiği ve uzun zamandır yapmak istediğim bir projem var. Kısaca C64'ün donanımını IO bölgesi olarak Z80 tabanlı bir proje.
Uzun zamandır derken 3-4 sene kesin vardır. Projeye başlarken daha tasarım aşamasında yok ide portu olsun, yok rtc si olsun derken, pcb çizmeye başladığımda kart ölçüleri gitgide büyüdü. Son zamanlarda Delimawi'nin Doberman64'ü sayesinde projeyi hem daha basit hemde daha güncel hale getirmeye başladım. Öncelikle IDE, RTC vs olmayacak. Ayrıca C64'ü /DMA üzerinden kullanmanın zorluğu ve çözümü hakkındaki bilgiler projede büyük değişiklik yapmamı gerektirdi. En önemli değişiklik ise PIC 18F4550/4555 olması. Projenin özellikleri. 1-Devredeki PIC hem Z80'i hem de C64'ü kontrol edebiliyor. Dolayısıyla Z80'in C64 tarafına yapacağı erişim PIC tarafından kontrol edilecek. 2-C64'ün boardını (VIC, SID, CIA ve RAM) kullanan ve C64'ün ramından bağımsız olan 64K (2*32 Sram) ramli Z80 sistemi. 3-Devredeki PIC ile uygun bir yazılımla SD card/usb üzerinden okunan data C64'e /DMA Load yapılabilir. Doberman64 gibi düşünün. 4-Yine PIC ile sd card/usb üzerinden okunan data Z80 tarafındaki Ram'a atılabilir ve çalıştırılabilir. 5-PIC ile hem C64 hem de Z80 tarafındaki data okunabilir. (Lazım olur mu bilemiyorum) Projenin açık devre şemasını yükledim. Birazdan eagle ile pcb çizmeye başlayacağım. Bakalım ne zaman biter. Konu Başlığı: Ynt: Z80+C64 Gönderen: eins üzerinde Aralık 19, 2015, 22:21:49 ÖS Basarilar diliyorum cok saglam gorunuyor proje. Yardimim dokunacak bir yer olursa haber ver yeter. Elimden geldigince el veririm. Bu arada semayi inceledim. Iki lehimsiz bir lehimli lutfen... :D
Edit: Bu arada c64 le MSX evleniyor galiba. Biz de i_r_on la neredeyse tam tersi bir proje yapiyoruz. TMS grafik cipini kurcaliyoruz alttan alttan... 6510 ile TMS, Z80 ile VIC-II bakalim bu isin sonu nereye varacak... :D Konu Başlığı: Ynt: Z80+C64 Gönderen: hades üzerinde Ocak 02, 2016, 12:35:36 ÖS Bir haftadır pcb çizmeyle uğraşıyorum. En karışık yeri olan C64 - Z80 arası bus bağlantıları bitti. Şu anda Z80 - RAM arası bağlantılara başladım. Şema ile PCB arasında bağlantı farklılıkları var. PCB çiziminde kolaylık sağlaması açısından şemada PIC bağlantılarının değişme ihtimali oldukça yüksek. Yani şema projenin son hali değil. Ayrıca şemada gözükmeyen ve sonradan eklediğim bir exp. slot konnektörü var. Bir başka değişiklik ise 2 adet 62256 (32K) yerine 1 adet 62864 (64K) olacak. Bu değişiklik nedeniyle şemada başka bir değişiklik olacak.
Şimdilik çalışmalar bu yönde. Konu Başlığı: Ynt: Z80+C64 Gönderen: LW3D üzerinde Ocak 02, 2016, 21:01:36 ÖS Açıkçası hayata geçmeden anlamam pek mümkün değil ama acayip bir proje... Sanırım kartuş projelerinden sonra melez makina projelerine kavuşacağız..Kolay gelsin arkadaşlar...Elinize sağlık...
Konu Başlığı: Ynt: Z80+C64 Gönderen: hades üzerinde Ocak 09, 2016, 00:49:58 ÖÖ PCB çizim işi bitti. Son bir kontrol ve şema güncellemesi yapacağım.
Gelelim özelliklere. Kart maalesef standart bir C64 kartuşunun neredeyse 2 katı uzunluğunda. Ölçüleri 59mmx165mm. Kart üstünde 14 tane entegre olunca biraz uzun oldu. Kart üzerinde mikro usb soket, Simon'un sd2iec kartında kullandığı microsd modülüne uygun bağlantı çıkışları ve extra expansion slotu, Z80, C64 ve Pic için ayrı ayrı reset butonları bulunmakta. Ayrıca Pic için ICSP konnektörü var. PIC ile /DMA arasına bir jumper koydum. Hani olurda C64'e geri dönmek istersiniz diye. Jumperi çıkarın ve C64'ü resetleyin. Z80 tarafındaki rami 64K'dan 512K'ya yükselttim. DFxx adresine yazılacak 3 bitlik bir değerle bank seçme yapılabilecek. (64K*8 Bank) Önemli bir konu var. Kartın adı yok. Aklıma ilk gelenler. Z80-ODORE : ODORE İtalyanca KOKU Z80-ORE : ORE İngilizce CEVHER. Z80-ADORE : ADORE Fransızca AŞK Konu Başlığı: Ynt: Z80+C64 Gönderen: ilkerficicilar üzerinde Ocak 09, 2016, 01:10:21 ÖÖ Şimdiden ellerinize sağlık...
Türkçemsi 'Z-eksen' veya 'Zeksen' veya 'Zexen' nasıl? Konu Başlığı: Ynt: Z80+C64 Gönderen: joker_ üzerinde Ocak 09, 2016, 06:56:00 ÖÖ zx64
Konu Başlığı: Ynt: Z80+C64 Gönderen: witchdoktor üzerinde Ocak 09, 2016, 10:04:17 ÖÖ Commodore 80, C80
Konu Başlığı: Ynt: Z80+C64 Gönderen: Simon (Özay Turay) üzerinde Ocak 09, 2016, 10:08:14 ÖÖ C80 değil de CZ80 daha güzel olur sanki Z80'den ötürü. :)
Konu Başlığı: Ynt: Z80+C64 Gönderen: commander64 üzerinde Ocak 09, 2016, 12:07:50 ÖS zx64 Bence bu güzel :)Konu Başlığı: Ynt: Z80+C64 Gönderen: WildLord üzerinde Ocak 09, 2016, 16:49:04 ÖS Zi-MOS :)
Konu Başlığı: Ynt: Z80+C64 Gönderen: commander64 üzerinde Ocak 09, 2016, 17:22:35 ÖS ZTR-8064
Konu Başlığı: Ynt: Z80+C64 Gönderen: Enson üzerinde Ocak 09, 2016, 22:44:39 ÖS Benim fikrim de; bu konunun başlığı gayet uygun, Z80+C64
Konu Başlığı: Ynt: Z80+C64 Gönderen: commander64 üzerinde Ocak 09, 2016, 23:42:12 ÖS 64hades80
64x80 hadesuino VIC-80 CZX :D Konu Başlığı: Ynt: Z80+C64 Gönderen: i_r_on üzerinde Ocak 10, 2016, 00:23:26 ÖÖ CP/M falan kullanılabilecekse proje güzel. benim aklıma bir kaç şey takıldı,
Kartuş portundan gelenin dışında bir yerlerden 5V daha çekilecek değil mi? Kartuş portundan gelen güç bütün bu çipleri beslemeye yetmeyecektir muhtemelen. İkincisi de 64k ram bankswitch'i yaparken aktif kullanılan bank üstündeki stack ne olacak? Devreye alıcı gözle bakamadım ancak mantık herhalde pic'i dma controller olarak kullanıp c64'ün belleğine erişen bir z80 işlemci mantığı herhalde değil mi? Konu Başlığı: Ynt: Z80+C64 Gönderen: commander64 üzerinde Ocak 10, 2016, 00:31:11 ÖÖ Hades Abi gözünü seveyim tek voltaj girişli olsun :D
Konu Başlığı: Ynt: Z80+C64 Gönderen: atlantis üzerinde Ocak 10, 2016, 00:31:50 ÖÖ haz64 (HAdes+Z80+c64)
Konu Başlığı: Ynt: Z80+C64 Gönderen: hakanzade üzerinde Ocak 10, 2016, 04:03:38 ÖÖ PIC Guru64
Konu Başlığı: Ynt: Z80+C64 Gönderen: hades üzerinde Ocak 10, 2016, 11:53:45 ÖÖ Kartuş portundan gelenin dışında bir yerlerden 5V daha çekilecek değil mi? Kartuş portundan gelen güç bütün bu çipleri beslemeye yetmeyecektir muhtemelen. Devrenin beslemesi sadece kartuş portundan gelecek. Devrenin ne kadar akım çekeceği konusunda hiç bir fikrim yok. Eğer bir sıkıntı çıkarsa external 5V bağlantısı gerekebilir veya delimawi'nin yeni C64 beslemesini bekleyebiliriz. İkincisi de 64k ram bankswitch'i yaparken aktif kullanılan bank üstündeki stack ne olacak? Aslında buna benzer bir konu/sorun pcb çizim bittikten sonra aklıma geldi. Bank değiştirme işleminden hemen sonra yeni bank üzerinde kodun devamı olmalı. Aklımda şyle bir çözüm var. Z80'in ilk reset adresi 0000h ve 0038h'de IRQ, 0066h'de NMI servis rutinleri başlar. Ayrıca Z80'in yığın adresi değiştirilebilir. LD SP,adres komutuyla stacki ramda istediğimiz yere koyabiliriz. Bildiğim kadarıyla Stack kullanıldıkça adresi azalıyor. SP'yi 0100h olarak tanımlayıp IRQ ve NMI rutinlerinin bank içindeki jump adreslerini sabit tutarsam işim basitleşir. Yapacağım iş önce 0000 - 0100h arasını C64'e kopyalamak, bank değiştirmek ve kopyaladığım bilgiyi geri yazmak. Bütün bankların zero page leri aynıymış gibi düşünmek gerekiyor. Hatta sistem değişkeni olarak kullanacağımız adresler sistem raminde değil c64 üzerinde olabilir. Gerektiği durumlarda in/out komutlarıyla erişelim. Veya sadece stack bölgesi -mesela 128 byte olabilir- kopyalanır. Devreye alıcı gözle bakamadım ancak mantık herhalde pic'i dma controller olarak kullanıp c64'ün belleğine erişen bir z80 işlemci mantığı herhalde değil mi? Evet aynen öyle. Romu olmayan bir Z80 sistemi gibi düşünebiliriz. Konu Başlığı: Ynt: Z80+C64 Gönderen: i_r_on üzerinde Ocak 10, 2016, 13:09:27 ÖS Devrenin beslemesi sadece kartuş portundan gelecek. Devrenin ne kadar akım çekeceği konusunda hiç bir fikrim yok. Eğer bir sıkıntı çıkarsa external 5V bağlantısı gerekebilir veya delimawi'nin yeni C64 beslemesini bekleyebiliriz. Tek tek çiplerin gerektirdiği akım miktarını toplamadım ancak daha önce denediğim arduino + sram + 5-6 tristate buffer ile besleme kapasitesini çok rahat aşmıştım. Çiplerin az güç tüketen versiyonları kullanılırsa besleme kapasitesinin altında kalınabilir belki. Aslında buna benzer bir konu/sorun pcb çizim bittikten sonra aklıma geldi. Bank değiştirme işleminden hemen sonra yeni bank üzerinde kodun devamı olmalı. Aklımda şyle bir çözüm var. Z80'in ilk reset adresi 0000h ve 0038h'de IRQ, 0066h'de NMI servis rutinleri başlar. Ayrıca Z80'in yığın adresi değiştirilebilir. LD SP,adres komutuyla stacki ramda istediğimiz yere koyabiliriz. Bildiğim kadarıyla Stack kullanıldıkça adresi azalıyor. SP'yi 0100h olarak tanımlayıp IRQ ve NMI rutinlerinin bank içindeki jump adreslerini sabit tutarsam işim basitleşir. Yapacağım iş önce 0000 - 0100h arasını C64'e kopyalamak, bank değiştirmek ve kopyaladığım bilgiyi geri yazmak. Bütün bankların zero page leri aynıymış gibi düşünmek gerekiyor. Hatta sistem değişkeni olarak kullanacağımız adresler sistem raminde değil c64 üzerinde olabilir. Gerektiği durumlarda in/out komutlarıyla erişelim. Veya sadece stack bölgesi -mesela 128 byte olabilir- kopyalanır. Daha basit bir çözüm de adreslenebilir 64k belleğin ilk segmentini (misal ilk 32k'sını) sabit tutup, diğer kısmını bankswitch yapmak olabilir. Hani ikinci kısmı data için kullanılacaksa mantıklı, kodun çalışmasına oradan devam edilecekse daha akıllı bir sistem yapmak gerekir. (Kod burada çalışmak üzere compile edilirken de buna dikkat etmek gerekir sadece data için kullanılmayacaksa) 32K + 7 seçilebilir 32k için A15 0 ise ram'e hep A15=0, A16 = 0, A17 = 0, A18 = 0 gönderilir, 1 ise bankswitching için kullanılacak bank belleğinde seçilmiş olan bank gönderilir. |