Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Операционная система OS/2 Warp

© Александр Фролов, Григорий Фролов
Том 20, М.: Диалог-МИФИ, 1993, 271 стр.

[Назад] [Содеожание] [Дальше]

6.2. Настройка виртуальной машины DOS

Теперь, когда мы научились создавать программные объекты Workplace Shell для программ DOS, посмотрим, как можно настроить параметры виртуальной машины, используемые для работы этих программ.

Блокнот "Settings"

Для настройки параметров виртуальной машины, которые будут использованы при работе с конкретной программой DOS, вам нужно выбрать из контекстного меню соответствующего объекта строку "Settings". При этом на экране появится блокнот "Settings" (рис. 6.10).

Рис. 6.10. Блокнот "Settings" для программы Norton Commander

Расскажем об использовании основных страниц этого блокнота.

Session

Страница Session (рис. 6.10) позволяет указать, будет ли программа DOS запущена в оконном или полноэкранном режиме, либо она будет минимизирована сразу после запуска. Кроме того, с помощью этой страницы вы сможете установить параметры виртуальной машины DOS.

Если включить переключатель "DOS full screen", программа DOS будет работать в полноэкранном режиме . При включении переключателя "DOS window" для работы программы DOS будет использован оконный режим .

При включении переключателя "Start minimized" сразу после запуска окно программы DOS будет минимизировано.

И, наконец, с помощью кнопки "DOS settings..." можно получить доступ к окну настройки параметров виртуальной машины DOS.

Program

С помощью страницы Program вы можете изменить путь к программному файлу, задать параметры и рабочий каталог (рис. 6.11).

Рис. 6.11. Страница Program

Window

Используя страницу Window (рис. 6.12) вы можете изменить поведение окна программы.

Рис. 6.12. Страница Window

Эта страница аналогична той, что используется для изменения поведения окон папок. Группа переключателей "Minimized button behavior" определяет действие кнопки минимизации окна. Окно может быть скрыто (для чего следует включить переключатель "Hide window"), минимизировано в окно приложения Minimized Window Viewer (переключатель "Minimize window to viewer") или минимизировано на поверхность рабочего стола ("Minimize window to desktop").

Переключатели в группе "Object open behavior" определяют действия, которые будут выполнены при попытке пользователя запустить еще раз уже запущенную программу, сделав двойной щелчок по ее пиктограмме. Если включен переключатель "Display existing window", будет показано окно запущенной ранее программы. Если же включить переключатель "Create new window", для программы будет создано новое окно (и новая виртуальная машина).

General

С помощью страницы General вы можете изменить пиктограмму, назначенную программе. Эта пиктограмма отображается в поле "Current icon" (рис. 6.13).

Рис. 6.13. Страница General

Нажав кнопку "Edit...", вы сможете отредактировать пиктограмму с помощью приложения Icon Editor (рис. 6.14). Это приложение мы оставляем вам для самостоятельного изучения.

Рис. 6.14. Редактирование пиктограммы при помощи приложения Icon Editor

Окно "DOS Settings"

Если в странице Session (рис. 6.10) нажать кнопку "DOS Settings", на экране появится диалоговая панель "DOS Settings - Categories", (рис. 6.15).

Рис. 6.15. Диалоговая панель "DOS Settings - Categories"

При помощи этой диалоговой панели вы можете ограничить набор изменяемых параметров виртуальной машины DOS, указав, например, что нужно устанавливать только параметры, имеющие отношение к клавиатуре (переключатель "DOS keyboard settings"), памяти ("DOS memory settings"), мыши ("DOS mouse and touch screen settings"), к принтеру ("DOS printer settings") или видеоадаптеру ("DOS video settings"). Если выбрать строку "All DOS settings", можно будет изменить все доступные параметры виртуальной машины DOS.

Итак, выберите нужный вам набор параметров и нажмите кнопку "Ok". На экране появится окно, в левой части которого расположен список параметров, а в правой - органы управления, с помощью которых эти параметры можно изменять (рис. 6.16).

