Retro PC - 386DX/486DLC

PGA socket mod na 386 MB KMC-A419-8 ver. 1.0

      30.5.2022 Některé základní desky 386 měly na sobě připájený CPU v provedení SMD. Tato deska se zrovna vyráběla ve 2 variantách, buď s připájeným CPU nebo s PGA paticí. Já mam variantu s připájeným CPU AMD Am386DX-40 a tak mě napadlo, že bych si mohl na desku dopájet PGA patici, abych v ní mohl testovat i jiné CPU. V případě CPU AMD revize C a novější se to navíc zjednodušuje tím, že tyto CPU mají pin FLT# (54), který ho kompletně odpojí od sběrnice a není ho tak třeba vypajovat z desky. Abych mohl dle potřeby přepínat mezi onboard CPU a CPU v patici, přivedl jsem nezapojený pin FLT# na jumper, jehož druhý pin jsem zapájel do GND prokovu footprintu neosazené paměti U21. Jelikož má pin FLT# interní pull-up cca 100 kΩ na VCC (ampérmetrem jsem naměřil proud 46 µA do země) a drátový spoj je poměrně krátký, tak jsem žádný externí pull-up nepřidával. Pokud bych chtěl onboard CPU vyřadit trvale, stačila by malá kapka cínu na propojení pinů FLT# (54) a GND (55) hned vedle.

