Hallo Besucher, der Thread wurde 1,2k mal aufgerufen und enthält 4 Antworten

letzter Beitrag von Gerrit am

Motorola 6801 8-Bit Microcontroller integriertes ROM auslesen möglich?

  • Hallo, ich möchte ein Team von Leuten ein kleines bischen unterstützen, in dem auf deren neuer Hardware ein bestimmtes Peripheriegerät emuliert werden kann. Konkret geht es um das CosmosEx Laufwerk für die ATARIs. Emuliert werden soll darauf ein ATARI SLM 804/605 Laserdrucker, der dann per auf dem CosmosEx laufenden Linux mit CUPS die Druckdaten auf beliebigen Druckern ausgibt. Zu dem SLM gibts kaum brauchbare Unterlagen, so dass hier wahrscheinlich Reverseengeneering gemacht werden muss. Das heißt, die Funktion des SLMC 804 ACSI-Controllers, welcher den ACSI Datenstrom in "Videodaten", ja das nennt sich im Servicehandbuch tatsächlich so, umwandelt, muss analysiert werden. In dem SLMC 804 macht das ein Motorola 6801, ein Microprozessor der Motorola 6800 8 Bit Familie (also durchaus ähnlich zum 6502) mit 2 kB ROM. Darin befindet sich die gesamte Software, die analysiert werden müsste.


    Die Frage ist, wie kommt man an diesen ROM-Inhalt? Wie müsste z.B. ein Adapter aussehen, um das ROM des 6801 auf einem beliebigen Eprombrenner auslesen zu können? (Wahrscheinlich muss man dann zum Auslesen einen 2716 Eprom auswählen)


    6801 Datenblatt http://datasheets.chipdb.org/Motorola/mc6801_3.pdf

  • Mit dem EPROMMer ist da nichts zu wollen. Du musst mit der internen CPU arbeiten, so ähnlich wie das interne ROM des 6501 im VC-1525-Plotter gedumpt wurde. In anderen Worten der CPU ein Programm unterschieben welches das ROM auf einem Port ausgibt.


    Lies dir im Datenblatt den Kram ab Seite 7 (3-98) durch. Dort werden Modi erwähnt mit denen man RAM und ROM testen kann, also auch das ROM dumpen können müsste.


    Nachtrag: Das was du willst müsste mit Multiplex-Mode 0 gehen.

  • Hab was gefunden, du meintest sicher den 1520 Plotter, und nicht den 1525 Nadeldrucker. Der 1520 hat einen 6500 oder 6501 drin, der dem 6801 nicht unähnlich ist, hier wird die Heldentat beschrieben: http://e4aws.silverdr.com/hacks/6500_1/ Das übersteigt meine Möglichkeiten...

  • Jim Brain wenn ich mich recht erinnere. Er hat das mit einem Atmega implementiert und auf die gleiche Art und Weise auch den Keyboardcontroller des Amiga gedumpt. Ich hab nur ein paar Ideen zum Code geliefert und zur Klärung beigetragen wie der 6501 seinen Testmode implementiert. Der funktioniert komplett anders als beim 6801, man muss also wieder von vorne anfangen.


    Wenn ich das richtig verstehe kannst du dem 6801 im Mode 0 in den ersten 2 Zyklen nach dem RESET einen externen Reset-Vector unterschieben und dann per selbstgeschriebenem Code in einem externem ROM das interne ROM auslesen und über die freien I/O-Leitungen auf Port 1 und Port 2 ausgeben. Port 3 und Port 4 werden zu einem gemultiplexten Daten/Adressbus (Sieht aus wie beim 8031), es braucht also noch etwas externe Logik. Die Umschaltung der Modi passiert indem bei der steigenden Flanke des RESET-Signals an gewissen I/O-Leitungen entsprechende Pegel angelegt werden.