Рис. 6.16. Изменение параметров виртуальной машины DOS

Приведем рекомендации по установке параметров.

COM_DIRECT_ACCESS

Параметр COM_DIRECT_ACCESS может иметь значения "On" или "Off". В первом случае программа получает прямой доступ к асинхронному последовательному адаптеру, во втором - работает через эмулятор. Если программа активно работает с адаптером (например, это терминальная программа), для улучшения временных характеристик мы рекомендуем установить значение "On".

COM_HOLD

Иногда бывает так, что одна программа открывает и инициализирует асинхронный последовательный адаптер, а другая после этого работает с ним. Если для параметра COM_HOLD установить значение "On", адаптер останется открытым до тех пор, пока программа не завершит свою работу. Вы можете воспользоваться этим и установить значение "On" для инициализирующей программы, а "Off" - для тех программ, которые будут работать с заранее открытым последовательным адаптером.

COM_RECEIVE_BUFFER_FLUSH

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

Возможные значения параметра COM_RECEIVE_BUFFER_FLUSH :

Параметр Описание
NONE Данные в буфере сохраняются
RECEIVE DATA INTERRUPT ENABLE Операционная система удаляет данные из буфера принимаемых данных, когда программа DOS разрешает прерывания по приему данных
SWITCH TO FOREGROUND Операционная система удаляет данные из буфера принимаемых данных, когда программа DOS переключается из фонового режима в основной режим
ALL Операционная система удаляет данные из буфера принимаемых данных, когда программа DOS переключается из фонового в основной режим или разрешает прерывания по приему данных

COM_SELECT

Параметр COM_SELECT используется для ограничения доступа программы DOS к асинхронным последовательным адаптерам.

Возможные значения параметра COM_SELECT :

Параметр Описание
NONE Во время работы программе DOS не доступен ни один асинхронный последовательный порт
ALL Программе DOS доступны все асинхронные последовательные порты
COM1 Программе DOS доступен только асинхронный последовательный порт COM1
COM2 - // - COM2
COM3 - // - COM3
COM4 - // - COM4

DOS_AUTOEXEC

Параметр DOS_AUTOEXEC позволяет указать путь к пакетному файлу, который получит управление при инициализации данной виртуальной машины DOS. По умолчанию это файл c:\autoexec.bat.

DOS_BACKGROUND_EXECUTION

С помощью параметра DOS_BACKGROUND_EXECUTION вы можете разрешить или запретить работу виртуальной машины DOS в фоновом режиме. Если значение этого параметра равно "On", виртуальная машина будет продолжать работать в фоновом режиме (таким образом, можно запустить, например, форматирование дискеты и продолжить работу с другими программами). Если же значение параметра равно "Off", после переключения в фоновый режим виртуальная машина временно прекращает свою работу (что удобно для игр, в которых события развиваются с течением времени).

Если виртуальная машина используется для работы Win-OS/2 и при этом используется динамический обмен данными DDE , параметр должен иметь значение "On".

DOS_BREAK

Если параметр DOS_BREAK имеет значение "On", сеанс DOS может быть прерван с помощью комбинаций клавиш <Control+C> или <Control+Break>. Если же значение равно "Off", программа DOS не будет завершаться этим "силовым" методом.

DOS_DEVICE

Если для работы программы требуется загрузить какой-либо драйвер, вы можете добавить его имя, путь и параметры в список, который появляется в правой части диалоговой панели "DOS Settings" при выборе параметра DOS_DEVICE . При этом команду device указывать не надо.

В тех случаях, когда драйвер нужен всем сеансам DOS, его загрузку удобнее выполнять обычным образом через файл config.sys с помощью команды device .

DOS_FCBS

Параметр DOS_FCBS определяет максимальное количество блоков FCB , доступное программе DOS. По умолчанию этот параметр имеет значение 16, однако вы можете увеличить его до 255.

DOS_FCBS _KEEP

