Welcome, Guest. Please login or register.


Author Topic: Diagnosztikai ROM-ok (Read 12191 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« on: 2006.August.24. 10:52:05 »
És az utolsó csemege a tegnapi kupacból :-)
Gyári diagnosztikai programok Ep-hez!
Azt még nem tudom, hogyan lehet használni õket :-)
Annyira már rájöttem, hogy bekapcsolás után teleírja az FC szegmenst 55H-val, majd megáll. Ha resettel újra indítjuk akkor leellenõrzi, hogy az 55H-k megvannak-e még. Ha igen után jön egy olyan rész ahol kavar valamit a B5/B6 portokkal, ha jól sejtem valamilyen loopback dugó kéne valamelyik csatlakozóba... ha jól sejtem itt is egy alapos disassemblálásra lesz szükség :-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2553
  • Country: hu
    • View Profile
    • Enterprise Forever
Diagnosztikai ROM-ok
« Reply #1 on: 2006.August.24. 11:01:15 »
Quote from: "Zozosoft"
ha jól sejtem itt is egy alapos disassemblálásra lesz szükség :-)

Akkor egy ideig lesz mit csinálnod :-D

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #2 on: 2006.August.24. 11:04:32 »
Quote from: "MrPrise"
Akkor egy ideig lesz mit csinálnod :-D

Nekem is úgy tünik :-)
Asszem ezekkel fogom kezdeni az IDA-zást, rövidke programok, és remélhetõleg nincs benne semmi EXOS hívás vagy hasonló :-)

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2553
  • Country: hu
    • View Profile
    • Enterprise Forever
Diagnosztikai ROM-ok
« Reply #3 on: 2006.August.24. 11:07:49 »
Quote from: "Zozosoft"
Quote from: "MrPrise"
Akkor egy ideig lesz mit csinálnod :-D

Nekem is úgy tünik :-)
Asszem ezekkel fogom kezdeni az IDA-zást, rövidke programok, és remélhetõleg nincs benne semmi EXOS hívás vagy hasonló :-)

Szívesen fejtegetnék én is vissza, ha lenne időm :-(

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #4 on: 2006.August.24. 16:19:35 »
Na az már kiderült, hogy a printer porttal szórakozik egy csomót, egyelõre még számámra ismeretlen célból :-)
Mivel EP32-ben nincs printer támogatás, így nem is indult el...
Mondjuk az szerintem elég súlyos programozási baki, hogyha rossz a printer port akkor végtelen ciklusban ragad a program, el se jut oda, hogy kiirja, hogy rossz a printer port...
És minden egyéb tesztben is piszkálja a printer portot...

Most egy nagyrakás NOP-ot szétszórva likvidáltam az összes végtelen ciklust, így már lehetett screenshot-okat gyártani EP32-vel :-)





Itt a "kiherélt" ROM fájl EP32-höz, ha netán valaki a hangra is kiváncsi :-)
Indítás után egy meleg resetet kell nyomni úgy indul a program.

Offline XYBeR

  • User
  • *
  • Posts: 63
    • View Profile
Diagnosztikai ROM-ok
« Reply #5 on: 2006.August.24. 16:41:41 »
Quote from: "Zozosoft"
Na az már kiderült, hogy a printer porttal szórakozik egy csomót, egyelõre még számámra ismeretlen célból :-)
.
.
.
Indítás után egy meleg resetet kell nyomni úgy indul a program.


