Alınık TMS9918 konusunda hatırlarsınız 10'lu paketlerde satılan TMS video çipleri için kendime ortak arıyordum. Sağolsun delimawi yarısına talip oldu, nihayetinde TMS9929 tercih ettik (ettim aslında biraz) ve mallar elimize ulaştı.
İnsan hakikaten bazı şeylere ancak işin içine girince uyanıyor. Öncelikle video çıkışının PAL ve YPbPr olmasının görüntü kalitesi ve Avrupa uyumu açısından tercih edilesi bir şey olduğunu düşünmekte iken şu günlerde lan NTSC destekliyor bizim televizyonlar, niye composite çıkışlı TMS9918'i tercih etmedim demiyor değilim.
Gerçi şöyle bir durum var, ilk denemeler için kablo sayısı 1'den 3'e çıksa da component destekleyen bir tv ile kullanma şansı var.
İkinci golü sıcağı sıcağına 20. yüzyılın Güngören'inde Dram dediğin şey Dram'dır kardeşim diyerek sipariş ettiğim TMS4416 16Kx4bit dram'lerden yedim. Plan şuydu : Datasheet'te 16k elde etmek için 8 adet 4116 (16Kx1bit) kullanılmakta. Bendeki çakallık 8 çip yerine 2 çiple hallederim bu işi demek oldu.
İşin içine girince işin tam da düşündüğüm şekilde olmadığı anlaşıldı.
Aşağıdaki şekilde çipin pinout'una bakınca aslında gör beni, gör beni diyor resmen.
+----+--+----+
RAS* |1 o 40| XTAL2
CAS* |2 39| XTAL1
AD7 |3 T 38| CPUCLK R-Y on TMS9928A/TMS9929A
AD6 |4 M 37| GROMCLK
AD5 |5 S 36| COMVID Y on TMS9928A/TMS9929A
AD4 |6 35| EXTVDP B-Y on TMS9928A/TMS9929A
AD3 |7 9 34| RESET*/SYNC
AD2 |8 9 33| Vcc
AD1 |9 1 32| RD0
AD0 |10 8 31| RD1
R/W* |11 A 30| RD2
Vss |12 29| RD3
MODE |13 28| RD4
CSW* |14 27| RD5
CSR* |15 26| RD6
INT* |16 25| RD7
CD7 |17 24| CD0
CD6 |18 23| CD1
CD5 |19 22| CD2
CD4 |20 21| CD3
+------------+
Biraz ön bilgi vermekte fayda var. Bu görüntü çipinin her ne kadar sistemdeki clock sinyallerini sağlasa da VIC-II gibi bus'ın master'ı ben olacağım, istediğim cycle'ları yerim, topunuzu keserim ulen gibi bir iddiası yok. Azıcık aşım, ağrısız başım şeklinde takılan bir çip, kendi belleğini istiyor, sistemin belleğine karışmıyor. Address bus'a falan da doğrudan bağlanma gereksinimi yok, portlarım buralar, buralardan beni okur yazarsın diyor.
Bu önbilgiden sonra gelelim RAM seçme olayına. Dikkat edilirse 3 tane 8 bit'lik portu var.
AD0..AD7 : DRAM interface'i için Adres yahut Data gönderimi için kullanılıyor
RD0..RD7 : DRAM interface'inde bellekten data okumak için kullanılıyor
CD0..CD7 : Cpu interface'inde okuma ve yazma için kullanılıyor
Bunlar da sırasıyla 4116 ve 4416'nın pinout'ları. Uyumsuzluğun kaynağı dikkatinizi çekti mi?
4116 sadece 1 bit interface'i olan bir DRAM, 4416 ise 4 bit. Ancak bacaklara dikkatle bakıldığında 4116'da tek bitlik data hattının giriş ve çıkışı ayrı ayrı. 4416'da ise bir arada. Yani biri unidirectional, diğeri ise bidirectional. Bu tip bellek/latch/sayıcı gibi entegre pin dizilimlerinde genel standart şu : Giriş olan pin'ler D ile, çıkış olan pin'ler ise Q ile gösteriliyor. Hem giriş hem de çıkış söz konusu ise pin DQ ile betimleniyor.
TMS'deki mühendisler sağolsun Dram interface'inde belleği adreslerken ve yazarken AD0..AD7 portunu kullanmayı tercih etmişler, okurken de RD0..RD7 portunu. Yani bunların ilgili Dram'e ayrı ayrı bağlanmaları gerekiyor. (Ya da bağlayan kişi ekstra logic ile bu işi halletmeli)
4416 kullanmak ciddi handikap. 8 adedinden ancak bir 16k elde ediliyor ilaveten 5V'a ek olarak -5V ve 12V gereksinimi de var.
Daha yoldayken kullanamayacağımızı anladığımız 4416'lara alternatif ne peki?
Sağolsun birileri uğraşmış, normal şartlarda CAS / RAS sinyalleri ile multiplex edilen interface'i 74574 latch ve bir adet 7404 ile SRAM'e uygun hale getirmiş.
Dokümanı şurada :
http://retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/48860720/33053543/SRAM%20Replacement%20for%20TMS99x8%20VRAM.pdfKolay temin edilebilecek parçalarla kurtarıyoruz Dram interface'ini bu şekilde. TMS'nin bu video çipinin bir gereksinimi de 10,738 MHZ bir kristal istemesi. Tabii dönüp aradığınızda pek çok yerde bulamıyorsunuz. Pratiğini bilmiyorum ancak 0.005 tolerans tanımışlar. Benim anladığım 10,684 - 10,791 aralığında bir kristal iş görüyor. Piyasada şansımıza 10.695 MHz ve 10.734 MHz kristal mevcut. Deneyeceğiz bakalım iş görecekler mi.
Sram interface'inin breadboard üzerinde kısmen kablolanmış hali aşağıdaki şekilde.