Forum: Mikrocontroller und Digitale Elektronik TMS 9995 Entwicklungsumgebung


von Johannes (Gast)


Lesenswert?

Hi,

ich möchte mich mal mit dem TMS 9995 beschäftigen und benötige ein Tool 
mit dem man evtl. bestehende Programme disassemblen kann und wieder 
kompilieren kann.

Kann mir evtl. jemand weiterhelfen, wo kann man solche Tools heute noch 
finden?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist eine Variante des TMS 9900, der im TI99/4A verbaut wurde, also 
dürfte eine Suche nach Emulatoren etc. für den TI 99/4A Dir weiterhelfen 
können.

von (prx) A. K. (prx)


Lesenswert?

Johannes schrieb:
> ich möchte mich mal mit dem TMS 9995 beschäftigen

Ist die Frage "warum" gestattet?

> und benötige ein Tool
> mit dem man evtl. bestehende Programme disassemblen kann und wieder
> kompilieren kann.

Disassemblieren ist einfach. Wenns nichts gibt, dann ist ein einfaches 
Teil in kurzer Zeit geschrieben.

Aber aus Binärcode ein echtes(!) C Programm zu bauen, das übersetzt dann 
wieder zum leidlich gleichen Code wird - das grenzt an ein Wunder.

: Bearbeitet durch User
von Takao K. (takao_k) Benutzerseite


Lesenswert?

A. K. schrieb:

>
> Disassemblieren ist einfach. Wenns nichts gibt, dann ist ein einfaches
> Teil in kurzer Zeit geschrieben.
>

Verstehe die Antwort nicht.

Was ist ein einfaches Teil?

Was ist mit "Wenns nichts gibt" gemeint?

> Aber aus Binärcode ein echtes(!) C Programm zu bauen, das übersetzt dann
> wieder zum leidlich gleichen Code wird - das grenzt an ein Wunder.

Verstehe Relevanz zum Thread nicht.

von (prx) A. K. (prx)


Lesenswert?

Takao K. schrieb:
> Was ist ein einfaches Teil?

Code => Befehle, ohne Versuch einer vollständigen Erzeugung von Labels, 
Adresstabellen etc.

> Was ist mit "Wenns nichts gibt" gemeint?

Wenn sich niemand meldet und du auch nichts findest.

> Verstehe Relevanz zum Thread nicht.

Kompiliert wird ein Programm einer höheren Programmiersprache wie C. 
Nicht aber Assembler-Quellcode, der wird assembliert.

von Takao K. (takao_k) Benutzerseite


Lesenswert?

A. K. schrieb:
> Takao K. schrieb:
>> Was ist ein einfaches Teil?
>
> Code => Befehle, ohne Versuch einer vollständigen Erzeugung von Labels,
> Adresstabellen etc.
>
>> Was ist mit "Wenns nichts gibt" gemeint?
>
> Wenn sich niemand meldet und du auch nichts findest.
>
>> Verstehe Relevanz zum Thread nicht.
>
> Kompiliert wird ein Programm einer höheren Programmiersprache wie C.
> Nicht aber Assembler-Quellcode, der wird assembliert.

OK, Danke.

von Olaf (Gast)


Lesenswert?

> Aber aus Binärcode ein echtes(!) C Programm zu bauen, das übersetzt
> dann  wieder zum leidlich gleichen Code wird - das grenzt an ein Wunder.

Haelst du es fuer wahrscheinlich das es fuer den Prozessor einen 
C-compiler gab? Oder ueberhaubt einen Compiler?

Wenn ja wuerde der mich echt noch interesieren. :-)

Olaf

von (prx) A. K. (prx)


Lesenswert?

Olaf schrieb:
> Haelst du es fuer wahrscheinlich das es fuer den Prozessor einen
> C-compiler gab? Oder ueberhaubt einen Compiler?

C stand hier eigentlich für jede Compilersprache. Pascal gab es 
jedenfalls. Die 9900 Familie stammt zudem von den TI 990 Minicomputern 
ab, Konkurrenz zu PDP-11, und dafür gab es z.B. FORTRAN und COBOL: 
http://bitsavers.trailing-edge.com/pdf/ti/990/

Die 9900er hatten unter den Mikroprozessoren der 70ern sicher eine der 
besten Zielarchitekturen für Compiler.

: Bearbeitet durch User
von Horst H. (horst_h44)


Lesenswert?

Hallo Johannes,

