Hallo, habe mir einen alten Sample-player - vermutlich einen der ersten - beschafft, der damals von einer Fa. namens WERSI als "Orgel" vertrieben wurde - Marke "Ein Silbereisen soll uns geschenket werden". Dieses Gerät verfügt über eine recht umfängliche Rechnerarchitektur - 1 Master-Cpu (68B09) plus 5 sog. "Slaves", um die shon erwähnten Samples "abzuspielen". Als Nebenfunktion werden die Tastatur- und Bedienknopfbetätigungen via Midi ausgegeben. Für mich maßgeblich ist ausschließlich die Midi-Funktion, die leider mit - scheinbar zufälligen - manchmal erheblichen Latenzen daher kommt. (Ich vermute, daß die Midi-Befehle auf einem Stack vor sich hinschlummern und warten müssen, bis "im Vordergrund" die Samples gemanagt sind.) Desweiteren kann ich die Bedientaster nur eingeschränkt nutzen; die Bedienpoti-Werte werden überhaupt nicht nach außen weitergereicht. Ich stehe nun vor der Entscheidung, entweder die gesamte Elektronik auszutauschen und durch neue zu ersetzén ( siehe Midibox u.ä. ) oder meine alten Assemblerkenntnisse auszugraben und die Software zu modifizieren (Jmp beyond Silbereisen). Leider beziehen sich meine Assembler-Kenntnisse ausschließlich auf den 6502 und sind lange nicht mehr gebraucht worden, da ich recht zügig richtung "Hochsprachen" ging. Bitte um Anregungen bzw. Empfehlungen zu folgenden Fragen: Gibt es für den 6809 noch geeignete Disassembler/Assembler für eine WinXP-Umgebung? Welche Eprom-programmer werden heutzutage benutzt, ebenfalls für XP geeignet? Bin für jede Anregung dankbar. Gruß Peter
Naja, wenn Du 6502-Assembler kannst, dann ist es nicht sehr schwer, Dein Wissen auf 6809-Assembler zu erweitern. Die beiden sind nämlich recht nah miteinander verwandt; der 6502 ist ein vereinfachter Abkömmling des 6800, der wiederum ein Vorläufer des 6809 ist. http://www.mikrocontroller.net/articles/Linksammlung#Assembler
ich kenne den 6809 als recht bequem in Assembler zu programmierenden Prozessor, im Gegensatz zum 8080 wo min. 50% des Codes aus Ladebefehlen und Registerschiebereien bestand. Der 6809 hatte schon ordentliche 16Bit Register und konnte damit einfach auch grosse Tabellen indizieren, beim 6502 musste man soweit ich weiss immer in 256 Byte Pages arbeiten. Es gibt sicher noch Werkzeuge für diese CPUs, aber so ein moderner AVR würde das Leben mit C-Programmierung und ISP doch etwas leichter machen. Kommt vielleicht auch drauf an wie original die Kiste bleiben soll.
JojoS schrieb: > ich kenne den 6809 als recht bequem in Assembler zu programmierenden > Prozessor Das würde ich als Untertreibung ansehen; gibt es denn schöner zu programmierende 8-Bit-Prozessoren? Die Kombination aus Registersatz, Vielfalt an Adressierungsarten und annähernd orthogonalem Befehlssatz machten das Ding zu einem wahren Schnuckelchen, dessen Bedeutung allerdings vom fast zeitgleich auf den Markt gekommenen 68k überschattet wurde.
@Rufus Deine Lobeshymnen auf den Gurken 6809 langweilen... Siehe meine Beiträge zu Beitrag "Oszilloskop - Lüfter leiser bekommen?" vom Datum: 19.01.2011 09:24 sowie Datum: 19.01.2011 10:08 Und nochmals http://www.amazon.de/gp/product/images/3404604725
naja, schon damals gab es den Monopolisten Intel der 8080 & Co. in alles hineindrücken konnte. Der grösste Krampf war dann der 8086 vs. 68k, aber so war es halt. Also 6809 drin lassen und Eprom Simulator besorgen um wenigstens nicht ständig Eproms brennen zu müssen, das wäre mir etwas zu viel Nostalgie.
Ich habe damals auch mit dem 6809 angefangen. Zu seiner Zeit war das vielleicht der schönste und schnellste 8Bitter. Wie alle damals hat er aber kaum Register. Mein erster Homecomputer war ein Dragon 32, darin tickte das Ding mit knapp einem Megaherz. Später ein Dragon 64, dann ging es in der Familie nicht weiter, der Spielzeughersteller war pleite. In USA war der fast baugleiche Tandy-Radioshack Color Computer verbreitet. Aber es gab OS9, ein Betriebssystem was den Usern und der Maschine voraus war. ;-) Multitasking und Multiuserbetrieb waren möglich. Um auf den OP zurückzukommen, vielleicht gibt es in dem Zuge Cross-Tools und Emulatoren. Jörg
Vielen Dank für die Hinweise; komme aber im Moment nicht weiter. Gibt es vielleicht jemanden, der mir die vorhandenen EProms (2Stück) auslesen könnte - gegen Entgelt versteht sich? dann könnte ich anhand einer Disassemblierung noch immer entscheiden, ob ich mich an eine Änderung des Codes heranwage. Gruß Peter
Hallo erzähl mal welche Eproms. Typ? Auslesen könnte ich machen gegen Rückporto.
http://john.ccac.rwth-aachen.de:8000/as/ hostet eine Assembler, der das kann. Disassembeln anscheinend nuicht, aber da findet sich sicher was,notfalls schreib was selbst, siehe LEX/Yacc oder sowas. Bei sourceforge <habe ich auch mal was gesehen, such mal da. Gruss Robert
@karadur Vielen Dank für das Angebot, komme gerne darauf zurück. Die Typenbezeichnungen lauten: TMM27128D (16kx8 nMOS) MSL27256k (32kx8 nMOS) Beide mit je 28Pin. Gibt es vergleichbare , aktuelle EEProms, die ich ersatzweise verwenden könnte oder steigt dann die CPU aus? @Robert Danke für die Ref-Adresse. Werde mir den Assembler sicher anschauen, auch wenn ich gegenüber den "DieKannAllesSoftWaren" skeptisch bin. Meine mich dunkel erinnern zu können, mir bei "EierlegendenWollmichSauKühen"-Projekten das ein- oder andere Magen- und Darmgeschwür geholt zu haben. Gruß Peter
Hallo werde ich morgen prüfen, sollte aber gehen. Kontakt: such mal nach xedoc. Ist meine firma.
Disassembliern kann man alles mögliche prima mit "IDA Pro". War das nicht sogar frei verfügbar?
Hallo das sind alte Standart-Eproms. Gibt es heute als CMOS. Wobei die langsam auch vom Markt verschwinden. Es gibt Flashroms die pinkompatibel sind. Lassen sich mit meinem GALEP4 alle bearbeiten.
Hallo Ich habe den Wersi-Synthesizer MK1 von 1986, da arbeiten zwei 6809 teilweise mit dem selben Adressraum (einer heißt 68E09 oder so ähnlich). Ich habe das mal vor Jahren ausgelesen und disassembliert, weiß nicht mehr mit welchem Programm. Außerdem sind noch 21 Z8-Prozessoren damit beschäftigt, 20 Schwingungen zu erzeugen und einer für die Tastenabfrage. Christoph
Peter G. schrieb: > Danke für die Ref-Adresse. Werde mir den Assembler sicher anschauen, > auch wenn ich gegenüber den "DieKannAllesSoftWaren" skeptisch bin. Meine > mich dunkel erinnern zu können, mir bei > "EierlegendenWollmichSauKühen"-Projekten das ein- oder andere Magen- und > Darmgeschwür geholt zu haben. Ich habe diesen Assembler seit kurzem in Benutzung (die aktuelle "BETA"-Version). Auf mich macht er einen recht guten Eindruck. Insbesondere die Dokumentation - Stiefkind vieler Software - wirkt auf mich sehr positiv. Bernhard
Die Möglichkeit, den asm auf neue Chips zu erweitern, gefällt mir sehr. Gruss RFr
Christoph Kessler (db1uq) schrieb: > Ich habe den Wersi-Synthesizer MK1 von 1986, da arbeiten zwei 6809 > teilweise mit dem selben Adressraum (einer heißt 68E09 oder so ähnlich). Der 68E09 konnte mit einem externen Takt versorgt werden. WERSI hat da die Eigenschaft der 68xx (und auch 65xx)-CPUs ausgenutzt, dass nur in der ersten Hälfte des Takts auf den externen Bus zugegriffen wurde. Damit können sich zwei 6809 den Bus teilen, wenn der Speicher schnell genug ist (ähnlich wie Videozugriffe beim Apple II oder C64, die IIRC auch die inaktive Busphase des 6502/6510 nutzen). Der zweite 6809 muss dann aber mit dem invertierten Takt des ersten versorgt werden - und das ist eben das Besondere am 68E09. Habe auch noch ein paar WERSI-Platinen hier rumliegen... der Werksverkauf bei WERSI war immer toll. Die WERSI-Ingenieure haben da eine Menge Aufwand reingesteckt, was leider auch den Preis der Hardware "leicht" in die Höhe getrieben hat (Transputer in späteren High-End-Orgeln). Einer der Gründe, warum es die Firma leider nicht mehr gibt :-(. Wenn man sich anschaut, wie wenig Hardware eigentlich in einem aktuellen Synthesizer drinsteckt, ist das schon erschreckend. Der MicroKorg kommt z.B. mit einem Renesas H8S/2320 als Steuer-CPU und einem Motorola DSP56362 für die Signalverarbeitung aus. Aber der 6809 war zum Rechner selbst bauen in den 80ern wirklich klasse :-). -- Michael
Michael Engel schrieb: > Einer der Gründe, warum es die > Firma leider nicht mehr gibt :-(. Wieso? Gibts doch noch: http://www.wersi.net/ Böhm gibt es nicht mehr.
rogie schrieb: > Wieso? Gibts doch noch: http://www.wersi.net/ > > Böhm gibt es nicht mehr. Naja, die Marke WERSI ist vom MusicStore in Köln übernommen worden. Das war's dann aber leider auch schon. Siehe auch http://www.jazzhooves.com/2010/03/the-end-of-the-road-for-wersi/ In der Zentrale in Halsenbach sitzt jetzt ORLA/Keyswerk/Lowrey: http://www.yourhobby.nl/forumorgel/index.php?topic=5257.0;wap2 -- Michael
Ok, das erklärt natürlich deine erste Aussage. ;-)
Ich muss das Thema nochmals aufgreifen, da die Disassemblierung mich bisher nicht weiterbringen konnte. Das Problem besteht nicht so sehr darin, daß ich die einzelnen Befehlskonstrukte nicht entschlüsseln könnte - die Cpu ist ausreichend dokumentiert und so weit weg vom 6502 ist der Befehlssatz beileibe nicht. Ich habe mich bisher am "CWAI"- Befehl orientiert (Clear CC and wait for interupt), da ich vermute, daß die Inputs über die Interupt-Steuerung laufen. Es gibt etwa 10 Sequenzen mit CWAI- Befehlen. Um deren Relevanz ausloten zu können, müsste ich aber Ausgaben auf das Display machen können. Leider ist es mir bisher nicht gelungen, die Teile zu identifizieren, die die Display-Steuerung übernehmen. Auch nicht die im Klartext vorhandene Begrüssungsmeldung hat mich da weitergebracht; ich habe keine Code-Position gefunden, die diesen Speicherbereich referenziert. Im Moment sehe ich nur die Möglichkeit, mich mit ein paar Loop-Konstrukten durch die Memory-Map zu hächeln, um dann irgendwann eine Ausgabe auf dem Display zu bekommen. Ich liste hier Teile der Memory-Map auf. Vielleicht hat jemand eine Idee, wo ich am besten ansetze: 6800-69FF DCS 6A00-6BFF ADC 6C00-6DFF Timer 6E00-6FFF I/O 6E00 Bank, 6E01 Peradr, 6E02 Panclk, 6E03 Potadr, 6E04 Keybin, 6E05 Pan in, 6E06 Setres, 6E07 Retres 7000-77FF RAM 1 7800-7FFF RAM 2 8000-FFFF ROM 1 Bin für jede Anregung dankbar. Peter
Sehr vielleicht könntest du das Programm in einem Debugger mit CPU-Simulator laufen lassen? So habe ich mich in einem anderen System mal vorgetastet. Der Lauf im Simulator scheitert natürlich schon recht früh an aller möglicher nicht vorhandener Hardware. Aber so habe ich diese Codestellen identifiziert und "rausgeNOPt". In einem Debugger kann man Breakpoints auf Speicherzugriffe setzen, wie deine Begrüßungsmeldung. Das ganze Unterfangen per Reverse Engineering eine optimierte Firmware für solch ein Gerät zu erstellen erscheint mir sehr, nun ja, ungewöhnlich und mühsam, Hut ab. Neu entwickeln ist wahrscheinlich einfacher, statt der Bastelzeit z.B. bei McDonalds Burger braten und vom Verdienst was Neues kaufen allemal. Was ist das Besondere an dem Gerät? Jörg
@Jörg "Was ist das besondere an dem Gerät ..." Ich spiele über das Gerät div. Pfeifenorgel- und Hammond-Emulationen, die es mittlerweile in unglaublicher Qualität für PC gibt. Das besondere an dem Gerät ist, dass - aus Sicht des Spielgefühls - alles passt. Zwei Vollmanuale, Vollpedal mit passender Sitzbank, Endstufen mit ausreichend Leistung (Ich führe das Ausgangssignal der PC-Soundkarte zurück auf die Endstufe der Console) und - verbesserungswürdiger, aber brauchbarer Klangabstrahlung. Und so ganz neben bei sitze ich an einem Spieltisch, der noch aus "richtig Holz" gefertigt wurde. Das SpielGEFÜHL passt eben, das stellt sich bei über einander gestapelten Plastik-Midi-Keyboards einfach nicht ein. "Reverse Engeneering ..." So hoch möchte ich die Geschichte nicht hängen. Nach 25 Jahren IT-Geschäft (in anderen Zusammenhängen) sehe ich mich eher bei "Es wird noch immer mit Wasser gekocht - man muss nur die Stellen finden, wo die richtigen Feuerchen gemacht werden." "Neuentwicklung ..." Wenn ich die Elektronik durch eine andere austauschen würde, müßte ein PIC-Baustein programmiert werden. Ob ich nun PIC oder 6809 programmiere - das bleibt sich gleich. Beim Austausch der Elektronik sehe - nach aller Erfahrung - noch ganz andere Probleme auf mich zukommen. Der Tipp über einen Simulator der Display-Routine auf die Schliche zu kommen, ist doch schon mal ein Ansatz. Gibt es Empfehlungen für bewährte Simulatoren? Einstweilen Gruß Peter
Hi, Um einen Programmanfang zu finden, mußt Du nur wie die CPU selbst vorgehen. Diese holt sich den RESET Vector aus den Adressen FFFE und FFFF. (Aber auch die anderen Interrupt etc. Vektoren welche die CPU kennt!) Aus der MEMORY-Map ist ja leicht zu erkennen, dass in diesem Bereich das EPROM liegt. Um diesen Offset des EPROMS sind daher auch Zugriffe auf den Speicher zu korrigieren. ... und los geht's ... Gruß Rainer
>Wie alle damals hat er aber kaum Register. Mehr braucht man auch nicht. >Der MicroKorg kommt z.B. mit einem Renesas H8S/2320 als Steuer-CPU und >einem Motorola DSP56362 für die Signalverarbeitung aus. Und heute geht das mit nur einem Chip 68HC11,12 haben ebenfalls 2 zusammenfassbare 8bitAkkus und X,Y-Index-Reg. 68HC16 hat davon noch etwas mehr, sogar MAC. M377xx-Controler haben 2 Akkus, die unabhängig voneinander für 8 oder 16 bit benutzt werden können. Auch mit M16C (einige Data/Adr-Register) könnte man ähnlich (sogar noch besser, ua echte Mem-Mem-Befehle(!)) programmieren. ST6,7, STM8 sind auch Akku-basierend, allerd. nur mit 1 8bitAkku. Fujitsu hat ebenfalls welche (8,16bit), die akkubasiert sind, mit Registerbänken.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.