grat :) érdekes dolgok kerülnek elõ :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #6 on: 2006.August.25. 15:42:01 »
Itt a 3.5-ös disassemblálva, lehet elmélkedni, hogy vajon mit is csinál :-)
A printerport matatással kapcsolatban ilyen ötleteim vannak:
-tényleg nyomtatni akar valamit, bár igazából adat kiküldést nem igen látok, csak Strobe/Ready jelekkel szórakozást
-"hardverkulcs" kell a program futattásához, elsõ ránézésre ha két lábat összekötünk a printer csatlakozóban akkor menni fog a program, legalábbis az elsõ ellenõrzésen átjut :-)
-netán a vizsgálandó cuccokat kell valahogy odadrótozni?

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #7 on: 2006.September.05. 12:04:25 »
Senki nem elmélkedett a problémán? :-(

Addig is nézzünk egy kicsit mást, az EXOS saját teszt rutinjait.
Van bennük egy csúnya hiba:
Code: [Select]

Elsõnek a 255-ös szegmenst (rendszerszegmenst) ellenõrzi, mely a P1-re van belapozva. Az ellenõrzés alatt szükséges verem a még ellenõrizetlen 254. szeqmensen van, melyet a P2-re lapoz be. Az ellenõrzés nem látszik, mivel a VIDEO eszköz nincs még inicializálva.

* C066  3EFE      LD    A,0FEh          254. szegmens
  C068  D3B2      OUT   (0B2h),A      P2-re belapozása
  C06A  AF        XOR   A                 A=0 Szín kódja (fekete)
  C06B  D381      OUT   (081h),A       Keretszín (BORDER) beállítása feketére
  C06D  CDFEC1    CALL  0C1FEh        P1-en lévo RAM ellenõrzése és 0-val feltöltése
  C070  203D      JR    NZ,0C0AFh     Ha hibás a RAM => keretszín villogtatása


Ez a csúnya hiba az, hogy ellenõrízetlen RAM terület van használva! Az itt látható CALL hívás, és a meghívott rutinban szereplõ további CALL hívások használják a vermet, ami az ellenõrízetlen területen van.
Ez a módszer mûködhet, ha csak itt-ott van pár bit hiba a memóriában, ekkor tényleg eljut a hibajelzõ keretvillogtatáshoz.
Viszont ha 1 vagy több memória IC teljesen halott, akkor végig minden bájt hibás lesz az alap 64K RAM-ban. És ezért az ellenõrízetlen verembõl  hibás címre tér vissza, vagyis elszáll az egész, és nem jut el a hibát jelzõ keretszín villogtatáshoz!
Így nincs esélyünk megtudni, hogy mi is a hiba... lehet találgatni, hogy Nick, Dave, Z80, ROM, RAM, stb...
Van is egy ilyen gépem :-( meg most hozott egyet Spidermans Friend is.

Az EXOS rutinjából az hiányzik, (az EXOS 2.4-be bele is fogom tenni :-) ), hogy legalább azt a pár bájtot, ami a veremhez kell, külön le kell ellenõrizni, olyan rutinnal, ami nem használ vermet. Ha hiba egybõl ugrás a hibajelzés rutinhoz.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #8 on: 2006.September.05. 12:38:14 »
A hibakijelzéssel is vannak fenntartásaim...
Vajon egy LPT tábla nélkül futó, teljesen inicializálatlan Nick chip esetén látszik bármi is a a keretvillogtatásból?
Arról nem is beszélve, ha netán rossz a Nick :-(
Arra gondoltam, hogy a PC-n ismert módszer szerint hanggal is kéne jelezni hiba esetén.
Próbából alkottam egy ilyet:
Code: ZiLOG Z80 Assembler
  1.                 OBJECT TESZT.ROM
  2.                 ORG 0
  3.                 DI
  4.                 LD A,4
  5.                 OUT (191),A
  6.                 LD A,1FH
  7.                 OUT (0A7H),A
  8. VEGTELEN        LD DE,200H
  9.                 LD B,63
  10. CIKLUS          LD A,B
  11.                 OUT (0A8H),A
  12.                 OUT (0ACH),A
  13.                 LD B,0
  14. CIKLUS2         DJNZ CIKLUS2
  15.                 XOR 63
  16.                 LD B,A
  17.                 DEC DE
  18.                 LD A,D
  19.                 OR E
  20.                 JR NZ,CIKLUS
  21.                 LD DE,300H
  22.                 LD B,63
  23. CIKLUS3         LD A,B
  24.                 OUT (0A8H),A
  25.                 OUT (0ACH),A
  26.                 LD B,128
  27. CIKLUS4         DJNZ CIKLUS4
  28.                 XOR 63
  29.                 LD B,A
  30.                 DEC DE
  31.                 LD A,D
  32.                 OR E
  33.                 JR NZ,CIKLUS3
  34.                 JP VEGTELEN
  35.                 DF 16384-$,255
  36.                 END

Ez szírénázó hangot produkál végtelen ciklusban :-)
Beégettem EPROM-ba és kipróbáltam mindkét lentebb említett hibás gépben (az EXOS helyére behelyezve):
Mindkettõben megszünt a se kép se hang effekt, azaz hang már van :-)
Ezekszerint a proci megy, és a DAVE se lehet túl beteg hiszen hang van :-) No meg az állítja elõ a Z80 órajelét, a ROM engedélyezõ jelét is.

