MFA Gedanken für eigene Rom/Ram Karte

  • Link zu Unterlagen:

    http://oldcomputers.dyndns.org…uer_Ausbildung/index.html


    Am einfachsten wäre es sicher 32k EEprom ab 0x0000 mit 8k MAT85 + 8k SP1 plus dann 32k SRam ab 0x8000 bis 0xffff.

    Auswahl einfach an A15 festmachen. A15=0 = EEprom. A15=1 = 32k SRam.

    ABER: Der Basic Interpreter benötigt Ram an 0x6000 - das ist in den unteren 32k - :-(

    ERGO: Braucht man immer noch eine 8k Karte an 0x6000 zusätzlich zu einer 32k/32k Karte.


    Wenn man sich die Unterlagen zur 8k Ram/Rom-Karte anschaut, ist da drauf die Selektion einer Basisadresse mit A13+A14+A15, ab der die max. 8k eingeblendet werden.

    Und dann ein Chip Selector der auf die Chip Enable der 4 Chips gehen mit einer 74LS138 (3 auf 8 Decoder).


    Wenn man sich dann die Pinouts der 6116 2k SRams und die 6264 8k SRams anschaut, sieht man, das sie "unten" weitgehend übereinstimmen (Jedec) . Die oberen 2 Pins jeweils rechts+links müsste man aus der sonst zu kleinen Fassung lassen. Pin 23 (A11) darf auch nicht in die Fassung.


    NC - 1 28 - VCC an +5V

    A12- 2 27- /WE an Fassung unter Pin 23=A11

    26 - NC

    25 - A8

    24 - A9

    23 - A11


    A11, A12, /WE, VCC neu verdrahten.


    Die Logik der Basisadresse kann / muss hier entfallen. Der 74LS138 wird an A13+A14+A15 als 3 zu 8 Decoder verdrahtet.


    A15-A14-A13 Adresse

    1 - 1 - 1 0xE000

    1 - 1 - 0 0xC000

    1 - 0 - 1 0xA000

    1 - 0 - 0 0x8000

    0 - 1 - 1 0x6000

    0 - 1 - 0 0x4000

    0 - 0 - 1 0x2000

    0 - 0 - 0 0x0000


    Damit ließen sich max. 4 Chips an obigen Adressen einblenden. Erster Ausbau könnte sein, die beiden "hinteren" 2k Chips gegen 8k Chips (6264) auszutauchen und einen mit /CE auf 0x6000 und den zweiten mit /CE auf 0xE000 zu verdrahten. Die beiden "vorderen" 2k Ram werden entfernt. Damit hätte man schon mal 2x8k SRam jeweils an 0x6000 und 0xE000. Der MFA bzw. MAT85+ wäre zufrieden.


    ---


    Dann könnte man in die beiden "vorderen" Fassungen noch 28C64 8k EEproms setzen und MAT85 in einem mit /CE auf 0x0000 und SP1 in den zweiten 8k EEprom mit /CE auf 0x2000 verdrahten.


    Somit hätte man 16k Rom + 16k Ram auf einer umgebauten 8k Ramkarte.


    ;-)


    Wenn ich nicht jetzt Urlaub hätte, würde ich mich an den Umbau machen - so muss das noch ein bischen warten ;-)


    (oldcomputers war gerade nicht erreichbar - sonst hätte ich noch einen genaueren Blick auf die Unterlagen zur 8k Karte geworfen)


    Peter

  • Sieht aus, als ob das funktionieren würde - ist mir aber ehrlich gesagt etwas zu viel "fliegende Verdrahtung".


    Die Variante mit 32K ROM und 32K RAM mit einem einzigen zusätzlichen Bustreiber ist dagegen so schön einfach und übersichtlich 8-)


    Mir stellt sich die Frage, ob es nicht einfacher ist, dem BASIC einen anderen Speicherbereich beizubringen?

    Ich versuche am WE mal da rein zu schauen. Die fehlende Kompatibilität zum Original würde mich nicht stören, denn wir würden den Monitor sowieso auf unsere eigene Karte brennen.

  • ich habe mal auf die Schnelle eine 32+32k Rom+Ram Karte gebastelt auf dem E-Papier mit Eagle. VÖLLIG UNGETESTET!!

    Evtl. möchte da mal wer drüber schauen..?

    Ist die verwendete VG-Leiste die korrekte? MAC64L aus con-vg.

    Rom=28C256 32k EEprom

    Ram=62256 SRam

    74LS32 + 74LS00 zur Selektion (Hmm.. geht das ggf. auch mit einem IC? Von dem 7400 ist nur 1 Gatter als Inverter verwendet.)


    Ich kann nur 80x100mm mit der Freeware Lizenz erstellen! Daher kann ich keine volle Karte!


    Peter

  • Wenn C10 wirklich /MEMR ist, also /MREQ + /RD (verodert), kannst du nicht ins SRAM schreiben.

    Ausserdem wuerde ich am SRAM /RD an /OE anschliessen. Beim Schreiben sollten die Daten laenger als das /WE vom Prozessor kommen, es koennte also kurzzeitig ein Buskonflikt auftreten.



    Zu den Gattern (Boolsche Algebra for Beginners):

    A + B = /(/A * /B)

    + = oder, * = und


    Bei Fragen fragen.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • M.E. reicht es wenn du /MEMW (C9) mit /WE verbindest, /MEMR (C10) mit /OE, A15 mit dem /CS des 62256 und /A15 (ueber LS00) mit /CS des 28C256.

    Die ODER kannst du dir sparen.


    Wir haben ja einen 8085 und keinen Z80. Vergiss das MREQ aus dem letzten Post.


    Korrektur:

    A15 mit /CS des 28C256 und /A15 mit /CS des 62256

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • funkenzupfer : Schau ich mir an - Danke!

    (Ich hatte bereits gemerkt, das die Verknüpfung mit MEMW am Ram fehlt)

    Das hatte ich schnell aus meinem Mini-Z80 Projekt erzeugt.


    Hmm.. es muss doch sein:


    EEprom:

    A15 = 0

    MEMR = 0


    SRam:

    A15 = 1

    MEMR = 0 ODER MEMW = 0


    Ich sehe noch nicht, wie das einfacher erfolgen kann.. :-(


    Anlage: Neuer Schaltplan mit MEMR oder MEMW für Ram.


    Peter

  • Ist es doch auch:

    A15=0 fuer 0 - 32k (EEPROM) -> /CS=0 aktiv

    A15=1 f. 32k - 64k (SRAM) -> Inverter -> auch /CS=0 aktiv


    Und mit /MEMR machst du die /OutputEnable aktiv, mit /MEMW das /WriteEnable


    /CS und /WE bzw /OE sind in den ICs ja als active low ODER verschaltet.

    Dadurch sparst du die externen ODER.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Erweiterungsvorschlag:

    - Einen weiteren Sockel für RAM an 0000 - 7FFF mit auf die Karte

    - /OE zwischen den beiden Sockeln umschaltbar

    - /WE für den zusätzlichen RAM-Sockel abschaltbar

    So würde man ganz leicht die Möglichkeit bekomen, Systeme von Massenspeicher zu laden, oder das System vom ROM ins RAM zu kopieren und Änderungen zu testen.

    Vorgehensweise:

    - System vom ROM starten.

    - Gewünschtes System ins RAM schreiben.

    - Schreibschutz aktivieren (/WE abschalten).

    - /OE umschalten.

    - Reset ausführen.

  • Ahh.. In den IC's sind die ODER verschaltet.. ok

    Ich sag mal ja klar. :-)

    Ohne /CS macht das IC nichts. Aber nur mit /CS weiss das IC nicht, ob Daten rein oder raus sollen, und dann passiert auch nichts.


    Und den /WE des EEPROMs an VCC oder ueber einen Pullup an VCC. Sonst bleibt wahrscheinlich der EEPROM Inhalt nicht lange stabil.


    Zu den Erweiterungsmoeglichkeiten:

    Ich wuerde ein 64k SRAM nehmen und durch einen flexiblen Adressdekoder die Adressraeume aenderbar halten.

    Ich hab den Thread nicht genau verfolgt, aber irgendwas gelesen wegen BASIC und Adresse 0x6000.

    Fuer den Adressdekoder wuerde ich deshalb ein GAL nehmen, damit kann auch so eine Umschaltlogik, wie Toast_r beschrieben hat. moeglich sein.


    Unabhaengig davon ist das /MEMW am EEPROM nicht schlecht aufgehoben (ggf. mit Jumper, fuer Angsthasen ;-) ), so sind Aenderungen moeglich.

    Beim 28C256 (s.Anhang) kann man per Software einen Schreibschutz setzten und ruecksetzten. Ein zufaelliges ueberschreiben ist fast ausgeschlossen, aber eine gewollte Aenderung moeglich. S. Software Data Protection.


    Bei Fragen fragen.

    Dateien

    • AT28C256.pdf

      (783,04 kB, 2 Mal heruntergeladen, zuletzt: )

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Ok. WE des Eeproms lege ich noch an VCC. Evtl. sehe ich noch ein 300 mil SRam parallel vor, dann kann man beide Bauformen nehmen.


    Ansonsten wird es von mir keine Änderungen/Erweiterungen geben.

    Mir reicht eine 32/32k Karte.


    Das Basic wurde von Georg bereits so gepatched, das es ab 8000h läuft.


    Ist das die richtige VG-Leiste?


    Peter

  • Ist das die richtige VG-Leiste?

    Auf dem Bild sieht sie gut aus.

    Da ich aber weder Eagle habe, noch mich damit auskenne, kann ich dir die Frage nicht endgueltig beantworten.


    Was immer hilft: ausdrucken, ausschneiden, ggf. auf Karton o.ae. kleben und Okularinspektion.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Eine 24k-ROM/40k-RAM-Variante mit vier Bausteinen - 32kx8-EEPROM, 64kx8-SRAM, 4fach-NAND (&), 4fach-NOR (#)


    https://www.mouser.de/ProductDetail/Microchip-Technology-Atmel/AT28C256-15PU?qs=MAR%2f2X5XOp7eAU2%2flNw9oA%3d%3d

    oder

    https://www.mouser.de/ProductDetail/Microchip-Technology-Atmel/AT28C256-15SU?qs=sGAEpiMZZMuVhdAcoizlRSQWn4iDi6WfmJnDwCnYxdk%3d

    sowie

    https://www.mouser.de/ProductDetail/Cypress-Semiconductor/CY62148GN-45SXI?qs=sGAEpiMZZMt9mBA6nIyysKdwGyMCxn3Ac59EYYX%252bpIc%3d

    https://www.mouser.de/ProductDetail/Nexperia/74AHCT00D112?qs=sGAEpiMZZMtMa9lbYwD6ZKUVY3zpSJbe8%252btFUJw3DGw%3d

    https://www.mouser.de/ProductDetail/Nexperia/74AHCT02D-Q100J?qs=sGAEpiMZZMtMa9lbYwD6ZJLSWB2FZLS4nb7wDYvIvXA%3d


    Sollte funktionieren, gegebenenfalls aber bitte nochmal überprüfen!


  • 300mil SRam parallel will nicht gelingen - mag der Autorouter nicht. Chips um 180 Grad umgesetzt - dann konnte der Autorouter zu 100% seine Arbeit verrichten ;-)


    Aktueller Arbeitsstand - werde ich am WE nochmal drüber schauen.. wäre schön, wenn nochmal wer anders da drüber schaut.. habe hoffentlich bei parallel Star Wars am Fernseher schauen keinen Mist gebaut ;-)VÖLLIG UNGETESTET!!


    EDIT: Irgendwie meinte Eagle den 7400+62256 nicht mit Strom versorgen zu müssen :-( - korrigiert. Nochmals D0-D7+A0-A15 überprüft - scheint alles ok zu sein.

    Dateien gegen korrigierte ausgetauscht!


    EDIT2: Getestet und funktioniert elektrisch - mechanisch musste ich aber nacharbeiten - diese mechanischen Abweichungen habe ich korrigiert und neue Dateien - die nun hoffentlich etwas besser mechanisch passen - hier ein gehangen.


    Die EEproms gibts über ebay günstig aus CN.


    Wo es die VG-Leisten (2x32 A-C Male/Stecker 90 Grad) günstig gibt..?


    Peter

  • Die Leiterbahnen für die Versorgungsspannung (also Vcc und GND) sollten deutlich dicker sein als die für Signalleitungen.


    Die Entkoppelkondensatoren sollten auf direktem Wege an die Beinchen der ICs angeschlossen werden, damit sie ihre Funktion erfüllen können. Wenn man sie so wie jetzt einmal im Kreis um die ganze Platine herum führt, kann man sie auch gleich ganz weg lassen.


    Das TTL-IC würde ich ebenfalls mit einem Abblockkondensator versehen.

  • Platinen sind heute angekommen - und - Heureka - sie funktionieren auf Anhieb!

    Es gibt/gab allerdings noch kleinere, mechanische Probleme:

    1. Platine steht an VG-Leiste zu weit vor (ca. 2mm). Da aber dort eine Fräsung liegt, kann man den überstehenden Teil einfach abknicken - habe ich schon gemacht.
    2. Platine steht oben etwas zu weit heraus (VG ist nicht ganz mittig). Dort muss oben ca. 1-1,5mm weggenommen werden! Muss dann noch gemacht werden mit Dremel/Schleifpapier wenn man meine Platine bekommt.


    Elektrisch läuft alles. Layout habe ich mit den mechanischen Korrekturen angepasst und oben neues ZIP eingefügt.


    Ich habe die Platine an einer Busverlängerung dran. Man kann die sicher einfach in das Busgehäuse einschieben, sollte aber vorher in die Bohrungen etwas befestigen, damit man sie auch wieder rausziehen kann ;-) Oder eine 80x100mm Leerplatine befestigen und daran dann die ALU-Blende.. etc. pp.


    Die restlichen Platinen (6 Stk.) verteile ich unter Biete. Georg bekommt so eine zugeschickt.


    Peter

  • Glückwunsch! Gut gemacht!


    Die kurze Bauform konnte doch auch ein Vorteil sein? Man kann dann vielleicht einen Busplatz nutzen, der durch eine Karte mit doppelter Frontblende blockiert wird.


    Und zum Rausziehen könnte man sich ein Werkzeug denken, ein Griff mit zwei Haken...


    Danke für die Platine! :)

  • Die Platine ist heute angekommen. Mit Lineal und Cuttermesser habe ich den Millimeter vorgeritzt und dann mit einem scharfen Vornschneider weggeknabbert - ging recht schnell und sieht sehr gut aus. Schleifen hätte mehr Dreck gemacht und wäre vermutlich nicht so schön gerade geworden.


    Da ich nur EPROMs und keine EEPROMs

    habe musste ich zwei Anschlüsse austauschen, aber danach funktionierte es tadellos. Ein herzliches Dankeschön an PeterSieg für die Platine!


    Wie geplant habe ich diese kurze Karte in einen Slot gesteckt, der durch die Frontplatte einer anderen Karte verdeckt wird. Klappt prima, und ich spare mir zwei komplette Slots (RAM-Karte und ROM-Karte).

  • Bilder !?

    Jaja, ich weiß, Bilder sagen mehr als tausend Worte, aber meine Karte sieht (bis auf den Austausch 28C256 gegen 27C256) tatsächlich genau so aus wie die oben abgebildete von Peter, und die eingebaute Karte verschwindet - wie beschrieben - hinter einem fremden Slotblech. Wenig Möglichkeiten für aussagekräftige oder neue Bilder. 8-)