smalltalk > pazar yeri

bu ne yaahuuu

(1/3) > >>

vigo:
http://cgi.ebay.com/Commodore-64-The-1750-...bayphotohosting

spaztica:
The RAM in this unit is not directly available to the computer for running
programs but can be used as a very fast temporary storage device. When you turn off the computer you lose all contents of the REU. Resetting the computer with a reset switch will not erase the contents of the REU!

bi nevi silinmeyen Ram-disk...

skate:
Hiç elime REU geçmemiş olsa da hakkında hemen herşeyi okudum ve nasıl kullanacağımı iyi biliyorum. Hatta Hadeslere realtime clock hardwareı kastırdığım sıralarda bir REU satın alıp bunu realtime clockla birleştirerek adam akıllı bir işletim sistemi yazma projem vardı. Ancak bu işletim sistemi Geos'dan daha kullanışsız ve coderlara özel olacaktı. Geos = Windows ise benim proje Linux olacaktı bir nevi... REU'nun en güzel kullanım biçimi disk processingi sıfıra indirmesiyle ortaya çıkıyor. Örnek olarak bir müzik/grafik collection ya da bir demonun tüm datalarını REU'ya yüklüyorsun (uzun bir yükleme olabilir bu tabii ki, yüklenip yüklenip transfer edilmesi gerekiyor bir de), sonra yalnızca hafıza transferlerine kalıyor iş. Çizim programları için de çok güzel ufuklar açıyor. IFLI gibi bir grafik modeunda REU ile swap screen özelliği konulabilir ve AMICA PAINT benzeri bir "diğer ekran datasıyla pattern fill" özelliği eklenebilir bla bla...

hades:
Merak etme Skate. Hayalindeki projeyi gerçekleştirmeye başlamana az kaldı. Borçlarım biraz hafifleyince 2006'nın ikinci çeyreğinde hardware projemin PCB'sini yaptıracağım ve beraber kod kasacağız. Projemin PCB çizimi hazır ama numune bir pcb yaptırmak için 100€+KDV'yi gözden çıkarmam gerekiyor. 3-4 ay içinde bu extra harcamayı yapacak durumum yok. Neyse projemin genel yapısı şöyle.

Yazacaklarım biraz karışık olabilir şimdiden söyleyeyim.

$DE00-$DEFF (veya bir jumper ile $DF00-$DFFF) arası her biri 16 byte genişliğinde bir bölgeyi adreslemekte kullanılacak 16 adet /CS işaretine ayrılıyor. İlk /CS işareti ($DE00-$DE0F) projedeki hardware'i kontrol etmek için kullanılıyor. Geri kalan $DE10-$DEFF arasına ait 15 adet /CS işareti bir konnektöre taşınıyor. Konnektörde ayrıca D0...D7 data bus, A0..A3 adres bus (16 byte adresleyebilmek için), R/WR, /RST, phi2 gibi işaretler bulunmakta. Dolayısı ile bu konnektör üzerinden adreslenebilir birçok hardware eklentisi yapılabilir.

$DE00-$DE0F arasının ayrıntılarına geçmeden önce kart üzerinde neler var yazayım.

512K'lık SRAM
512K'lık FLASH EPROM
RTC
RTC için 4 digitlik display (güzel bir software ile disk access sırasında track/sector bilgileri, hex olarak programın start-end adresleri ve uzunluğu vs. gösterilerbilir. Hatta yeni bir OS ile disket BAM üzerinde uygun bir yere file date, time bilgileri vs. kaydedilip c64 tarafında bu bilgiler okunup displayde gösterilebilir)
3x8 bitlik Input/Output port (LCD display bağlanabilir, PC interface yapılabilir vs..)

Yukarıdakilerin kontrolu için 2 adet 82C55 entegre.

8 bitlik IDE interface ayrıca ileride MMC/SD card bağlantısı için kullanmak üzere bir kaç port.

Gelelim bütün bunları nasıl adreslendiğine. Önce biraz teori tabiiki :)

1 : expansion slotdaki /XROM hattı lojik "0" yapılırsa bağlanırsa C64 $8000-$9FFF arasını kartuş bölgesi olarak ayırır ve expansion slotdaki /ROML hattını lojik "0" seviyesine çeker. Böylece expansion slota takılmış olan bir hardware kontrol edilebilir.
2 : $DE00-$DEFF veya $DF00-$DFFF arasındaki bir adrese yapılacak okuma/yazma işlemi sırasında expansion slotdaki /IO1 veya /IO2 hatları lojik "0" yapılır.

Yukarıdaki iki teoriyi bildikten sonra C64 için yeni hardware tasarlamak basitleşir.

Şİmdi Ayrıntılar....

$DE00-$DE03 : 1. 82C55 entegresinin registerleri (1 tane kontrol, 3 tane port registeri vardır)

PORT A :

bit 0 : A13 adres hattı
bit 1 : A14
bit 2 : A15
bit 3 : A16
bit 4 : A17
bit 5 : A18