Этот параметр определяет минимальное количество блоков FCB , которые постоянно остаются открытыми (по умолчанию - 8 блоков, максимально - 255 блоков).

DOS_FILES

Параметр DOS_FILES определяет максимальное количество файлов, которые может открыть программа DOS. По умолчанию значение этого параметр равно 20, что недостаточно во многих случаях, особенно при работе с Win-OS/2 . Поэтому если ваша программа открывает много файлов, увеличьте значение параметра DOS_FILES до максимального - 255.

Заметим также, что при работе в среде Win-OS/2 , особенно при сохранении файлов, вы можете наблюдать появление сообщений о том, что на диске больше нет свободного пространства или что диск защищен от записи. И это несмотря на то что места достаточно и никакой защиты нет. Дело в том, что значение параметра DOS_FILES слишком мало . Увеличьте его до 255 и все станет нормально.

DOS_HIGH

Если установить значение параметра DOS_HIGH равным "On", ядро виртуальной машины DOS будет загружено выше границы первого Мбайта адресного пространства этой машины. В результате освободится больше места для программы и драйверов.

DOS_LASTDRIVE

Значением параметра DOS_LASTDRIVE является обозначение последнего логического диска, доступного программе DOS. По умолчанию это диск Z:.

DOS_RMSIZE

Параметр DOS_RMSIZE определяет объем оперативной памяти, доступной виртуальной машине DOS. По умолчанию этот объем равен 640 Кбайт, однако вы можете его уменьшить, если программе не нужно столько памяти. В этом случае другим программам и приложениям будет доступно больше виртуальной памяти.

DOS_SHELL

С помощью этого параметра вы можете указать имя и путь файла командного процессора для данного сеанса DOS. По умолчанию используется процессор os2/mdos/command.com.

DOS_STARTUP_DRIVE

Параметр DOS_STARTUP_DRIVE позволяет загружать DOS с дискеты или ее образа, созданного командой VMDISK (эта команда будет описана в конце текущей главы).

DOS_UMB

Если установить значение параметра DOS_UMB равным "On", резидентные программы и драйверы будут загружены в верхнюю область памяти.

DOS_VERSION

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

Если оно равно 255, программе будет постоянно возвращаться тот номер версии DOS, который указан в строке параметра DOS_VERSION . В противном случае это число определяет количество раз, которое программа при запросе будет "обманута" насчет версии DOS, после чего ей наконец-то удастся узнать истинный номер версии.

DPMI _DOS_API

Операционная система IBM OS/2 Warp может эмулировать для программ DOS интерфейс защищенного режима DPMI (DOS Protected Mode Interface ). Этот интерфейс используется многими программами и, в частности, системой Win-OS/2 .

Параметр DPMI _DOS_API определяет режим работы эмулятора DPMI и может иметь следующие значения:

Параметр Описание
AUTO Если программа DOS была создана с использованием расширителя DOS (DOS Extender), способного предоставлять интерфейс DPMI , нужно указать параметр AUTO. Это значение можно указывать и в тех случаях, когда программа не пользуется интерфейсом DPMI
ENABLED Если программа может работать только при наличии в DOS сервера DPMI (т. е. программы, предоставляющей сервис DPMI), необходимо указать значение ENABLED. В этом случае в роли сервера DPMI будет выступать эмулятор DOS, встроенный в IBM OS/2 Warp
DISABLED Это значение нужно указывать в том случае, если программа не использует DPMI

DPMI _MEMORY_LIMIT

Параметр DPMI _MEMORY_LIMIT определяет размер памяти (в Мбайтах), доступной программам через интерфейс DPMI. По умолчанию этот размер равен 4 Мбайт, однако вы можете увеличить его до 512 Мбайт (разумеется, при этом будет использована виртуальная память).

DPMI _NETWORK_BUFF_SIZE

С помощью параметра DPMI _NETWORK_BUFF_SIZE можно указать размер сетевого буфера трансляции (в Кбайтах). По умолчанию размер этого буфера равен 8 Кбайт. Если у вас возникли проблемы при работе с приложениями Microsoft Windows, передающими данные по сети, можно попробовать увеличить размер этого буфера до 64 Кбайт.

