6. Запуск программ DOS

Виртуальная машина DOS, работающая в среде IBM OS/2 Warp, способна выполнять практически любые программы (в том числе игровые), рассчитанные на операционную систему DOS.

Вы можете запустить программу DOS из командного приглашения сеансов DOS и IBM OS/2, а также создав для нее объект в одной из папок (либо на рабочем столе) оболочки Workplace Shell.

Для работы некоторых программ DOS требуется выполнять индивидуальную настройку виртуальной машины DOS, подключая или отключая, например, эмуляцию расширенной или дополнительной памяти, интерфейс DPMI и т. п. Если у вас не получилось с первого раза запустить программу DOS в среде IBM OS/2 Warp, это еще не значит, что программа не способна работать на виртуальной машине. Возможно, что вам будет достаточно выполнить настройку виртуальной машины, после чего проблемы исчезнут.

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

6.1. Запуск программ DOS

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

Найдите папку Templates и переместите из нее правой клавишей мыши пиктограмму Program на поверхность рабочего стола или в созданную ранее папку. При этом на экране появится блокнот "Program - Settings", показанный на рис. 6.1.

Рис. 6.1. Блокнот "Program - Settings"

С помощью этого блокнота вы можете создать и настроить объект Workplace Shell для нужной вам программы DOS.

В поле "Path and file name" необходимо ввести полный путь к файлу программы. Дополнительно в полях "Parameters" и "Working directory" можно задать для программы параметры запуска и рабочий каталог.

Если вы точно не знаете, в каком каталоге и на каком диске находится нужная вам программа или как она называется, нажмите кнопку "Find...". На экране появится диалоговая панель "Find Objects", предназначенная для поиска объектов (рис. 6.2).

Рис. 6.2. Диалоговая панель "Find Objects"

Нажмите в этой панели кнопку "Locate...". Вы увидите блокнот "Locate Folder", с помощью которого нужно найти папку (читай - каталог), содержащую подключаемую программу DOS (рис. 6.3).

Рис. 6.3. Блокнот "Locate Folder", предназначенный для поиска папки с программой

Нажмите левой клавишей мыши на закладку "Drives". Откроется страница блокнота с изображением всех дисковых устройств (рис. 6.4).

Рис. 6.4. Просмотр дисковых устройств

Здесь вы видите как локальные дисковые устройства, так и сетевые (на рис. 6.4 устройства "Drive L", "Drive S" и "Drive T" являются сетевыми). Разумеется, сетевые устройства будут видны и доступны только в том случае, если вы установили сетевое программное обеспечение. Соответствующие процедуры описаны в 8 и 9 главах этой книги.

Раскрыв папку дискового устройства, на котором записана подключаемая программа, найдите нужный вам каталог. На рис. 6.5 мы выбрали каталог NC, в котором находится программа Norton Commander.

Рис. 6.5. Выбор каталога NC

Выделив нужный каталог, нажмите кнопку "OK". Вы вновь окажитесь в диалоговой панели "Find Objects", однако теперь в ней будет заполнено поле "Start Folder". В этом поле находится путь к каталогу, в котором будет выполняться поиск программы (рис. 6.6).

Рис. 6.6. Диалоговая панель "Find Objects" с заполненным полем "Start Folder"

Обратите внимание на переключатель "Search All Subfolders", расположенный в диалоговой панели "Find Objects". Если его включить, поиск будет выполняться не только в выбранном каталоге, но и его подкаталогах (или, иными словами, во вложенных папках).

Теперь начнем поиск.

Нажмите кнопку "Find". На экране появится окно с изображением пиктограмм найденных файлов (рис. 6.7).

Рис. 6.7. Окно с изображением пиктограмм найденных файлов

Мы выбрали в этом окне пиктограмму NC.EXE и затем нажали клавишу "OK". После этого оболочка Workplace Shell "догадалась" (пользуясь встроенным списком программ), что мы подключаем ни что иное, как Norton Commander. При этом она сама изменила заголовок программы и заполнила поле "Path and file name" (рис. 6.8).

Рис. 6.8. Заполненная страница блокнота для программы Norton Commander

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

Рис. 6.9. Пиктограмма подключенной программы DOS

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

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 Кбайт.

6.3. Загрузка DOS с дискеты или ее образа

Операционная система IBM OS/2 Warp содержит встроенные средства эмуляции среды DOS. Тем не менее, при необходимости вы можете загрузить в виртуальную машину операционную систему DOS, расположенную на системной дискете. Можно также подготовить образ такой дискеты в виде файла на диске и выполнять загрузку DOS из этого файла.

Для тех из вас, кто работал с компьютерами IBM-370 или ЕС ЭВМ в операционной системе VM (СВМ), в этом нет ничего нового или неожиданного. Операционная система VM позволяет вам загрузить в виртуальную машину практически любую операционную систему, расположенную на диске или магнитной ленте (лишь бы она была предназначена для работы на компьютере IBM-370).

