Forum: Markt [S] Software zu "Kemsonic AMS PC 1656" (Audio-Messystem)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian S. (uhrenfreak)


Lesenswert?

Liebes Forum,

ich habe obiges Gerät überlassen bekommen, das schon relativ alt ist. 
Leider fehlt die Software. Es dürfte sich um Disketten für MS-DOS 
handeln.
Hat jemand dasselbe Gerät und wäre bereit, die Software zu teilen?
Ich würde mich sehr freuen.

Viele Grüße

Christian

P.S. Das Vergehen des Crosspostings wird ja evtl etwas kleiner, wenn man 
es zugibt. Ich habe hier ebenso gefragt:
https://www.klangfuzzis.de/threads/messsystem-kemsonic-ams-pc-1656-software-gesucht.107918/

Bei den Car-Audio-Leuten könnte ein solch eher kostengünstiges Gerät 
Zuspruch gefunden haben. Profis haben sowieso seit Jahr und Tag AP 
(Audio Precision)....

von Christian S. (uhrenfreak)



Lesenswert?

Offensichtlich kann sich leider niemand an das Gerät erinnern.
Oft werden Erinnerungen ja aufgefrischt, wenn man Bilder sieht. Deswegen 
liefere ich einige Aufnahmen nach.

Es wäre schade, wenn ich das Gerät nur wegen der fehlenden Software 
entsorgen muss.
Und: Auch wenn es mal günstiger war als ein "AP", für viele Zwecke 
erfüllt es bestimmt noch gut seinen Zweck.

Grüße

Christian

von Dieter S. (ds1)


Lesenswert?

Kannst Du einen Dump von dem EPROM machen und hier reinstellen? 
Eventuell kann man daraus etwas zum Protokoll zwischen PC und Gerät 
ableiten.

von Christian S. (uhrenfreak)


Angehängte Dateien:

Lesenswert?

Ich habe der Vollständigkeit halber mal das EPROM ausgelesen.
Aber ob man an dem 8051-Binärcode so viel erkennen kann? Irgendwie bin 
ich skeptisch.
Aber trotzdem Danke für die Anregung.

Grüße Christian

von Dieter S. (ds1)


Lesenswert?

Der Code im Mikrocontroller ist überschaubar, das Problem dürfte das 
Verständnis der Hardware sein.

Vom Mikrocontroller wird über Port 1 die Hardware angesteuert, die 
unteren 4 Bit werden bei einem Kommando an die Hardware nur kurz 
gesetzt, die oberen 4 Bit bleiben stehen. Das sieht dann z.B. so aus:

1
mov     P1, #0xF0
2
mov     P1, #0xF5
3
mov     P1, #0xF0

Das PC Programm schickt im Prinzip das was auf diese Art ausgegeben 
wird.

Die Frage ist wieviel Aufwand es ist die Hardware zu verstehen.

: Bearbeitet durch User
von Thomas Z. (usbman)


Lesenswert?

Das Eprom ist weitgehend leer. Die FW wurde in Assembler geschrieben.
Das kann man daran erkennen weil der ext irq R1,R2 und R4 benutzt ohne 
die Regs zu sichern.
Bei 0x500 gibt es eine 4 Byte Tabelle mit Steuer Informationen. Die 
Firmware wählt aus insgesamt 12 Funktionen je nach RS232 Kommando die 
Einstellungen aus

Falls Interesse besteht kann das Assembly aus IDA einstellen.

von Dieter S. (ds1)


Lesenswert?

Thomas Z. schrieb:
>
> Bei 0x500 gibt es eine 4 Byte Tabelle mit Steuer Informationen. Die
> Firmware wählt aus insgesamt 12 Funktionen je nach RS232 Kommando die
> Einstellungen aus

Das ist nichts spannendes, es sind lediglich die Werte für eine 
geschachtelte Warteschleife an anderer Stelle. Der eigentlich 
interessante Teil sind die Ausgaben an Port 1, die Logik dafür steckt 
aber in dem PC/Atari ST Programm.

Die Messwerte werden sehr wahrscheinlich indirekt per 
Zeit/Frequenzmessung erfasst, dafür ist dann wohl der VFC (Voltage to 
Frequency Converter) in der Beschreibung des Funktionsprinzips.

von Dieter S. (ds1)


Lesenswert?

Nochmal zu Port 1 in der Firmware: wenn man etwas genauer hinschaut sind 
wohl die unteren 4 Bits die Registernummer (wobei es Register 0 nicht 
gibt) und die oberen 4 Bits der Wert, der in das jeweilige Register 
geschrieben wird.

Aus dem Bild "Meßprozessor 1656 Funktionsweise" (leider nur eine Seite 
davon, der Rest wäre ebenfalls interessant) kann man in etwa ableiten 
welche Register es gibt, wobei der 8-Bit Wert für den DAC vermutlich aus 
zwei Registern kommt (es sieht in der Firmware so aus als ob das 
Register 1 und 2 sein könnten).

