Programmierung eines Motorola MC6800

  • Liebe Forumsmitglieder,


    Ich möchte um eure Einschätzung zu einem Problem mit der Technik einer Kegelbahn bitten. Der verbaute Prozessor ist ein Motorola MC6802. Wir haben zwar ein paar Elektriker bzw. elektronikaffine im Verein, aber mit dieser Technik kennt sich keiner mehr aus.


    Wir haben eine sehr alte Technik auf den Bahnen, die aber ohne Murren äußerst zuverlässig funktioniert und vor allem auch von uns selbst gewartet werden kann. Aber für ein neues Spielsystem muss das sogenannte Sportprogramm umgeschrieben werden. Dieses sitzt auf einer einzelnen Steckplatine (so ist es im Handbuch für die Automatik beschrieben) mit einem Motorola MC6802 - zumindest soweit ich es erkennen kann.


    Hier kurz die Schilderung des Ist-Zustandes und was wir ändern müssten:


    Ist-Zustand:

    • Das Sportprogramm ist auf 50 Wurf angelegt
    • Nach dem 25. Wurf wird automatisch von Volle auf Abräumen gestellt
    • Für 50 Wurf hat man 20 Minuten Zeit, diese werden ab dem ersten Wurf abwärts gezählt.

    Notwendige Änderungen:

    • Das neue Spielsystem erfordert 30 Wurf
    • Nach dem 15. Wurf wird automatisch von Volle auf Abräumen gestellt
    • Für 30 Wurf hat man 12 Minuten Zeit

    Alle Informationen liegen auf der Steckplatine, die Hauptsteuerung muss nicht angepasst werden.


    Für uns wäre es aus Kostengründen ideal, den Prozessor mit einem abgeänderten Programm neu zu brennen. Wir haben jemanden im Verein, der alte Radios und Flipperautomaten repariert und einen Prozessor brennen kann (Von ihm wissen wir auch, dass der Prozessor gerade in Flipperautomaten gang und gäbe war, die Ähnlichkeit vom Flipper zum Kegeln war uns so nicht bewusst.... ;-)). Allerdings kann er nur das für diese Zwecke notwendige programmieren, daher kann er diese Änderungen nicht vornehmen


    Wir haben die HEX-Datei des Sportprogrammes tatsächlich vorliegen, aber ohne Disassembler kann niemand was mit anfangen.


    Hierzu meine Frage:

    • Ist es euerer Einschätzung nach möglich, mit einem geeigneten Disassembler ohne das Wissen um das ursprüngliche Programmiergerät die Datei richtig lesen zu können?
    • Falls ja, ist es möglich die notwendigen Steuerbefehle zu erkennen und dann auch abzuändern?

    Ich habe mich trotz meines absoluten Laienwissens soweit eingelesen wie ich konnte (Datenblätter, Möglichkeiten zum Disassembling) aber ich bzw. wir kommen an der Stelle einfach nicht mehr weiter.


    Ein weiterer Plan aus unseren Reihen war, die Funktionen des MC6802 über einen Kleincomputer zu emulieren und den an den Steckplatz zu klemmen aber das wäre nur ein zweiter Schritt (wenn überhaupt möglich). Wir denken, das Brennen ist eleganter und einfacher.


    Schon mal ein riesengroßes Dankeschön im Voraus für eure Hilfe.

  • Hallo richard79 !

    Neu im Forum und gleich eine harte Nuss für die Experten - ein guter Einstieg. Ein paar mehr Sätze zu deiner Person wäre noch hilfreich.


    Deine Aufgabenstellung klingt machbar, kostet aber Zeit und viele Schwierigkeiten liegen im Detail.

    Im Web gibt es universelle Disassembler auch für 6800 - google einfach mal danach. Im Glücksfall (den es leider nie gibt) sieht man nach dem Disassemblieren deines Hexcodes dem Ergebnis an, wo die alten Parameter 50/25/20 abgelegt werden, um sie auf 30/15/12 zu patchen, aber so viel Glück hat man selten. Wahrscheinlich muss man mit einem Logikanalysator an euer System ran, um zu erkennen, wann das Programm was wo in den Speicher schreibt.

    Dass jemand den Job für dich erledigt halte ich für eher unwahrscheinlich, aber wenn du dich darin einarbeitest bekommst du hier sicher viele Hinweise auf dem Weg zum Erfolg !


    Roland

  • Also als Disassembler empfehle ich f9dasm.

    Poste mal ein Bild der Platine und das Hexfile.

    Das Projekt sollte nicht allzu schwierig sein...


    Jos

  • Vielen Dank schon mal für die Antworten.


    Bilder von den Platinen und ein Scan vom Handbuch kann ich nachreichen sowie ich im Lauf der Woche wieder auf der Kegelbahn war.

    Das Hexfile hänge ich schon mal dran.


    Zu mir: Ich kann zwar mit Elektrotechnik was löten, einfache Schaltungen usw. anbelangt meinem Kollegen mit den Flippern und Jukeboxen helfen und in Python rudimentär programmieren, aber mit Assemblersprachen kann ich leider (bis jetzt zumindest) nichts anfangen. Aber ich bin bereit, mich einzuarbeiten.


    Für mich bzw. für uns als Verein ist es ein Versuch, das Programm zu ändern und die Umrüstung auf neueste Technik zu vermeiden, diese ist sehr teuer und wie wir bei unseren Spielen sehen können, äußerst fehleranfällig.


    Ich werde mich mit den Hinweisen erstmal weiter auf die Suche begeben.


    Grüße

    Richard

  • Mmh. Ich habe früher viel Reverse Engineering auf 8-Bit-Systemen gemacht und ich würde spontan sagen: Sehr, sehr aufwändig.

    Liegt denn wenigstens ein Schaltplan der Steuerung vor?


    Das Disassemblieren ist der allerkleinste Aufwand. Um den Programmablauf zu ändern muss, man ggf. große Teile des Programms verstehen, man muss verstehen, wie die Spielabläufe programmiert sind.


    Wenn man ein Computerprogrammer disassembliert, dann hat man Bildschirmausgaben, an denen man sich orientieren kann und die einem helfen, einzelne Routinen zu identifizieren. Bei so einer Steuerung muss man anhand der IO-Zugriff verstehen, was wo gemacht wird. Dazu braucht man einen Schaltplan, um zu verstehen, welche IO-Ports welche Aktionen auslösen. Man muss schauen, welche IO-Bausteine verwendet wurden und wie sie funktionieren. Man kann dann schauen, wo zum Beispiel Taster abgefragt und Anzeigeelemente angesteuert werden.


    Und dann hängt das ganze noch davon, wie systematisch oder chaotisch programmiert wurde. Also Spagetticode oder ein übersichtliches Hauptprogramm und viele Unterprogramm aufrufe. Wenn es gut strukturiert ist, dann kann es sein, dass es recht schnell geht. Vielleicht sind die Spielabläufe sogar in Tabelle abgelegt, die man schnell versteht und ändern kann. Roland hatte das ja schon geschrieben.


    Ihr braucht dafür jemanden, der sich gut mit Microcontroller-Schaltungen auskennt und mit Microcontroller-Programmierung. Und der Lust hat, das aus Spaß an der Freude zu machen. Denn bezahlen wird man die Arbeitszeit nicht können.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Mmh. Ich habe früher viel Reverse Engineering auf 8-Bit-Systemen gemacht und ich würde spontan sagen: Sehr, sehr aufwändig.

    Liegt denn wenigstens ein Schaltplan der Steuerung vor?

    Ich gebe dir recht, reverse Engineering ist extrem aufwendig.



    Aber solche Sachen können mit etwas Intuition sehr einfach sein:

    • der Code ändert sich wahrscheinlich nicht direkt
    • die Codelänge bleibt gleich
    • man muss NICHT den ganzen Code verstehen
    • man muss "NUR" die richtige Stelle finden und Konstanten ändern


    Ich möchte die Arbeit nicht klein reden.

    Aber die Bedingungen finde ich günstig.

  • Hallo richard79


    Die HEX-Datei enthält keinen 6800- / 6802-Code.

    Das ist ein Z80-Programm.


    Als Disassembler kann man auch IDApro 4.1 verwenden. Diese freie Version kann noch Z80-Code.

  • ...aus dem Thread-titel.....und den scheinbart verbauten 6802..

    Hab mich schon gewundert wieso das Diasassembly total keinen Sinn machte...

  • Nicht auszuschließen, dass mehrere Prozessoren vorhanden sind, zum Beispiel einer für die Echtzeithardwareansteuerung und einer für den Spielablauf und die Bedienung.


    Alles nur Spekulationen. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Nochmals vielen Dank,


    Und ich möchte mich für den Fehler entschuldigen, der beruht auf einem Missverständnis zwischen meinem Kollegen und mir, der MC6802 sitzt auf der Hauptplatine und er geht davon aus, dass dieser über die Steckplatine angesteuert wird. Der Z80 ist tatsächlich allgegenwärtig in der Automatik verbaut.

    Ich gehe tatsächlich davon aus, dass hier verschiedene Prozessoren aufeinandertreffen, je nachdem was gerade gebraucht wird, die Druckersteuerung ist z.B. ebenfalls ein Z80.


    Dann würde ich die Diskussion hier schließen und mich erstmal mit der Platine und dem Z80 auseinandersetzen. Und mich erst noch mal mit meinen Freunden und Bekannten zusammenschließen, der Z80 ist denen tatsächlich noch geläufig.


    Grüße

    Richard