EMS _FRAME_LOCATION

Как известно, для адресации дополнительной памяти (Expanded Memory) используется окно размером 64 Кбайта (в спецификации EMS , созданной фирмами Lotus, Intel, Microsoft). Это окно находится выше границы 640 Кбайт, но ниже границы 1 Мбайт. Такое обстоятельство может привести к конфликту с драйверами устройств, использующими указанное адресное пространство для работы с периферийными устройствами.

С помощью параметра EMS _FRAME_LOCATION вы можете определить расположение окна, указав одно из следующих значений:

Параметр Описание
AUTO Автоматическое определение расположения окна
NONE Отключение памяти EMS
C000, C400, C800, CC00, D000, D400, D800, DC00, 8000, 8400, 8800, 8C00, 9000 Фиксированное расположение окна

EMS _HIGH_OS_MAP_REGION

Размер дополнительной области памяти EMS в Кбайтах (от 0 до 96 Кбайт).

EMS _LOW_OS_MAP_REGION

С помощью параметра EMS _LOW_OS_MAP_REGION можно указать размер отображаемой стандартной памяти (от 0 до 576 Кбайт).

EMS _MEMORY_LIMIT

Параметр EMS _MEMORY_LIMIT предназначен для установки размера дополнительной памяти EMS, доступной программе. Вы можете указать значения от 0 до 32768 Кбайт. По умолчанию этот параметр равен 2048 Кбайт.

HW_NOSOUND

Параметр HW_NOSOUND может принимать значения "On" или "Off". Если он равен "On", программа не сможет генерировать звуки. Такой режим может быть полезен, например, для отключения музыкального сопровождения в игровых программах.

HW_ROM_TO_RAM

Если значение параметра HW_ROM_TO_RAM равно "On", программный код из BIOS копируется в оперативную память. Это обстоятельство можно использовать при отладке для установки точек прерывания внутри кода BIOS.

HW_TIMER

Установив значение параметра HW_TIMER в "On", вы предоставите программе прямой доступ к таймеру. Это имеет смысл для игровых программ, а также программ, работающих в реальном времени.

IDLE_SECONDS

Планировщик операционной системы IBM OS/2 Warp следит за активностью программ DOS, уменьшая приоритет неактивных приложений. Параметр IDLE_SECONDS определяет время неактивности программы DOS (в секундах), по прошествии которого ее приоритет уменьшается.

По умолчанию это время равно 0, поэтому, как только программа DOS становится неактивной (например, ожидает ввод с клавиатуры), ее приоритет сразу же понижается. Такое поведение может привести к замедлению работы игровых программ. В этом случае можно увеличить значение параметра IDLE_SECONDS (не более чем до 60 секунд).

IDLE_SENSITIVITY

Параметр IDLE_SENSITIVITY задает порог чувствительности планировщика к неактивности программы в процентах от максимальной частоты, с которой программа опрашивает ввод.

Если программа обращается к устройству ввода чаще, чем это задано в параметре IDLE_SENSITIVITY , планировщик полагает, что она неактивна и уменьшает ее приоритет. Если вам кажется, что программа работает медленно, попробуйте увеличить значение параметра IDLE_SENSITIVITY (по умолчанию это значение равно 75 процентов). При установке максимального значения (100 процентов), планировщик не проверяет активность задачи и, следовательно, не будет снижать ее приоритет даже в тех случаях, когда программа просто ожидает ввод данных с клавиатуры.

INT_DURING_IO

С помощью параметра INT_DURING_IO , принимающего значения "On" или "Off", вы можете, соответственно, разрешить или запретить прерывания во время чтения или записи файлов. Если ваша программа работает со средствами мультимедиа, установите значение параметра INT_DURING_IO равным "On".

KBD_ALTHOME_BYPASS