Mit ein wenig experimentieren indem man die Register per RS-232 
beschreibt und messen an der Schaltung sollte sich mit überschaubarem 
Aufwand herausfinden lassen was die Register machen.

: Bearbeitet durch User
von Christian S. (uhrenfreak)


Lesenswert?

Hallo Dieter und Thomas!

Vielen lieben Dank für eure Anregungen an Dis-Assembling und 
Reverse-Engineering. Was ihr aus dem 8051-Binary herauslesen könnt, ist 
schon erstaunlich und plausibel!. Mir kommen dann auch Ideen. Allerdings 
läuft dann alles auf ein "Neuschreiben" der Software hinaus, was 
eindeutig zu viel Aufwand ist.

Heute morgen (vor einer guten Stunde) hat ein (ex-)User des Geräts auf 
Klangfuzzis.de einen Dropbox-Link mit der originalen DOS-Software 
gepostet.
Die teste ich jetzt erstmal.

Herzliches Dankeschön fürs Hineindenken in meine Probleme!

Grüße

Christian

von Thomas Z. (usbman)


Lesenswert?

Christian S. schrieb:
> der originalen DOS-Software
es wäre gut wenn du die hier einstellen würdest, dann haben andere 
Suchende auch was davon.


Noch ein Hinweis zur FW:
Es wird wohl A12 des Eproms umgeschaltet. Es gibt ab 0x1000 einen 2 Satz 
weitgehend gleicher Funktionen. Das erklärt auch die Lücken im Code und 
die Verwendung von ACALL.

von Dieter S. (ds1)


Lesenswert?

Thomas Z. schrieb:
>
> Noch ein Hinweis zur FW:
> Es wird wohl A12 des Eproms umgeschaltet. Es gibt ab 0x1000 einen 2 Satz
> weitgehend gleicher Funktionen.

Der wichtigste Unterschied ist dass die zweite Variante ab 0x1000 mit 
Echo bei der RS-232 Kommunikation arbeitet (also z.B. ein empfangenes 
Byte zum PC zurückschickt). In der PC Software gibt es ein Flag dass die 
RS-232 Funktionen entsprechend umschalten kann, allerdings sieht es auf 
den ersten Blick so aus als ob dieses Flag in der Software einen 
vorgegebenen Wert erhält.

Nachtrag: der Wert für das Echo-Flag steht auch in der 
Konfigurationsdatei "CONFIG.AMS".

: Bearbeitet durch User
von Dieter S. (ds1)


Angehängte Dateien:

Lesenswert?

Kurz als Ergänzung zur Firmware: Wenn man sich anschaut was die PC 
Software macht sieht man dass die obige Annahme zu den Ausgaben an Port 
1 stimmt.

Die Tabelle in der Firmware für die Parameter der Warteschleife ist die 
Messzeit, nachdem die beiden Register 1 und 2 des 8-Bit DAC für die 
Frequenzeinstellung gesetzt wurden wartet die Firmware entsprechend der 
Messzeit und schickt dann das Ergebnis der Zeit/Frequenzmessung 
(entspricht dem gemessenen Pegel).

Das sieht dann in etwa so auf der RS-232 aus wenn man eine Messung 
durchführt (siehe Screenshot der PC Software):

1
F8    -> Register 8 auf 0xF
2
89    -> Register 9 auf 0x8
3
10 B0 -> Messzeit 128 ms 
4
02 01 -> DAC auf 0x00 (40000.0 Hz)
5
6
A3    -> Register 3 auf 0xA
7
84    -> Register 4 auf 0x8
8
85    -> Register 5 auf 0x8
9
10 B0 -> Messzeit 128 ms 
10
11
02 01 -> DAC auf 0x00 (40000.0 Hz)
12
02 01 -> DAC auf 0x00 (40000.0 Hz)
13
02 11 -> DAC auf 0x01 (38637.5 Hz)
14
02 21 -> DAC auf 0x02 (37321.3 Hz)
15
02 31 -> DAC auf 0x03 (36050.0 Hz)
16
...
17
E2 F1 -> DAC auf 0xEF (   10.1 Hz)
18
F2 01 -> DAC auf 0xF0 (    9.8 Hz)
19
 
20
A3    -> Register 3 auf 0xA
21
35    -> Register 5 auf 0x3

Das ist für die Variante ohne Echo auf der RS-232, nach dem Setzen des 
DAC und Ablauf der Messzeit würde jeweils das Ergebnis der Zeitmessung 
zum PC geschickt werden. Es gibt auch noch andere Messvarianten, das ist 
die einfachste.

Falls man vorhaben sollte das Gerät mit eigener Software zu nutzen wäre 
das also durchaus machbar.

: Bearbeitet durch User
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.