Most majd egy olyat próbálok írni ami megvizsgálja az alap 64K RAM-ot, és az eredményt "elfütyüli".
Szerencsés esetben kiderül, hogy RAM hiba :-)
Peches esetben marad a Nick hiba :-(
Valahol korábban írta valaki, hogy neki volt anno Nick hibája, és akkor elindult a gép, hallotta a billentyû hangot, csak kép nem volt... ezért reménykedek még egy kicsit ezen gépek kapcsán, mivel ezek nem jutnak el ide. Viszont egy hibás RAM IC a lentebb leírt EXOS hibával produkálhat ilyet, hogy az elsõ pár utasítás után fagyi...
« Last Edit: 2007.March.14. 09:23:33 by MrPrise »

Offline Ep128

  • EP addict
  • *
  • Posts: 1710
  • Country: hu
    • View Profile
    • Honlapom
Diagnosztikai ROM-ok
« Reply #9 on: 2006.September.05. 17:29:44 »
Quote from: "Zozosoft"

Ez szírénázó hangot produkál végtelen ciklusban :-)
Beégettem EPROM-ba és kipróbáltam mindkét lentebb említett hibás gépben (az EXOS helyére behelyezve):
Mindkettõben megszünt a se kép se hang effekt, azaz hang már van :-)
Ezekszerint a proci megy, és a DAVE se lehet túl beteg hiszen hang van :-) No meg az állítja elõ a Z80 órajelét, a ROM engedélyezõ jelét is.

Most majd egy olyat próbálok írni ami megvizsgálja az alap 64K RAM-ot, és az eredményt "elfütyüli".
Szerencsés esetben kiderül, hogy RAM hiba :-)

Ez nekem nagyon tetszik! :-) Tiszta "krimi", hogy a fekete képernyõ "mögött" vajon mennyire él egy Ep, és hanggal kommunikálsz vele a kép helyett... :-)
Tök poén!  :smt023

Offline Spidermans Friend

  • EP fan
  • *
  • Posts: 129
    • View Profile