Если установить значение параметра KBD_ALTHOME_BYPASS равным "On", будет отключена возможность переключения режима работы программы DOS из оконного в полноэкранный и обратно при помощи комбинации клавиш <Alt+Home>. Это может потребоваться для тех программ, которые сами используют указанную комбинацию клавиш.

KBD_BUFFER_EXTEND

По умолчанию размер клавиатурного буфера равен 16 байт. Вы можете увеличить этот размер до 128 байт, если установите значение параметра KBD_BUFFER_EXTEND равным "On".

KBD_CTRL_BYPASS

Программа DOS может использовать такие комбинации клавиш, как <Control+Esc> и <Alt+Esc>. Первая из них используется в IBM OS/2 Warp для отображения списка окон Window List, вторая для переключения фокуса ввода между открытыми окнами.

Для того чтобы программа DOS могла сама работать с указанными комбинациями клавиш, вы должны установить правильное значение параметра KBD_CTRL_BYPASS . Приведем список возможных значений для этого параметра:

Параметр Описание
NONE Программе DOS не разрешается самостоятельно обрабатывать комбинации клавиш <Control+Esc> и <Alt+Esc>
ALT_ESC Программе DOS не передается комбинация клавиш <Alt+Esc>
CTRL_ESC Программе DOS не передается комбинация клавиш <Control+Esc>

KBD_RATE_LOCK

Если установить значение параметра KBD_RATE_LOCK равным "On", программа DOS не сможет изменять скорость автоповтора для клавиатуры (скорость, с которой появляются одинаковые символы, если пользователь нажимает на одну и ту же клавишу в течение длительного времени).

MEM_EXCLUDE_REGION

Если драйвер какого-либо устройства использует адресное пространство в диапазоне от 640 Кбайт до 1 Мбайт, вы должны исключить это пространство из списка областей, доступных драйверам EMS и XMS . Для этого адреса занятых областей памяти следует перечислить в списке, который появляется при выборе параметра MEM_EXCLUDE_REGION .

При перечислении вы можете указать только начальный адрес блока памяти, если он имеет размер 4 Кбайта, или диапазон адресов:

D0000,C4000-C8000

MEM_INCLUDE_REGION

Этот параметр выполняет функцию, противоположную функции предыдущего параметра - позволяет указать области памяти, доступные для использования драйверами EMS и XMS .

MOUSE_EXCLUSIVE_ACCESS

В тех случаях, когда программа DOS самостоятельно работает с мышью, возможно появление на экране одновременно двух курсоров мыши. Этого можно избежать, если предоставить мышь в монопольное пользование программе DOS. Для этого нужно установить значение параметра MOUSE_EXCLUSIVE_ACCESS равным "On".

PRINT_SEPARATE_OUTPUT

По умолчанию если две программы работают в рамках одного сеанса DOS, то их данных записываются в очередь печати раздельно. Вы можете отменить разделение данных, установив значение параметра PRINT_SEPARATE_OUTPUT равным "Off".

PRINT_TIMEOUT

При печати из программы DOS данные направляются не напрямую в принтер, а записываются в очередь печати. Параметр PRINT_TIMEOUT задает время задержки, через которое файл очереди печати автоматически закрывается (при этом начинается процесс печати), если программа перестала записывать в него новые данные.

Вы можете изменять это время от 0 до 3600 секунд. Если время задержки равно 0, файл очереди печати закрывается только после завершения работы программы или сеанса DOS, а также в том случае, если пользователь нажимает комбинацию клавиш <Control+Alt+Print Screen>.

SESSION_PRIORITY

Параметр SESSION_PRIORITY задает приоритет сеанса DOS или Win-OS/2 . Вы можете указать значение от 1 до 32 (наибольший приоритет).

Не увлекайтесь высокими приоритетами для задач, активно работающих в фоновом режиме - после переключения на другую программу система, возможно, станет работать очень медленно.

VIDEO_8514A_XGA_IOTRAP

