DJ-S45 Clone Software Fehler behoben

Ein großer Vorteil vom DJ45 ist ja die Programmierschnittstelle. Mit einen einfachen seriellen Kabel lassen sich schnell Kanäle und der VFO an die eigenen Wüsche anpassen, wenn da nur nicht die Software wäre…

Die Software ist unter der Alinco-Seite frei erhältlich, was ja im Gegensatz zu anderen Herstellern schon mal als Vorteil zu sehen ist. Mit dieser Software lassen sich auch die PMR / LPD Modelle DJ S45 CQS und CQL editieren, was aber wegen der wenigen Kanäle von PMR bzw LDP aber kaum Sinn macht. Bei der offenen Version macht das ganze schon deutlich mehr Sinn.

Soweit so gut. Allerdings beinhaltet die Software einige Programmierfehler (Bugs). So wird z.B. der Fehler „Enter 0 to 9 numeric values only.“ direkt nach dem Start angezeigt. Eine Frequenzeingabe ist durch diesen Bug leider auch nicht möglich, da er das Frequenzfeld löscht. Eingaben wie 433 sind in der Frequenzeingabe erlaubt aber sobald man auf die Idee kommt 433,100 einzugeben, erscheint der Fehler. Leider geht auch der Workaround mit 433.1000 oder 4331000 nicht, da das Programm mit „Überlauf“-Fehler abstürzt. Auf einen Bugreport hat Alinco bis jetzt nicht reagiert. Also musste ich mir selbst helfen.

Mein erster Plan war, den Datenverkehr auf der seriellen Schnittstelle zu protokollieren und zu interpretieren:

 TX          RX
AL~F07F0R...51625F42FFFF0303080F9B00FFFFFFFF
AL~F0000R...0294D1EC000B98C00808270001FFFFFF
AL~F0010R...029D53A8000B98C00808272001FFFFFF
AL~F0020R...029E3E08000B98C00808272001FFFFFF
AL~F0030R...029D49E4000B98C00808272001FFFFFF
AL~F0040R...029D53A8000B98C00808272001FFFFFF
AL~F0050R...029E3E08000B98C00C08272001FFFFFF
AL~F0060R...029D7AB8000B98C00C08272001FFFFFF
AL~F0070R...029D49E4000B98C00C08272001FFFFFF
AL~F0080R...029516480000EA600707270406FFFFFF

AL heißt Alinco und die FXXX Nummer deutet auf den Speicherplatz hin. Was allerdings der heximale Code bedeutet, den das Gerät im UART-Modus zurückgibt, ist mir absolut unbekannt. Auch mit einem Hexviewer lässt sich daraus nichts Logisches erkennen. So lässt sich kein eignes Programm für das Speichermanagement entwickeln!

Plan B: Das Problem an der Wurzel beseitigen. Dazu eignet sich ein Debugger wie OllyDBG sehr gut. Assemblerkenntnisse (absolute Basics 😉 sind noch von der Berufsschule bekannt. So kann es frisch ans Werk gehen.

Zunächst benötigt man jedoch einen Referenzpunkt: Dieser stellt im meinen Fall die Fehlermeldung (Enter 0 to 9 numeric values only) dar. Mit ‚Find all reference strings‘ kommt man schnell an die betroffenen Adressen. Als nächstes muss der Einsprungpunkt gefunden werden oder die Stelle an der der Fehler ausgelöst wird. Dies stellt in den allermeisten Fällen einen bedingten Sprung dar, wie es beispielsweiße JNZ ist. Dieser ist dann zu ersetzen durch NOP (Non Operation). Damit ist die Frequenzüberprüfung ausgeschaltet.

s45_dbg
Wer das ganze mit OllyDBG machen möchte, hier die Adressen:

Address   Hex dump          Command              Comments
 ---------------------------------------------------------------------------------
 004421DF      90            NOP                  ; JNE 00442280 durch NOP
 00442259     /E9 EF000000   JMP 0044234D         ; Von JNE auf JMP ersetzt
 00442DB2      90            NOP                  ; JNE SHORT 00442DCD   durch NOP
 0044494F      90            NOP                  ; JNE 004449F0   durch NOP
 0044554F      90            NOP                  ; JNE 004455F0   durch NOP
 0045851D      90            NOP                  ; JNE 004585B5   durch NOP
 0045912D      90            NOP                  ; JNE 004591C5   durch NOP

Nach diesem Eingriff ist die Zeichenüberprüfung bei der Frequenzeingabe deaktiviert. Das heißt aber auch dass das Programm im Falle einer Falscheingabe wie „433,dfsf“ einfach abstürzt.  Das Format ist also zu beachten und als Trennzeichen darf nur ein Komma verwendet werden!

Ich denke dieser Fehler würde sich vom Programmierer innerhalb von wenigen Minuten lösen lassen. Allerdings muss man auch anmerken dass das Programm immer noch in der Betaphase ist. Seit 2005 ist auch keine neue Version mehr erschienen.

Kommen wir zum wichtigsten Teil, dem Download

Über Rückmeldungen würde ich mich natürlich freuen  😉

Martin, DO6MST, PFVF.de Team

Schreibe einen Kommentar