RTV forum PL | NewsGroups PL

Jak zdekodować zapowiedzi dźwiękowe z EPROM amerykańskiego automatu z lat 90.?

Kodowanie dźwięku w starych urządzeniach / EPROM

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zdekodować zapowiedzi dźwiękowe z EPROM amerykańskiego automatu z lat 90.?

Goto page 1, 2  Next

Piotr C
Guest

Fri Jun 17, 2022 6:47 pm   



Dzień dobry,

Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu. Amerykański automat telefoniczny z lat 90., odczytałem EPROM z zapowiedziami słownymi (wrzuć monetę itd itd) jednak nie potrafię tego zdekodować. To nie jest zwykłe PCM, próbowałem też ADPCM (import poprzez soundforge lub goldwave) i też nic, GSM też nie. Biorąc pod uwagę że procek to Zilog Z180 to nie może być nic zaawansowanego. Może ktoś rozpracowywał podobne urządzenia i miałby szybką poradę?

Plik leży tutaj: http://mabanana.com/VOICE_ROM_TMS27C010A.BIN

pozdrawiam
Piotr

J.F
Guest

Fri Jun 17, 2022 6:47 pm   



On Fri, 17 Jun 2022 09:47:28 -0700 (PDT), Piotr C wrote:
Quote:
Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu. Amerykański automat telefoniczny z lat 90., odczytałem EPROM z zapowiedziami słownymi (wrzuć monetę itd itd) jednak nie potrafię tego zdekodować. To nie jest zwykłe PCM, próbowałem też ADPCM (import poprzez soundforge lub goldwave) i też nic, GSM też nie. Biorąc pod uwagę że procek to Zilog Z180 to nie może być nic zaawansowanego. Może ktoś rozpracowywał podobne urządzenia i miałby szybką poradę?

Plik leży tutaj: http://mabanana.com/VOICE_ROM_TMS27C010A.BIN

Na poczatku widze cos jakby "spis tresci", czyli
adres i dlugosc, po 2 bajty
0190h
06B4
08F4
0B15
0D93
itp

Ale plik 2x dluzszy ... no pod 10000h jakby drugi spis tresci.

Sa tam dluzsze sekwencje AA i 55 ... podejrzewam jakies delta
modulation, ale 1 bit/probke, czy 2 bity/probkę

A tu MS poszedl z postępem i wyciął wszystkie stare narzędzia.


J.

Michał Jankowski
Guest

Fri Jun 17, 2022 6:47 pm   



W dniu 17.06.2022 o 18:47, Piotr C pisze:
Quote:
Dzień dobry,

Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu. Amerykański
automat telefoniczny z lat 90., odczytałem EPROM z zapowiedziami
słownymi (wrzuć monetę itd itd) jednak nie potrafię tego zdekodować.

Zdumpuj program.

MJ

Piotr C
Guest

Fri Jun 17, 2022 8:04 pm   



J.F wrote:
Quote:
Na poczatku widze cos jakby "spis tresci", czyli

Ale plik 2x dluzszy ... no pod 10000h jakby drugi spis tresci.

Prawda! Myślę że jeden będzie po angielsku, drugi po hiszpańsku.


Michał Jankowski wrote:
Quote:

Próbowałem deasemblacji, są nawet narzędzia online ale wychodzi za przeproszeniem kupa. Powinno startować z 0000 a są tam jakieś głupoty, nie widzę jumpa do niczego sensownego. Od offsetu 0098 jest napis "PCM 05.04.04 (C) COPYRIGHT BY ELCOTEL,INC. 1986 - 1999050404" i jest on deasemblowany jako kod... Ogólnie program nie będzie prosty bo wbrew temu że automat wygląda topornie, to jest mocno rozbudowany jeśli chodzi o programowanie, taryfy itd.

P.

Piotr C
Guest

Fri Jun 17, 2022 8:45 pm   



On Friday, June 17, 2022 at 10:31:36 AM UTC-7, J.F wrote:
Quote:
Sa tam dluzsze sekwencje AA i 55 ... podejrzewam jakies delta
modulation, ale 1 bit/probke, czy 2 bity/probkę

