Dzieñ dobry! Ostatnio z racji totoalnego braku czasu postanowi³em dodatkowo naprawiæ stary multimetr. Zmobilizowa³ mnie do tego s±siad, który w dordze z ryb czy na ryby ci±gle mi mówi, ¿e nic nie robiê ;-) Sk³ada siê on z 2 czê¶ci izolowanych galwanicznie czê¶ci z których ka¿da ma Z80 z prostymi peryferiami. Z uwagi na to, ¿e konstruktorzy nie mieli dostêpu? do EEPROMów wszystko tzn. pamiêæ programu i sta³e kalibracyjne s± zapisane w jednej ko¶ci. No i tu zaczynaj± siê schody, bo po z ok³adem 20 latach jego wskazania wymagaj± korekcji. Odczyta³em pamiêæ odpowiedzialn± za czê¶c pomiaru i obliczania ale moja wiedza na temat Z80 nie pozwala mi na rozszyfrowanie co konstruktor mia³ na my¶li. St±d moje pytanie jest takie: Czy istniej± programy które prze³o¿± HEX->ASM-> najlepiej jaki¶ graf funkcji albo co¶ zrozumia³ego dla in¿yniera co nie programowa³ w ¿yciu w asemblerze Z80?, no mo¿e raz na laborce lata temu walczy³ z jakim¶ PIO,SIO, czy czym¶ w ten deseñ aby uzyskaæ niezbêdne zaliczenie z przedmiotu który powinien byæ raczej na kursie kustosza muzeum techniki. Wtedy mam nadzieje zrozumiem jak± matematykê stosuj± i gdzie zapisali korekcje. Na produkcji strojenie z tego co wiem polega³o na przypiêciu do stanowiska z komupterem (Mazovia, potem PC) uruchomieniu programu steruj±cego kalibrator i miernik po IEC625. Program co¶ liczy³, i wypluwa³ wsad do zaprogramowania... W cywilizowanym ¶wiecie w miernikach by³y zwory i tryby kalibracji oraz dane zapisywane w jakiej¶ pamiêci SRAM czy EEPROM. Dla zainteresowanych zdradzam - pacjent to V563 Meratronika - pierwszy i ostatni multimetr z mikroprocesorami.
Deasemblowanie Z80, reanimacja multimetru.
May 29, 2012
30 Replies
Ukaniu snipped-for-privacy@gazeta.pl napisa³(a):
IDA powinna daæ radê Ci to ³adnie narysowaæ.
formatting link
U¿ytkownik "Grzegorz Niemirowski" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:jq3eu3$1bi$ snipped-for-privacy@news.icpnet.pl...
IDA wygl±da dobrze ale trudno wydaæ 400 EUR aby próbowaæ rozwi±zywaæ problemy w randze hobby ;-). W wersji bieda/darmo nie ma Z80. :-( Swoj± drog± szukam dalej co¶ podobnego.
Zdecydowanie je¶li zale¿y Ci na skucesie, to poszuka³bym instrukcji kalibracji do tego, je¶li istnieje. A mo¿e zapytaæ w Meratroniku?
U¿ytkownik "EM" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:4fc5c7c4$0$1209$ snipped-for-privacy@news.neostrada.pl...
A my¶lisz, ¿e co pierwsze zrobi³em? ;-) Porozmawia³em z lud¼mi którzy siê nim zajmowali i niestety okaza³o siê, ¿e stanowisko do kalibrowania ju¿ nie istnieje, softu raczej nie ma. Kalibrowanie polega³o na pod³±czeniu i wci¶niêciu czerwonego przycisku, z racji marnej ilosci nikt siê na tym nie skupia³ ani nie rozk³ada³ na atomy. W DTR do³±czanej do miernika nic o kalibracji nie ma. Konstruktorów nie znam.
Ojtam Ojtam
Obawiam się że będzie prościej napisać samodzielnie ten program :(. A jeszcze prościej wywalić Z80 z połową osprzętu i wsadzić AVRa. Ja poleglem przy próbie deasemblacji na Z80 a miałem coś koło 24kB i wydawało się że w tydzień będę miał to co chcę ... Jeśli nie znasz bardzo dobrze tego procesora to nie bierz się za to. To jeszcze większe bagno niż 8080 do czytania.
Z ciekawostek:
formatting link
Niestety - jesli kolega nie ma dokladnej dokumentacji do czesci hardwareowej, to pisanie programu jest mission impossible.
No chyba zeby zaczac od deassemblacji starego :-)
Niestety - analiza po deassemblacji jest powolna. Nie mowie ze sie nie da ... ale 24KB to raczej miesiace.
Inna sprawa ze on chyba nie ma w tym woltomierzu az 24KB.
Czemu ? Jak program nie uzywa instrukcji dodatkowych Z80, to mozna deassemblowac do 8080, jak uzywa .. to juz w sumie niewielka roznica, assembler Z80 przyjemniejszy :-)
J.
Deassemblowanie w przypadku braku dokładnego opisu hardware to mission impossible 2.
IMHO w obu sytuacjach to jest krańcowo upierdliwe. Ale większy fun z pisania nowego.
Szukałem około 200 bajtowej procedury. Natrafiłem na mocno zamotane (reką ludzką) algorytmy stawiające kłody pod nogi rodem z zabezpieczeń gierek 8-bit jak np. manipulowanie stosem czy wykorzystywane kilkuset bajtów do policzenia a+b w celu utrudnienia analizy. Całośc zapewne dlatego że program był dostępny w eepromie dla każdego, autor solidnie zabezpieczył możliwość serwisowania (zarabiania) przez innych :/
Analiza wymagała symulacji, bo kod był nieczytelny z powodu że to Z80 i że zamotany. Poddałem się. W tydzień miałem układ zastępczy AVR.
Z80 / 8080 niczym sie de facto nie różnią poza np. bankiem dodatkowych rejstrów Z80 który *cholernie* utrudnia analizę. Obydwa są równie obleśne w czytaniu i analizie. Czemu nikt nie robił sterowania na 680x0 :/
In the darkest hour on Wed, 30 May 2012 20:56:20 +0200, Sebastian Biały snipped-for-privacy@poczta.onet.pl> screamed:
Nie zgodzę się. Mnemoniki Z80 a 8080 to jak woda i bagno.
W takim mierniku tak duzo rzeczy nie bedzie. Wiekszosc to pewnie PIO/SIO, wiec starczy przesledzic kilka drutow zeby wiedziec pod jakimi adresami toto siedzi.
Taaa, bez schematu? ;-)
Z80 byl zaprojektowany przez ta sama dwojke co popelnil 8080. Jest DUZO wygodniejszy i czytelniejszy. Z80 IMO to szkolny przyklad procesora CISC
- jasno, czysto i przejrzyscie. DUZO usprawnien w porownaniu z (tfu) 8080.
A ze niektore instrukcje sa nazywane 'nieudokumentowane'? To co mogles zrobic z HL mogles tez zrobic z IX/IY uzywajac prefixa, to cala magia.
[...]
Co Ty opowiadasz?
Chyba przesadzasz.
W życiu - mniemoniki Z80 są czytelne i konsekwentne. 8080 to jakieś straszne pomieszanie z poplątaniem.
A kto powiedział, że nie? Na przykład jeden z najbardziej kultowych modemów w historii - ZyXEL U1496E był na 68000.
Wy tu o mnemonikach a ja tu o architekurze :)
Program do sterowania czê¶ci analogowiej i obliczeñ ma jakie¶ 6 tys. linii kodu ASM. Nie w kij dmucha³. Przerobienie na AVR nie wchodzi w gre bo rozwik³adnie algorytmu sterowania uk³adu ca³kuj±cego, autokalibracji, korekcji itd zajê³o by ogrom brakuj±cego czasu. Programista co¶ zamota³ na 100% bo nie widzê sensownych tablic do których odnosi³ by siê alogrytm. Ja pisz±c takie co¶ bym je jako¶ wydzieli³ i oznaczy³ ale... Jak siê uprê to kiedy¶ podo³am. Gdybym mia³ nim pracowaæ zarobkowo to w zak³adanym czasie rozgryzania algorytmu lepiej by³o by (czym innym) zarobiæ na starego jarego fluka czy solartrona o ppmowej dok³adno¶ci. A co wa¿niejsze 100% pewno¶ci dzia³ania i wyniku. To tylko muzeum ale szkoda aby le¿a³o bez ¿ycia skazane na brak serwisu.
Czasem nie trzeba. Kolega chce dane kalibracyjne znalezc, a to wyzszy poziom.
W koncu jakos ludzie modowali telefony, i potrafili znalezc miejsce na wpisanie poprawki w paru MB kodu.
No nie, az tak bardzo architektury i listy rozkazow nie zmienili :-)
J.
In the darkest hour on Wed, 30 May 2012 23:07:31 +0200, Sebastian Biały snipped-for-privacy@poczta.onet.pl> screamed:
Jeśli ma to disassemblować, to w mnemonikach umoczony będzie po łokcie. A jeśli chodzi o architekturę, to nie różnią się zbytnio. W 8080 dochodzi jeszcze doprowadzenie -5V, i 12V.
U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:57ab8tvnhbpg$.1xo06m1zi4efy$. snipped-for-privacy@40tude.net...
Takie skojarzenie. Jakby tak porównaæ zawarto¶æ z dwu sztuk to chyba od razu by³oby widaæ gdzie s± dane kalibracyjne. P.G.
U¿ytkownik "Piotr Ga³ka" snipped-for-privacy@CUTTHISmicromade.pl napisa³ w wiadomo¶ci news:4fc72137$ snipped-for-privacy@news.home.net.pl...
Z tym pewnie bêdzie taki sam problem jak z odczytem kodu ;-) Mo¿e siê kiedy¶ trafi. Istnieje szansa, ¿e program kalibruj±cy zmienia trochê bardziej inteligentnie sam algorytm np. wstawia "nop" gdzie trzeba w celu korekcji czasu a przez to wyniku. Pieron wie.
U¿ytkownik "Ukaniu" snipped-for-privacy@gazeta.pl napisa³ w wiadomo¶ci news:4fc72696$0$1294$ snipped-for-privacy@news.neostrada.pl...
Nie s±dzê aby program kalibracyjny bra³ na siebie kwestiê zmiany adresów skoków itp. Raczej jest kwestia jakich¶ modyfikacji w oprogramowaniu i dlatego najlepsze by³yby dwa egzemplarze o niezbyt odleg³ych numerach fabrycznych. P.G.
U¿ytkownik "Piotr Ga³ka" snipped-for-privacy@CUTTHISmicromade.pl napisa³ w wiadomo¶ci news:4fc729bd$ snipped-for-privacy@news.home.net.pl...
Je¶li ten Z80 steruje ca³ym przetwornikiem z podwójnym ca³kowaniem to w celu kalibracji mo¿na majstrowaæ czasami podawania sygna³ów referencji. Nie musieli do tego stosowaæ pêtli i licznika ale np. soft widz±c odchy³kê w pomiarze ³aduje w jak±¶ czê¶æ kodu odpowiedni± ilo¶æ nopów potem kompiluje i wystawia plik bin do wbicia w eprom. Znaj±æ umi³owanie do komplikowania sobie ¿ycia - widoczne nawet po tym, ¿e nie mamy w tym mierniku sensownego trybu kalibracji z klawiatury to wszystko jest mo¿liwe.
Cuda sie zdarzaj± :-) mo¿e kto¶ mi kiedy¶ odczyta.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required