Diagnosztikai ROM-ok
« Reply #10 on: 2006.September.06. 07:49:32 »
Nekem is tetszik:) A süllyedõ Titanic S.O.S. jelt ad:)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #11 on: 2006.September.06. 23:14:47 »
Helyzet jelentés a Titanicról :-)
Elkészült az elsõ primitív teszt.
Azt csinálja, hogy sorba megy végig az FFH szegmens bájtjain, sorban 00H,FFh,55H,AAH értékeket beírva. Minden beírás után kiolvassa az adott bájtot, és az olvasott értéket elfütyüli: sorban b0,b1,stb magas hang az 1-es mély hang a 0-ás. Bitek között kis szünet, bájtok között nagyobb.
Normál esetben 11111111 00000000 10101010 01010101 sorozatnak kell ismétlõdnie.
Ime ez a remek program :-)
Assembly programozók figyelmébe ajánlom: hogyan kell "CALL"-t megvalósítani, ha nem használhatunk vermet, mert nincs RAM-unk.
Mellékelem a lefordított ROM fájlt is, EP32 alatt ki lehet próbálni (Az EXOS ROM helyére kell berakni a config fájlba.)
Code: ZiLOG Z80 Assembler
  1.                 OBJECT TESZT.ROM
  2. HIVAS           MACRO @CIM
  3.                  LD HL,$+6
  4.                  JP @CIM
  5.                 ENDM
  6. BITHANG         MACRO
  7.                  SRL A
  8.                  LD HL,$+9
  9.                  JP C,MAGAS
  10.                  JP MELY
  11.                  HIVAS SZUNET
  12.                 ENDM
  13.                 ORG 0
  14.                 DI
  15.                 LD A,4
  16.                 OUT (191),A
  17.                 LD C,81H
  18.                 EXX
  19.                 LD A,1FH
  20.                 OUT (0A7H),A
  21.                 LD A,255
  22.                 OUT (0B1H),A
  23.                 DEC A
  24.                 OUT (0B2H),A
  25.                 DEC A
  26.                 OUT (0B3H),A
  27.                 LD IX,4000H
  28. TESZTELES       LD (IX),0
  29.                 LD A,(IX)
  30.                 LD B,8
  31. BITTESZT1       BITHANG
  32.                 DJNZ BITTESZT1
  33.                 HIVAS SZUNET
  34.                 HIVAS SZUNET
  35.                 HIVAS SZUNET
  36.                 LD (IX),255
  37.                 LD A,(IX)
  38.                 LD B,8
  39. BITTESZT2       BITHANG
  40.                 DJNZ BITTESZT2
  41.                 HIVAS SZUNET
  42.                 HIVAS SZUNET
  43.                 HIVAS SZUNET
  44.                 LD (IX),55H
  45.                 LD A,(IX)
  46.                 LD B,8
  47. BITTESZT3       BITHANG
  48.                 DJNZ BITTESZT3
  49.                 HIVAS SZUNET
  50.                 HIVAS SZUNET
  51.                 HIVAS SZUNET
  52.                 LD (IX),0AAH
  53.                 LD A,(IX)
  54.                 LD B,8
  55. BITTESZT4       BITHANG
  56.                 DJNZ BITTESZT4
  57.                 HIVAS SZUNET
  58.                 HIVAS SZUNET
  59.                 HIVAS SZUNET
  60.                 INC IX
  61.                 LD A,XH
  62.                 OR XL
  63.                 JP NZ,TESZTELES
  64. VEGTELEN        HIVAS MAGAS
  65.                 HIVAS MELY
  66.                 JP VEGTELEN
  67. MELY:           EXX
  68.                 EX AF,AF'
  69.                 LD DE,100H
  70.                 LD B,63
  71. CIKLUS          LD A,B
  72.                 OUT (0A8H),A
  73.                 OUT (0ACH),A
  74.                 LD B,0
  75. CIKLUS2         OUT (C),B
  76.                 DJNZ CIKLUS2
  77.                 XOR 63
  78.                 LD B,A
  79.                 DEC DE
  80.                 LD A,D
  81.                 OR E
  82.                 JR NZ,CIKLUS
  83.                 EXX
  84.                 EX AF,AF'
  85.                 JP (HL)
  86. MAGAS
  87.                 EXX
  88.                 EX AF,AF'
  89.                 LD DE,180H
  90.                 LD B,63
  91. CIKLUS3         LD A,B
  92.                 OUT (0A8H),A
  93.                 OUT (0ACH),A
  94.                 LD B,128
  95. CIKLUS4         OUT (C),B
  96.                 DJNZ CIKLUS4
  97.                 XOR 63
  98.                 LD B,A
  99.                 DEC DE
  100.                 LD A,D
  101.                 OR E
  102.                 JR NZ,CIKLUS3
  103.                 EXX
  104.                 EX AF,AF'
  105.                 JP (HL)
  106. SZUNET:
  107.                 EXX
  108.                 EX AF,AF'
  109.                 LD DE,100H
  110.                 LD B,63
  111. CIKLUS5         LD A,B
  112.                 IN A,(0A8H)
  113.                 IN A,(0ACH)
  114.                 LD B,0
  115. CIKLUS6         OUT (C),A
  116.                 DJNZ CIKLUS6
  117.                 XOR 63
  118.                 LD B,A
  119.                 DEC DE
  120.                 LD A,D
  121.                 OR E
  122.                 JR NZ,CIKLUS5
  123.                 EXX
  124.                 EX AF,AF'
  125.                 JP (HL)
  126.                 DF 16384-$,255
  127.                 END
  128.  
