Windows 98 – episodul cu prea multă memorie RAM

April 28, 2020

Daca avem mai mult de 1GB de memorie RAM (și cu siguranță avem), Windows 98 va începe să se instaleze dar la prima repornire va da o eroare.  Aceasta eroare este însă cu totul remediabilă, revenim cu detalii în josul paginii. Dar… s-ar putea să nu ajungem așa departe. Există șanse ca atunci când rulăm setup.exe de pe CD sau dintr-un folder să primim eroarea din gif ul de mai jos. `Unable de to control A20 line. XMS driver not installed.` Ce se întâmplă? In DOS exista așa zisa memorie convențională, primii 640KB care sunt accesibili în mod direct în orice versiune de DOS. Mai exista și memoria superioara 640-1024KB, apoi memoria extinsă – tot ce este peste 1MB. Ei bine, procesul de instalare are nevoie de mai mult de 1MB pentru a putea porni. Daca primim eroarea de mai sus înseamna că nu are acces. Avem o soluție și pentru această problemă. De ce ar fi probleme cu memoria de peste 1MB? În primul rând MS-DOS are nevoie de un driver pentru a accesa mai mult de 1MB RAM.  Acest driver este furnizat de către Microsoft și poartă denumirea de HIMEM.SYS. Exista și alternative mai noi, precum HIMEMX.EXE ultima data updatat în 2015. Driverul de la Microsoft are aprox 32KB (in funcție de versiune) și in mod tradițional HIMEM.SYS se găsește fie direct în C:\ sau în C:\DOS dacă am instalat DOS, sau C:\Windows și este declarat în config.sys cu formula DEVICE=[cale]HIMEM.SYS. Il găsim și pe orice dischetă de DOS boot. O variantă executabilă a acestui driver se găsește pe CD-ul de instalare sub forma XMSMMGR.EXE și este folosită pentru a putea porni instalarea. Atât HIMEM.SYS cât și XMSMMGR.EXE încearcă să identifice ce tip de calculator avem, căci în funcție de tipul acestuia trebuie controlată o chestie ce se cheamă A20 line. Dacă in situația de față avem hardware-ul foarte nou și ne așteptăm ca managerul de memorie să nu înțeleagă ce se întâmplă, lucrurile erau și mai nebune în anii 90. Din aceste motive, în caz ca managerul de memorie nu-și dă seama cu ce tip de PC are de a face îi putem spune noi prin folosirea unui switch /M: urmat de tipul de mașină. De exemplu pe un HP Z220 am folosit următoarea formula:  DEVICE C:\HIMEM.SYS /M:14 . Daca ne uitam în tabelul alăturat, nr 14 indică un HP Vectra. Fară acest switch pe un PC HP Z220 echipat cu i7-3770 procesul de instalare se lovea de eroarea de mai sus. Pe de altă parte, pe un sistem cu 7 ani mai nou – un Ryzen 3900X si o placa de baza cu chipset X470 cu 32GB DDR4/3200Mhz – managerul de memorie a pornit instalarea din prima, fără sa mai fie nevoie sa folosim parametri suplimentari. In concluzie, dacă nu reușim să pornim instalarea direct de pe CD sau din folder, trebuie sa avem acces la memoria extinsă înainte de a rula setup.exe.  Dacă setup.exe are deja acces la memoria extinsă va trece direct la instalare si nu va mai porni XMSMMGR.EXE care, după cum am văzut mai sus nu se descurcă. Cum rezolvăm problema? De pe discheta de boot, copiem pe C:\ fisierele HIMEM.SYS si EDIT.COM

  • copy edit.com C:\
  • copy himem.sys C:\
Dupa ce avem fișierele dam comanda de mai jos. edit c:\config.sys Daca  exista deja un fisier config.sys în rădăcină acesta va fi editat, daca nu exista acesta va fi salvat cu denumirea config.sys Ei bine, dupa ce am editat/creat fisierul config.sys repornim calculatorul! La repornire, dupa ce managerul de memorie si-a intrat in dreptul, ce sa vezi? Minune! A pornit instalarea! Dupa ce am terminat prima etapa și Windows ne cere sa repornim calculatorul, o sa apara un mesaj frumos: Getting ready to run Windows for the first time… si imediat apare eroarea de jos:
In mod ironic, tocmai pentru ca avem prea multa memorie RAM suntem instiintati ca aceasta este insuficienta! Ce se intampla? La momentul lansării, un calculator tipic cu Windows 98 avea 32MB-64MB RAM. Windows 98 nu a fost gândit sa lucreze cu mai mult de 1GB RAM, iar faptul ca noi avem 32GB RAM consuma din spațiul limitat desemnat pentru maparea memoriei. Nu mai intram în detalii și rezolvam problema cu o comanda prin care limitam memoria fizica la 512MB. Este arhisuficient!1 Ca sa continuam instalarea repornim calculatorul și alegem din meniul Command prompt only
O sa ajungem iar la promptul DOS de unde sa dam comanda edit c:\windows\system.ini.
Ca sa putem edita acest fișier, am copiat din timp fisierul edit.com de pe sticul bootabil. In fișierul system.ini ne interesează sa introducem doua linii, la doua secțiuni diferite: La sectiunea [386Enh] introducem: MaxPhysPage=20000 (10000= 256MB, 20000 = 512MB, 30000=768MB, 40000=1GB)
Derulam pina capatul listei, iar si introducem urmatoarea linite la sectiunea [vcache] MaxFileCache=393216 Nu uitam sa salvam ALT + F ne va deschide meniul file.
  1. Primul calculator pe care am lucrat cu Windows 98 avea doar 16MB RAM. Un mega upgrade a fost atunci când i-am pus 64MB. Mi-a trecut de-a lungul anilor prin mâini, orice generație de hardware. Dar cel mai evident upgrade, după upgrade-ul la un accelerator VooDoo a fost atunci când am trecut de la 16MB RAM la 64MB. Țin minte că jucam proaspătul lansat  (și excelentul) joc Half-Life doar cu 16MB RAM. Jocul pornea, mergea OK, doar că existau pauze lungi și dese de încărcare în funcție de cum te mișcai prin nivel. Stai! Nu trebuia s-o iau pe ușa asta, că am mai fost pe aici! 30-40 de secunde să încarce, doar ca să revii la scena de mai înainte. În lipsă de memorie fizică, Windows-ul folosea din greu memoria virtuala aflata pe un hard disk 2GB foarte lent de altfel. Ei bine, când am pus 64MB RAM, încărcarea dura câteva secunde, era incredibil! Cei mai bine cheltulți bani ever! []

Comentarii

Nelamuriri? Intrebari?

Intreaba sau cauta raspunsul la sectiunea de intrebari si raspunsuri.