2022-08-09

Konsten att installera PC-spel

Expanded memory, on the other hand, can be accessed directly by DOS through a 64K page frame according to a LIM 4.0 EMS specification.

Denna skärmbild från Leisure Suit Larry-klonen Les Manley in: Lost in LA (1991) hittade jag på Jimmy Mahers fantastiska blogg The Digital Antiquarian: The 640 K Barrier. Citerar bildtexten: "… The title character explains EMS and XMS memory to some nubile companions. The ironic thing was that anyone who wished to play the latest games on an MS-DOS machine really did need to know this stuff, or at least have a friend who did." Jag använde den när jag intervjuade herrn. Och nu använder jag den igen, eftersom den har med dagens ämne att göra. Men först några ord om ett oerhört mycket bättre spel …

När Ultima Underworld lanserades 1992 kunde vem som helst se att det var ett fantastiskt spel. Trettio år senare kan man konstatera att det dessutom var en milsten: Ett rollspel i fantasymiljö där man gick omkring i en tredimensionell miljö. "Mjukt", eller vad man ska säga, inte stegvis som i Dungeon Master. UU var visserligen inte världens allra första shooter i första person, men de tidigare försöken kommer inte i närheten. UU lanserades rentav ett par månader före FPS:en Wolfenstein 3d, som var långt mycket enklare på alla sätt. Vilket sannerligen inte är nedvärderande, jag har suttit en hel del med W3D och det är roligt och bra, men Ultima Underworld är det inte.

Men det var inte det jag skulle tala om.

En kompis köpte UU så fort det kom ut. Det var förvisso ett spel som krävde sin maskin, med megahertz, megabyte, grafik och allt vad det var. Men det var inga problem, för han hade precis skaffat en ny fin PC, med prestanda så det räckte och blev över. Men … Och nu kommer det jag ska tala om.

För att sammanfatta grunderna hade en PC i början av 1990-talet inte en sorts minne utan flera. Detaljerna är många och ohyggliga, och jag har lyckats förtränga det mesta. Den viktigaste sortens minne kallades "konventionellt minne", och utgjorde de 640 kB som var enklast att använda för maskinen*. Sedan fanns det 384 k high memory. Och så fanns det EMS, egentligen en teknik som användes för att komma åt minne över 1 megabyte. Och så fanns det XMS, som gjorde samma sak på ett annorlunda sätt. Ja, det var väl det viktigaste.

För att kunna köra ett spel (säger tidens moderna, som var något att snacka om, som UU) behövde datorn ha en viss mängd konventionellt minne tillgängligt. Kruxet var att de där 640 kilobytesen även behövdes för annat; drivrutiner och grejs som var nödvändigt för att datorn skulle kunna använda ljudkortet, eller grafikkortet, eller kunna starta över huvud taget. Som drivrutiner för att hantera minne utöver 1 megabyte; jomen, datorn krävde särskilda drivrutiner för att hantera allt sitt minne.

Free RAM. You must have a least 640K och low RAM (memory) to play ULTIMA Underworld. Of that 640K, at least 522K of low memory must be available at the DOS prompt to run the minimum game configuration. Other configurations may require as much as 577K free.

- Ultima Underworld: The Stygian Abyss – Install guide

Om det inte fanns plats i datorns konventionella minne, om man var så mycket som en (1) futtig byte kort, ja, då kunde man inte starta spelet. Om det samtidigt fanns flera megabyte ledigt RAM i datorn spelade ingen roll. Det behövdes tillräckligt mycket minne av rätt sort. Och då hjälpte det inte hur många extrachip man knölat in.

Nu kommer vi till de två centrala filerna: AUTOEXEC.BAT och CONFIG.SYS. När en dator med MS-DOS startar är det första den gör att leta reda på dessa två textfiler. Där finns instruktioner för vad datorn ska göra innan den gör något annat. Det viktigaste här är att de laddar drivrutiner och anger diverse inställningar. Genom att ställa in vad som skulle laddas och vart, och inte minst att utesluta saker som inte var absolut nödvändiga, kunde man frigöra konventionellt minne. Till exempel lade man alltid in raden "DOS=HIGH" som flyttade MS-DOS från det värdefulla konventionella minnet till high memory. Ännu bättre var "DOS=HIGH,UMB", där jag glömt vad UMB var och poängen med det hela, och jag vägrar att ta reda på det, men det var något bra. Man flyttade så mycket man kunde med LH/LOADHIGH eller DEVICEHIGH så de också hamnade i high memory. Med mera. Mycket mera …

