HIMEM.SYS
HIMEM.SYS — драйвер дополнительной (extended memory) и HMA-памяти для операционной системы MS-DOS, обеспечивающий поддержку дополнительной памяти (extended или expanded).
HIMEM.SYS был введён в состав MS-DOS 5.0 для возможности загрузки ядра операционной системы DOS в High Memory Area с целью увеличения размера доступной основной области памяти путём указания загрузки DOS=HIGH
в CONFIG.SYS.
HIMEM.SYS предоставляет доступ к оперативной памяти за пределами первого мегабайта пространства и потому драйвер необходим системам MS Windows9x/ME для загрузки графической части операционных систем. В FreeDOS соответствующий файл называется HIMEM.EXE и может загружаться из конфигурационных файлов FreeDOS с именами FDCONFIG.SYS или CONFIG.SYS.
Расширенное управление памятью
При использовании HIMEM.SYS становится возможным размещение в дополнительной (extended или expanded memory) области памяти части ядра MS-DOS, служебных таблиц системы и буфера ввода-вывода. Туда же можно загружать и COMMAND.COM. Если персональный компьютер сделан на микропроцессоре 80386, то также можно освободить основную память от большинства резидентных драйверов.
Изменение организации доступа к памяти в Windows NT резко ограничило применение менеджеров памяти, в том числе и HIMEM.SYS.
Использование команды
Для загрузки HIMEM.SYS под MS-DOS, в файл CONFIG.SYS (или CONFIG.NT для систем на основе Windows NT) добавляется строка:
(на 80286) | (на 80386 и далее) |
---|---|
DOS=HIGH | DOS=HIGH,UMB |
device=(drive:)(path)HIMEM.SYS | device=(drive:)(path)HIMEM.SYS |
DEVICE=EMM386.EXE RAM | |
DEVICEHIGH= ... |
где (drive:) и (path) — соответственно имя диска и путь к каталогу, где находится файл HIMEM.SYS.
Кроме того, для 80386 допускается команда LOADHIGH (LH).
Необязательные параметры драйвера HIMEM.SYS
Параметр | Объяснение |
---|---|
/A20CONTROL:ON | По умолчанию: OFF, то есть DOS управляет А20 только если другая программа не занимается тем же. |
/CPUCLOCK:ON | Этот параметр рекомендуется указывать, если в присутствии HIMEM.SYS часы замедляют работу. |
/HMAMIN=n | Если драйвер использует меньше (n) Кб памяти, он не будет вызван. 0<=n<=63. |
/INT15=n | Число кБ, резервируемое в дополнительной памяти для программ типа Paradox, QEMM и аналогичных. |
/MACHINE:код ЭВМ | (AT, PS2 и т. д.) Таблица кодов приводится в документации к MS-DOS 5.00. От кода зависит, какой обработчик А20 используется. |
/NUMHANDLES=n | Это максимальное число обработчиков доп. памяти. Требуется по 6 байт на блок. 1<=n<=128. |
/SHADOWRAM:OFF | Не копировать ROM-BIOS в RAM (OFF экономит память, но замедляет работу). По умолчанию: ON. |
Необязательные параметры драйвера EMM386.EXE (в CONFIG.SYS)
Параметр | Объяснение |
---|---|
память | - в кБ по умолчанию 256. |
Mкод | - код базового начального адреса EMS: 1,2,3,4 (C000,C400,C800,CC00) 5,6,7,8 (D000,D400,D800,DC00) 9 (E000) 10,11,12,13 (8000,8400,8800,8C00) 14 (9000) |
FRAME=адрес | — аналогично, явное задание базы EMS |
/Pадрес | - то же самое |
/Pn=адрес | - адрес сегмента страницы EMS n=0 | 1 | 2 | 3 | 254 | 255 |
/X=нач-кон | - не использовать этот участок (оба адреса — шестнадцатеричные числа) |
B=адрес | — нач. адрес для Bank switching (по умолчанию — 4000) |
L=n | — оставить (n) кБ как extended memory |
A=n | — число альтернативных регистров, от 0 до 254, по умолчанию 7 |
H=n | — число обработчиков, от 2 до 255, по умолчанию 64 |
RAM или NOEMS | - занять часть верхней памяти (640кБ-1МБ) |
Функциональность
Пример карты памяти MS-DOS после загрузки HIMEM.SYS
Максимально допустимый размер программы: 639,056 (624K) Наибольший свободный блок верхней памяти: 143,232 (140K) Резидентная часть MS-DOS загружена в сегмент HMA. Тип памяти Размер Занято Свободно ---------------- ----------- ----------- ----------- Обычная 655,360 16,288 639,072 Верхняя 158,208 14,976 143,232 Зарезервировано 0 0 0 Память XMS 32,282,112 275,968 32,006,144 ---------------- ----------- ----------- ----------- Всего памяти: 33,095,680 307,232 32,788,448 Ниже 1 МБ: 813,568 31,264 782,304 Имя Размер Обычная память Верхняя память -------- ---------------- ---------------- ---------------- SYSTEM 18,464 (18K) 10,656 (10K) 7,808 (8K) HIMEM 1,168 (1K) 1,168 (1K) 0 (0K) EMM386 4,256 (4K) 4,256 (4K) 0 (0K) COMMAND 7,168 (7K) 0 (0K) 7,168 (7K) Свободно 782,304 (764K) 639,072 (624K) 143,232 (140K)
Примечания
- Programmer’s Technical Reference for MS-DOS and the IBM PC
- Руководство пользователя
- Справочное руководство программиста