Что необходимо знать об AUTOEXEC.BAT и CONFIG.SYS
Эта небольшая глава посвящена файлам конфигурации системы, AUTOEXEC.BAT и CONFIG.SYS. Эти файлы обрабатываются только при начальной загрузке компьютера и определяют многие важнейшие параметры его работы. Неискушенный пользователь предпочитает не менять их содержимое, поскольку слабо представляет, что в них можно и нужно менять, а что следует оставить неприкосновенным. Большая часть проблем, которые возникают от неудачной настройки этих файлов, связана обычно с управлением памятью.
Трудно найти компьютер, на котором стоял бы всего 1 Мб памяти — 4 Мб стали широко распространенным стандартом. Архитектура процессоров семейства lпtel такова, что непосредственно процессором адресуется только 1 Мб, для работы с памятью за этими пределами приходится прибегать к различным ухищрениям.
Практически любая современная нормальная игра использует память, лежащую за пределами непосредственно адресуемого процессором 1 Мб. Обычно эта память, называемая расш1:1ренной, используется для хранения данных — например, для записи цифровой речи и звуковых эффектов, деталей графического оформления, но возможны и другие применения. Единой регламентации на способы использования этой памяти нет, доступ к ней может осуществляться несколькими разными способами в зависимости от используемого программного обеспечения. Наверняка вам доводилось сталкиваться с ситуациями, когда запущенная игра отказывается работать и выдает маловразумительные сообщения о том, что ей, дескать, не хватает памяти такого-то вида, или что процессор уже работает в защищенном режиме, или что-нибудь другое, удручающее неопытного пользователя.
Вопросы работы с расширенной памятью вызывают затруднения у непрофессионалов.
Причин здесь много. Во-первых, объяснить работу с памятью «на пальцах», без специальной терминологии и экскурсов в области системного программирования невозможно (во всяком случае, все наши попытки в этом неизменно кончались неудачей). Во-вторых, в отечественной литературе на эту тему существует жуткая неразбериха в терминологии, ·одно и то же в разных книжках называется пятью шестью разными терминами.
Даже с памятью, лежащей в пределах 1 Мб, не всегда все бывает просто. Часто на компьютере с неумело составленными файлами конфигурации при запуске игры оказывается, что ей не хватает 20-30 Кб традиционной, то есть не расширенной памяти. Вопрос: что делать в таких случаях?
Возможно, материал, изложенный ниже, поможет кому-то запустить игру, на которую давно уже махнули рукой из-за ее «капризности». Если вам хочется глубже вникнуть в суть происходящего, рекомендуем обратиться к специальной литературе, например:
А.В.Фролов, Г.В.Фролов, «Тонкая настройка и оптимизация MS DOS», Москва, «Диалог-МИФИ», 1993 г.
1. Игра требует больше XMS- или ЕМS-памяти »
1. Игра требует больше XMS- или ЕМS-памяти
Вы абсолютно уверены, что на вашем компьютере установлено 4 (или более) Мб памяти, но при запуске игра сообщает, что ей не хватает XMS (или EMS) памяти.
Фактически XMS и EMS это всего лишь два разных способа использовать одну и ту же расширенную память (ЕМS-ламять эмулируется на основе XMS). Для получения услуг XMS или EMS необходимо включить в файле конфигурации CONFIS.SYS всего лишь одну или две строки.
Самый простой вариант заключается в использовании распространенного менеджера памяти QEMM386.SYS фирмы «Quarterdeck Office Systems». Он сам разберется, что требуется программе в тот момент, когда лоступает запрос -XMS или EMS — и предоставит соответствующие услуги. Соответствующая строка в файле CONFIG.SYS должна выглядеть примерно так:
DEVICE=C:QEММQEММ386.SYS RАМ
Вы почти наверняка не ошибетесь, если среди всех строк вида DEVICE=… поставите эту строку первой. Исключения из этого правила очень редки и относятся, например, к использованию нестандартного драйвера загрузки ВООТ.
Эта строка является самой простейшей, но в подавляющем большинстве случаев вам не понадобится ничего другого.
Примерно те же функции выполняются парой драйверов HIMEM и ЕММ386.ЕХЕ фирмы «Microsoft». Тогда в файле CONFIG.SYS должны присутствовать строки такого вида:
DEVICE=C:DOSНIMEM.SYS
DEVICE=C:DOSEММ386.EXE RАМ
Такой вариант несколько менее эффективен, чем применение QEMM386.SYS, но зато он более надежен (применение QEMM386.SYS в редких случаях приводит к сбоям при запуске игр).
Ни в коем случае не следует мешать в CONFIG.SYS строки для этих двух вариантов!
Вместе они не станут работать лучше, а наоборот — кончится все зависанием компьютера и перезагрузкой.
Есть и другие менеджерьr памяти, но, помня известные слова Козьмы Пруткова, не будем пытаться объять необъятное. Книга посвящена все-таки играм, а не обзору системных программ.
Какой вариант из двух выбрать? Рекомендуем использовать QEMM386.SYS и одновременно быть готовым заменить его на пару НIМЕМ/ЕММ386 в случае возникновения проблем. Например, проблемы могут быть вызваны тем, что в описанной выше конфигурации QEММ386.SYS предоставляет программам меньший объем EMS. Или при запуске игры на экран вываливается содержимое регистров процессора и машина наглухо виснет… мало ли чего бывает.
Если игре по-прежнему не хватает расширенной памяти, выкиньте из файлов AUTOEXEC.BAT или CONFIG.SYS все программы, активно использующие расширенную память. В первую очередь это дисковый кэш SMARTDRV (.ЕХЕ или .SYS), драйвер виртуального диска RAМDRIVE.SYS и т.д.
2. Игра несовместима с любым менеджером памяти »
2. Игра несовместима с любым менеджером памяти
Как ни прискорбно, есть игры, которые управляют памятью самостоятельно и не выносят присутствия описанных выше менеджеров памяти. Например, это известнейший «Comanche: Maximum Overkill». Конечно, это вносит дополнительные трудности, но поделать здесь ничего нельзя. В таких случаях следует убрать из CONFIG.SYS все строки, относящиеся к менеджеру памяти, и предоставить игре самой решать, что ей нужно.
Как правило, такие случаи можно выявить по сообщениям типа «Не могу войти в режим виртуального процессора» и т.д.
3. Игре не хватает традиционной (conventional) памяти »
3. Игре не хватает традиционной (conventional) памяти
Если расширеннаs; память используется для вспомогательных целей, то сама программа выполняется в традиционной памяти, то есть в пределах начальных 640 Кб. Если эта память «замусорена» избытком запущенных программ, то для игры может остаться слишком мало места.
Какие же меры можно предпринять, чтобы освободить побольше традиционной памяти для загрузки программы? Наиболее очевидный nодход — завершение работы всех ненужных для работы игры резидентных программ, таких, как файловые оболочки (типа «Norton Commander») или драйверы русской клавиатуры. Предположим, с «Norton Commander» все обстоит предельно просто — нажал FlO, и он завершает работу. К сожалению, не кажда я программа умеет завершаться по нажатию определенных клавиш или их комбинации или же при запуске программы со специальным ключом. Тогда следует основательно почистить файлы AUTOEXEC.BAT и CONFIG.SYS и убрать из них все, без чего можно обойтись. Чаще всего среди таких программ различные драйверы русской клавиатуры, драйверы для работы с не стандартными форматами дискет (800.СОМ, 900.СОМ, FDREAD.EXE, PU_l 700.COM), драйверы SEТVER.EXE и COUNTRY.SYS и т.д.
Если это не помогает, придется заняться освобождением памяти за счет оптимизации ее использования. Строка
DOS=HIGH,UMB
добавленная где-нибудь в конце файла CONFIG.SYS (при условии, что там предварительно запущены упомянутые выше менеджеры памяти QEMM396.SYS или НIMEM.SYS/EMM386.EXE), заrрузит модули операционной системы в особые области, освобождая тем самым несколько драгоценных килобайт.
Есть еще пара возможностей для оптимизации использования памяти за счет загрузки программ за пределы столь нужных 640 Кб. Строка вида LH С: DOS 800.СОМ или, что то же самое LOADHIGH С: DOS 800.СОМ в файле AUTOEXEC.BAT, где вместо драйвера 800.СОМ может стоять практически любая другая резидентная программа, тоже позволяет освободить немного традиционной памяти. Но будьте осторожны, некоторые программы (например, SMARTDRV.EXE) почему-то не любят, когда их загружают подобным образом.
Аналогично можно загружать некоторые драйверы из CONFIG.SYS, тогда строка в файле вместо DEVICE=… начинается с DEVICEHIGH=… Подобным образом не следует поступать с самими менеджерами памяти, они всегда загружаютс я просто через DEVICE=».
В DOS версии 6.0 и 6.2 имеется специальная утилита под названием MemMaker, ее назначение состоит именно в оптимизации использования памяти. Если дело у вас идет плохо, попробуйте запустить утилиту и следовать всем ее инструкциям.
Создаваемые ей файлы конфигурации в подавляющем большинстве случаев работают вполне качественно.
4. Игра не может открыть нужное количество файлов »
4. Игра не может открыть нужное количество файлов
В системе MS DOS число одновременно открытых файлов в системе ограничено, а м ногим играм приходится держать довольно много открытых файлов. Этим количеством управляет строка FILES=». в файле CONFIG.SYS. Поставьте FILES=ЗO или FILES=40, этого почти наверняка хватит для любой разумной программы. Не стоит полагаться на значение, принятое по умолчанию.
Энциклопедия компьютерных игр, выпуск 1, 1995
«ФОЛИО-ПРЕСС»
Советуем почитать:
- Требования к видеокартам для классических игр под DOS
- О причинах пиратства и методах инсталляции
- Хаккеру на заметку: Как работать с Game Wizard
- Библиотека Пендора. Prophesy of Pendor 3
- COLONIZATION. Быстрый старт
- Команда вашей мечты. Как «по взрослому» создаются компьютерные игры
- F-15 STRIKE EAGLE III — руководство и прохождение. «PC GAMES», 1994