Autor Thema: Vom RomPort zum RamPort  (Gelesen 14140 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline ToPeG

  • Benutzer
  • Beiträge: 406
Vom RomPort zum RamPort
« am: Di 28.08.2012, 04:31:07 »
Beim Aufräumen, ist mir mein Erster 520ST in die Hände gefallen. Leider habe ich ihn mit meinen Basteleien gegrillt, aber mir fiel eine Schaltung auf, dich ich zusammen gelötet hatte.

Mir ging es auf die Nerven, den ST für jede Bastelei auseinander zu nehmen, so suchte eich einen Weg Von außen an alles nötige zu kommen. Der ROM-Port bot sich an hatte aber das Problem, das man davon bekanntlich nur Lesen kann. Damals kam es mir nicht in den Sinn Über die Adressleitungen zu schreiben, also wählte ich einen anderen Weg.

Ich durchtrennte Pin1 und Pin39.
Pin 1 führt normalerweise 5V und Pin 39 liegt auf Masse. Damit hatte ich zwei Signalleitungen zur Verfügung. Bei allen mein ROM-Karten sind pin1,2 verbunden und auf 5V. Pins 38,39,40 sind auch verbunden und liegen auf Masse.

Über einen Pullup-Widerstand an Pin 1 wird das Signal auf High gezogen. Auch wenn eine ROM-Karte eingesteckt ist, ist das Signal High. Das Signalisiert der Schaltung Kein /DTACK zu erzeugen. Erst wenn Pin1 Low wird, wird ein /DTACK gesendet. Das hat zwei Gründe. Einerseits kann eine Externe Schaltung bestimmen wann das /DATCK gesendet wird, und zum anderen, kann ein Programm leicht feststellen, ob eine Passende Hardware angeschlossen ist. (es muss nur den BusError abfangen)

Pin39 des modifizierten ROM-Ports signalisiert einer angeschlossenen Schaltung, das ein bestimmter Adressraum angesprochen wird. (Ich meine mich zu erinnern das ich damals &HF0xxxx gewählt habe. Das kollidiert heute natürlich mit dem IDE-Interface. &HF1xxxx würde sich anbieten) Das Signal ist ein Open-Collektor Signal damit es keine Probleme gibt, wenn ein ROM-Modul angeschlossen wird. Dann wird nur Masse zu Masse durchgeschaltet. Mit einem Hochohmigen PullupWiderstand auf einer angeschlossenen "RAM-Karte" kann man dann das nötige high erzeugen.

Um den Ablauf nochmal zusammen zu fassen:

Die Schaltung signalisiert mit einem low auf Pin39, das &F1xxxx angesprochen wurde. Die externe Schaltung dekodiert A15-A1 wartet auf ein LOW an /LDS (/AS und /LDS,/UDS werden nahezu gleichzeitig aktiv) und zieht Pin1 auf low. Die Schaltung erzeugt darauf hin das /DTACK. Hat man eine schnelle Schaltung kann man Pin1 über einen hochohmigen Widerstand fest gegen Masse legen. Damit wird das DTACK gesendet sobald der Adressraum &F1xxxx adressiert wird



Aber das ganz ist natürlich nicht Perfekt.
Es fehlt das R/W Signal. Das stellt aber nur insofern ein Problem dar wie man von der selben Adresse lesen und schreiben will. Das Problem löste ich bei mir indem ich A1 als R/W benutzte, damit wurde die Hardware zwar virtuell Verdoppelt, ich konnte aber Problemlos lesen und schreiben.

&hF1000 -> lesen
&hF1002 -> schreiben

Was man natürlich nicht machen darf ist eine "RAM-Karte" in einen unmodifizierten ROM-Port zu stecken. das führt unweigerlich zu einem SystemAbstrurz und kann die Karte Beschädigen. Mit einer Passenden Schaltung auf der Karte kann man das auch verhindern. So kann man über eines der /ROMx Signale der Schaltung signalisieren erst jetzt aktiv zu werden.

Bei Gelegenheit mache ich einen Schaltplan.

Offline ToPeG

  • Benutzer
  • Beiträge: 406
Re: Vom RomPort zum RamPort
« Antwort #1 am: Di 28.08.2012, 17:59:52 »
Also hier die Schaltung, sofern ich meinen Kabelwußt korrekt gelesen habe. :)