Retro PC - Pentium Pro

      28.8.2004 Záhy po té, co jsem dostal své první PC 486DX4 a začal pronikat do neprobádaného světa počítačů, jsem začal shánět další PC díly, abych si mohl také nějaký PC sám sestavit, osahat a pohrát si s HW. Postupně se mi toho PC šrotu nahromadilo více, ale nemám dost místa, abych mohl mít všechno zkompletované v casech. Tak vám zde představím alespoň 1 PC, jenž stojí za zmínku díky použitému CPU intel Pentium Pro, který nebyl v našich končinách příliš rozšířený. Pamatuju si, jak jsme na něj kdysi se spolužáky slintali v katalogu AutoContu, kde tehdá v 2/2 90. let stál několik desítek tisíc. Nyní jsem si ho koupil za dvacku na radioburze v Holicích a spolu s mainboardem Asus P6NP5 se stalo základem tohoto retro PC.
      Pentium Pro je svým způsobem unikátní konstrukce, kde intel poprvé použil více čipů v 1 keramickém pouzdře. Řemeslným zpracováním je to opravdu oku nadšence lahodící masterpiece, který obsahuje cca 0,3 g zlata. Na 1 čipu je CPU jádro s 8 + 8 kB L1 cache a na druhém samostatná L2 cache velikosti 256 nebo 512 kB taktovaná (narozdíl od následníka Pentium II) na stejné frekvenci jako jádro (150 - 200 MHz). Existovala dokonce 3-čipová verze s 1 MB L2 cache (2x 512 kB čipy) v plastovém pouzdře, ale tu jsem na živo nikdy neviděl. Já mám jen 256kB verzi na 200 MHz. V pozdějších dobách bylo také možné s pomocí redukce osadit Pentium Pro do základních desek se Slotem 1 (je třeba upravený BIOS), kde díky rychlejší L2 cache výkonově poráželo novější Pentium II na stejné frekvenci. Pro některé aplikace však mohla být překážkou absence instrukcí MMX. Zde se můžete podívat do útrob jednoho rozebraného CPU:

intel Pentium Pro 150-60-256k front side intel Pentium Pro 150-60-256k back side intel Pentium Pro 150-60-256k inside intel Pentium Pro 150-60-256k core + cache chips

      Základní deska je založená na chipsetu intel 440FX s jižním můstkem PIIX3. Samotný chipset podporuje až 1 GB FPM/EDO RAM, ale deska má jen 4 SIMM sloty, které poberou max. 64MB moduly, takže celkový limit je 256 MB RAM. Zatím jsem sehnal moduly o celkové kapacitě 192 MB. No ono to bylo tehdá docela hodně, začínal jsem na PC se 4 MB RAM a tehdá poměrně dlouhou dobu platilo 1 MB =~ 1000 Kč. Deska má na tehdejší dobu obvyklé periferie: 2-kanálový IDE řadič s rychlostí UDMA33, řadič disketovky, 2 sériové a 1 paralelní port a 2 pomalé porty USB 1.1. Formát a napájecí konektor je klasický AT. Postupně jsem retro PC dovybavil dalšími komponentami, které jsem vesměs koupil po bazarech a různých burzách. Přehled aktuální konfigurace je zde:

CPU: intel Pentium Pro 200/66 MHz, 256 kB cache, PGA
Mainboard: Asus P6NP5 rev. 1.3, Socket 8, AT;
intel 440FX + PIIX3 + W83877F chipset;
4*72-pin SIMM, 4*PCI, 1*PCI/ISA+media, 3*16bit ISA;
integrovaný EIDE UDMA33 2 kanály, floppy, 1*LPT, 2*COM, 1*DIN, 2*USB 1.1
PLL chip W48C60-414G; Award BIOS 4.51 (128 kB FlashROM), manuál
RAM: 2*SIMM 72-pin EDO 64 MB, 60 ns Samsung (KM44C16104AK-6)
2*SIMM 72-pin FPM 32 MB, 60 ns Hyunday (GM71C17400CJ6)
VGA: Matrox Millennium II MGA-2164WP-C PCI, 8 MB WRAM, VBE 2.0
3Dfx Voodoo1 PCI 4 MB EDO RAM
Audio: Sound Blaster Live! 1024 PCI (CT4830), EAX, 4-kanál
Sound Blaster AWE64 ISA (CT8920), wavetable MIDI
Síťovka: Realtek RTL8139D PCI 10/100Mbit Ethernet RJ45
USB 2.0 PCI karta s NEC uPD720101 5*USB 2.0
FDD: 3,5" / 1,44 MB
HDD: Western Digital Caviar WD400BB, 40 GB, ATA133, 2 MB cache
DVD-RW: LG GSA-4163B - 16x DL, RAM ATAPI vypalovačka
CD-RW: Teac CD-W552D - 52x max ATAP vypalovačka
Čtečka karet: Alcor AU9360 USB 1.1 CF/SD/MMC/SM/xD/MS interní do 3,5" šachty
Zdroj: AT 200 W ESC
Case: Mini Tower šedý, šachty: 3*5,25" + 2*3,5"