Bingo! 55 i AA ot najczęściej występujące wartości.. w bin to:
01010101
10101010
czyli naprzemiennie 0 i 1, co w modulacji gęstości impulsów (wynik 1-bitowego kodowania sigma-delta) oznacza stały sygnał (za wiki: https://pl.wikipedia.org/wiki/Modulacja_g%C4%99sto%C5%9Bci_impuls%C3%B3w). Zapewne coś miałem o tym na studiach, ale już słabo pamiętam. Programowo jak to zrealizować - nie wiem, uśredniać ostatnie n bitów i tak przesuwać po całej zawartości? Czy stosować jakieś wagi?

W ogóle zapomniałem zaznaczyć - ten temat nie jest jakoś szczególnie ważny. Ot, kupiłem programator (polecam - działa: https://www.aliexpress.com/item/3256801471939648.html) aby dobrać się do EPROMu, co nb. poszło mizernie, boję się wylutowywać wielką pamięć bo zniszczę PCB a procek jednak nie jest w podstawce. Ale korzystając z okazji zczytałem ROM z programem i zapowiedziami bardziej do zabawy niż jakichś wielkich projektów. Dzięki za zainteresowanie bo mimo wszystko ciekawi mnie to bardzo!

P.

Zbych
Guest

Fri Jun 17, 2022 9:32 pm   



Piotr C wrote on 17.06.2022 20:04:
Quote:
J.F wrote:
Na poczatku widze cos jakby "spis tresci", czyli

Ale plik 2x dluzszy ... no pod 10000h jakby drugi spis tresci.

Prawda! Myślę że jeden będzie po angielsku, drugi po hiszpańsku.


Michał Jankowski wrote:
Zdumpuj program.
http://mabanana.com/PROG_ROM_TMS27C512.BIN
Próbowałem deasemblacji, są nawet narzędzia online ale wychodzi za przeproszeniem kupa. Powinno startować z 0000 a są tam jakieś głupoty, nie widzę jumpa do niczego sensownego.

Weź pod uwagę, że linie adresowe procka nie muszą być podłączone 1:1 do
pamięci. Warto to sprawdzić, bo może eprom wymaga wymieszania adresów
przed disasemblacją.

Quote:
Od offsetu 0098 jest napis "PCM 05.04.04 (C) COPYRIGHT BY ELCOTEL,INC. 1986 - 1999050404"

Czyli linie danych nie są wymieszane.

Dawid Rutkowski
Guest

Sat Jun 18, 2022 10:04 am   





Dawid Rutkowski
Guest

Sat Jun 18, 2022 10:07 am   



piątek, 17 czerwca 2022 o 23:32:12 UTC+2 Zbych napisał(a):
Quote:
Piotr C wrote on 17.06.2022 20:04:
J.F wrote:
Na poczatku widze cos jakby "spis tresci", czyli

Ale plik 2x dluzszy ... no pod 10000h jakby drugi spis tresci.

Prawda! Myślę że jeden będzie po angielsku, drugi po hiszpańsku.


Michał Jankowski wrote:
Zdumpuj program.
http://mabanana.com/PROG_ROM_TMS27C512.BIN
Próbowałem deasemblacji, są nawet narzędzia online ale wychodzi za przeproszeniem kupa. Powinno startować z 0000 a są tam jakieś głupoty, nie widzę jumpa do niczego sensownego.
Weź pod uwagę, że linie adresowe procka nie muszą być podłączone 1:1 do
pamięci. Warto to sprawdzić, bo może eprom wymaga wymieszania adresów
przed disasemblacją.

Miałem urządzenie od tskuego dowcipnisia.
Do tego mieszał GALem, więc skomplikowaniej niż po prostu pozamieniać.

Quote:
Od offsetu 0098 jest napis "PCM 05.04.04 (C) COPYRIGHT BY ELCOTEL,INC. 1986 - 1999050404"
Czyli linie danych nie są wymieszane.

Mogą być, bo przecież ten napis się raczej nigdzie nie wyświetla.

alojzy nieborak
Guest

Sat Jun 18, 2022 2:50 pm   





Piotr C
Guest

Sat Jun 18, 2022 6:24 pm   



On Saturday, June 18, 2022 at 1:07:23 AM UTC-7, Dawid Rutkowski wrote:
Quote:
Mogą być, bo przecież ten napis się raczej nigdzie nie wyświetla.

Kurde prawda! Nie wpadłbym, ale mogli przekodować napis aby w kodzie wyglądał normalnie. Dzisiaj przedzwonie linie danych. Spróbuje też zdekodować dźwięk, chociaż od ostatniego czasu gdy coś kodowałem w C minęło ładnych pare lat.

Mirek
Guest

Sat Jun 18, 2022 6:39 pm   



On 18.06.2022 18:24, Piotr C wrote:
Quote:
On Saturday, June 18, 2022 at 1:07:23 AM UTC-7, Dawid Rutkowski wrote:
Mogą być, bo przecież ten napis się raczej nigdzie nie wyświetla.

Kurde prawda! Nie wpadłbym, ale mogli przekodować napis aby w kodzie wyglądał normalnie. Dzisiaj przedzwonie linie danych. Spróbuje też zdekodować dźwięk, chociaż od ostatniego czasu gdy coś kodowałem w C minęło ładnych pare lat.

Mało prawdopodobne.
Kod to kod. a wsad to wsad. Bez sensu jest żeby upiększać wsad.
Mogą być pomieszane linie adresowe i/lub linie danych ale to się robi
żeby uprościć płytkę (sam tak robiłem), a nie żeby utrudnić kopiowanie.
Linii danych IMHO nie masz pomieszanych skoro widać napis. Może być
kolejność bitów zamieniona do dekodowania (MSB/LSB).
Linie adresowe raczej też nie są, aczkolwiek napis może się mieścić
akurat w bloku niezmieszanym.

--
Mirek.

Arnold Ziffel
Guest

Sun Jun 19, 2022 8:38 am   



Piotr C <kangyooni@gmail.com> wrote:

Quote:
Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu.

Pobawiłem się chwilę:

https://drive.google.com/file/d/1u-abfSvp7zs7VBmyQ4wsvffRkREyJcbZ/view

Baza do dalszych zabaw:

#v+
#include <stdio.h>
#include <assert.h>
#include <inttypes.h>

int main(void)
{
FILE *ifp, *ofp;
uint8_t value = 0x80;
uint8_t dir = 0;

ifp = fopen("VOICE_ROM_TMS27C010A.BIN", "rb");
ofp = fopen("output.raw", "wb");
assert(ifp);
assert(ofp);

for (;Wink
{
const uint8_t ch = fgetc(ifp);
int i;

if (feof(ifp))
break;

for (i = 0; i < 8; ++i)
{
if (dir ^ !!(ch & (1 << i)))
{
if (value == 0xff)
dir ^= 1;
else
value++;
}
else
{
if (value == 0x00)
dir ^= 1;
else
value--;
}

fputc(value, ofp);
}
}

fclose(ofp);
fclose(ifp);

return 0;
}
#v-

I potem komenda:

sox -b 8 -c 1 -e unsigned-integer -r 22050 -t raw output.raw output.wav

Na pewno należałoby sparsować strukturę i resetować dekoder przy każdym
nowym komunikacie -- to powinno usunąć DC bias.

--
Gdybyś była owocem, to byłabyś najsłodszą truskawką. A gdybyś była
warzywem, to odwiedzałbym cię codziennie w szpitalu.

Krzysztof Gajdemski
Guest

Sun Jun 19, 2022 10:37 am   



Jest Sun, 19 Jun 2022 02:37:06 -0700 (PDT), Dawid Rutkowski pisze:
Quote:
niedziela, 19 czerwca 2022 o 08:38:24 UTC+2 Arnold Ziffel napisał(a):
Piotr C <kang...@gmail.com> wrote:
Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu.
Pobawiłem się chwilę:
No ale słychać coś sensownego?

Słychać.
https://oc.lh2.pl/s/HeKko576yw4Fzgo

Quote:
Są dwa zestawy językowe?

Nie inaczej.

ATSD, bardzo fajne wykopalisko.

k.
--
Krzysztof Gajdemski | songo (at) debian.org.pl | KG4751-RIPE
Registered Linux User #133457 | BLUG Registered Member #0005
PGP key at: http://s.debian.org.pl/gpg/gpgkey * ID: D3259224
Szanuję was wszystkich, którzy pozostajecie w cieniu - Snerg

Dawid Rutkowski
Guest

Sun Jun 19, 2022 11:37 am   



niedziela, 19 czerwca 2022 o 08:38:24 UTC+2 Arnold Ziffel napisał(a):
Quote:
Piotr C <kang...@gmail.com> wrote:

Wątpie czy ktoś coś poradzi ale nie mam innego pomysłu.
Pobawiłem się chwilę:

No ale słychać coś sensownego?
Są dwa zestawy językowe?

Krzysztof Gajdemski
Guest

Sun Jun 19, 2022 10:15 pm   





Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zdekodować zapowiedzi dźwiękowe z EPROM amerykańskiego automatu z lat 90.?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map