Disassemblera 8031-kod?
Re: Disassemblera 8031-kod?
Fryste "en stund" i frysen, läste 30 gånger och sparade.
Tyvärr verkar inte teorin om att fladdrande bit ska vara 0, hade nu flera fall i texten i slutet ett A ($41) som fyra gånger blivit ersatt med @ ($40), där är jag 100% säker på att det ska vara A, även S vs R ($53 vs $52) två gånger där S är det korrekta. Så det kanske ska vara 1 på fladdriga bitar istället?
Första läsning efter kylning:
Offset(h)
00001DA0 ÐƒÐ‚ßæÞäÓ"ЃЂ..FÃ"VOREINST. INA
00001DC0 KTIV 1 = EIN: VOREINST. AKTIV
00001DE0 0 = AUS: EEPROM GESTECKT (J): EE
00001E00 PROM GELOESCHT NICHT LEER: LOESC
00001E20 HEN (J): KEINE FEHLER BEIM VERGL
00001E40 EICH ADR: .PROGRAMMIERFEHLER EEP
00001E60 ROM ANWEISUNG FEHLERHAFT PRUEFBY
00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
00001EA0 O.K. RAM-FEHLER KLAMMER-FEHLER
00001EC0 SCHACHTELTIEFE ZU GROSS SOLLWE
00001EE0 RTE ZEIT- ZAEHLWERKE 1.03 SOLL-
00001F00 ODER ISTWERTE (S/I) ? SOLLWERTE
00001F20 UEBERTRAGEN ? NACH: PROGRAMM VOL
00001F40 L: LOESCHEN ? PROGRAMM LOESCHEN
00001F60 ? GEFORCT NEUE BAUDRATE: VON: BI
00001F80 S: ANLAGE: DATUM: AEG-TELEFUNKEN
00001FA0 LOGISTAT A020 SEITE: ..A02
00001FC0 0 FUS: LAEUFT STEHT NS WS O
00001FE0 .K. FX ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Sista två tecken innan $FF-fyllning är $20 (space) och $A0 (Line Feed), verkar inte vara med någon checksum som ligger i slutet i alla fall.
Andra läsning efter kylning, "VOREINST." nu stavat med R andra gången (på rad två) och @ istället för A som beskrivet, det som ska vara 1 har blivit 0.
Offset(h)
00001DA0 ÐƒÐ‚ßæÞäÓ"ЃЂ..FÃ"VOREINST. INA
00001DC0 KTIV 1 = EIN: VOREINRT. AKTIV
00001DE0 0 = AUS: EEPROM GESTECKT (J): EE
00001E00 PROM GELOESCHT NICHT LEER: LOESC
00001E20 HEN (J): KEINE FEHLER BEIM VERGL
00001E40 EICH ADR: .PROGRAMMIERFEHLER EEP
00001E60 ROM ANWEISUNG FEHLERHAFT PRUEFBY
00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
00001EA0 O.K. RAM-FEHLER KLAMMER-FEHLER
00001EC0 SCHACHTELTIEFE ZU GROSS SOLLWE
00001EE0 RTE ZEIT- ZAEHLWERKE 1.03 SOLL-
00001F00 ODER IRTWERTE (S/I) ? ROLLWERTE
00001F20 UEBERTR@GEN ? NACH: PROGRAMM VOL
00001F40 L: LOESCHEN ? PROGRAML LOESCHEN
00001F60 ? GEFORCT NEUE BAUDR@TD: VON: BI
00001F80 S: ANL@GE: DATUM: AEG-TELEFUNKEN
00001FA0 LOGIST@T A020 SEITE: ..A02
00001FC0 0 FUS: LAEUFT STEHT NS WS O
00001FE0 .K. FX ÿÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿÿÿÿÿÿ
Första dumpen jag gjorde hade inga tydliga fel i texten som denna andra läsning efter frysning.
Kanske skulle kolla i PLC-forum om det är någon som har liknande modell och kan dumpa ett fungerande eprom.
Tyvärr verkar inte teorin om att fladdrande bit ska vara 0, hade nu flera fall i texten i slutet ett A ($41) som fyra gånger blivit ersatt med @ ($40), där är jag 100% säker på att det ska vara A, även S vs R ($53 vs $52) två gånger där S är det korrekta. Så det kanske ska vara 1 på fladdriga bitar istället?
Första läsning efter kylning:
Offset(h)
00001DA0 ÐƒÐ‚ßæÞäÓ"ЃЂ..FÃ"VOREINST. INA
00001DC0 KTIV 1 = EIN: VOREINST. AKTIV
00001DE0 0 = AUS: EEPROM GESTECKT (J): EE
00001E00 PROM GELOESCHT NICHT LEER: LOESC
00001E20 HEN (J): KEINE FEHLER BEIM VERGL
00001E40 EICH ADR: .PROGRAMMIERFEHLER EEP
00001E60 ROM ANWEISUNG FEHLERHAFT PRUEFBY
00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
00001EA0 O.K. RAM-FEHLER KLAMMER-FEHLER
00001EC0 SCHACHTELTIEFE ZU GROSS SOLLWE
00001EE0 RTE ZEIT- ZAEHLWERKE 1.03 SOLL-
00001F00 ODER ISTWERTE (S/I) ? SOLLWERTE
00001F20 UEBERTRAGEN ? NACH: PROGRAMM VOL
00001F40 L: LOESCHEN ? PROGRAMM LOESCHEN
00001F60 ? GEFORCT NEUE BAUDRATE: VON: BI
00001F80 S: ANLAGE: DATUM: AEG-TELEFUNKEN
00001FA0 LOGISTAT A020 SEITE: ..A02
00001FC0 0 FUS: LAEUFT STEHT NS WS O
00001FE0 .K. FX ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Sista två tecken innan $FF-fyllning är $20 (space) och $A0 (Line Feed), verkar inte vara med någon checksum som ligger i slutet i alla fall.
Andra läsning efter kylning, "VOREINST." nu stavat med R andra gången (på rad två) och @ istället för A som beskrivet, det som ska vara 1 har blivit 0.
Offset(h)
00001DA0 ÐƒÐ‚ßæÞäÓ"ЃЂ..FÃ"VOREINST. INA
00001DC0 KTIV 1 = EIN: VOREINRT. AKTIV
00001DE0 0 = AUS: EEPROM GESTECKT (J): EE
00001E00 PROM GELOESCHT NICHT LEER: LOESC
00001E20 HEN (J): KEINE FEHLER BEIM VERGL
00001E40 EICH ADR: .PROGRAMMIERFEHLER EEP
00001E60 ROM ANWEISUNG FEHLERHAFT PRUEFBY
00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
00001EA0 O.K. RAM-FEHLER KLAMMER-FEHLER
00001EC0 SCHACHTELTIEFE ZU GROSS SOLLWE
00001EE0 RTE ZEIT- ZAEHLWERKE 1.03 SOLL-
00001F00 ODER IRTWERTE (S/I) ? ROLLWERTE
00001F20 UEBERTR@GEN ? NACH: PROGRAMM VOL
00001F40 L: LOESCHEN ? PROGRAML LOESCHEN
00001F60 ? GEFORCT NEUE BAUDR@TD: VON: BI
00001F80 S: ANL@GE: DATUM: AEG-TELEFUNKEN
00001FA0 LOGIST@T A020 SEITE: ..A02
00001FC0 0 FUS: LAEUFT STEHT NS WS O
00001FE0 .K. FX ÿÿÿÿÿÿÿÿÿÿÿþþþþÿÿÿÿÿÿÿÿ
Första dumpen jag gjorde hade inga tydliga fel i texten som denna andra läsning efter frysning.
Kanske skulle kolla i PLC-forum om det är någon som har liknande modell och kan dumpa ett fungerande eprom.
Re: Disassemblera 8031-kod?
Det kanske är annan typ av fel i promet än det vi har spekulerat om, dvs saker som faktiskt har gått sönder.
tex. ESD-skador kan ge väldigt konstiga beteende där logiska resonemang för orsak och verkan kör i diket direkt...
hur läses dessa av? - i promprogramerare eller sitter den i utrustningen?
Defintivt värt att fråga efter prom-image av folk som kanske har samma utrustning snurrande
tex. ESD-skador kan ge väldigt konstiga beteende där logiska resonemang för orsak och verkan kör i diket direkt...
hur läses dessa av? - i promprogramerare eller sitter den i utrustningen?
Defintivt värt att fråga efter prom-image av folk som kanske har samma utrustning snurrande
Re: Disassemblera 8031-kod?
Jag har letat fel på PLC:t så efter att ha kollat alla 17 reläer så kikade jag på ram och eprom som båda var socklade. Läser av i eprom-programmerare, även ram-testning gjordes i denna. Har inte haft några liknande läsbekymmer med annat i samma åldersspann, det är väl bara skrivning som inte gått så bra på gammal 21V eprom men då kör jag med Willem istället så är biffen klar.
Känns ju skönt att ha hittat något misstänkt efter mycket letande, bara att försöka lösa det så smidigt som möjligt.
Känns ju skönt att ha hittat något misstänkt efter mycket letande, bara att försöka lösa det så smidigt som möjligt.
Re: Sv: Disassemblera 8031-kod?
Detta är ju bevis på att det finns checksum.e5frog skrev: 00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
Kolla var i koden felkod 1E80 anropas så bör du kunna hitta algoritmen och minnesplatsen.
Trasiga MC908AZ brukar gå bättre att läsa om kan värmer upp dom, men det kanske är en annan typ av fel?
Re: Disassemblera 8031-kod?
Jag gissar att det är checksum i EEPROM:et som är lödat efter att man programmerat, måste ju vara texter som syns när man har programmerare inkopplad.
Jag lade den i fryset några timmar (typ fem-sex), rotade fram Willem, kabel och nätdel - för de hade jag hunnit använda till annat sedan senast.
Kopplade upp, startade Win98 burken och hämtade EPROM:et ur frysen...
Läste 32 gånger i rad och sparade filerna - alla var likadana (jämförde i hexeditor). Inga synliga fel i texten heller.
Jag lade den i fryset några timmar (typ fem-sex), rotade fram Willem, kabel och nätdel - för de hade jag hunnit använda till annat sedan senast.
Kopplade upp, startade Win98 burken och hämtade EPROM:et ur frysen...
Läste 32 gånger i rad och sparade filerna - alla var likadana (jämförde i hexeditor). Inga synliga fel i texten heller.
Re: Sv: Disassemblera 8031-kod?
Njae... Nån felkod är det inte. 1E80 är en adress i EEPROMet. Den adress som processorn jobbar med kan vara nåt helt annat. Var i addressrymden är EEPROMet inmappat?mrfrenzy skrev:Detta är ju bevis på att det finns checksum.e5frog skrev: 00001E80 TE-FEHLER IM EEPROM: PRUEFBYTES
Kolla var i koden felkod 1E80 anropas så bör du kunna hitta algoritmen och minnesplatsen.
Dessutom så är 1E80 adressen till en bokstav mitt i en textsträng, men om man letar rätt på var strängen börjar (nån intilliggande adress) så...
Men hur säker kan man vara på att hitta saker i en datamängd som man inte kan lita på?
Och i slutändan, vad ska man ha algoritmen och checksummeadressen till? Att det blir datafel är redan känt. Man kommer ändå inte vidare mot korrekta data.
Re: Disassemblera 8031-kod?
Läste eprommet igen på förmiddagen, det blev samma resultat som när den var kyld igår, inga uppenbara fel i textblocket, inga skillnader vid upprepade omläsningar.
Den skiljer på första biten på tre byte jämfört med den allra första dumpen (rumstemperatur och enbart USB-kopplade läsaren). Willem kör över parallelport och jag hade 12V (1.25A) koppad till den (kör den aldrig med USB ström).
Om någon är nyfiken så finns den stabila dumpningen bifogad, hittade något som heter SDCC för disassemblering, ska kika på det sen. Verkar det vettigt är det väl bara att montera ihop och testa igen. Man får väl lära sig 8031 programmering på köpet om man ska fatta något.
Det börjar med 020C0C02 068BFFFF FFFFFF02 0491FFFF...
Det verkar vara hopp till adresser, den första till $0C0C de andra är jag osäker på om bytesen kommer i "rätt" ordning eller inte, vet å andra sidan inte vilket adressområde eprommet ligger eller vilka alternativ som finns med 8031:an.
Den skiljer på första biten på tre byte jämfört med den allra första dumpen (rumstemperatur och enbart USB-kopplade läsaren). Willem kör över parallelport och jag hade 12V (1.25A) koppad till den (kör den aldrig med USB ström).
Om någon är nyfiken så finns den stabila dumpningen bifogad, hittade något som heter SDCC för disassemblering, ska kika på det sen. Verkar det vettigt är det väl bara att montera ihop och testa igen. Man får väl lära sig 8031 programmering på köpet om man ska fatta något.
Det börjar med 020C0C02 068BFFFF FFFFFF02 0491FFFF...
Det verkar vara hopp till adresser, den första till $0C0C de andra är jag osäker på om bytesen kommer i "rätt" ordning eller inte, vet å andra sidan inte vilket adressområde eprommet ligger eller vilka alternativ som finns med 8031:an.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Disassemblera 8031-kod?
Har SDCC disassembler? Eller är det något annat än kompilatorn du har hittat? http://sdcc.sourceforge.net/
Re: Disassemblera 8031-kod?
Här finns en hel del olika simulatorer och även annat till 8051.
http://bit.kuas.edu.tw/~8051/
http://bit.kuas.edu.tw/~8051/
Re: Disassemblera 8031-kod?
@daer: Kanon, ser ut att vara användarvänligt också.
@lillahuset: Joo... jag har för mig att jag läste det innan jag laddade ner. På sidan 94 i dokumentationen nämns "mcs51-disasml.pl" med beskrivningen "disassembler to the mcs51 instructions contained hex files"
På lunchen brände jag den version som Willem-programmeraren läst i en annan 2764, den läses hur fint som helst på USB-eprom-läsaren/brännaren. Kanske är så ändå att eprommet är trassligt på något sätt.
@lillahuset: Joo... jag har för mig att jag läste det innan jag laddade ner. På sidan 94 i dokumentationen nämns "mcs51-disasml.pl" med beskrivningen "disassembler to the mcs51 instructions contained hex files"
På lunchen brände jag den version som Willem-programmeraren läst i en annan 2764, den läses hur fint som helst på USB-eprom-läsaren/brännaren. Kanske är så ändå att eprommet är trassligt på något sätt.
Senast redigerad av e5frog 12 augusti 2016, 16:07:39, redigerad totalt 1 gång.
Re: Disassemblera 8031-kod?
Intressant tråd det här.
Jag har en 8051 som jag skulle vilja läsa ur.
Är enda skillnaden mot 8031 det inbyggda epromet?
Jag har en 8051 som jag skulle vilja läsa ur.
Är enda skillnaden mot 8031 det inbyggda epromet?
Re: Disassemblera 8031-kod?
Ja, vad jag kan se så är det 4kB ROM i 8051 - men 8031 måste ha externt minne.
-
- EF Sponsor
- Inlägg: 970
- Blev medlem: 26 maj 2014, 12:54:35
- Ort: Karlskoga
Re: Disassemblera 8031-kod?
Observera att 8051 är mask-programmerad. D.v.s. programmet är inlagt i foto-maskerna som används när chippen tillverkas. Jag är osäker på om det går att läsa ut detta program ur en 8051. Dom programmerbara hette typ 8751.
Min GALEP-4 som kan läsa och programmera en massa olika kretsar har inte med 8051 i device-list men väl 8751. Men det är ju en programmerare så man kan ha valt bort 8051 för att den inte går att programmera. 8048 finns dock med. Det är en tidigare mask-programmerad mikrocontroller. Väljer man den finns läsa med men inte skriva. Tycker jag tråkigt nog pekar på att 8051 inte går att läsa alls.
Min GALEP-4 som kan läsa och programmera en massa olika kretsar har inte med 8051 i device-list men väl 8751. Men det är ju en programmerare så man kan ha valt bort 8051 för att den inte går att programmera. 8048 finns dock med. Det är en tidigare mask-programmerad mikrocontroller. Väljer man den finns läsa med men inte skriva. Tycker jag tråkigt nog pekar på att 8051 inte går att läsa alls.