Před nějakou dobou mě na webu SynDiKatu potěšila Ikonova informace o úspěšné opravě jeho PP 01. Moje PP 01 zatím čekalo v krabici na dostatek času a tu správnou náladu se do něj pustit. Proto mě potěšil Pavel Urbančík, který nabídnul, že by se stavil se svým částečně nefunkčním PP 01 a zkusili bychom ty dvě potvůrky dát to provozuschopného stavu. Moje zobrazovalo RAM „binec“ a jinak ani neškytlo, Pavlovo se rozjelo s hláškou „RAM ERROR“ a BASIC podivuhodně „blbnul“.
Plán byl jednoduchý – vzájemně prohážeme některé karty a uvidíme. Pavel už předtím opravil svůj nefunkční ROM modul po Ikonově vzoru a nahradil 16 kousků ROM MHB8806 za jednu 27128, čímž získal z nefunkčního PP 01 ono funkční blbě.
Začali jsme tedy otevřením obou kousků, vyhozením zdroje a prohozením ROM modulů.
A ejhle, moje PP 01 se s Pavlovým ROM modulem rozjelo jako víno, zatímco Pavlovo bylo úplně mrtvé, jako to moje předtím. Takže moje PP 01 šlo bokem, protože závada byla diagnostikována a oprava již celkem jednoduchá.
Pavlovo PP 01 nás celkem potrápilo. Prohozením desky paměti RAM bylo jasné, že závada je v ní. Bohužel se projevovala jak kdy a nejvíc při bitovém přístupu k některým barvám ve video RAM. PP 01 má dva režimy přístupu do video paměti. Buď je možné použít registr barvy a přistupovat do všech R, G a B pamětí současně danou barvou nebo je možné namapovat R, G a B oblasti do paměti a zapisovat do nich samostatně. A právě kombinace prográmků v BASICu, kde se jako problematický jevil jeden bit z oblasti video RAM a měření, kdy přišel ke slovu i logický analyzátor, jsme postupně identifikovali podezřelou RAM. Pavel nedočkavě a zcela nekompromisně „vyštípal“ podezřelého jedince, zatímco já jsem našel v zásobách, v pravdě historickou, RAM TESLA MHB4116. Po výměně jsme si mohli oddechnout, Pavlovo PP 01 šlapalo jak má. RAM ERROR byl pryč a video se chovalo korektně. Spokojeně jsme si oddechli a Pavel vyrazil k domovu.
Mně však čekala ještě práce s ROM modulem. Nechal jsem to pár dní odležet a přemýšlel, co s tím. Náhrada za 27128 ve stávající desce mi přišla poněkud barbarská. Jsem trošku pedant a staré počítače se snažím dostávat do stavu „jako nové“, proto jsem plánoval nalezení a výměnu vadné ROM. Bohužel, celý můj ROM modul byl zapájený a jedna ROM MHB8608 už byla zjevně dříve vyměněna za EPROM MHB8708C. Vyštípat a nahradit všechny ROM za EPROM se mi moc nechtělo a byla by to škoda.
Proto jsem se rozhodl zkusit ROM modul vyčíst a najít závadu. Ke slovu mělo přijít moje oblíbené Arduino, ale Pavla napadl lepší nápad – připojit modul k programátoru a zkusit vyčíst jako 27128. To mi přišlo jako chytré a kdyby to nešlo, Arduino bylo stále v záloze.
Vyzkoušel jsem ROM modul připojit k mému GQ-4X a na pomalejší rychlost se čtení povedlo. Našel jsem vadný blok od adresy 3000H do 31FFH a pak odlišné byty na adresách 12F9H a 3FFFH. Zkoušel jsem čtení i v Genius G540, ale tam se nezadařilo. G540 neumožňuje nastavit rychlost čtení, jako GQ-4X a zřejmě přistupuje do modulu, který je komplikovaný ještě adresní logikou a budiči, moc rychle.
Oblast 3000H-31FFH odpovídá první polovině ROM 13, ale změna na adrese 12F9H se mi nezdála, protože přesně negovala změnu na 3FFFH. Já mám na 12F9H byte C2H, zatímco v ROM z netu je údaj F2H. Opačně pak mám na adrese 3FFFH data 85H, zatímco na netu je 55H. Protože šlo opravdu jen o jeden byte a vzájemně komplementární ve dvou různých ROM, předpokládám, že se nejedná o chybu, ale mám prostě jinou verzi ROM, kde je jiný byte na 129FH a k němu odpovídající checksum. Rozhodl jsem se tedy vyměnit jen ROM 13, která je u mně označená jako ROM 13 B.
Na EPROM MHB8708 mám programátor už druhým rokem ve stavu totálního Arduino „bastlu“, který kromě 8708 ještě podporuje programování bipolárních PROM. První úkol byl tedy zprovoznit můj „bastl“, což naštěstí šlo překvapivě dobře.
Druhý úkol byl dostat ven z NEPOŠKOZENÉ desky vadnou ROM. Tady už dlouhá léta praktikuju nemilosrdné vyštípání obvodu a vytahání nožiček po jedné. Je to velmi bezpečné a nedestruktivní pro desku, která je v tomto případě to nejcennější. Berme v potaz i skutečnost, že deska není zrovna moc kvalitní a je potřeba se k ní chovat něžně, jinak vyskáčou prokovy. Obvody jsou napůl vyskákané už z pájecího procesu .
Po výměně ROM za naprogramovanou EPROM jsem opět zkusil ROM modul načíst a s výjimkou oněch dvou zmiňovaných bytů, bylo vše OK. Po zapnutí už na mně zablikal kurzor z hláškou:
GBASIC 5.8
READY
Ovšem obraz přes analogový TV tuner nebyl ani škaredý, byl fakt HNUSNÝ. Rozhodl jsem se tedy zkonstruovat SCART kabel. Schéma jsem vzal od Ikona a jako baterii jsem použil CR2032, kterou jsem zabudoval do držáku dovnitř SCART konektoru. Předpokládám, že tam vydrží téměř věčně.
Pak už jsem byl s obrazem spokojen a složené PP 01 bylo jako nové.
Na závěr přidám ještě pár foteček, ať se můžete pokochat tímto výdobytkem socialistického počítačového inženýrství . Technicky je PP 01 vyřešené velmi zajímavě, bohužel je škoda jeho poměrně špatného finálního zpracování.
No a na úplný závěr ještě obsah mojí ROM, kdyby ji chtěl někdo srovnat s jeho. Docela by mně zajímalo, co ten jeden jiný byte dělá, ale blíže jsem to nezkoumal. Existuje někde komentovaný výpis ROM PP 01?
Error thrown
Call to undefined function create_function()