Если установить значение параметра VIDEO_8514A_XGA_IOTRAP равным "Off", программа DOS будет работать с видеопамятью напрямую. Такой режим может быть полезен для увеличения скорости работы игровых программ, однако при использовании некоторых типов видеоадаптеров могут появиться искажения изображения. В этом случае установите значение параметра VIDEO_8514A_XGA_IOTRAP равным "On".

VIDEO_FASTPASTE

Для увеличения скорости вставки текстовой информации из универсального буфера обмена Clipboard вы можете установить значение параметра VIDEO_FASTPASTE равным "On". Однако такой ускоренный способ вставки не будет работать, если программа DOS самостоятельно обрабатывает прерывание от клавиатуры. Могут также возникнуть проблемы и в том случае, если программа DOS самостоятельно организует буферизацию вводимых с клавиатуры данных - размер буфера может оказаться недостаточным.

VIDEO_MODE_RESTRICTIONS

С помощью параметра VIDEO_MODE_RESTRICTIONS вы можете кардинальным образом увеличить объем памяти, доступной программе DOS - до 736 Кбайт. Однако при этом вам придется ограничиться монохромным видеорежимом или видеорежимом, совместимым с адаптером CGA.

Приведем список возможных значений для параметра VIDEO_MODE_RESTRICTIONS :

Параметр Описание
NONE На использование видеорежимов не накладывается никаких ограничений
CGA Программа DOS может использовать только те видеорежимы, которые совместимы с адаптером CGA (текстовые и графические с низким разрешением). При этом объем памяти, доступной программе DOS, увеличивается на 96 Кбайт
MONO Если программа DOS отображает только монохромный текст, вы можете использовать это значение для увеличения объема доступной оперативной памяти на 64 Кбайта

VIDEO_ONDEMAND_MEMORY

Если установить значение параметра VIDEO_ONDEMAND_MEMORY равным "On", система будет резервировать память для сохранения изображения только при переключении программы DOS из полноэкранного режима в оконный режим. При этом ускорится запуск программы.

Если же установить значение этого параметра равным "Off", система будет резервировать эту память при запуске программы DOS. При этом память будет расходоваться менее экономно.

VIDEO_RETRACE_EMULATION

Если ваша программа пытается выводить изображение на экран во время обратного хода луча (для того чтобы избежать появление эффекта с названием "снег"), попробуйте установить значение параметра VIDEO_RETRACE_EMULATION равным "Off". При этом скорость работы программы может увеличиться.

VIDEO_ROM_EMULATION

Параметр VIDEO_ROM_EMULATION позволяет включить режим программной эмуляции функций BIOS , отвечающих за работу с видеоадаптером. Такая эмуляция может увеличить скорость работы программы DOS.

VIDEO_SWITCH_NOTIFICATION

Установив значение параметра VIDEO_SWITCH_NOTIFICATION равным "On", можно включить такой режим работы программы DOS, в котором она будет получать извещение о переключении режима работы из оконного режима в полноэкранный режим и обратно. Однако далеко не каждая программа DOS способна реагировать на это извещение, поэтому для этого параметра вы можете выбрать значение "Off".

VIDEO_WINDOW_REFRESH

Параметр VIDEO_WINDOW_REFRESH определяет скорость обновления окна в десятых долях секунды. Возможный диапазон значений - от 0,1 до 60.0 секунд.

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

XMS _HANDLES

Регулируя параметр XMS _HANDLES вы можете изменять количество блоков расширенной памяти XMS, доступных программе DOS. Возможный диапазон значений - от 0 до 128.

XMS_MEMORY_LIMIT

Параметр XMS _MEMORY_LIMIT определяет объем расширенной памяти XMS, доступной программе DOS. По умолчанию программа DOS может использовать 2048 Кбайт расширенной памяти XMS, однако вы можете указать другое значение в диапазоне от 0 до 16384 Кбайт.

XMS_MINIMUM_HMA

Параметр XMS _MINIMUM_HMA определяет объем верхней памяти HMA (High Memory Area), доступной программе DOS. Вы можете указать значения от 0 до 63 Кбайт.

[Назад] [Содеожание] [Дальше]