Welcome, Guest. Please login or register.


Author Topic: 56K ROM + 8K RAM cartridge (Read 1346 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13745
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://enterprise.iko.hu/
56K ROM + 8K RAM cartridge
« on: 2014.August.20. 19:43:30 »
Z80System feladott egy kis digitális fejtörőt :-)
Olyan cartridget szeretne, amivel módosítatlan alapgéppel is tud IDE kártyát használni, úgy hogy csak IDE kártya semmi más.
Ehhez kell egy WD nélküli EXDOS meg egy IDE ROM a cartridgbe, ezzel nincs is gond. A Probléma ott van, hogy így ilyenkor az IDE ROM a rendszerszegmensben foglal memóriát, ami már korábban kiderült, hogy gondot okoz több szabálytalan programnál, ami durr-bele módon írja a rendszerszegmenst.
Könnyen lehetne 32K ROM 32K RAM cartridge-t csinálni, azonban az EXOS 2.1 hibája miatt nem működik a bővítők saját szegmenst foglalnak funkció, vagyis módosítatlan alapgéppel nem működik a dolog.

A megoldás az, amit az SD kártyás cartridgehez is javasoltam, és meg is lett valósítva. Egy szegmens (a 07h) megosztott, az eleje ROM, a másik fele RAM, így az ide kerülő bővítőnek van saját RAM-ja nem kell az EXOS-tól kérni.
Így jön létre az, hogy 56K ROM + 8K RAM konfiguráció kell, ami a gyakorlatban azt jelenti, hogy egy kétfoglalatos cartridgeben lesz egy 64K-S EPROM aminek az utolsó 8K-ja nem lesz kihasználva, és a másik foglalatban egy 8K SRAM IC.

A fejtörő ott jön, hogyan oldjuk meg a címdekódolást ehhez? Az eredeti megoldással 2x8K, 2x16K, 2x32K, 1x64K ami kihozható.
Nézzük a címdekódoláshoz használt 74ALS138 típusú IC-t:
10769-0
A 3 bementre (A-B-C) rákötve az A13-A15 címvezetékeket a 8 kimenet mindegyike meg fog felelni egy-egy 8K memória tartománynak. Hurrá az Y7 az pont jó is lesz a 8K SRAM-hoz, az lesz a 7-es szegmens felső fele.
Viszont az EPROM-hoz a Y0-Y6 nem jó, további áramkörök kellenének, hogy ez a hét jel egy engedélyező jellé álljon össze...

Lássunk egy másik IC-t, 74151:
10771-1
Ennek is van A-B-C bemenete, amire mehet az A13-A15. Van még további 8 bemenete (D0-D7), az A-B-C-n lévő érték ezek közül fog választani, ami aztán kimegy az Y kimenetre, az invertálva meg W-re.
Vagyis ha a D0-D6 1-re van állítva, a D7 pedig 0-ra, akkor a W kimeneten ott lesz a kívánt alacsonyszintű engedélyező jel az EPROM-hoz 56K címtartományban. Sőt az Y pedig pont a maradék 8K-ban alacsony, ami mehet is az SRAM-hoz.
Hurrá, készen vagyunk?! Sajnos van még egy kis bibi: mindennek akkor kell működnie amikor a cartridge aktív, azaz a CART jel 0. Ez a jel mehet is a 151-es STROBE bemenetére. Amikor aktív azaz 0, nincs is baj.
A gond akkor lesz amikor nem aktív, ilyenkor a kimenetek alaphelyzetbe állnak. Az EPROM-hoz használt W láb ilyenkor 1-be áll, azaz letiltja az EPROM-ot, nincs gond. Viszont az SRAM-hoz használt Y kimenet 0, azaz engedélyezné az SRAM-ot, amivel rövidúton adatütközés lenne a buszon, el se indulna a gép, mivel a ROM program helyett is szemetet olvasna a CPU...

Lehetne esetleg két, ellentétesen programozott 151-est használni, mindegyiknek csak a W kimenetét, egyiket az EPROM-hoz, másikat az SRAM-hoz, de én minél kevesebbet akarnék drótozni :-)

Itt jön képbe a 8K SRAM elavult, különc tulajdonsága, ami a nagyobb IC-kről már el lett tüntetve:
10773-2
Két chip engedélyező bemenet (CS1,CS2) van, ráadásul a második a szokásossal ellentétben magas szintű jelre (1) aktív.
Az EPROM-mal közösen szintén a 151-es W kimenetét használva mehet a CS2-re, amikor az 0 az EPROM aktív, amikor 1, akkor az SRAM.
Jön megint a probléma, hogy mi van akkor ha a CART nem aktív, hiszen ekkor a W=1, ami engedélyezné az SRAM-ot. Itt jön felmentő seregként a CS1 bemenet, amire az eredeti CART jel köthető. Így hiába lesz hamis engedély a CS2-n, a CS1 megakadályozza az SRAM téves aktíválását.

Győzelem, az eredeti címdekóder helyére csak egyetlen másfajta IC-t bedrótozva megoldható egy kétfoglalatos cartridge átalakítása a célnak megfelelőre.

Offline Z80System

  • EP addict
  • *
  • Posts: 3940
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: 56K ROM + 8K RAM cartridge
« Reply #1 on: 2014.August.20. 20:06:36 »
Csak a gyorstesztet még ki ne hagyd, a belső bővítések miatt ... Nekem ugye még 1G -s is van ... az jó hosszú lenne ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3940
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: 56K ROM + 8K RAM cartridge
« Reply #2 on: 2014.August.20. 20:07:53 »
Amit írtál azt (feltételezem) nem az én hozzáértésemnek írtad, de akkor ez egy viszonylag egyszerű mókolást/átalakítást jelent ?
Z80 System

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13745
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://enterprise.iko.hu/
Re: 56K ROM + 8K RAM cartridge
« Reply #3 on: 2014.August.20. 20:10:19 »
Quote from: Z80System
Amit írtál azt (feltételezem) nem az én hozzáértésemnek írtad, de akkor ez egy viszonylag egyszerű mókolást/átalakítást jelent ?
Igen, pont ezért törtem a fejem, hogyan lehetne a legegyszerűbben megmókolni :-)

Offline Z80System

  • EP addict
  • *
  • Posts: 3940
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: 56K ROM + 8K RAM cartridge
« Reply #4 on: 2014.August.20. 22:39:59 »
Végeredmény szempontjából nem oszt vagy nem szoroz,
mert legfeljebb majd nem indítom őket,
de ugye vannak programok (felteszem csak játékok ilyenek, pld. sorcery, magicball, fenetudjamégmi),
amik cartridge kiszedésével mennek csak,

ezek a cuccok ugye nem lesznek indíthatóak ezzel a megoldással sem ?
Z80 System