Redigering av AUTOEXEC.BAT i vanliga editorn

Man skapade de där filerna och lade dem på en diskett. När man startade datorn med disketten isatt använde den filerna på disketten för att komma igång (istället för att som vanligt använda de som låg på hårddisken). Sedan fick man sin dom: Fanns det tillräckligt mycket minne för att starta spelet? Ofta var det första svaret nej. Då fick man ta fram editorn igen, öppna AUTOEXEC och CONFIG, mecka och pilla och försöka få bort så mycket som möjligt, knö och dona.

Dessa så kallade bootdisketter kunde inte skickas ut i förpackningarna. De behövde skräddarsys – verkligen anpassas för det aktuella systemet – beroende på DOS-version, grafik- och ljudkort, mus, och vilka specialare man nu höll sig med. Din bootdiskett behövde inte alls fungera för din granne och omvänt. Du behövde göra din egen bootdiskett, eller ha en kompis som behärskade det hela.

Detta var en konst och en vetenskap, av Guds nåde. Det skrevs massor av tips & tricks. Webben fanns ju ännu inte bara nätt och jämt, men många insatta hade tillgång till Internet där det gick att gräva fram saker och ting. Den digitala antikvariens sida ovan har en del. Men detaljerna är inte särskilt intressanta, jag har dessutom förträngt det mesta som sagt; grejen är att det var krävande, även om man visste någorlunda vad man gjorde.

Vad jag fortfarande inte kan komma runt, och som är anledningen till att jag alls skriver denna bloggpost, är att allt detta inte var något esoteriskt hacker-nöje eller så; inte heller var det särskilt roligt eller spännande. Det var helt nödvändigt för att få igång dataspel på en PC. Kanske inte de allra enklaste, men alla stora och omtalade, affischnamnen – som Ultima Underworld. Sådana som kunde köpas för rätt grova pengar i vanliga affärer. På denna besynnerliga grund vilade den bransch som PC-spel utgjorde.

Hur stod man ut? Många gjorde det inte, utan höll sig till spelkonsoller där det, hör och häpna, inte behövde installeras eller highloadas eller donas det minsta, utan där man helt enkelt lade in sina nya spel och körde igång dem. Men tillräckligt många stod ut med det hela för att hjulen skulle snurra.

Det var först när Windows 95 slog igenom som fnulandet började försvinna.

Idag kan man spela gamla DOS-spel, inklusive Ultima Underworld, utan att för en sekund bekymra sig för AUTOEXEC, CONFIG, EMS, XMS, UMB osv osv. DOSbox sköter allt. Vilket är värt en tanke: Utan en smart emulator hade alla de där spelen varit omöjliga att få igång idag.

Jag ska inte utesluta att det finns fossila hårdingar som får ut någon sorts nostalgi-masochism av att pussla med kilobytesen. (Utöver de som meckar med Counter Strike, för av någon anledning flödar nätet över av tips om hur man ställer in de här sakerna för just Counter Strike: Global Offensive.) Alla andra som minns den surrealistiska tiden, då det krävdes rätt så ingående kunskaper och allra minst en del pill för att få igång ett vanligt köpespel på en aldrig så kompetent dator, är bara glada att slippa den och vill aldrig mer dit.


Mer om PC-minnen: The 640K memory limit of MS-DOS, XtoF 9 mars 2018 – jag tror inte att det går att skriva kortare om det ämnet och ändå få med det väsentliga.


* Att konventionellt minne kunde ligga på max 640 kB, och den heta irritation som allt minnestrasslande skapade under åren, gav upphov till myt-citatet 640 k borde räcka för vem som helst. Det tillskrivs som regel Mr Gates. Utöver alla andra försvårande omständigheter som indikerar att han inte kan ha sagt det på allvar tillkommer att Microsoft inte hade med designen att göra. Den var IBM:s verk.