Организация стартового меню
с помощью файлов config.sys и autoexec.bat.(2 лекция - 52:00)
Файл
config.sys должен содержать структуру, он должен быть разбит на
блоки. В каждом из блоков будет находиться свой набор директив. У каждого блока
существует свое имя, которое заключается в []. Причем
первый блок имеет строго определенное имя ([MENU]) Файл config.sys, если он содержит стартовое меню, должен
начинаться с имени первого блока и в этом первом блоке мы указываем набор тех
возможностей, набор пунктов меню, которые мы хотим создать. Предположим, что мы
при загрузке ОС хотим увидеть на экране две точки, два пункта стартового меню.
В первом пункте стартового меню мы хотим создать виртуальный диск (V-D), а во втором
пункте стартового меню, мы хотим организовать оптимизацию стандартной памяти (M-H). Т.е. когда мы
запустим ОС, на экране мы увидим две точки. Мы можем выбрать между ними. Нажать
клавишу ввод и загрузиться вариант, который мы выбрали. Напишем пример файла config.sys, который
содержит два пункта стартового меню, первый из них позволяет создать
виртуальный диск, а второй позволяет оптимизировать стандартную память.
Примечание: кроме первого пункта с обязательным именем может существовать еще один пункт ([COMMON]), содержащий набор директив, которые будут
загружаться самые первые, вне зависимости от того какой пункт меню мы выберем.
При загрузке какого-либо пункта меню ОС создает переменную (config) и этой системной переменной ОС присваивает имя того
блока, который мы выберем. Напишем пример такого стартового меню: мы хотим создать два пункта стартового меню,
следовательно, должно быть две директивы
MENUITEM. Первый параметр - это имя блока (B1, B2), а второй
параметр - это та надпись, которую мы хотим увидеть (V-D, M-H). Мы можем использовать директиву MENU COLOR для
оформления стартового меню. Она является не обязательной, т.е. если мы не
используем ее, то у нас на черном фоне будут белые символы. Далее идет общий
блок ([COMMON]), он будет выполняться всегда, вне зависимости от
того, какой вариант загрузки мы выберем. Сюда мы помещаем те директивы,
которые, как правило, мы всегда располагаем вначале файла config.sys. Это
директивы, позволяющие работать с старшей (DEVICE=C:\DOS\HIMEM.sys) и верхней памятью (DEVICE=C:\DOS\EMM386.exe RAM). Дальше мы начинаем использовать конкретные пункты
меню. Т.е. первый блок, мы указываем то имя, которое мы дали первой директиве
([B1]). Предположим, что в этом случае мы хотим
организовать 30 одновременно открытых файлов (Files=30) и предположим мы хотим организовать 90 буферов (Buffers=90). Предположим мы хотим получить доступ к CD-ROMу (Device=C:\DOS\IDE.SYS D:/MSCD000) и затем предположим, мы хотим создать виртуальный
диск (Device=C:\DOS\Ramdrive.SYS 2000 /E). Второй
пункт меню, его имя мы также определили в директиве ([B2]). Предположим, что в этом случае мы хотим 20 одновременно открытых
файлов(Files=20), предположим, что мы хотим организовать 30 буферов
(Buffers=30), предположим ,что мы
хотим загрузить в старшую память драйвер CD-ROMa (DEVICEHIGH=C:\DOS\IDE.SYS D:\MSCD000), и хотим
оптимизировать стандартную память, т.е. переместить в верхнюю и старшую память блоки файлов IO.SYS и MSDOS.SYS, а какое
количество блоков, это ОС определит сама (DOS=HIGH,UMB), ну и предположим, что мы хотим установить российские
стандарты (COUNTRY=007,866, C:\DOS\COUNTRY.SYS). Рассмотренный пример файла config.sys позволяет
выбрать какой-то вариант загрузки, при этом создается системная переменная,
которая доступна любым программам, поскольку она принадлежит самой ОС. С
помощью этой системной переменной, мы можем организовать связи между файлом config.sys и файлом autoexec.bat. Т.е. вначале
загружается файл config.sys, а потом, уже значительно позже, после загрузки command.com загружается
файл autoexec.bat. Для того, чтобы передать сюда информацию о том, какой вариант
загрузки мы выбрали, мы используем системную переменную, ей присваивается имя
пункта данного меню, который мы выбрали. Как правило, если у нас имеется
стартовое меню, то файл autoexec.bat также содержит некоторую структуру. Т.е. его вариант
стартового меню, у нас содержится какой-то набор вариантов тех или иных
программ или параметров. Рассмотрим пример файла autoexec.bat. Он содержит
некоторую структуру, т.е. у нас есть два пункта стартового меню в файле config.sys, но теперь мы
хотим, чтобы похожая структура была в файле autoexec.bat. Это также
текстовый файл, который может быть создан в текстовом редакторе, просто набор
команд. Первая команда - это команда перехода на метку и мы в качестве метки
указываем то значение, которое содержится в нашей переменной connfig, а синтаксис обращения к
значению переменной следующий - имя переменной слева и справа без пробелов
ставим % (GO TO %config%). Нам нужно перейти на метку, а config это одни из пунктов меню, который мы выбрали. Первый
пункт меню мы выбрали В1 и мы должны здесь что-то осуществить, предположим, что в
первом варианте мы выполняем необходимые команды, причем мы загружаем их в
стандартную память, а во втором случае мы будем загружать эти же команды в
старшую память. В начале мы говорим, что хотим подключить CD-ROM (С:\DOS\MSCDEX.EXE /D:MSCD000 /v). Затем мы хотим подключить
русификатор и мышь (C:\DOS\Keyrus.COM, C:\DOS|MOUSE.COM). Затем мы
перейдем на метку В3.
Т.е.
мы вначале выбираем один из двух вариантов, а потом попадем в какую-то общую
метку для файла autoexec.bat. Следующая метка В2. Теперь мы будем делать тоже самое, но хотим загрузить в старшую
память (LH C:\DOS\MSCDEX.EXE /D:MSCD000 /v, LH C:\DOS\Keyrus.COM, LH C:\DOS\MOUSE.COM). И дальше мы пишем третью метку В3,
где мы хотим загрузить Нортон коммандер (С:\SYS\NC3\NC).