« Last Edit: 2011.November.24. 18:43:53 by Zozosoft »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Diagnosztikai ROM-ok
« Reply #12 on: 2006.September.06. 23:27:33 »
Quote from: "Zozosoft"
A hibakijelzéssel is vannak fenntartásaim...
Vajon egy LPT tábla nélkül futó, teljesen inicializálatlan Nick chip esetén látszik bármi is a a keretvillogtatásból?

Most akkor kipróbáltam ezt is, mint látható raktam némi keretvilogtatást is a hang rutinokba.
EP32-n szépen látszik, de mint az EXOS 2.0 bug kapcsán írtam, ez hiba, mert inicializálja a NICK-et induláskor, míg a valódi a bekapcsoláskor véletlenszerüen beállítodott regiszterértékek alapján indul el, nem sok értelmes képet generálva...
Ebbõl adódik az a válasz, amit már sejtettem: inicializálatlan Nick esetén szinte semmi nem látszik a keretvillogtatásból. Néha ha szerencsénk van, akkor olyan értékekkel indul el, amivel kicsit több látszik. Az egy jó kérdés, hogy rá lehet venni a Nicket, hogy LPT nélkül csak keretszínt rakjon ki?

És akkor az "SOS jelzések":
Spidermansék gépén állandó 11001111 ismétlõdik, bár egy idõ után kicsit cifrázza, de nem hasonlít az elvárt jó bitsorozatra.
Az én rossz gépemen pedig minden cifrázás nélkül 11111111111111111111111111111111111111111111111111111111111111111111111111111111...

Mint látható mind két gépen erõsen halott az alaplapi RAM, így nem csoda, hogy a korábban leírt EXOS hiba alapján minden életjel nélküli fagyi volt...

Online geco

  • EP addict
  • *
  • Posts: 5730
  • Country: hu
    • View Profile
Diagnosztikai ROM-ok
« Reply #13 on: 2006.September.06. 23:52:22 »
Ez a call rutin nagyon tetszik, beletelt pár percembe, mire leesett a mûködési elv  :oops: :shock:  , a macro egy kicsit bezavart.

Offline Ep128

  • EP addict
  • *
  • Posts: 1710
  • Country: hu
    • View Profile
    • Honlapom
Diagnosztikai ROM-ok
« Reply #14 on: 2006.September.06. 23:54:40 »
Quote from: "Zozosoft"
És akkor az "SOS jelzések":
Spidermansék gépén állandó 11001111 ismétlõdik, bár egy idõ után kicsit cifrázza, de nem hasonlít az elvárt jó bitsorozatra.
Az én rossz gépemen pedig minden cifrázás nélkül 11111111111111111111111111111111111111111111111111111111111111111111111111111111...

Mint látható mind két gépen erõsen halott az alaplapi RAM, így nem csoda, hogy a korábban leírt EXOS hiba alapján minden életjel nélküli fagyi volt...


De legalább kiderült, hogy egy esetleges RAM cserével életre kelthetõek ezek a gépek... :-)
Ügyi vagy, már tegnap is tetszett a módszer lényege... :-)