In deze aflevering proberen we een dertig jaar oude computer werkend te krijgen. Dat klinkt simpel, maar is in de praktijk een stuk lastiger omdat allerlei oude componenten niet meer gemaakt worden. Tweedehands onderdelen zijn nog beschikbaar, maar niet goedkoop.
Henk van de Kamer
In de vorige twee afleveringen liet ik zien hoe we met een programma kleiner dan 512 bytes en verder vele megabytes aan broncode theoretisch een moderne Linux-distributie kunnen compileren. Hiermee kunnen we binaire programma’s uit onbekende bronnen omzeilen. Om hierin een achterdeur te verstoppen is namelijk veel gemakkelijker dan in broncode die door vele mensen wordt bestudeerd.
UEFI omzeilen
Ik eindigde met de opmerking dat computers tegenwoordig nodeloos complex zijn geworden. Zowel Intel als AMD starten tegenwoordig de 80x86-processor via een verborgen exemplaar. Die draait zijn eigen besturingssysteem en deze is verstopt in UEFI. Dat wordt tegenwoordig gebruikt, omdat bijna niemand meer in assembly kan programmeren. Door deze ‘vooruitgang’ is de code gegroeid van 8 kilobyte naar 16 en soms zelfs al naar 32 megabyte. Waanzin!
In oktober 1984 kocht ik een Commodore 64 en deze heeft de eerste drie jaar in Wageningen dienst gedaan voor het schrijven van verslagen. In het vierde jaar moesten we als groep een maatschappelijk onderwerp in het laboratorium onderzoeken. Voor dat verslag kwam ik in aanraking met WordPerfect 4.2 wat vele malen handiger werkte dan de tekstverwerker op de C64. Ergens in 1990 kocht ik dus een 80286 met een 40 megabyte harddisk. Dat zou nu net genoeg zijn voor de genoemde UEFI-code.
Versimpelen
Zoals gezegd, mogen we in een bootstrap alles versimpelen wat niet essentieel is. Ofwel waarom niet terug naar het systeem waarop Linus Torvalds midden 1991 de ontwikkeling van Linux startte? In mijn museumcollectie waren een tweetal 80486 en een Pentium III-moederbord aanwezig, moderner dan de 80386 waarover Linus beschikte. Nu wordt voor deze retrosystemen de hoofdprijs gevraagd. Vreemd, want er zijn letterlijk miljoenen van verkocht. Gelukkig ontdekte ik een verkoper met reëlere prijzen voor een moederbord met een 40MHz-exemplaar plus acht megabyte geheugen in evenzoveel dertig-pinsmodules.
Het geheel heeft een BIOS in een EEPROM en die kan ik handmatig programmeren. Veel van de 64 kilobyte – ruim vijfhonderd keer kleiner dan UEFI – is waarschijnlijk overbodig, ofwel mijn gevoel zegt dat we het binaire zaadje plus een sterk uitgekleed BIOS hierin kunnen plaatsen. Een soort van TPM – Trusted Platform Module – maar dan veel eenvoudiger! Mogelijk is het beter om voor de sterk uitgeklede kernel te gaan en deze uit te breiden met het initialiseren van de noodzakelijke hardware.
AT(X) voeding
Uiteraard is er meer nodig om het geheel te laten werken. Laat ik beginnen met de voeding. In 1995 introduceerde Intel de ATX-standaard en de meest recente chip die ik op mijn gloednieuwe oud-moederbord kan vinden, is gemaakt in maart 1994. Ofwel niet de bekende twintig-pinsaansluiting, maar een tweetal stekkers met elk zes pinnen. Bij AliExpress heb ik een verloop van ATX naar AT gekocht, waarbij ik even vergeten was dat moderne voedingen sinds maart 2005 een 24 pins-aansluiting gebruiken. Gelukkig is deze backwards compatible en hoefde ik alleen een clipje chirurgisch te verwijderen.
AliExpress suggereerde een 160W voedingsbordje, die zijn spanning via een 12V-adapter krijgt. Die adapters heb ik hier in ruime mate liggen, dus het bordje werd meebesteld. Uiteraard had ik even moeten kijken wat de zwaarste was, want een exemplaar van 5 ampère kan maximaal 60 W leveren. En dat is op het randje van wat oude moederborden plus benodigde uitbreidingskaarten nodig hebben.
Beide stekkers zijn hetzelfde en vroeger werden deze met P8 en P9 gemarkeerd. Dat memo hebben de Chinezen nooit ontvangen, ofwel het geheel heeft twee P8-stekkers. Geen probleem, mits we de juiste volgorde aanhouden. Zo niet, zal onze dure retro-aankoop in rook opgaan. Na controle van de kleuren (https://pinoutguide.com/Power/MotherboardPower_pinout.shtml) – mijn exemplaar heeft een grijze in plaats van oranje draad, maar gaat naar de juiste pin in de ATX-connector (https://pinoutguide.com/Power/atxpower_pinout.shtml) – kan het geheel aangesloten worden. Er zijn vier zwarte draden en deze moeten in het midden, waarmee de oriëntatie van beide stekkers maar op één manier mogelijk is.
Tot slot bevat het verloop twee draden – groen en zwart – met een vrouwelijke kabelstekker. De groene draad is Power Supply ON en als we die via een schakelaar verbinden met de zwarte draad, kunnen we het systeem aan- en uitzetten. Het was even zoeken in de collectie met onderdelen, maar uiteindelijk vond ik een schakelaar met de juiste maat voor de kabelstekkers.
Eerste start
Na het regelen van de voeding, heb ik als eerste een POST-kaart geplaatst. Via een meegeleverde kabel kan deze op de luidsprekerpinnen van het moederbord worden aangesloten. Op mijn PCChips/Hsin Tech M326 v5.2 (https://theretroweb.com/motherboards/s/pcchips-m326-8-bit-isa-slot,-ver-5.x-and-up) is dat J9 (JP6 in de handleiding). Verbinden van pin 1 (data uit) en pin 4 geeft piepjes tijdens het opstarten. Ergens halverwege is dat één lange en twee korte en later één korte. Uiteindelijk stopt het met de code 4E4b. De eerste is de laatst doorgegeven hexadecimale code en de laatste de voorafgaande.
Elke fabrikant heeft zijn eigen codes en deze variëren ook nog eens met de versie, ofwel complete chaos. In de eerste Award-versie was 4b het tonen van de copyright en 4E is in latere versies het tonen van problemen en de opties doorgaan (F1) of aanpassen in de BIOS-setup. De enkele lange toon kan ik nergens terugvinden en de eerste betekent een videokaartprobleem. Dat is logisch, want die is niet aanwezig. Het lijkt er dus op dat het systeem alle controles heeft doorlopen en nu wacht op een actie van mijn kant.
Videokaart
Toen IBM zijn eerste computer lanceerde, bevatte het BIOS ondersteuning voor CGA en MDA. Een kloon van de laatste was Hercules en deze was lang populair vanwege de haarscherpe karakters. Na het bestellen van het moederbord besloot ik op zoek te gaan naar de benodigde uitbreidingskaarten. Omdat voor deze eveneens de hoofdprijs wordt gevraagd, bezocht ik als eerste AliExpress. Daar vond ik een nieuwe CGA-kaart (https://nl.aliexpress.com/item/1005006036994388.html) met een aantal oudere chips. Perfect. Toch?
Mijn 2k-monitor heeft nog een ouderwetse VGA-ingang. Om onduidelijke redenen gebruikt VGA analoge signalen, wat een flikkerend beeld geeft. De oudere CGA en EGA gebruiken digitale signalen via een DB9-aansluiting (niet aansluiten op een seriële poort). Nu is het mogelijk om de CGA-signalen te converteren naar VGA en AliExpress adviseerde daarom een GBS-8220. In theorie zou dit moeten werken, maar niet zonder twee extra conversies. Het grootste probleem is de horizontale frequentie die moderne monitoren als minimum verwachten. In Arcade-systemen wordt 15 kHz gebuikt, terwijl de meeste – er zijn uitzonderingen – beeldschermen tegenwoordig beginnen op 30 kHz. Het bordje doet wat het belooft, maar de marketingkreten die de Chinezen verkopers gebruiken zijn discutabel (http://dosdays.co.uk/topics/mda_cga_ega_converter%20-%20pt1.php).
Om verder te kunnen, besloot ik om een aantal VGA-kaarten te bestellen. Waarom meerdere? Heel simpel: EGA- en VGA-kaarten hebben hun eigen BIOS en dat maakt de binaire voetafdruk een stuk groter. In de toekomst wil ik uitzoeken of en waar deze verschillen, en momenteel zijn deze kaarten nog net betaalbaar. Dat gaat veranderen en ik heb ideeën hoe we moderne VGA-kaarten kunnen maken met onderdelen die gewoon beschikbaar zijn. Op dat moment worden oude referentiekaarten essentieel.
De eerste kaart die aankwam, was een Trident TVGA8900CL, geproduceerd in januari 1993. Op de kaart is één megabyte aan geheugen aanwezig en verder een BIOS wiens copyrightmelding we op het beeldscherm voorbij zien flitsen op het punt waar eerder de pieptonen begonnen. Zoals gezegd ondersteunde IBM in het begin alleen CGA en MDA, vandaar dat EGA- en VGA-kaarten een eigen exemplaar hebben. Deze wordt tijdens het opstarten door het BIOS op het moederbord gevonden en geïnitialiseerd. Het resultaat is te zien in de afbeelding.
Een dertig jaar oude computer werkt!
Tot slot
De drie meldingen in het rode window lijken ernstig, maar zijn logisch. De laatste stap in het BIOS probeert een besturingssysteem te starten en dat was in die tijd op een diskette of harddisk. Dit én het oplossen van de andere twee meldingen wordt het onderwerp voor de volgende aflevering.