EMM386.EXE

Материал из Old-DOS Wiki
Версия от 09:38, 13 января 2021; Ctv (обсуждение | вклад) (Новая страница: «EMM386.EXE Обеспечивает доступ к области старших адресов и использует расширенную память, ч…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

EMM386.EXE

Обеспечивает доступ к области старших адресов и использует расширенную память, чтобы эмулировать дополнительную память (EMS). Этот драйвер должен быть загружен командой <DEVICE> в Вашем CONFIG.SYS файле и может использоваться только на компьютерах с процессором 80386 и выше.

EMM386 использует расширенную память, чтобы моделировать дополнительную память для программ, которые могут ее использовать. EMM386 также делает возможным загрузку программ и драйверов устройств в блоки старших адресов (UMBs).

Синтаксис

DEVICE=[drive:][path]EMM386.EXE [ON|OFF|AUTO] [memory] [MIN=size] [W=ON|W=OFF] [Mx|FRAME=address|/Pmmmm] [Pn=address] [X=mmmm-nnnn] [I=mmmm-nnnn] [B=address] [L=minXMS] [A=altregs] [H=handles] [D=nnn] [RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn] [NOHI] [ROM=mmmm-nnnn] [NOMOVEXBDA] [ALTBOOT]


Параметры

[drive:][path]

Определяет расположение EMM386. EXE файла.

[ON|OFF|AUTO]

Активизирует EMM386 драйвер (если установлено ON), или приостанавливает работу драйвера EMM386 (если установлено OFF), или переводит драйвер EMM386 в автоматический режим (если установлено AUTO). Автоматический режим допускает поддержку дополнительной памяти и поддержку блоков области старших адресов только тогда, когда программа запрашивает их. Значение по умолчанию ON. Используйте команду EMM386, чтобы изменить это значение после того, как EMM386 запустился.

memory

Определяет максимальное количество расширенной памяти (в килобайтах), которое Вы хотите использовать для организации дополнительной памяти и памяти виртуального управляющего программного интерфейса (EMS/VCPI). Это количество памяти выделяется дополнительно к непосредственно используемой UMBs и EMM386 памяти. Значения для нее находятся в диапазоне от 64 килобайт (число, кратное 64) до 32768 или количества доступной расширенной памяти. Значение по умолчанию - количество свободной расширенной памяти. Если Вы определяете переключатель NOEMS, значение по умолчанию - 0.

EMM386 округляет значение до самого близкого множителя 16.

Переключатели

MIN=размер

Определяет минимальное количество EMS/VCPI памяти (в килобайтах),которое будет обеспечивать EMM386, если этот объем памяти доступен. EMM386 резервирует это количество расширенной памяти для использования как EMS/VCPI памяти, когда установлена команда DEVICE = EMM386. EXE в вашем CONFIG.SYS файле. EMM386 способен обеспечить дополнительную EMS/VCPI память (до количества, определенного параметром MEMORY), если достаточно памяти XMS когда программа запрашивает EMS/VCPI память. Значения находятся в диапазоне 0 до значения, определенного параметром MEMORY. Значение по умолчанию - 256. Если Вы определяете переключатель NOEMS, значение по умолчанию - 0. Если значение MIN большее чем значение MEMORY, EMM386 использует значение, определенное MIN.

W=ON|W=OFF

Допускает или отключает поддержку сопроцессора Weitek. Настройка по умолчанию – W = OFF.

Mx

Определяет адрес страничного блока. Допустимые значения для x находятся в диапазоне 1 до 14. Следующий список показывает каждое значение и связанный базовый адрес в шестнадцатеричном формате (h - признак шестнадцатеричного числа):

1 => C000h 8 => DC00h 2 => C400h 9 => E000h 3 => C800h 10 => 8000h 4 => CC00h 11 => 8400h 5 => D000h 12 => 8800h 6 => D400h 13 => 8C00h 7 => D800h 14 => 9000h Значения в диапазоне от 10 до 14 должны использоваться только на компьютерах, которые имеют 512КБ памяти.

FRAME=address

Определяет непосредственно начало смещения страничного блока. Чтобы определять специфический адрес начала смещения для страничного блока, используйте ключ FRAME и определите адрес, с которого Вы хотите установить начало смещения. Допустимые значения для адреса находятся в диапазонах, от 8000h до 9000h и от C000h до E000h, с приращением 400h. Чтобы установить дополнительную память и отключать страничный блок, Вы можете определять FRAME = NONE; однако, при этом некоторые программы, которые требуют дополнительную память, могут работать неправильно.

/Pmmmm

Определяет адрес страничного блока. Допустимые значения для mmmm находятся в диапазонах от 8000h до 9000h и от C000h до E000h, с приращением 400h.

Pn=address

Определяет адрес сегмента специальной страницы, где n - номер страницы, которую Вы определяете, а адрес - это сегмент, который Вы адресуете. Допустимые значения для n находятся в диапазоне 0 до 255. Допустимые значения для адреса находятся в диапазонах, от 8000h до 9C00h и от C000h до EC00h, с приращением 400h. Адреса для страниц от 0 до 3 должны быть непрерывными, чтобы обеспечить совместимость с версией 3.2 Спецификации дополнительной памяти Lotus/Intel/Microsoft (LIM EMS-памяти). Если Вы используете ключ Mx, ключ FRAME или ключ /Pmmmm, Вы не можете определять адреса для страниц 0 до 3 переключателем /Pn.

X=mmmm-nnnn

Предотвращает использование EMM386 специфического диапазона адресов сегмента для страниц EMS-памяти или для UMBS. Допустимые значения для mmmm и nnnn находятся в диапазоне от A000h до FFFFH и округляются до ближайшей границы в 4 килобайта. Ключ X имеет приоритет над другими ключами в случае пересечения двух диапазонов.

I=mmmm-nnnn

Определяет диапазоны сегментных адресов для использования (включая) страницы EMS-памяти или для UMBS. Допустимые значения для mmmm и nnnn находятся в диапазоне A000h до FFFFH и округлены до ближайшей границы в 4 килобайта. Ключ X имеет приоритет над этим ключом, если два диапазона накладываются.

B=address

Определяет самый низший адрес сегмента, доступный для "банков" EMS-памяти (подкачка страниц в 16 килобайт). Допустимые значения находятся в диапазоне от 1000h до 4000h. Значение по умолчанию 4000h.

l=minXMS

Гарантирует, что определенное количество (в килобайтах) расширенной памяти будет доступно, когда EMM386 будет загружен. Значение по умолчанию - 0.

A=altregs

Определяет, сколько быстрых наборов альтернативных регистров (используемый для многозадачного режима) Вы хотите распределить драйвером EMM386. Допустимые значения находятся в диапазоне 0 до 254. Значение по умолчанию - 7. Каждый альтернативный набор регистров добавляет приблизительно 200 байтов к размеру в памяти в EMM386.

H=handles

Определяет, сколько дескрипторов EMM386 может использовать. Допустимые значения находятся в диапазоне от 2 до 255. Значение по умолчанию - 64.

D=nnn

Определяет, сколько килобайтов памяти должны быть зарезервированы для буферизированного прямого доступа к памяти (DMA). Исключая гибкий диск DMA, это значение определяет самый большой блок памяти для передачи с помощью DMA, которая происходит при активированном EMM386. Допустимые значения для nnn находятся в диапазоне от 16 до 256. Значение по умолчанию - 32.

RAM=mmmm-nnnn

Определяет диапазон сегментных адресов для использования UMBs при поддержке EMS-памяти. Если Вы не определяете этот диапазон, EMM386 использует весь доступное пространство адаптера, чтобы создать UMBs и страничный блок для EMS-памяти.

NOEMS

Обеспечивает доступ к области старших адресов, но предотвращает доступ к дополнительной памяти.

NOVCPI

Отключает поддержку для VCPI прикладных программ. Этот ключ должен использоваться одновременно с ключом NOEMS. Если Вы устанавливаете ключ NOVCPI без установки ключа NOEMS, EMM386 не отключает поддержку VCPI. Если Вы определяете оба ключа, EMM386 игнорируют параметр MEMORY и ключ MIN. Отключение поддержки для прикладных программ VCPI уменьшает количество распределенной расширенной памяти.

HIGHSCAN

Определяет, что EMM386 производит дополнительную проверку для определения доступности области старших адресов для создания UMBs или окон EMS-памяти. На некоторых компьютерах использование этого ключа не приводит к какому-либо действию и не заставляет EMM386 проверять доступность области старших адресов, даже когда этой памяти нет. В результате чего Ваш компьютер останавливается и перестает отвечать на любые действия оператора (кроме кнопки Reset).

VERBOSE

Указывает EMM386, что нужно отображать состояние и сообщения об ошибках при загрузке. По умолчанию, EMM386 отображает сообщения только в том случае, если она сталкивается с ошибкой при загрузке. Вы можете сократить VERBOSE до V. (Чтобы отобразить сообщения состояния загрузки без добавления ключа VERBOSE, нажмите и удерживайте клавишу ALT, во время начала загрузки EMM386).

WIN=mmmm-nnnn

Резервирует определенный диапазон для сегментных адресов для Windows вместо EMM386. Допустимые значения для mmmm и nnnn находятся в диапазоне A000h через FFFFH и округлены до ближайшей границы в 4 килобайт. Ключ X имеет приоритет над ключом WIN, если два диапазона памяти перекрываются. Переключатель WIN имеет приоритет над ключами RAM, ROM, если их диапазоны перекрываются.

[NOHI]

Предотвращает загрузку EMM386 в область старших адресов. Обычно часть драйвера EMM386 загружена в область старших адресов. Определение этого ключа уменьшает доступную обычную память и увеличивает область старших адресов, доступную для UMBs.

[ROM=mmmm-nnnn]

Определяет диапазон сегментных адресов, которые EMM386 использует для теневой RAM, чтобы скопировать туда постоянную память (ROM). Допустимые значения для mmmm и nnnn находятся в диапазоне от A000h до FFFFh и округляются до ближайшей границы в 4 килобайт. Определение этого ключа сможет ускорить работы Вашей системы, если постоянная память еще не загрузилась в теневую оперативную память (RAM).

[NOMOVEXBDA]

Предотвращает перемещение данных расширенной базовой системы ввода-вывода драйвером EMM386 из обычной памяти в область старших адресов.

[ALTBOOT]

Указывает, что EMM386 используют альтернативный способ перезапуска Вашего компьютера, когда Вы нажимаете CTRL + ALT + DEL. Используйте этот ключ только тогда, когда Ваш компьютер останавливается ("зависает") или проявляет какое-либо необычное поведение в случае, когда загружен драйвер EMM386 и Вы нажимаете CTRL + ALT + DEL.



_ Примеры _ _ Синтаксис _

EMM386.EXE Notes

Совместное использование XMS и EMS-памяти Драйвер EMM386 обеспечивает доступ к EMS/VCPI памяти для программ, которые требуют ее, преобразуя XMS память EMS/VCPI память. Когда она загружена, EMM386 резервирует объем расширенной памяти, определенный ключом MIN для ее использования как EMS/VCPI памяти (значение по умолчанию - 256Кбайт). Как только это количество XMS памяти зарезервировано, оно всегда доступна как EMS/VCPI память и больше не доступна как XMS память. EMM386 способен преобразовать дополнительное количество XMS памяти в EMS/VCPI память до размера, определенного параметром MEMORY. При этом драйвер EMM386 возвращает дополнительное количество EMS/VCPI памяти обратно в XMS память, когда она больше не затребована прикладной программой.

Если Вы укажите ключ MIN = 0, драйвер EMM386 не резервирует XMS память для использования как дополнительной (EMS/VCPI) памяти. Вместо этого он преобразовывает XMS память в EMS/VCPI память только в том случае, когда программа запрашивает эту дополнительную память. Это освобождает XMS память в случае, когда EMS/VCPI память больше не нужна. Однако, EMM386 не сможет обеспечить выделение запрошенного количества EMS/VCPI памяти, если прикладные программы распределили всю запрошенную ими XMS память. Необходимо установить драйвер HIMEM.SYS до загрузки EMM386. EXE

Вы должны включить команду DEVICE для загрузки драйвера HIMEM.SYS в Ваш CONFIG.SYS файл перед командой DEVICE для загрузки драйвера EMM386. EXE.

Использование в EMM386 ключей управления памятью Если Вы не хотите использовать EMM386 для обеспечения доступа к области старших адресов, Вы не должны определить ключи памяти в командной строке DEVICE. Драйвер EMM386 обычно устанавливается и правильно работает со значениями по умолчанию. В некоторых случаях, однако, Вы хотели бы управлять использованием памяти этим драйвером. Например, Вы можете установить, где EMM386 поместит страничный блок EMS-памяти или какие сегменты он использует для страниц EMS-памяти. Вы можете использовать многие из этих ключей памяти так, как Вы хотите, в любом порядке.

ПРЕДОСТЕРЕЖЕНИЕ: Используйте параметры EMM386. EXE с осторожностью. Вы сделаете свой компьютер неработоспособным, если Вы зададите эти параметры неправильно.

Использование EMM386 для обеспечения доступа к области старших адресов

В дополнение к обеспечению доступа к дополнительной памяти, EMM386 обеспечивает доступ к области старших адресов, которую Вы можете использовать для загрузки некоторых программ и драйверов устройств. Вы должны использовать или ключ RAM или ключ NOEMS, чтобы обеспечить доступ к этой области старших адресов.

Чтобы дать MS-DOS доступ к области старших адресов, но не к дополнительной памяти, используйте ключ NOEMS. Чтобы давать MS-DOS доступ как к области старших адресов, так и к дополнительной памяти, используйте ключ RAM. Ключ RAM обеспечивает доступ к меньшему количеству области старших адресов для загружаемых драйверов устройств и программ, чем это делает ключ NOEMS. В любом случае, Вы должны включить команду DOS = UMB в Вашем CONFIG.SYS файле. Команда DEVICE для EMM386. EXE должна предшествовать любым командам DEVICEHIGH.

Использование EMM386 с Windows 3.1 Когда EMM386 используется с Windows 3.1, I, X, NOEMS, Mx, Pnnnn FRAME ключи имеют приоритет перед параметрами EMMINCLUDE, EMMEXCLUDE, и EMMPAGEFRAME настройки Windows в SYSTEM.INI файле. Изменение этих параметров настройки в SYSTEM.INI файле не дают никакого эффекта в случае, когда загружен драйвер EMM386.

Двойная буферизация SMARTDRV может потребоваться для использования EMM386

Если Вы имеете маленький интерфейс компьютерной системы (SCSI) или расширенный интерфейс устройств системы (ESDI) для жесткого диска или других устройств, Вам, вероятно, придется добавлять следующую строку в Ваш CONFIG.SYS файл:

device=smartdrv.exe /double_buffer

Добавьте эту строку перед любыми инструкциями DEVICEHIGH и перед любыми инструкциями, которые загружают устанавливаемые драйверы устройств в дополнительную память. Эта инструкция дает возможность SCSI или EDSI контроллеру передавать информацию программам, которые используют область старших адресов или дополнительную память.



_ Синтаксис _ _ Замечания _


EMM386. EXE Примеры

Чтобы запустить драйвер EMM386 как эмулятор дополнительной памяти, используя значения по умолчанию, добавьте следующие строки в Ваш CONFIG.SYS файл:

device=himem.sys

device=emm386.exe

Так как никакой маршрут не определен, MS-DOS ищет EMM386. EXE файл в корневой директории Вашего загрузочного диска.

Чтобы указать, что EMM386 распределяет максимум 4096 Кбайт и гарантированно 256Кбайт дополнительной памяти (значение по умолчанию), и определить, что файл EMM386.EXE размещен в каталоге DOS на диске C, добавлять следующую строку в Ваш CONFIG.SYS файл:

device=c:\dos\emm386.exe 4096

Чтобы эмулировать дополнительную память, указать, что начальный адрес ее смещения для страничного блока EMS-памяти равен D000h , и распределить 512КБ памяти EMM386, используйте одну из следующих команд:

device=emm386.exe 512 frame=d000

device=emm386.exe 512 p0=d000 p1=d400 p2=d800 p3=dc00

Предположив, что, в дополнение к этому набору условий Вы хотите предотвратить EMM386 от использования сегмента с адресами от E000h до EC00H. Чтобы сделать это, укажите, что EMM386 может использовать 127 дескрипторов, добавьте следующую строку в Ваш CONFIG.SYS файл:

device=emm386.exe 512 frame=d000 x=e000-ec00 h=127

Чтобы обеспечить доступ к области области адресов, но не выделять EMS/VCPI память, добавьте следующую строку в Вашему CONFIG.SYS файл:

device=emm386.exe noems novcpi

Чтобы обеспечить доступ к области старших адресов и обеспечивать поддержку EMS/VCPI памяти, добавьте следующую строку в Ваш CONFIG.SYS файл:

device=emm386.exe ram