Возможность загрузки конкретной версии DOS в виртуальную машину IBM OS/2 Warp может оказаться полезной, например, в том случае, если у вас есть необходимость работать с программой, рассчитанной именно на эту версию или если программа использует недокументированные возможности DOS, которые не эмулируются IBM OS/2 Warp.

Другой случай, когда вам может потребоваться загрузить конкретную версию DOS - отсутствие драйвера IBM OS/2 для устройства чтения компакт-диска (хотя IBM OS/2 Warp версии 3.0 может работать с очень многими типами таких устройств). В этом случае вы можете загрузить драйвер устройства в файле config.sys операционной системы DOS, подготовленной на дискете, и сделать образ этой дискеты в виде файла. Загрузив DOS из образа файла, вы получите доступ одновременно к компакт-дискам, файловой системе FAT и HPFS .

Загрузка DOS с дискеты

Загрузка DOS с дискеты выполняется очень просто. Откройте папку Command Prompts, расположенную в папке OS/2 System. В ней вы найдете пиктограмму DOS from Drive A:. Вставьте системную дискету DOS в устройство A: и сделайте двойной щелчок левой клавишей мыши по этой пиктограмме.

В результате будет создан сеанс DOS, загруженной с дискеты. Однако для того чтобы в данном сеансе вам были доступны диски HPFS , необходимо дополнительно использовать драйвер fsfilter.sys , расположенный в каталоге os2/mdos. Скопируйте этот файл на системную дискету DOS и подключите его в файле config.sys:

device =fsfilter.sys

Если в данном сеансе DOS вам нужны средства управления расширенной или дополнительной памяти, вам потребуются драйверы himem.sys и emm386.sys из каталога os2/mdos. Скопируйте их на системную дискету DOS и подключите следующим образом:

device =himem.sys
device =emm386.sys

Для того чтобы загрузить драйвер fsfilter.sys в верхнюю область памяти, его нужно подключать в файле config.sys после драйвера himem.sys.

Загрузка DOS из образа дискеты

Подготовьте системную дискету DOS, как это было описано в предыдущем разделе. Затем создайте на жестком диске каталог с произвольным именем, например, bootdos. Сделайте этот каталог текущим и скопируйте в него образ системной дискеты DOS при помощи команды VMDISK :

vmdisk a: dos330.img

В качестве первого параметра этой команде необходимо указать имя НГМД, в который вставлена системная дискета, в качестве второго - имя файла, в который будет скопирован образ дискеты.

После завершения копирования откройте папку Templates и "достаньте" из нее новую программу, переместив правой клавишей мыши пиктограмму Program в другую папку или на поверхность рабочего стола.

После этого на экране появится блокнот свойств объекта (в данном случае, блокнот свойств программы).

В диалоговой панели "Program" в поле "Path and file name" введите символ "*".

Затем откройте диалоговую панель "Session". В этой панели вы должны выбрать оконный или полноэкранный режим работы, включив, соответственно, переключатель "DOS window" или 'DOS full screen" (по вашему усмотрению).

На следующем этапе вам нужно нажать кнопку "DOS settings..." и в появившейся на экране диалоговой панели "DOS Setting - Categories" включить переключатель "Other DOS Settings" и нажать кнопку "OK".

На экране появится список параметров. Выберите параметр DOS_STARTUP_DRIVE и введите в качестве значения параметра путь к только что созданному вами файлу, содержащему образ системной дискеты DOS. Затем нажмите кнопку 'Save" и закройте блокнот, сделав двойной щелчок левой клавишей мыши по пиктограмме системного меню блокнота.

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

Заметим, что для экономии места на жестком диске вы можете использовать в качестве системной дискету емкостью 720 или 360 Кбайт. Можно также подготовить дискету емкостью всего 180 Кбайт, отформатировав ее следующим образом:

format a: /F:180 /s

Единственное условие - вы должны форматировать дискету двойной плотности (360 Кбайт) в среде реальной DOS, например, версии 5.0, но не в виртуальной машине DOS, работающей под управлением IBM OS/2 Warp.

6.4. Игровые программы DOS в среде IBM OS/2 Warp

Известно утверждение о том, что ни одна операционная система не будет иметь успеха, если в ней не будут работать игровые программы. В составе IBM OS/2 Warp поставляется несколько игровых программ, однако пока они не могут соперничать с теми, что разработаны для DOS.

Тем не менее, вы можете играть в DOOM или DESCENT, запуская эти и подобные им программы на виртуальной машине DOS в среде IBM OS/2 Warp. Более того, в составе IBM OS/2 Warp имеется обширная база данных наиболее известных программ DOS. Для каждой программы в этой базе данных находится набор параметров, который обычно устанавливается при помощи блокнота свойств объекта.