(H)őstörténet: 640 kilobájt elég kell, hogy legyen? – A DOS korszak és a memóriabűvészkedés művészete

memóriakezelés régen

A számítástechnika hőskorában a számítógép-tulajdonos nemcsak felhasználó volt, hanem rendszergazda, szerelő, programozó és varázsló egy személyben. Különösen akkor, ha MS-DOS-t használt, és mondjuk egy Wing Commander vagy Ultima VII futtatása volt a cél… mert akkor jött a valódi kihívás: elég-e a 640 KB?

Akkoriban (a 90-es években) az MS-DOS volt PC-ken a legelterjedtebb operációs rendszer, amely alapesetben 640kbyte (a kbyte a mai gigabyte-os méret milliomod része) rendszermemóriát engedélyezett használni.

💾 Mi az a CONFIG.SYS és AUTOEXEC.BAT?

A DOS nem egy modern, mindent elrejtő operációs rendszer volt. A CONFIG.SYS és az AUTOEXEC.BAT a rendszer indulásakor lefutó parancsfájlok voltak:

CONFIG.SYS: rendszerkomponenseket, illesztőprogramokat töltött be (pl. memóriakezelő, CD-ROM driver, egér)

AUTOEXEC.BAT: automatikusan végrehajtandó parancsokat, környezeti változókat, programindításokat tartalmazott (pl. SET PATH, PROMPT, LH, MSCDEX, stb.)

🧠 A memóriaharc: konvencionális, felső, kibővített, bővített...

Az IBM PC-k világában a 640 KB volt a „konvencionális memória” – minden programnak ebbe kellett beférnie.

Csakhogy a gép nemcsak a játékokat kellett kiszolgálja, hanem:

    az egérmeghajtót,
    a hangkártya drivert,
    a CD-ROM kezelőt,
    és még a DOS-t is.

Ezért a maradék sokszor 500 KB alá csökkent – egy Dark Forces vagy X-Wing pedig minimum 580 KB-ot követelt. Jött hát a bűvészkedés:


🧰 Trükkök, amelyekkel "csalhattunk"

Korabeli CONFIG.SYS és AUTOEXEC.BAT

HIMEM.SYS
A felső (high) memória eléréséhez kellett. Betöltötte az Extended Memory Spec (XMS) kezelőt.

EMM386.EXE
Lehetővé tette a kibővített memória (Expanded Memory – EMS) emulációját és a felső memória (Upper Memory Blocks – UMB) kihasználását.

LOADHIGH vagy LH
Az AUTOEXEC.BAT és CONFIG.SYS kulcsparancsa – a kisebb programokat (egér, CD-ROM driver stb.) "felküldte" a felső memóriába, így több maradt a 640 KB-ból a játékoknak.

DEVICEHIGH
Ugyanaz, mint a DEVICE, de a CONFIG.SYS fájlban – ez is a felső memória jobb kihasználását segítette.

🧩 Egy tipikus "optimalizált" konfiguráció

REM CONFIG.SYS
DEVICE=HIMEM.SYS
DEVICE=EMM386.EXE NOEMS
DOS=HIGH,UMB
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\CDROM\OAKCDROM.SYS /D:MSCD001

REM AUTOEXEC.BAT
@ECHO OFF
LH C:\DOS\MOUSE.COM
LH C:\DOS\MSCDEX.EXE /D:MSCD001
SET PATH=C:\DOS;C:\GAMES

Ezzel már el lehetett érni 600–610 KB szabad memóriát – pont elég volt, hogy egy válogatott játék elinduljon.

A legizzasztóbb harcom a Leisure Suit Larry 6 kapcsán folytatódott le, amelynek ha jól emlékszem 615KB memóriára volt szüksége, hogy elinduljon. Azt hiszem 630KB-ot sikerült összehoznom, ami hihetetlen teljesítmény volt 1993-ban.


🕹️ Miért kellett ez egyáltalán?

Korabeli boot menü 

Mert a DOS nem multitasking rendszer volt. Nem volt memóriavédelem, sem automatikus drivermanagement. A játékok a teljes gép fölött akartak uralkodni – és sokszor nem is mentek, ha nem kapták meg a 580 KB-ot. A profik külön boot menu-t hoztak létre, ahol lehetett választani:

    „CD-s játékokhoz”
    „EMS memória kell”
    „Ultima VII mód (NO EMS!)”
    „Windows 3.1 mód”

🎓 Tudás kellett, nem kevés

A 90-es évek első felében PC-tulajdonosnak lenni nem csak státusz volt – hanem kompetencia. Tudni kellett, melyik driver mit csinál, hogyan lehet egy programot a felső memóriába tolni, mi a különbség az XMS és EMS között, sőt néha még assembler kódú memóriateszterek is előkerültek.

Akit érdekeltek a részletek, a PC Guru, Chip, vagy a Commodore Világ hasábjain kutatta a megoldásokat – és a sikerélmény, amikor végre elindult a játék, semmihez sem volt fogható.

🔚 A bűvészkedés kora volt

Ma már egy játék több gigabájtos, és ha nem indul el, általában nem a config.ini fájlt piszkáljuk, hanem frissítjük a drivert. De volt egy korszak, amikor minden elindított játék győzelem volt a rendszer felett. És ebben a győzelemben sokszor az AUTOEXEC.BAT és a CONFIG.SYS volt a csatafront.

Ha te is átélted ezt a korszakot, mesélj! Melyik játékkal gyűlt meg a legjobban a bajod?

 

Megjegyzések