Asus P6NP5 socket 8 motherboard Asus P6NP5 socket 8 motherboard with CPU

      Grafických karet jsem vystřídal několik a nakonec na trůn usedla královna 2D SVGA karet Matrox Millennium II MGA-2164WP-C PCI osazená 4 MB WRAM. Dělaly se i 8MB verze a na kartě je konektor pro rozšiřující paměťové moduly 4, 8 a 12 MB (celkově max. 16 MB). Ve své době to byla jedna z nejrychlejších 2D karet (díky speciální 2-portové rychlé videopaměti se 64-bitovou šířkou datové sběrnice) pro profesionální stanice určené např. pro CAD aplikace. Srovnatelné byly ještě třeba #9 Imagine 128 nebo TSENG ET6000. Tomu odpovídala i cena a tak jsem mohl tehdá jen mlsně koukat na fotky v Chipu. Po desetiletí odvál slávu čas a kartu jsem vyhrabal někde ve šrotu. Pro Millennium II jsou k dispozici ovladače pro Windows 3.x, 9x, NT 3.x, NT 4.0, 2000, XP, OS/2, AutoCAD, MicroStation a 3D Studio.
      Grafickou kartu jsem dále doplnil dedikovaným 3D akcelerátorem. V 1/2 90. let byla HW 3D akcelerace doménou jen specializovaných grafických stanic např. od Silicon Graphics a teprve nově vzniklá firma 3Dfx přinesla hráčům na trh první dostatečně výkonný a přitom cenově dostupný 3D akcelerátor, který byl také přijat a podporován většinou vývojářů her (používal vlastní Glide API). 3D karta se s VGA kartou propojovala pomocí pass-through kabelu, kdy byla aktivní pouze když běžela 3D aplikace (podporován byl pouze full-screen režim), jinak jen propouštěla na monitor signál z VGA karty. Toto propojení pracovalo s analogovým videosignálem a mohlo ve vysokých rozlišeních a frekvencích působit jistou degradaci (nižší ostrost) obrazové kvality, proto je lepší připojit dvěma kabely monitor s více vstupy a podle potřeby je přepínat. 3Dfx Voodoo1 jsem si koupil v roce 1998 na hraní Quake II a Unrealu. Pak jsem ji v primárním PC vyměnil za nVidia RIVA TNT AGP (kombinovaný 2D + 3D akcelerátor) a Voodoo schoval do krabice, abych ho po letech znovu oprášil a zasadil sem. Dnes je možné hraní Glide-only her řešit pomocí Glide wrapperů, které překládají toto API do OpenGL, Direct 3D, atd.

Matrox Millennium II MGA 2164WP 4MB PCI 3Dfx Voodoo1 PCI 4MB EDO RAM

      Pro zajímavost jsem porovnal rychlost softwarového rendereru proti 3Dfx Voodoo1 v Quake II pod Windows NT4, XP a v Q2DOSu v rozlišení 640 x 480 (více Voodoo 1 nedává). Je vidět, že rozdíl není až tak výrazný, ale kvalita obrazu v 16-bitové hloubce s bilineárním filtrováním textur a dalšími efekty je na Voodoo 1 nesrovnatelně lepší.

OS SW renderer 3Dfx Voodoo1 (Glide) 3Dlabs Permedia 2 (OpenGL)
DOS 12,7 FPS 12,5 FPS -
WinNT4 11,7 FPS - 8,8 (3,8*) FPS
WinXP 9,5 FPS 15,6 FPS -
* v max. 3D rozlišení 1024 x 768 / 32 bpp

      Jako zvukovou kartu jsem použil s ohledem na kompatabilitu s DOSovými hrami a demy Sound Blaster AWE64 do ISA slotu. Sound Blaster byl prostě v té době železný standard s výjimkou pár starších programů a her napsaných pro nekompatabilní Gravis Ultrasound (GUS). K AWE64 jsem ještě přidal Sound Blaster Live! PCI, který jsem v primárním PC vyměnil za Sound Blaster Audigy. SB Live! nabízí HW akceleraci prostorového zvuku EAX, A3D a DirectSound3D, kterou jsem si přes 4-kanál poprvé vychutnával v Unrealu. Není HW kompatabilní s klasickým Sound Blasterem, nabízí pouze emulační DOSovou TSR utilitu, která musí běžet ve V86 režimu (na nových PC už ani nefunguje), kde zas některé hry a dema neběží, takže proto zde mám kombo 2 zvukovek.
      Pro rychlejší a pohodlnější přenos dat jsem také přidal 5-portový USB 2.0 PCI řadič s čipem NEC uPD720101, který jsem za 10 Kč koupil v Holicích. Oproti onboard USB 1.1 portům je několikanásobně rychlejší. Bohužel BIOS neumožňuje z USB portů bootovat, takže můžu bootovat externě jen z CD, DVD a disket. Na PC mám nainstalovaný MS-DOS 6.22, Windows 98, Windows NT 4.0 a Windows XP. Zkoušel jsem zde také rozběhnout ReactOS, ale ten běžel oproti Windows tragicky pomalu.

