Poprzednia strona

Porady - Pamięć

 

    1. Pamięć konwencjonalna
    2. Pamięć rozszerzona (EMS/XMS)

 

1. Pamięć konwencjonalna

Pamięć konwencjonalna to pierwsze 640 kB twojego komputera. Pamięć od 640 kB do 1MB nazywana jest gornym obszarem pamięci (upper memory). Pamięć powyżej 1MB to Pamięć rozszerzona. Większość programów i sterowników ładowanych w autoexec.bat i config.sys wczytuje się do pamięci konwencjonalnej. Niestety, większość starszych gier ma dość duże wymagania odnośnie wolnej pamięci konwencjonalnej (są takie, które nie uruchomią się , jeżeli nie będziemy mieli przynajmniej 610 kB wolnej pamięci) i stąd właśnie problemy. Jak sobie poradzić w takiej sytuacji? Należy jak najwięcej programów i sterowników załadować do pamięci górnej, zwalniając w ten sposób Pamięć konwencjonalną. (Problem w tym, że nie wszystkie programy da się załadowac do pamięci górnej...) W pliku autoexec.bat ładujemy więc programy komendą lh (wpisujac ją przed nazwą programu), zaś w config.sys używamy komendy devicehigh (zamiast standardowego device). Jeżli używasz polskiej wersji Windows 98, to odwiedź również stronę http://windows.online.pl/, z której zgraj specjalny patch poprawiający uszkodzony plik io.sys.

Oto przykładowe pliki autoexec.bat i config.sys, wraz z komentarzami:

CONFIG.SYS

rem a) Ładujemy manager obsługi pamięci rozszerzonej
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
rem b) Udostepniamy pamięć górną oraz obsługe pamięci typu EMS
DEVICE=C:\DOS\EMM386.EXE NOEMS
rem Parametr noems jak sama nazwa wskazuje nie daje EMS.
rem Sa w zasadzie 3 mozliwosci:
rem emm386 bez żadnych parametrów - tylko EMS
rem emm386 noems - tylko UMB
rem emm386 ram - EMS i UMB
DEVICEHIGH=C:\CDROM\TOSHV215.SYS /D:MSCD000 /C:A
rem d) Chcemy żeby DOS zajął się obsługą pamięci górnej (UMB) i chcemy
rem żeby załadował się tam przynajmniej czesciowo (HIGH)
DOS=HIGH,UMB
rem e) Jeszcze małe zmiany kosmetyczne (szybsze ladowanie)
SWITCHES=/F/N
rem f) Polska strona kodowa
DEVICEHIGH=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
COUNTRY=048,852,C:\DOS\COUNTRY.SYS
rem g) Ilość buforów dyskowych i jednocześnie otwartych plików (po
rem dokladniejsze info zapraszam do dokumentacji DOSa)
BUFFERS=30
FILES=50
rem h) Maksymalna ilość dysków , do ktorych bedziemy mieć dostęp
rem Mniejsza liczba = troszkę więcej pamięci...
LASTDRIVE=L

Uwagi:

  1. W przypadku Win9x komendy odpowiadające tym ze starego DOSa beda się znajdowaly w katalogu C:\WINDOWS\COMMAND. Należy odpowiednio pozmieniac scieżki.
  2. W Win9x EMM386.EXE i HIMEM.SYS znajdują się w katalogu C:\WINDOWS\
  3. Podając mniejsze wartości dla BUFFERS, FILES i LASTDRIVE możemy uzyskać odrobine więcej pamięci (64 bajty zostają zarezerwowane dla każdej wartości FILES, i 80 bajtów dla każdej wartości LASTDRIVE). Musimy jednak uważać, aby nie przydzielić tym zmiennym zbyt małych wartości (np. jeśli podamy za małą wartość FILES, niektóre gry i programy mogą się zacząć wieszać, lub nie bedą się chciały uruchomić)
  4. W przypadku Win9x zamiast FILES I BUFFERS możemy stosować FILESHIGH i BUFFERSHIGH - wtedy pamięć dla buforów i plików będzie przydzielana w górnym obszarze.

 

AUTOEXEC.BAT

rem a) Nie chcemy, żeby wykonywane w tym pliku komendy ukazywały się na
rem ekranie
@ECHO OFF
rem b) Standardowy znaczek zachęty
PROMPT $P$G
rem c) Ustawienie scieżki dostępu
SET PATH=C:\DOS;C:\DN
rem d) Ustawienie zmiennych systemowych (jak np. katalog tymczasowy
rem charakterystyka karty dzwiekowej...)
SET TEMP=C:\TRASH
SET BLASTER=A220 I5 D1 T4
SET TERM=ibmpc-color
rem e) Załadowanie programu smartdrv (szybszy dostęp do dysku)
LH SMARTDRV.EXE >NUL
rem f) Załadowanie sterownika CD-Romu
LH C:\DOS\MSCDEX.EXE /D:MSCD000 /L:J
rem g) Polska strona kodowa
MODE CON CODEPAGE PREPARE=((852) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=852
KEYB PL,,C:\DOS\KEYBRD2.SYS
rem h) Załadowanie pozostalych programów
LH C:\MOUSE\MOUSE.COM >NUL
LH C:\DN\DN.EXE

Uwagi:

  1. Te same co poprzednio
  2. W przypadku Win9x punktu e nie stosuje się
  3. Stosując powyższe pliki konfiguracyjne, pod DOSem 6.22 udało nam się uzyskać 616K wolnej pamięci konwencjonalnej (przy użyciu standardowych sterowników). Należy zauważyć, że spora część gier obejdzie się bez sterownika CD-ROM.

2. Pamięć rozszerzona (EMS/XMS)

EMS to pamięć typu Expanded, zas XMS to pamięć typu Extended. Te dwa pojęcia oznaczają różny sposób obsługi pamięci przez nasz komputer. Standardowo rozszerzona pamięć w naszych komputerach rozpoznawana jest jako XMS. Emulację pamięci EMS umożliwia nam program EMM386. Jeżeli całą naszą pamięć rozszerzoną chcemy zadeklarować jako XMS, wtedy w config.sys należy napisać:

DEVICE=C:\DOS\EMM386.EXE NOEMS

Jeżeli chcemy, żeby system operacyjny widział całą naszą pamięć jako EMS, wtedy w config.sys należy napisać:

DEVICE=C:\DOS\EMM386.EXE RAM

Jeżeli chcemy tylko niewielką ilość pamięci (np. 4Mb) zadeklarowac jako EMS, zaś pozostałą zostawić jako XMS, należy napisać:

DEVICE=C:\DOS\EMM386.EXE 4096

Uwagi:

Wszystkie ścieżki są napisane dla standardowego katalogu DOS. Jeżeli masz zainstalowany Windows 9x, to plik EMM386 znajduje się w katalogu z Windows 9x.