Yukarıdaki 6 bit ile Flashın veya Sram'ın adres hatlarını kontrol ederek 512K yı 8K'lık 64 adet BANK olarak seçebiliyoruz ve seçtiğimiz Bank $8000-$9FFF arasında aktif oluyor. (bu seçme işlemini c64'te başka bir adreste çalışan -alt- rutin ile yapmak lazım)

bit 6 : Eprom / sram select

bit 6 "0" ise eprom, "1" ise ram seçiliyor.


bit 7 : Card memory disable/enable

bit 7 "0" ise $8000-$9FFF arası normal şeklinde C64'e ait, "1" ise kart üzerindeki memorye ayrılıyor.

bit 7'nin kullanılması biraz sorun çıkarabilir. Zira "0" yaptığımızda /XROM hattı "1" yapılıyor ve dolayısı ile /ROML hattı "1" oluyor. Bunun sonucunda kart üzerindeki eprom/ram devre dışı kalmış oluyor. Eğer o anda flash veya sram üzerinde bir program çalışıyorsa c64 kilitlenebilir. Eski haline getirmek için c64'ün resetlenmesi (korkmayın kart üzerine reset buton var :)) gerekiyor. Eğer normal olarak çıkıldıysa bir poke komutu ile flashı veya sram'ı istenilen bank seçilerek aktif hale getirmek mümkün. (POKE PORT_A,128 ile flash bank 0 aktif yapılabilir). flash veya sram disable olsa bile c64'e yüklenecek başka programlar ile kendi  rutinlerinizle rtc, ide vs.  kullanmaya devam edebilirsiniz.

PORT B :

RTC ve diğer bilgileri göstereceğimiz display için segment data çıkışları

PORT C :

bit 0 ve bit 1  display için multiplex display scan çıkışları.

bit 2 : RTC entegresi için /RTS çıkışı. "0" olusa rtc'ye erişim yapılabilir.
bit 3 : RTC için /SCL çıkışı

NOT : bit 2 ve bit 3 yer değiştirmiş olabilir. Aklımda yanlış kalmış olabilir.

bit 4 : RTC için /SDA bağlantısı. Bağlantının yönü RTC'ye erişim sırasında  yani read/write durumuna göre 82C55'in kontrol registeri ile değiştirilrcek.

bit 5-6-7 : gelecekteki uygulamalar için kart kenarında bir konnektöre taşınmış durumda. Aynı zamanda /SCL ve /SDA hatlarıda aynı konnektöre taşınmış durumda. Bu konnektördeki bağlantılarla MMC/SD kart interface tasarlanabilir.



$DE04-$DE07 : 2. 82C55 entegresinin registerleri.

Tamamen kullanıcıya bırakılmış 3 adet 8 bitlik IO portu var ve bunlarla LCD display vs. bağlantısı yapılabilir.


$DE08-$DE0F :

8 bitlik ide interface bölgesi.


Bayramdan önce işyerinde PCB'yi basmayı denedim olmadı. İncecik yollar ve çift taraflı olması işimi zorlaştırdı. Ancak 3-5 ay sonra ilk prototipi yaptırınca code kasacağım. HI3S elemanlarından Shadow'un User porttan yaptığı ve çalıştırdığı RTC devresinin codeları elimde.
Multiplex display scan rutini basit. Tek zorlanacağım konu flash eproma yazma rutini gibi gözüküyor.

C64 açıldığında ekranda bir menü olacak. Menüde flash içine save edilen programların isimleri olacak ve seçilen program hangi banka save edildiyse oradan okunup C64'eün asıl belleğine aktarılacak. 0. Bankta bir tür bios olacak-rtc setup, ide access, flashın diğer banklarına program save etmek vs.. tool ler bulunacak.

Şimdi bu kart ile ilgili olarak hayallerinizi serbest bırakın.

Skate sen şimdiden başla bir OS kodlamaya. :)

eirik:
@hades : burayI biliyor musun ?
http://www.olimex.com/pcb/

olimex bulgaristanda bi $irket. eagle cad ile cizilmi$ iki yuzeyli 16*10 bi baskI devre kart ba$Inda 33$ a yapiliyor ve tabii ki bi tane kart bile istesen sipari$i kabul ediyorlar. min. 100 tane yaptirmak zorunda degilsin (dogal olarak) , posta ile gonderisi de >10$ civarInda. ama eagle cad ile hazirlanmami$ olursa ustune biraz ekliyorlar diger programlardan cevirmek icin sanIrIm, ayrintilar sayfada var.

bir de merak ettim senin baskI devreyi hazirlattigin yer istanbulda mI, istanbuldaysa nerede? benim de bi tane isa kartim var pcad ile cizdigim bi turlu eagle a donu$turemedigim icin olimex e gonderemedim

Navigasyon

[0] Mesajlar

[#] Sonraki Sayfa

Tam sürüme git