Gönderen Konu: Bir proje. Olur mu acaba?  (Okunma sayısı 7271 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hades

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 179
Bir proje. Olur mu acaba?
« : 12 Haziran 2022, 11:07:45 »
128'in bellek haritasında Bank 5 (screen #1) ve 8000-BFFF arasındaki Bank 2, aynı zamanda C000-FFFF arasındaymış gibi gibi gösteriliyor. Dolayısıyla ilk başta 128K+32K ram varmış gibi algılanıyor.
Tahminimce Bank 5 ve Bank 2 donanımsal olarak 4000-7FFF/8000-BFFF arasına mapleniyor.
Bilmek istediğim 128K'larda bu iki bankın hatta ikinci ekranın (bank 7) nasıl çalıştığı.
Bu sorunun çıkış kaynağı ise 48K'yı external ve kısmen internal bir devre ile 128K haline getirmek gibi bir Zihni Sinir procesi. Ayrıca AY chip eklenecek.
128K'larda 7FFD adresi ile rom/ram seçimi yapılıyor. 7FFD'nin üst iki biti boşta. ROM seçme biti ile external rom seçilebilir. Üst iki bit ile başka işler yapılabilir. Biriyle rom adreslerini kullanan ram seçmek olabilir. Diğeri external rom veya ram için bank seçmek olabilir.
Ekran belleği için ayrı ram kullanıp 7FFD'nin 3.biti ile ekran seçme olacak. Bunlar için 48K kartında operasyon yapmak gerekecek. Tüm dramlar sökülecek. Paylaşımlı bellek 8K ile sınırlanacak. Ramlerin hepsi sram olacak.
Unutmadan bir veya iki adet joystick port olacak.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2880
  • Advanced User Simulator
    • ae unutmadan
Ynt: Bir proje. Olur mu acaba?
« Yanıtla #1 : 14 Haziran 2022, 00:29:02 »
bu işlerden @Bora66 iyi anlıyor.

bir de +3 var tabi, donanım hobisi için onunla uğraşmak daha eğlenceli geliyor bana. All ram modu var, istersen rom'u kapatıp kesintisiz bir 64k ram yapabiliyorsun. belki o sırada bazı imkanlar veriyordur. Ayrıca 256k ve 512k ram upgrade'leri mevcut speccy için, biraz onlara da bakailirsin belki.

Çevrimdışı hades

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 179
Ynt: Bir proje. Olur mu acaba?
« Yanıtla #2 : 14 Haziran 2022, 08:29:32 »
İstanbul'a geleyim daha sakin kafayla uğraşacağım. Telefondan yazması biraz zor oluyor. Diğer taraftan Ram banklarla ilgili durumu tam olarak ifade edemedim.

Çevrimdışı hades

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 179
Ynt: Bir proje. Olur mu acaba?
« Yanıtla #3 : 24 Haziran 2022, 22:25:07 »
Biraz düşününce 48K Spectrumu 128K modele benzetmek ne bileyim biraz saçma geldi. Onun yerine daha önce başka bir başlıkta bahsettiğim Rom altında Ram olan devreyi biraz geliştirdim. Çizimleri kısmen bitti diyorum çünkü henüz AY chip eklemedim. Ayrıca RTC ekleme konusunda kararsızım.
Devrenin memory map şu şekilde;

$0000-$3FFF: 16K External Eprom (32K epromun ilk 16K'sı kullanılıyor.)
$0000-$3FFF: 16K External Ram (32K Ram'in ilk 16K'sı kullanılıyor.)
Romlar seçiliyken $0000-$3FFF adresine yapılacak bir yazma işleminde Ram devreye giriyor. Okuma Romdan yapılıyor. (C64 style)
Fotoğrafta bir adet 6264 Ram var. Kendileri 8K olur. Bu 6264 bellek haritasında $6000-$7FFF arasında bulunuyor. Yani meşhur paylaşımlı 16K'nın ikinci yarısını kullanıyor. Dolayısıyla sadece $4000-$5FFF arası ULA ile paylaşımlı. Ancak bu 6264'ü kullanmak için alt 16K'yı oluşturan dramlere bağlı olan IC3 74LS157'in 14. bacağını (Z80'den A13 hattı geliyor) ayırıp GND'ye bağlamak gerekiyor. Böylece Z80'in paylaşımlı bellekte $6000-$7FFF arasına erişimi boşa çıkıyor. A13 hattını 6264'e erişmek için kullanıyoruz.
Özet olarak;
$4000-$5FFF: Video Ram + paylaşımlı bellek (8K)
$6000-$7FFF: RAM 8K

Sırada $8000-$FFFF arası var. Öncelikle karttaki dramlerin sökülmesi şart. İstenirse 4 adet 74 serisi entegreler de sökülebilir.
Üst 32K bölgede 2 adet 512K'lık Ram var. 1MB'lık bu bellek 32K'lık  32 adet banktan oluşuyor.
$8000-$FFFF: 32K x 32 bank.


Paylaşımlı belleğe geri dönelim. Normalde 16K olan bu alanın artık ilk yarısı paylaşımlı durumda. İkinci yarısına ise Z80'in erişimi yok. Peki ikinci yarısını nasıl kullanacağız?
Biraz önce yukarıda 74LS157'nin bir bacağını ayırıp GND'ye bağlamıştık. Bu bacağı dışardan kontrol edersek ikinci Video Ram olarak kullanabiliriz diye tahmin ediyorum. Devrede bunun için VRAM isimli bir çıkış var ama bu çıkışı bir kablo ile 74LS157'ye bağlamak gerekiyor.

Sonuç olarak: 48K modelin bellek haritası şu şekilde:

$0000-$3FFF: 16K - Spectrum Rom/External Rom/External Ram (Romlar aktifken Ram'e yazma yapılabilir)
$4000-$5FFF: 8K - Video Ram0/Video Ram1
$6000-$7FFF: 8K - External takılı Ram
$8000-$FFFF: 32K - External takılı 2x512K Ram-32 Bank olarak seçiliyor.

Devrede ayrıca joystik portu ve bir reset butonu var.
Son olarak devrenin kontrol adreslerine bakalım.

IO adresleri:
$1F: Kempston Joystick okuma
$3F: RTC (Adres decode edilmiş durumda. Sadece RTC eklenecek ve bağlantıları yapılacak)
$7F: Memory Config adresi
Bit 7: External/Internal seçimi (0=Spectrum Rom, 1=External Memory)
Bit 6: External Rom/Ram seçimi (0= Rom, 1=Ram)
Bit 5: Vram seçimi (0=Vram0, 1=Vram1)
Bit 4....0: Üst 32K bellek için bank seçimi.

Memory Config adresinin değeri default $00'dır. Spectrum'a ilk enerji verildiğinde veya spectrum resetlendiğinde $00 değerini alır.