Sound Blaster AWE64 ISA Sound Blaster Live! 1024 PCI USB 2.0 PCI controller NEC uPD720101 retro-PC Pentium Pro 200 in miditower case

Remake paměťového modulu pro SVGA Matrox Millennium II

      24.1.2021 Už dříve jsem uvažoval o rozšíření paměti grafické karty, abych mohl využít nativní rozlišení mého LCD 1600 x 1200 / 32 bpp, pro které je potřeba necelých 8 MB. U nás jsem na bazarech za ty roky nic nenašel, zřejmě se tu tehdá paměťové moduly vyskytovaly velmi vzácně. Sem tam jsem mrknul na eBay, kde se sice ty moduly objevují, ale téměř vždy jen v USA, odkud by to s poštovným a clem stálo nesmysl.
      A tak jsem se rozhodl, že bych mohl zkusit reverse engineeringem získat schéma zapojení a vyrobit si nový 4MB modul. Paměťové čipy Samsung KM4232W259AQ-60 se dokonce ještě dají sehnat na eBay (NOS - nové ze starých zásob), ale levněji vyjde koupit celou kartu a z ní čipy odpájet. Problém zůstává v tom, že nemám žádný modul jako předlohu ke zkoumání. Předpokládám však, že většina pinů na rozšiřujících konektorech J2 a J4 bude propojená s paměťovými čipy na desce grafické karty (společné datové a adresové sběrnice) a jen menší část pinů bude použita na samostatné řídicí signály. Myslel jsem, že bych mohl něco vykoukat z fotek, jenže většina spojů je schovaná ve vnitřních vrstvách a pod plastovým základem pin headeru. Jeden večer jsem si na to sednul a prostě všechny piny (celkem 2 x 119) konektorů propípal proti všem pinům paměťových čipů na desce. K tomu přišel velmi vhod levný multimetr z Lidlu, který nemá žádnou přepěťovou ochranu a tak pískací test reaguje okamžitě bez zpoždění (narozdíl od mého Metexu M-3860M). Podařilo se mi identifikovat asi 90% pinů. Dále jsem požádal o pomoc ve vláknu na VOGONS (uživatel Dusko mi pomohl s identifikací pinů OE#, CAS# s SE#), aby mi někdo z majitelů modulu propípal ten zbytek a také se poptal přátel, jestli někdo náhodou doma modul nemá.
      Paměťové čipy A5 - A8 na desce mají 32 datových I/O pinů DQ31:0 a tak jsou po dvou připojeny na 64-bitovou datovou sběrnici. Adresová sběrnice A8:0 a také řídicí signály SCLK, SE#, DSF2:0 jsou společné pro všechny čipy. Signály RAS#, CAS#, OE#, BE3:0# jsou pro dvojice čipů samostatné a výstupy sériového data registru SQ15:0 jsou pro každý čip připojeny samostatně přes odporové sítě 33 Ω. Číslování konektorů J2 (propojený s J1 na modulu) a J4 (propojený s J2 na modulu) jsem si zavedl dle obrázku níže.

MGA connectors J2, J4 numbering 4MB expansion memory module schematic v1.1
expanzní konektory opravené schéma

      14.2.2021 Na zapůjčeném modulu jsem snadno identifikoval zbytek pinů a zjistil, které paměťové čipy na modulu jsou vzájemně propojené s čipy na desce: A1 ~ A8, A2 ~ A7, A3 ~ A6, A4 ~ A5. Řídicí signál RAS# je pro všechny čipy na modulu společný a je spojený s RAS# čipů A7, A8 na desce. Signály CAS# jsou samostatné pro 2 banky po 2 čipech (A1, A2 a A3, A4), stejně tak signály OE#. Signály BE3:0# jsou propojené po 2 čipech na modulu s 2 čipy na desce (A1, A3 ~ A6, A8 a A2, A4 ~ A5, A7). Adresová sběrnice A8:0 a také řídicí signály SCLK, SE#, DSF2:0 jsou společné pro všechny čipy jak na modulu, tak na desce. Zbylé piny jsou nezapojené. Kompletní schéma jsem aktualizoval výše. Teď už to zbývá jen zaroutovat.

      4.2.2021 Dnes mi dorazila z bazoše AGP karta Matrox Millennium II MGA-2164WA-B 4 MB, kterou plánuju použít jako dárce orgánů, tedy 4 paměťových čipů KM4232W259AQ-50. Všiml jsem si, že oproti PCI verzi jsou tyto paměti o něco rychlejší (50 ns vs 60 ns), ale to pro daný účel nemá žádný význam. Kartu (paměti) jsem otestoval programem VMT a zdá se být v pořádku. Díky AGP dosahuje větší propustnosti LFB, naměřil jsem 180 MB/s vs 93 MB/s u PCI verze.

Matrox Millennium II MGA-2164WA-B 4MB AGP

      10.2.2021 Kamarád Tomáš doma vyhrabal kartu Matrox Millennium II MGA-2164WP-C 8 MB PCI (má osazeno celkem 8 paměťových čipů z obou stran desky) i s 4MB rozšiřujícím modulem a ochotně mi ji zaslal k prozkoumání. Vyzkoušel jsem ji napřed ve své desce Abit BX133-Raid a divil jsem se, že program VESATEST detekoval pouze 4MB LFB. Zkusil jsem tedy flashnout novější verzi video BIOSu 1.5 (image soubor 859-5.bin), na kartě byla původně verze 1.1. Musel jsem k tomu použít starší verzi programu MGA Bios Programming Utility 1.87d, neboť novější verze 2.54.000d mi i v holém DOSu tuhla. Pak už VESATEST detekoval podle předpokladů 12MB LFB, avšak tabulka podporovaných videomódů se vůbec nezměnila. Nejvyšší TrueColor režim tam byl 1024 x 768 / 32 bpp (118h). Zkusil jsem ještě loadnout rezidentní utilitu UniVBE 6.7, počet módů v tabulce vzrostl z 25 na 34, ale nejvyšší TrueColor režim tam byl jen 1280 x 1024 / 32 bpp (11Bh) a nikoliv kýžený 1600 x 1200 / 32 bpp, jak jsem si představoval. Ale beru, že tento videomód už není standardizován sdružením VESA a nepodporují ho ani novější karty Matrox G200 a G450, které jsem dříve testoval. Vyšší videomódy by měly být přístupné alespoň přes nativní ovladače (např. i DOSové 3D Studio 4 by mělo mít podporu pro 8MB verzi Millennium II).

Matrox Millennium II MGA 2164WP 8+4MB PCI Matrox Millennium II MGA 2164WP 8+4MB PCI original Matrox 4MB expansion memory module

      16.2.2021 Schéma už mám kompletní a tak jsem se pustil do layoutu nového modulu. Napřed jsem zkusil autorouter na 2 vrstvách, ale ten skončil neúspěchem (chybělo 9 cest z 587). Zvýšil jsem tedy počet vrstev na 4 (dnes už to není o tolik dražší) a jednu definoval jako rozlitou zem. Pak už to autorouter dal, ale dost hnusně a se spoustou DRC errorů. Nezbývá tedy, než se pustit do poctivé ruční práce. Pod těma paměťovýma čipama začíná bejt dost husto...

new 4MB expansion memory module PCB layout v1.1 new 4MB expansion memory module PCB layout v1.1-3D visualisation JLCPCB PCB order

      1.3.2021 Po pár nocích jsem dokončil PCB layout. Podařilo se mi vyjít se 3 routovacími vrstvami a 1 jsem tak mohl ponechat jako celistvou zemní plochu. Data pro výrobu pošlu do JLCPCB, cena 5 kusů by měla vyjít na 8$. UPDATE: 4.3.2021 jsem zadal data do výroby spolu s dalšíma 2 deskama.

      19.3.2021 Dnes mi dorazily plošňáky z JLCPCB, kvalita výroby mi přijde dobrá a oceňuji rychlé dodání. Z dárcovské AGP karty Matrox Millennium II jsem horkovzdušnou pistolí opatrně (bez poškození PCB) sfouknul paměťové čipy a pustil se s nadšením do osazování. To šlo poměrně rychle, krom IO, je tam jen pár součástek. Pak jsem nový paměťový modul nacvakl na kartu, zastrčil do PC a nastala chvilka napětí - no a nic se nestalo, paměť nebyla detekována. Stále mám ještě originální paměťový modul od Tomáše, tak jsem oba začal propípávat a jistil, že jsem to posral už na schématu banální copy & paste chybou, když jsem kopíroval fousy s net labelama od konektoru k pamětem, kde jsem prohodil pořadí signálů SQ15:0 a BE3:0# u všech čipů. To by znamenalo předrátovat celkem 68 spojů. Holt nezbývá, než desku přeroutovat a novou verzi pak pošlu s dalšíma destičkama do příští zakázky. UPDATE: 26.3.2021 opravil jsem schéma a přeroutoval desku, pošlu ji do výroby hned jak dodělám další desky a panelizace.

JLCPCB received PCBs new 4MB expansion memory module PCB with bugs new 4MB expansion memory module PCB v1.1 OK
PCB z JLCPCB modul v1-bug modul v1.1-OK

      27.8.2021 Tak mezitím se mi poštěstilo na radiojarmarku v Holicích koupit 8MB verzi Matrox Millennium II PCI za 50 Kč (už jsem ji otestoval a funguje), takže tím primární důvod pro výrobu paměťového modulu padl, ale když už jsem ten projekt dostal do finální fáze, tak ho také dokončím. Koupil jsem i další Matrox Millennium II AGP na paměti, ale tu zatím nechávám v celku, dokud nebudou čipy potřeba.
      Po instalaci posledních verzí Matroxích ovladačů pro Windows NT 4.0 a XP jsem narazil na problém, že ani s 8MB kartou nelze nastavit videomód 1600 x 1200 / 32 bpp či 24 bpp. V seznamu všech videomódů v ovládacích panelech prostě není. Přitom velikost videopaměti reportují ovladače správně. Avšak ve Windows 3.11 s Matroxím ovladačem verze 1.61.004 a v DOSovém 3D Studiu R4 přes DynaView 1.20 (RCPADI driver) videomód 1600 x 1200 / 24 bpp normálně vybrat jde a funguje, tak nechápu, co je špatně. Pokouším se zjistit zkušenosti od ostatních uživatelů.

      21.12.2021 Nechal jsem si v JLCPCB vyrobit další várku plošňáků a mezi nimi též opravenou verzi 1.1 paměťového modulu. Součástky jsem sfouknul horkovzduchem ze starého modulu a přeosadil je na nový. Strčil jsem ho do 4MB karty a ta detekovala správně 8 MB WRAM. Paměť jsem otestoval pomocí VMT a vše proběhlo v pořádku. Taktéž v 8MB kartě se správně detekovalo celkem 12 MB WRAM. Ve Windows XP se mi v Ovládacích panelech|Zobrazení|Nastavení|Upřesnit na kartě Monitor Settings|Adjust a different display mode pomocí Matrox Monitor Wizardu podařilo přidat 2 nové TrueColor videomódy 1600 x 1024 / 32 bpp (60 Hz) a 1920 x 1034 / 32 bpp (60 Hz). Bohužel všechny další videomódy od 1600 x 1200 jsou k dispozici jen v 16 bpp. Nejvyšší dostupný videomód je 1920 x 1440 / 16 bpp.

      6.1.2022 Vzpomněl jsem si, že mám v šuplíku o něco novější grafickou kartu Matrox G200 PCI s 8 MB SGRAM a tak mě napadlo vyzkoušet její schopnosti v TrueColor módech. Přeinstaloval jsem ve Windows XP stejnou verzi ovladače 5.82.018 a v nastavení zobrazení bylo možné normálně vybrat požadovaný videomód 1600 x 1200 / 32 bpp. Taktéž v Matrox Monitor Wizardu byly vidět všechny videomódy dle očekávání a možností 8 MB SGRAM. Zkusil jsem uložit nastavení videomódů G200 do proprietárního binárního .MPR souboru a po prohození karty zpět za Matrox Millennium II jsem tento soubor zkusil načíst. Avšak místo toho, aby nějaké TrueColor módy přibyly, tak mi zmizely i ty 2, které se mi podařilo přidat výše a musel jsem nastavení vymazat nebo načíst dříve uložený .MPR soubor s nastavením Millennia II. Když jsem v souboru zkusil změnit nějaký Byte, tak mi to hlásilo při pokusu o načtení, že obsahuje neplatná data, takže tudy cesta nevede.

Matrox Monitor Settings Matrox Monitor Wizard on G200 Matrox Monitor Wizard on Millennium II
Mon. Settings MMW - G200 MMW - Millennium II

      Pustil jsem se tedy do zkoumání registrů Windows. V klíči [HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001\Settings] se nacházejí specifická nastavení Matroxí části ovládacích panelů a z něj se pak kopírují do windowsího nastavení v klíči [HKLM\SYSTEM\CurrentControlSet\Control\Video\{D28F452D-7619-4FEE-BFCE-E4A308DD3CA0}\0000]. Konkrétní GUID a následující číslo závisí na konkrétní instalaci Windows a počtu dříve nainstalovaných grafických karet. Porovnáním klíčů [HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0003\Settings] pro G200 a [HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001\Settings] pro Millennium II jsem zjistil, že se liší pouze v nepodstatných položkách InstalledDisplayDrivers a Device Description, binární hodnoty pro položky Graphic.x.y byly shodné. Dále jsem se zabýval položkami v klíči [HKLM\SYSTEM\CurrentControlSet\Control\Video\{D28F452D-7619-4FEE-BFCE-E4A308DD3CA0}\0000], kde se při uložení specifického videomódu v Matrox Monitor Wizardu vytvoří override položka s názvem D00.0.M00.Graphic.x.y.bpp, např. pro 1600 x 1024 / 32 bpp je to konkrétně:
"D00.0.M00.Graphic.1600.1024.32"=hex:01,00,3c,00,40,00,00,00,58,0f,02,00,20,00,a0,00,30,01,03,00,03,00,28,00,00,00,00,00
Napadlo mě tuto položku zduplikovat a přejmenovat na: "D00.0.M00.Graphic.1600.1200.32"=hex:01,00,3c,00,40,00,00,00,58,0f,02,00,20,00,a0,00,30,01,03,00,03,00,28,00,00,00,00,00
a po restartu Windows se mi v nastavení zobrazení u rozlišení 1600 x 1200 objevila volba 32 bpp, a videomód skutečně zobrazoval v TrueColor. Avšak nešlo vybrat jinou bitovou hloubku než 32 bpp. Při dalším zkoumání jsem si všiml, že tyto binární nudle pochází ze začátku delších binárních nudlí + pár Bytů navíc z položek Graphic.x.y. Konkrétně z položky:


"Graphic.1600.1200"=hex:3c,00,4b,00,d0,78,02,00,40,00,c0,00,30,01,01,00,03,00,\
  2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
  00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
  0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
  00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
  00,00

jsem vytvořil položku:
"D00.0.M00.Graphic.1600.1200.32"=hex:01,00,3c,00,4b,00,00,00,d0,78,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,00,00
Po restartu Windows ale volba 32 bpp zmizela a bylo tam zas jen 16 bpp. Zkusil jsem tedy postupně po jednom přepsat všechny rozdílné Byty proti položce:
"D00.0.M00.Graphic.1600.1024.32"=hex:01,00,3c,00,40,00,00,00,58,0f,02,00,20,00,a0,00,30,01,03,00,03,00,28,00,00,00,00,00
Po každé změně jsem restartoval Windows a zkontroloval volby bpp v nastavení zobrazení. Zjistil jsem, že klíčovou roli hraje 10. Byte 78h, který stačí nahradit hodnotou 0Fh nebo 2Ch, jenž se vyskytuje v ostatních funkčních binárních nudlích. Fakt bych rád věděl význam těchto Bytů a co jsem vlastně změnil, ale hlavně že to funguje. Patrně se jedná o nějakou chybu, kdy Matrox přidal podporu novějších grafických karet, změnil tento Byte a zapomněl na to, že není kompatabilní se starým Millenniem II.
      Abych postup ještě znovu ověřil, odinstaloval jsem Matroxí ovladače, vymazal výše zmíněné klíče z registru a nainstaloval je znovu. Po čisté instalaci (bez přidaných videomódů Matrox Monitor Wizardem) klíč [HKLM\SYSTEM\CurrentControlSet\Control\Video\{D28F452D-7619-4FEE-BFCE-E4A308DD3CA0}\0000] neobsahuje žádné položky typu D00.0.M00.Graphic.x.y.bpp a jedinou relevantní položkou je tak Graphic.1600.1200. Zde už jsem mířil na jisto a přepsal 6. Byte z hodnoty 78h na 2Ch takto:


"Graphic.1600.1200"=hex:3c,00,4b,00,d0,78 -> 2c,02,00,40,00,c0,00,30,01,01,00,03,00,\
  2e,00,0c,00,00,00,41,00,51,00,8c,ad,02,00,40,00,c0,00,30,01,01,00,03,00,2e,\
  00,0c,00,00,00,46,00,58,00,48,e2,02,00,40,00,c0,00,30,01,01,00,03,00,2e,00,\
  0c,00,00,00,4b,00,5e,00,04,17,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,\
  00,00,00,55,00,6a,00,7c,80,03,00,40,00,c0,00,30,01,01,00,03,00,2e,00,0c,00,\
  00,00

Po restartu Windows se v nastavení zobrazení dle očekávání u rozlišení 1600 x 1200 objevily volby 16 a 32 bpp. Dokonce i v Matrox Monitor Settings přibyla u tohoto rozlišení 32 bpp položka. Zde je ke stažení registry patch soubor, kde je třeba přepsat GUID a číslo karty dle konkrétní instalace Windows. Rád bych tento patch aplikoval i na Windows NT4, ale tam klíč [HKLM\SYSTEM\CurrentControlSet\Control\Video] vůbec neexistuje a nastavení tedy bude někde jinde.

Windows Display Settings with enabled 32bpp
Display Settings

      Stejným způsobem se mi podařilo odemknout i videomód 1920 x 1080 / 32 bpp, kde jsem změnil 6. Byte z hodnoty 70h na 2Ch. Tuto úpravu lze udělat ještě před instalací driveru úpravou souboru mgau.inf v sekci [AddReg.VidParms], kde stejně jako v registru přepíšeme 6. Byte u modeline HKR,,Graphic.1600.1200,0x00000001,\ nebo HKR,,Graphic.1920.1080,0x00000001,\.

SVGA ELSA GLoria Synergy-8 ViVo PCI

      1.9.2021 V Holicích jsem též zachránil šroťákovi z lopaty tuto PCI grafickou kartu založenou na čipu 3Dlabs Permedia 2 (vyráběný u Texas Instruments) osazenou 8 MB SGRAM. Karta už byla očesaná o chladič a plechový bracket, ale naštěstí bez poškození. Nějaký náhradní chladič jsem vyhrabal v krabici, vyvrtal do něj 2 otvory, vyřízl závity M3 a připevnil ho šroubky s pérovými podložkami (čip docela topí i v textovém VGA módu). Kdysi to bývala celkem drahá karta na profi CAD aplikace pro Windows, o čemž svědčí bohatá SW výbava ovladačů, které jem našel v tomto archivu. Dokonce je tam i ovladač pro Windows NT 4.0 na platformu DEC Alpha64 a OS/2 Warp, naopak chybí ovladače pro Windows 3.x a DOSový AutoCAD (RCPADI) či 3D Studio 4.
      Nejprve jsem provedl test v DOSu pomocí svého VESATESTu, kde mě dost nemile překvapilo, že ačkoliv video BIOS o sobě tvrdil, že podporuje VBE 2.0, tak reportoval pouze 512 kB videopaměti a 2 VESA módy 640 x 400 a 640 x 480 v 8 bpp, které fungovaly jen v bank-switched režimu. To se nezměnilo ani po flashnutí novějšího video BIOSu 7.03.04. Po zavedení TSR UniVBE 6.7 počet VESA módů stoupl na 33 a reportovaná velikost videopaměti byla dle očekávání 8 MB. Test pomocí VMT proběhl bez chyby. Taktéž DOSový instalační program byl schopen vykreslit testovací obrazce ve všech podporovaných videomódech, takže po HW stránce je snad karta v pořádku. Následně mi jeden uživatel na VOGONS fóru potvrdil, že i jeho karta Diamond Fire GL 1000 Pro se chová stejně, takže nejspíš všichni výrobci grafik s čipem Permedia 2 používají ten samý dementní video BIOS od 3Dlabs, pouze s přepsanými vendor stringy.

ELSA GLoria Synergy-8 ViVo (3Dlabs Permedia 2) PCI-top ELSA GLoria Synergy-8 ViVo (3Dlabs Permedia 2) PCI-bottom

      25.9.2021 Pro kartu jsem vyrobil náhradní bracket z plechové záslepky, do které jsem vyvrtal a vyfrézoval potřebné otvory pro konektory. Pak jsem zkusil nainstalovat ovladače pro Windows NT 4.0 a zjistil jsem, že v ovládacích panelech, stejně jako u MGA2, nemůžu nastavit rozlišení 1600 x 1200 / 32 bpp, ale pouze 1600 x 1200 / 15 bpp. Nejvyšší možné rozlišení v 32 bpp bylo nabídnuto 1600 x 1000 a pro 15 bpp to bylo 1920 x 1200. Přitom mám potvrzeno, že jiné 8MB grafické karty, např. S3 Savage4 a 3Dfx Voodoo3 umí tyto vyšší videomódy zobrazovat i v TrueColor. Otestoval jsem také Quake II, kvalita zobrazení byla podobná jako u 3Dfx Voodoo1, ale výkon asi poloviční. Max. použitelné rozlišení ve 3D bylo 1024 x 768 / 32 bpp s 16-bit Z-bufferem. I přes nově namontovaný větší chladič se čip ve 3D pěkně rozpálí, že na něm nejde moc dlouho udržet ruka.

Výroba chladiče pro Socket 8 (Pentium Pro)

      13.4.2022 Po mnoha letech se mi podařilo výměnou chipsetu opravit 2-procesorovou CPU kartu Asus C-P6ND rev 1.1. Pro testování jsem potřeboval chladič na CPU, ale žádný další (kromě toho jednoho v retro PC) už nemám. Jelikož je Socket 8 nadměrně dlouhý, tak na něj nejdou napasovat jiné chladiče pro Pentium III, 4, ani AMD, neboť přídržná spona je příliš krátká a nedá se rozevřít tak do široka (v některých případech s trochou násilí tak tak). Přemýšlel jsem, ze čeho vyrobit novou sponu, ale nějak mě nenapadlo, jak to materiálově zvládnout tak, aby spona byla dostatečně pružná a přitom se dala naohýbat a nepraskla. Možná by se dala nějaká pružná ocel teplem popustit, naohýbat a pak znovu zakalit. Ale nakonec mě napadlo jiné elegantní řešení, kde jsem místo pružné spony použil pevné rameno ve tvaru "U" naohýbané ve svěráku z duralového pásku 8 x 4 mm (délka 76 mm, výška 30 mm) na jehož konce jsem pomocí šroubů M3 uchytil válcové pružinky, jejichž druhé konce jsou pomocí drátových ok (po ruce byla zrovna kancelářská sponka) uchycené za plastové packy na stranách socketu. Těleso chladiče jsem pak uříznul z vhodného šuplíkového Al profilu (66 x 65 x 24 mm), v němž jsem vyfrézoval uprostřed drážku 8 mm širokou pro Al rameno. Na vršek pasivu jsem připevnil 12V větráček 6 x 6 x 15 mm. Při běžném provozu je chladič jen lehce vlažný.

Socket 8 CPU cooler Socket 8 CPU cooler Asus C-P6ND rev 1.1 with CPU cooler Asus C-P6ND rev 1.1 with CPU cooler

Oprava vadného 32MB 72-pin SIMMu

      5.8.2022 Na pražském blešáku U Elektry se mi podařilo koupit paměťový kit SIMM 72-pin Kingston KTH-VL4/64 2 x 32 MB EDO 60ns. Bohužel moduly v MemTestu i GoldMemory vykazovaly chyby, ale chovalo se to kapánek podivně. V desce Asus P/I-P65UP5, pokud byly osazeny oba moduly, tak se chyby vyskytovaly, ale když jsem jeden modul vyměnil za jiný dobrý 32MB kus, tak se chyba neobjevila ani u jednoho Kingstonu. V desce Asus P6NP5 se však chyby objevovaly i s jedním Kingstonem a druhým OK modulem, takže jsem zjistil, který modul je vadný. Podle hodnot z MemTestu jsem pak usoudil, že chybuje pouze bit č. 1 a 3, což při použitých 4-bitových paměťových čipech znamená, že vadný bude asi jen jeden z 16.


1. průchod - 1 chyba na adrese 00661310 - 1 bit (bit č. 3)
2. průchod - 2 chyba na adrese 01905830 - 1 bit (bit č. 1)
3. průchod - 2 chyba na adrese 00662310 - 1 bit (bit č. 3)
4. průchod - 1 chyba na adrese 00661310 - 1 bit (bit č. 3)

      Mapování bylo naštěstí přímočaré, takže bity 0 - 3 v MemTestu odpovídaly bitům 0 - 3 na SIMM a z toho jsem se multimetrem dopískal, že spoje vedou ke krajnímu čipu C9. Naštěstí jsem měl v šuplíku jeden náhradní čip MN4117405CSJ-06 od Panasonicu se stejnou organizací (též EDO 60 ns). Napřed jsem zkusil původní čip Vanguard VG2617405DJ-6 jen pofoukat horkovzduchem, ale to nemělo žádný efekt, takže jsem ho vyměnil a modul funguje (testováno několik hodin v MemTestu bez chyb).

32MB 72-pin SIMM bad memory chip replacement

Úprava Sound Blaster AWE32 CT3900

      2.11.2022 V jednom vláknu věnovaném bugům zvukových karet Sound Blaster na VOGONS fóru jsem se dočetl, že návrháři z Creative dělali i takové prasárny, jako že nechávali plovoucí vstupy nevyužitých operačních zesilovačů. To znamená, že takový OZ pracuje bez zpětné vazby s obrovským zesílením a je tak náchylný k zesilování šumů naindukovaných do vstupů. I když je výstup nezapojený, tak to cvičí s proudovým odběrem a rušení se po napájení přenáší i na sousední OZ zpracovávající signál.
      Vzpomněl jsem si, že v jednom starém PC mám Sound Blaster AWE32 CT3900 a tak jsem si ho podrobně prohlédnul. Na PCB jsem našel tři 4-násobné OZ: 2 bipolární MC3403 - U26 a U27, které byly plně využité 1 JFETový TL074C - U31, z nějž byly využité jen OZ 1 a 4, zatím co 2 a 3 byly ponechány úplně nezapojené. Zapojil jsem tedy nevyužité OZ jako sledovače (invertující vstup spojen s výstupem) s uzemněným vstupem (napájení je symetrické ±5 V). Zem jsem našel na sousedních použitých OZ na invertujících vstupech, takže to stačilo propojit drátkem ob jeden pin. Na novějších PCI Sound Blasterech se už vyskytovaly jen dvojité OZ, které byly plně využité, na AWE64 jsem také žádné plovoucí nenašel.

Sound Blaster AWE32 CT3900 floating OpAmp fix



Zpět

Aktualizováno 3.11.2022 v 6:26