darf man fragen woher Dein Interesse kommt? Ich habe mich mal sehr 
intensive mit dem 16-Bit Mikroprozessor beschäftigt und habe auch noch 
S/W-Unterlagen. Der TMS9995 ist die 8-Bit Datenbusversion vom TMS990, 
also ist die Software kompatibel. Es wurden damit auch E-Bus Platinen 
gebaut. Dies ist der TM990/E155 und dafür wurde ein Monitorprogramm - 
Eurobug 4 - geschrieben. Die Datenmanual mit Source Listing besitze ich 
noch. Dieser Eurobug 4 beinhlatet auch einen Disassembler. Da die 
Befehlsstruktur sehr klar und einfach ist ist der Disassembler im 
Assembler-Listing grade mal 9 Din A4 Seiten lang. Voraussetzung ist aber 
eine Assembler Programm vom TMS9900 zu haben, oder aber es einen 
Disassembler auf einem anderen Programm in C zu programmieren. Frage ist 
auch in welcher Form das zu disassemblierende TMS9995 Programm vorliegt.

von Michael Engel (Gast)


Lesenswert?

Noch jemand, der sich an die TI 990 erinnert, schön!

Assembler/Disassembler und einen gcc-Port (und Software+Emulator) für TI 
990/TMS99xx gibt es unter http://www.cozx.com/~dpitts/ti990.html
und ein Beispiel, wie ein kleines TMS9995-System aussehen kann, ist hier 
zu finden: 
http://www.avjd51.dsl.pipex.com/tms9995_breadboard/tms9995_breadboard.htm

-- Michael

von Johannes (Gast)


Lesenswert?

Hi,

hauptsächlich möchte ich mir dies aus Intresse anschauen :-)

Grund ist folgender:

Ich besitze einen alten Spielautomaten dieser nimmt noch DM und hat 
einen TMS9995NL Prozessor drin.

Ich würde gerne einfach mal schaue wie das Programm so aufgebaut ist und 
evtl die Wertigkeit der Münzen anpassen. Mir ist klar das da der Aufwand 
etwas zu ändern in keinem Verhältnis zum Nutzen steht. Aber der 
Spieltrieb ist da :-)

von Johannes (Gast)


Lesenswert?

Hat niemand mehr einen noch einen Link zu einem Programm, dass mir das 
Programm wieder in Assembler mit Sprungmarken usw. anzeigt?

Das Programm liegt mir als bin file vor. Eine Memory Map würde ich mir 
dann erstellen.

von Michael Engel (Gast)


Lesenswert?

Johannes schrieb:
> Hat niemand mehr einen noch einen Link zu einem Programm, dass mir das
> Programm wieder in Assembler mit Sprungmarken usw. anzeigt?

Die Sprungmarken im original Assembler-Code kann ein Disassembler
nicht mehr herstellen - die stehen im Programm (im ROM) nicht drin
(ausser es hätte jemand Debug-Informationen mit dazu gepackt, was für 
ein embedded System aber extrem ungewöhnlich wäre). Ein guter 
Disassembler baut aber zumindest neue Sprungmarken ein, die heissen dann 
aber "L00001" und so...

> Das Programm liegt mir als bin file vor. Eine Memory Map würde ich mir
> dann erstellen.

Ich weiss nicht, für welches Betriebssystem du den Disassembler suchst. 
Für Unix-Systeme funktioniert der von mir weiter oben verlinkte von Dave 
Pitts wunderbar. Für Windows gibt es wohl auch einen (nicht 
ausprobiert), der ROM-Dumps/bin-files lesen kann, unter 
ftp://ftp.collosumus.net/ti99/project/hc/common/software/dasm99_v1_0_11. 
zip  - unter http://ti99.collosumus.net/ti99/project/hc/ steht, wie man 
den Autor erreichen kann, vielleicht hilft der im Zweifel auch weiter.

-- Michael

von Horst H. (horst_h44)


Lesenswert?

Hallo Johannes,

die Spielautomaten-Hersteller treiben normalerweise sehr viel Aufwand um 
das ein kopieren oder Manipulationen möglichst zu verhindern. Es könnte 
also sein, das das Programm-ROM verschlüsselt ist oder sonstige 
Maßnahmen das Auslesen erschweren und es äußerst aufwendig ist 
durchzusteigen.

Eine besondere Herausforderung also. Viel Spaß dabei!

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
Noch kein Account? Hier anmelden.