KMC-A419-8 CPU socket mod with FLT# pin KMC-A419-8 with CPU TX486DLC-40 KMC-A419-8 with CPU TX486DLC-40 KMC-A419-8 with CPU TX486DLC-40 test KMC-A419-8 AMI BIOS setup
socket mod TX486DLC-40 TX486DLC-40 TX486DLC-40 AMI BIOS setup

      Dále jsem na desce rozšířil velikost cache na 256 kB pomocí dalších čtyř 32kB DIL SRAM čipů a vyměnil jsem 8kB TAG SRAM za 32kB TAG SRAM. Metodou pokus-omyl jsem našel správnou kombinaci jumperů: JP5 = on, on, on; JP5 = 1-2 (původní nastavení pro 128 kB cache bylo: JP5 = on, on, off; JP6 = 2-3). UPDATE: našel jsem popis jumperů k desce KMC-40A, která vypadá velmi podobně a má i stejně rozmístěné jumpery. Do desky jsem zkusil osadit CPU TX486DLC-40, když už ho BIOS podporuje a otestoval propustnost paměťového subsystému pomocí DOSového programu CCT386. Jak je vidět, rychlostní skoky nastávají dle očekávání na hranici bloků 256 kB (L2) a 1 kB (L1). Zajímavé je, že 386DX dosahuje při využití cache více bodů než 486DLC s kaskádou L1 a L2 cachí (zřejmě nějaký overhead). Nastavení wait states u RAM nelze v SETUPu měnit, pouze lze ladit nastavení refreshe. V programu Norton SysInfo CPU Benchmark došlo oproti 386DX k nárůstu z 43,0 na 65,4 bodů (o 52%). V programu Norton Diagnostic jsem v System Board Testu zjistil, že na 486DLC neprojde CPU Arithmetic Test, netuším z jakého důvodu, ale jiným programům to zřejmě nevadí. Nakonec jsem ještě do desky nastrkal 8 MB RAM a FPU IIT 3C87-40, abych mohl spustit Quake. Na hraní to ale opravdu není, ve VGA rozlišení 320 x 200 jsem dosáhl v testu timerefresh 1,067 FPS na 386DX a 1,268 FPS na 486DLC (zrychlení o 19%). Test jsem provedl ještě jednou s lepší VGA kartou Diamond Stealth Pro S3 Vision 928 (místo low-end Relatek RTG3105), ale na výsledek to nemělo podstatný vliv: 1,295 FPS.
      UPDATE1: Od Dušana jsem dostal matematický koprocesor ULSI Math*Co DX US83C87 40 MHz, s kterým se Quake výrazně zrychlil na 1,690 FPS, po přetaktování ISA na 10 MHz ještě o trochu více na 1,725 FPS.
      UPDATE2: Podařilo se mi najít 16k x 4-bit SRAM čip QS8888-20P a tak jsem pro něj na desku dopájel DIL22 patici na pozici U21. V BIOSu v menu "Advanced Chipset Setup" je pak možné nastavit položku "Write Buffer/Back Cache" na "Back". V benchmarku SysInfo a CheckIt se aktivace write-back cache nijak prokazatelně neprojevila, v CCT386 byl dokonce patrný pokles bodů přenosové rychlosti u velkých bloků ze 192 na 153 bodů, ale v Doomu ((doom.exe -timedmeo demo1, FPS = 35*gametics/realtics) jsem zaznamenal drobné zrychlení z 9,14 FPS na 9,46 FPS (+3,5%).

CCT386 test Am386DX-40 with 128kB cache CCT386 test TX486DLC-40 with 1kB L1 cache and 256kB L2 cache Norton SysInfo CPU Benchmark of Am386DX-40 with 256kB cache Norton SysInfo CPU Benchmark of TX486DLC-40 with 1kB L1 cache and 256kB L2 cache Norton Diagnostic CPU Arithmetic Test failen on TX486DLC-40
Am386DX-40, 128kB TX486DLC-40, 256kB Am386DX-40, 256kB TX486DLC-40, 256kB NDiag TX486DLC-40

      24.9.2023 Na této desce jsem narazil na takové podivné chování paměťových modulů. Mám zde osazeno celkem 8 stejných 1MB SIMMů s čipy Goldstar GM71C4400AJ70 (1M x 4, 70 ns) s paritou. MemTest 2.11 i 4.00 mi hlásil asi 300 chyb v bitu 17 v rozsahu 1,3 - 1,8 MB. Nechal jsem v desce jen 4 SIMMy a jejich prohazováním jsem se snažil lokalizovat vadný modul. Našel jsem celkem 3 podezřelé SIMMy. Ty generovaly chyby, ale jen pokud byly vloženy do patice SIMM8 (u kraje desky). Zbylé SIMMy fungovaly bez chyb i v této patici. Vhodným proházením SIMMů se mi tak podařilo docílit, aby žádné chyby v MemTestu nebyly. Jak jsem dále zjistil, deska nemá ráda 4 MB SIMMy, sice s nimi nabootuje, ale MemTest hází spoustu chyb u všech SIMMů, které mám a pochybuju, že by byly všechny vadné, i když se podobně chovají i v další 386 MB.

XTIDE BIOS na 386 MB KMC-A419-8 ver. 1.0

      27.11.2022 Jelikož tato 386 podporuje disky pouze v režimu CHS do 504 MB, rozhodl jsem se vyzkoušet OpenSource projekt XTIDE Universal BIOS, který přidává podporu služeb INT 13h s LBA a umožňuje tak používat disky o kapacitě až 128 GB. Na XTIDE jsem narazil už někdy dříve, ale mylně jsem se domníval, že je to rozšiřující BIOS jen pro určitou 8-bitovou ISA kartu pro PC-XT, které ještě nemá podporu disků v systémovém BIOSu. Avšak XTIDE lze s výhodou používat i na 286, 386, 486, které už podporu disků mají, ale obvykle kapacitně dost limitovanou. Ke vzájemné kolizi by dojít nemělo, stačí v systémovém BIOSu zakázat všechny disky a XTIDE si je inizializuje později.
      Jednou z možností, jak XTIDE do systému přidat, je použít starou síťovou kartu s paticí na BootROM, která umožňuje zavádět OS ze sítě u bezdiskových stanic. Za tímto účelem jsem vytáhl ze šuplíku 10Mb ISA síťovku D-Link DE-250CT, která podporuje 8kB EPROMky, to je tak akorát. XTIDE lze stáhnout už jako předkompilované moduly v několika variantách. Stáhl jsem si soubor ide_386.bin pro platformu 386, který se vejde do 8 kB Varianta ide_386l.bin je větší a obsahuje navíc textové interaktivní menu. Stažený image je nutné napřed zkonfigurovat pomocí utility xtidecfg.com, která také image zarovná na správnou velikost a přepočítá kontrolní součet. Ve výchozím nastavení jsem nepotřeboval nic měnit. Pak jsem image vypálil do 8kB EPROMky MBM2764 programátorem LabProg-48LV, strčil do patice na síťovce a po zapnutí PC se nic nestalo. Dovtípil jsem se, že nejprve bude třeba BootROM nějak povolit. Jelikož karta nemá žádný jumper, ale má sériovou EEPROM, bylo jasné, že se to nastavuje konfigurační utilitou. Tu jsem našel zde, po rozbalení stačí spustit soubor setup250.exe a v menu "Set Up Configuration|Remote Boot" nastavit na Enabled, vybrat volnou adresu pro mapování BootROM (vybral jsem si CC00h) a uložit. Po té už XTIDE normálně naběhnul na konci POSTu.

síťovka D-Link DE-250CT s BootROM XTIDE XTIDE BIOS booting DOS from 10GB HDD Seagate Medalist ST310232A
D-Link DE-250CT boot s XTIDE z HDD

      XTIDE jsem vyzkoušel s několika klasickými disky a SSD s různými výsledky. Jako první jsem testoval HDD Seagate Medalist ST310232A 10 GB. Během detekce se disk 2x rychle po sobě vypne a zapne (asi cold reset disku), což se mi úplně nelíbí. Také při intenzivním zápisu v některých programech se disk začal vypínat a zapínat. V benchmarku CheckIt dosáhl přenosové rychlosti 1,57 MB/s a průměrné přístupové doby 8,3 ms. Jako další jsem vyzkoušel o něco novější Seagate Barracudu 7200.7 ST340014A 40 GB, která se při detekci ani zápisech nevypíná (jen zarachotí hlavama a jinak funguje OK.
      Pak jsem zkusil SSD Transcend TS32GPSD330 32 GB MLC s pasivní redukcí z IDE 44 pinů na IDE 40 pinů, ale XTIDE ho nedetekoval. Ani systémový BIOS ho neuměl použít s ručním nastavením na omezenu velikost 504 MB. Tento SSD mi funguje v desce Abit BX133-Raid na onboard řadiči v soutbridge intel PIIX4, ale nedetekuje se v mém retro PC s Pentiem Pro se soutbridgem intel PIIX3. Netuším proč, podle manuálu by měl SSD podporovat LBA i CHS režim a přenosové režimy PIO 0 - 4. Další SSD Samsung MZMPC032HBCD-000D1 32 GB MLC mSATA v redukci mSATA - IDE 44 pinů z AliExpressu dopadl ještě hůře - zasekl PC během POSTu tak, že se nešlo dostat ani do SETUPu. A to docela zvláštním způsobem, všimněte si vynechaných písmenek, některá zas mají porušený font. Docela by mě zajímalo, jak je možné obraz takto rozbít, když znakový generátor na grafické kartě funguje celkem autonomně (fonty jsou uloženy v EPROMce VGA BIOSu). Zkusil jsem vytáhnout síťovku s XTIDE, ale nemělo to žádný vliv. Jinak tento SSD funguje správně jak v Abit BX133-Raid, tak v Pentiu Pro. Nakonec jsem ještě vyzkoušel Compact Flash kartu Transcend 16G B Ultra 133x v mé redukci CF-IDE a ta fungovala správně. V benchmarku CheckIt dosáhla přenosové rychlosti 1,85 MB/s a průměrné přístupové doby 0,3 ms.

damaged font at POST screen when hung with Samsung MZMPC032HBCD-000D1 SSD 2x COM & LPT & GAME & IDE řadič s čipem Acer M5105 ISA
zásek v POSTu s SSD IDE řadič ISA M5105

      2.12.2022 Na VOGONS fóru mě uživatel rasz_pl upozornil na to, že můj IDE řadič má bufferovanou pouze 1/2 sběrnice a že by to třeba mohlo dělat problémy. Naštěstí na desce řadiče je kromě osmice sériových 33Ω odporů i footprint na poctivý buffer (i dříve se takto šetřily náklady). Rozhodl jsem se tedy odpory vypájet a osadil tam obvod SN74LS245. Bohužel to nepřineslo žádnou změnu chování. Až když jsem vyhrabal jiný IDE řadič, tak přestal POST se SSD Samsung tuhnout, avšak stejně se oba SSD v XTIDE nedetekovaly.

vypájení sady odporů 33R výměna odporů za buffer SN74LS245 2x COM & LPT & GAME & IDE řadič s čipem MX16C452QC ISA
vypájení odporů 33Ω připájení SN74LS245 jiný IDE řadič ISA

      Protože mě toto podivné chování SSD vrtá hlavou, vyzkoušel jsem je v dalších 2 starých základních deskách. Ve 486 s ISA řadičem a AMI BIOSem, který už má autodetekci disku, tak se oba detekují s nesprávnou hodnotou cylindrů (15 hlav a 63 sektorů odpovídá) a malou kapacitou, ale nejde z nich bootovat. XTIDE nedetekoval SSD vůbec. V NETmate 386SX s VLSI chipsetem a integrovaným IDE řadičem se oba SSD detekují s menší kapacitou 1834 MB. SSD Transcend lze používat s omezenou kapacitou přes systémový BIOS nebo přes XTIDE s plnou kapacitou. V benchmarku CheckIt dosáhl přenosové rychlosti 693 kB/s a průměrné přístupové doby 1,6 ms. Zatím co SSD Samsung při detekci sice také vypíše kapacitu, ale v zápětí chybu "Error initializing hard disk controller 0" a XTIDE ho nedetekuje vůbec. Pro úplnost jsem ještě v desce KMC-A419-8 vyzkoušel čínskou obousměrnou redukci IDE-SATA s plotnovým SATA diskem Seagate Barracuda 7200.9 ST3160812AS 160 GB, ale chovala se stejně jako mSATA redukce, při detekci jen krátce blikla LED.

Samsung MZMPC032HBCD-000D1 SSD auto detection and error on NETmate 386SX MB Samsung MZMPC032HBCD-000D1 SSD not detected in XTIDE on NETmate 386SX MB
chyba detekce SSD XTIDE netetekuje SSD

      6.12.2022 Jako další krok jsem provedl experiment s bootem DOSu z diskety, na níž jsem nahrál svou utilitu SMB, která m.j. umí na přímo komunikovat s diskem pomocí ATA příkazů. Napřed jsem poslal příkaz IDENTIFY DEVICE a SSD Transcend odpověděl, ale řada položek byla chybná (např. název a S/N disku) a neseděl kontrolní součet. Dále jsem zkusil přečíst sektor 0 (MBR) metodou CHS i LBA a oba prošly bez chyby a přečetl jsem z disku nějaká data. Problém tedy není v tom, že by SSD neuměl pracovat v CHS PIO režimu, což by podle specifikace umět měl.
      V případě SSD Samsung jsem musel postupovat tak, že jsem napřed nabootoval z diskety s odpojeným napájením SSD (datový kabel jsem nechal připojený) a až pak ho připojil. Avšak okamžitě se mi na obrazovce objevily nějaké náhodné znaky, nicméně systém reagoval dále a mohl jsem aspoň poslepu zadávat příkazy. Zajímavé je, že když jsem spustil Mikromanažera, tak ten svou modrou obrazovku se souborovými panely vykresloval bezchybně, ale když jsem se klávesovou kombinací CTRL+O přepnul na DOSovou obrazovku, tak tam byl pořád ten bordel a po přepnutí zpět do manažera jsem zas viděl čisté panely. Spustil jsem tedy SMB s výstupem přesměrovaným do souboru, ale příkaz IDENTIFY DEVICE neprošel. Zrovna jsem sehnal ještě další mSATA SSD AData ASX300S3-64GM-C 64 GB a chová se v redukci stejně jako SSD Samsung. Prostě si asi nějak tato mSATA redukce s tímto řadičem nerozumí elektricky. Vyměnil jsem tedy IDE řadič za ten druhý, s kterým to netuhlo a na něm se disk chová stejně jako SSD Transcend, čili IDENTIFY DEVICE projde, ale vrátí poškozená data, taktéž sektory čte přes CHS i LBA. Je tak logické, že když XTIDE dostane při detekci poškozenou odpověď, tak s diskem dále nepokračuje, chybu je třeba hledat někde na sběrnici. K tomu by se hodil aspoň 24-bitový logický analyzátor, ale mám pouze 8-bitový USBee AX PRO.

Transcend TS32GPSD330 SSD IDENTIFY DEVICE response Transcend TS32GPSD330 SSD READ LBA SECTOR response Transcend TS32GPSD330 SSD READ CHS SECTOR response Samsung MZMPC032HBCD-000D1 SSD screen garbage immediately after SSD powered on Samsung MZMPC032HBCD-000D1 SSD IDENTIFY DEVICE response
Transcend Identify Transcend read LBA Transcend read CHS Samsung disp. trash Samsung Identify

      8.12.2022 Až později jsem si všiml, že v přečtených raw datech ze SSD, jsou všechny MSB nulové. To mě dovedlo k tomuto vláknu, kde uživatel Jon Abbott řešil stejný problém a celý problém vysvětluje: After some basic diagnosis with a volt meter on the IDE cable and visual inspection of the SATA adapter boards today, I think I have an idea about why the MSB is missing. None of the SATA adapters control the -IOCS16 line, so they're really designed for DMA transfer only where the line is ignored. RiscPC doesn't support DMA, only PIO, so it's expecting -IOCS16 to be pulled low if 16bit data is presented on the bus.
      Proměřil jsem tedy multimetrem pin 32 na mSATA redukci a SSD Transcend, přičemž se potvrdilo, že na obou je nezapojený (dle specifikace ATA-2 ještě definovaný je, ve specifikaci ATA-3 byl zrušen). Na IDE řadiči jsem se doměřil, že tento signál IOCS16# jde přímo z konektoru disku (pin 32) na ISA sběrnici (pin D2). Teď už jen zbývá vyřešit, jak chybějící signál IOCS16# vygenerovat. Zkusil jsem narychlo přes 2 diody sloučit signály CS0# a CS1# (IOCS16# je typu otevřený kolektor s pull-upem cca 1 kΩ někde na MB), ale pak SSD vůbec nekomunikoval. Při pohledu na časovací diagram to nebude úplně triviální. Ještě se to komplikuje tím, že signál IOCS16# se nesmí generovat v režimech PIO 3, 4, DMA a navíc se má generovat jen při přístupu k datovému registru (base + 0) a nikoliv k ostatním řídicím a status registrům. To bude vyžadovat nějakou logiku s hradel z celkem 5 signálů CS1#, CS0#, DA2, DA1, DA0.

ATA PIO timing diagram IDE registers table
PIO timing IDE registers

      13.12.2022 Dekodér signálu IOCS16# jsem navrhl ze 2 běžně dostupných logických obvodů 7432 (4 x 2-vstupové hradlo OR) a 7403 (4 x 2-vstupové hradlo NAND s výstupy typu otevřený kolektor). U invertoru tedy musí být pull-up odpor, zatím co výstup pracuje do pull-upu na MB. Obvod jsem narychlo poskládal na kontaktním nepájivém poli a ověřil základní funkčnost s LEDkou na výstupu. Pak jsem na zadní stranu desky IDE řadiče připájel 8 tenkých drátků s potřebnými signály včetně napájení a zapíchal je do nepájka. Zapojení jsem ještě ladil na osciloskopu, ale zobrazení není moc přehledné, neboť na signálu IOCS16# je docela čilá aktivita ze sběrnice a také na ostatních signálech se pořád něco děje i když s diskem zrovna nekomunikuju. Utilitou SMB jsem ověřil správné čtení sektoru a identifikaci, nyní už tam jsou data správně, celých 16 bitů. XTIDE BIOS pak SSD Transcend bez problémů detekoval a nabootoval z něj. V benchmarku CheckIt dosáhl přenosové rychlosti 1,85 MB/s a průměrné přístupové doby 0,1 ms. Co se týče problému s tuhnutím systému a rozbitím obrazu při připojení SSD přes mSATA v redukci na tomto IDE řadiči, tak se nic nezměnilo a se signálem IOCS16# to nijak nesouvisí. Možná nějaký problém s napěťovými úrovněmi nebo timingem. Předpokládám, že na druhém IDE řadiči pojedou mSATA SSD bez problémů. Plánuju vyrobit malý plošňáček s SMD hradly, který by se připájel zezadu IDE řadiče přímo na vyčuhující piny IDE konektoru a k tomu odněkud 1 drátkem dovedl 5V napájení. Výstup IOCS16# signálu by šel přes jumper, aby ho bylo možno v případě potřeby odpojit.

IOCS16# signal decoder schematic

MB and IDE controller with attached IOCS16# decoder MB and IDE controller with attached IOCS16# decoder-detailed
IOCS16# dekodér IOCS16# dekodér

      Z nostalgie jsem zkusil na SSD Transcend nainstalovat Windows 95 OSR2. Instalační soubory jsem si předem nakopíroval na SSD a spustil instalátor z DOSu: setup.exe /is /ig /IW (přehled přepínačů setupu je zde). Instalace trvala asi 45 minut. Windows nastartují za 26 s (měřím do okamžiku, kdy se ukazatel myši změní z přesýpaček na šipku) a jsou docela responzivní. Když to srovnám proti mému prvnímu PC s 486DX4/100 a plotnovým diskem WD 630 MB, tak to bylo docela utrpení za nekonečného hrabání disku. Při nečinnosti je vytížení CPU kolem 1% a je alokováno 9,6 MB RAM. Spuštění Internet Exploreru trvá asi 5 s a s prázdnou stránkou se spotřeba paměti zvýší na 13,7 MB.

Windows 95 OSR2 Setup phase 1 Windows 95 OSR2 Setup phase 2 Windows 95 OSR2 Setup phase 3 Windows 95 OSR2 booted, System Monitor
instalátor Windows 95 instalátor Windows 95 instalátor Windows 95 běžící Windows 95

      14.2.2023 mi přišla várka plošňáků z JLCPCB a mezi nimi i malá destička dekodéru signálu IOCS16#. Osadil jsem 2 SMD šváby a pár pasiv a připájel destičku na zadní stranu IDE řadiče za vystupující kousky pinů IDE konektoru. Pak už jen zbývalo připojit napájení 5 V jedním drátkem z nejbližšího bodu na IDE řadiči. Pomocí jumperu lze výstupní signál IOCS16# z dekodéru odpojit (pro případ, že ho připojený disk generuje sám, tak aby se nepotloukly výstupy hradel). Testoval jsem opět s SSD Transcend a fungovalo to na první dobrou.

IOCS16# decoder schematic IOCS16# decoder PCB layout IOCS16# decoder PCB model IOCS16# decoder assembled PCB IOCS16# decoder PCB soldered on backside of IDE controller
IOCS16# dek. schema IOCS16# dek. layout IOCS16# dek. model IOCS16# dek. PCB IDE ctrl. back

Oprava Paradise VGA WD90C00-JK ISA

      16.9.2022 Od Dušana jsem dostal na hraní směsici různých starých ISA/PCI karet. Mezi nimi také byla nefunkční grafická ISA karta Paradise VGA čipem WD90C00-JK a 256 kB VRAM. Když jsem ji zastrčil do slotu, tak deska vypípávala stejný chybový kód, jako kdyby v ní žádná VGA karta nebyla. Zkusil jsem napřed pomocí programátoru LabProg-48LV přečíst video BIOS ze dvou 16kB OTP EPROMek a obsah 2 programovatelných obvodů dekodérů PAL - bez problémů. Dále jsem změřil výstupy všech 4 krystalových oscilátorů a naměřil odpovídající frekvence s amplitudou cca 2,5 - 4,5 Vpp. Také jsem osciloskopem očuchal piny grafického čipu, kde jsem viděl aktivitu na adresové a datové sběrnici, ale žádnou aktivitu směrem k VRAM (MA0-8, MD0-15) a do RAMDACu (VID0-7), což indikovalo, že čip je asi mrtvý.
      Jelikož jsem měl v šuplíku vypájený grafický čip PVGA1A-JK, který by měl být velmi podobný a podle datasheetu je pinově kompatabilní (někde jsem četl, že ho Western Digital při koupi Paradise Systems patrně jen přejmenoval), tak jsem se kartě ještě rozhodl dát šanci. Naivně jsem si myslel, že jen přepájím tento PLCC100 čip a bude to fungovat, ale tak jednoduché to nebylo. Po výměně jsem stále dostával stejné pípání, jako že VGA není přítomna. Čuchal jsem znovu osciloskopem a nyní už byla vidět aktivita na sběrnici VRAM, ale do RAMDACu nešlo pořád nic, ani žádné HSYNC, VSYNC pulsy. VRAM jsem zkusil vyměnit, ale žádná změna. Pojal jsem podezření, že chyba bude asi v nějakém z hradel 74xx, dokonce i všechny odpory jsem přeměřil. Vypájel jsem pomocí vyhřívané odsávačky celkem 11 hradel 74xx a každý obvod otestoval, ale žádný vadný jsem nenašel, takže jsem je zas vrátil zpět. Kupodivu se ale chování karty změnilo - deska ani nepípla a obraz nikde, no čím dál lepší. Tak jsem zastrčil do MB i POST kartu a viděl, že se AMI BIOS pořád točí v nějaké smyčce, kde se rychle střídalo pár POST kódů. Když jsem vyjmul jeden z čipů video BIOSu, tak k zaseknutí nedocházelo. Napadlo mě tedy, že asi stávající video BIOS nebude se starším grafickým čipem kompatabilní. Podařilo se mi najít image video BIOSu pro PVGA1A-JK a tak jsem vzal 2 EPROMky Am27128A, vymazal je UV lampou, naprogramoval, strčil do karty a ejhle, ono to bootuje s obrazem :) Projel jsem testy všech video módů v Norton Diagnosticu a CheckItu a v pořádku. Kartu by šlo doosadit na 512 kB VRAM, ale UniVBE ji nepodporuje, takže vyšší rozlišení by využily jen DOSové programy přímo podporující PVGA.

Paradise VGA WD90C00-JK ISA Paradise VGA WD90C00-JK ISA bez 74xx hradel
po výměně WD90C00-JK PVGA bez 74xx hradel

      27.8.2023 Dnes jsem zjistil, že mi dříve opravená Paradise VGA záhadně umřela. Ve výše zmíněné 386 desce s AMI BIOSem se POST zastaví s černou obrazovkou na kódu 2Ch, což znamená video ROM check. První, co mě napadlo, že jsem předtím nedokonale naprogramoval EPROMky a došlo k zapomenutí nějakého bitu. Avšak po přečtení v programátoru a porovnání s image jsem žádné rozdíly nenašel. Taktéž jsem zkontroloval obsah programovatelných obvodů PAL a také beze změny, tak netuším, co se posralo...

      31.8.2023 Našel jsem vyhozenou 16-bitovou ISA VGA kartu s čipem OAK OTI067 a 512 kB VRAM. Karta byla bez bracketu, ale jinak vypadala nepoškozená. Po vložení do 386 MB se tvářila, jakoby tam žádná VGA karta nebyla. Zkusil jsem tedy přečíst obsah OTP EPROM 27C256 (plastový čip bez okénka) a programátor hlásil, že nesouhlasí čtení při VCCmin a VCCmax. Když jsem si obsah prohlédl, na první pohled bylo vidět poškození mnoha Bytů (např. v textových řetězcích). Identifikoval jsem verzi video BIOSu jako 1.04 s timestampem Thu May 02 14:37:12 1991. Na tomto webu jsem našel novější verzi video BIOSu 1.06 s timestampem Mon Mar 02 14:23:12 1992, kterou jsem napálil do prázdné EPROMky, vložil do karty a karta ožila. Jak je vidět, tak některé čipy už po 30 letech začínají mít sklerózu a je tedy třeba je včas zazálohovat.

Oprava noname MB 386DX s chipsetem Macronix MX83C305 & MX83C306

      10.3.2023 Od Dušana jsem dále dostal na hraní 2 noname základní desky s onboard SMD CPU Am386DX-40 a chipsetem Macronix MX83C305 & MX83C306 i s origo papírovým manuálem, který jsem následně naskenoval a s BIOS dumpem poslal na Retroweb. Patrně se jedná o desku Soyo SY-015G, akorát ta moje nemá osazenou PGA patici na CPU, což by ale nebyl problém dopájet, stejně jako jsem to udělal u desky výše. Obě desky měly vyteklé NiCd baterky, které částečně poškodily měděné spoje či prokovy na PCB. Jedna deska vůbec nePOSTuje (jen kmitá oscilátor), druhá deska naběhla, ale hlásila chybu keyboard controlleru a klávesnice vůbec nedostávala napájení. Odpájel jsem tedy 5-kolíkový DIN konektor klávesnice a našel u kraje 1 sežranou napájecí cestu, která vedla přes tlumivku na napájení 5 V a propojil jsem ji drátkem. Dále jsem našel 2 vyhnilé prokovy, které nějak souvisely s funkcí KBC, neboť po jejich propojení drátkem chyba zmizela a klávesnice začla normálně fungovat. Desku jsem projel základními diagnostickými testy v Norton Diagnosticu a neobjevila se žádná chyba.
      V SETUPu mě překvapilo, že jsem tam viděl volbu "External cache: enabled", přitom na desce žádné SRAM čipy nejsou. Napřed jsem to považoval za bug, ale když jsem spustil CCT386, tak je evidentně vidět, že podle skokové změny rychlosti má někde schovaných 8 kB cache. A to zřejmě přímo v tom chipsetu, jak se o tom zmiňují na Retrowebu. Tak to jen taková zajímavost, že takové chytré chipsety existují, jen jsem o nich dosud nevěděl...

leaked NiCd accu on noname MB 386DX with Macronix MX83C305 & MX83C306 chipset noname MB 386DX with Macronix MX83C305 & MX83C306 chipset PCB vias and traces repair on noname MB 386DX with Macronix MX83C305 + MX83C306 chipset CCT386 test Am386DX-40 with 8kB internal cache of MX83C30x chipset
vyteklý NiCd aku MB 386DX oprava PCB 8 kB internal cache

Jak se mnou vyjebal vypínač na redukci od ATX zdroje

      23.9.2023 Pro testování starého PC šrotu používám micro ATX zdroj Fortron FSP200-50SNV (asi třetinové velikosti proti běžnému ATX zdroji). Abych nemusel mít po ruce ještě starý velký AT zdroj, vyrobil jsem si kabelovou redukci z ATX konektoru na AT. Na pin PS_ON# (14) jsem si přidělal malý vypínač pro případ, že bych redukci použil s jiným ATX zdrojem, který nemá vlastní vypínač, ale tento Fortron vypínač má, takže používám spíše ten. V poslední době se mi stávalo, že testované AT desky, které jsem tímto zdrojem napájel, tak se po nějaké době náhodně restartovaly. Někdy krátce po bootu, jindy třeba za půl hodiny. Pojal jsem podezření, že ve zdroji asi vyschly elyty a nějaká proudová špička pak shodí napětí příliš dolů. Kouknul jsem na výstupy zdroje osciloskopem, ale nic podezřelého jsem tam neviděl, jen klasické zvlnění-jehly. I tak jsem zdroj rozebral a proměřil pár elytů, ale ty výstupní byly celkem OK. Pouze 2 mrňavé elyty, které se nacházely v blízkosti evidentně hodně topících odporů 22 kΩ (byl pod nima zhnědlý plošňák), byly vysušené, ale na funkci neměly moc vliv. Vypečené odpory jsem vyměnil za větší. Nicméně i tak problém přetrvával. Pak mě teprv napadlo sáhnout na ten malý vypínač a už při letmém dotyku došlo k restartu. Špatný kontakt způsobil tak krátké přerušení na signálu PS_ON#, že se zdroj viditelně nestihl vypnout (větráček pořád běžel), ale zřejmě stihl shodit signál PWR_OK, což vyvolalo restart. Párkrát jsem vypínač procvakal a umoudřil se. No, takové pinožení a taková kravina...

Upgrade wavetable ROM na zvukové kartě ESS AudioDrive ES1869F

      13.2.2024 Na VOGONS fóru jsem našel zajímavé vlákno uživatele Paar z Čech, pojednávající o výměně originální 1MB wavetable ROMky ES981P za 2MB FlashROM s kvalitnější bankou samplů na zvukových kartách ESS. Naprostá většina karet je osazená 1MB verzí nebo úplně bez ROMky, ale podařilo se mu získat originální 2MB ROM ES982A (vyskytuje se např. v některých noteboocích Compaq) a dumpnul její obsah pomocí programátoru TL866. Obsah dumpu pak lze nahrát do vhodné pinově kompatabilní 2MB FlashROM s 16-bitovou datovou sběrnicí na 5 V, např. MX29F1610.
      Jelikož jsem zrovna při oživování svého projektu LPC2ISA jednu takovou starou zvukovku vyhrabal, rozhodl jsem se mod také vyzkoušet. Objednal jsem 2 FlashROM čipy z AliExpressu za 75 Kč a k tomu přihodil redukci se ZIF paticí SOP44 na DIP44 za 105 Kč. Image jsem do pamětí nahrál programátorem LabProg-48LV. Při tom jsem zjistil, že jeden čip je mrtvý, nepřečetl ani flash ID, data četl samé wordy FF00h a nešel vymazat. Tak jsem ho u Číňana reklamoval a dostal full refund, za který jsem objednal další 2 čipy. Ty pro změnu přišly nesmazané, ještě s původním obsahem nějakého neznámého FW, ale aspoň fungovaly, budou se ještě hodit. Mám někde zabordelenou další zvukovku ESS AudioDrive ES1868 s 1MB ROM a line-out výstupem, tak jí pak taky někdy modnu. Při výměně ROMky za flashku je třeba mít na paměti, že původní ROM má nezapojené piny 1 a 44, které mají u flashky význam WE# a WP#. Tyto vstupy by se neměly nechávat plovoucí, takže jsem je připojil drátkem na nejbližší 5V napájení (na fotce ještě není). Otestoval jsem to pak v Doomu, hraje to pěkně...

ESS AudioDrive ES1869F ISA soundcard FlashROM MX29F1610MC and ZIF SOP44-DIL44 adapter FlashROM MX29F1610MC programming in LabProg-48LV
ESS AudioDrive ISA Flash MX29F1610 a redukce programování FlashROM

the original 1MB ROM ES981P chip PCB after desoldering the original ROM chip replacement by 2MB FlashROM MX29F1610MC, withou WE#/WP# wires yet
ROM ES981P odpájení ROM připájení FlashROM



Zpět

Aktualizováno 23.2.2024 v 6:16