13

Запуск DOS-программ на Windows 7 в DOSBox

Posted by admin on 08.04.2012 in Windows 7 |

На Windows 7 не работают DOS-программы, хотя на Windows XP с ними проблем не было. Микрософт предлагает запускать DOS-программы в специальной виртуальной машине Windows XP mode. Это действительно работает, но данная технология слишком громоздка, запуск и завершение программ занимает много времени. Однако, есть более удобное решение сторонних разработчиков — DOSBox.

Эксперименты показали, что в DOSBox та же DOS-программа работает быстрее на четверть. Установка и настройка занимает значительно меньше времени.

Особенности DOSBox

Системный диск в DOSBox имеет имя Z:

Команда net use НЕ поддерживается. Поэтому для подключения сетевых дисков нужно сначала подключить их в хостовой системе, а потом подмонтировать в гостевой командой mount

Русификация встроенными средствами DOSBox: keyb ru441 866
Переключение раскладки:
RUS — левый ALT + правый Shift.
LAT — левый ALT + левый Shift.
Либо вместо этого запускать не саму программу а cmd файл, в котором сначала запускать свой русификатор, например vrun.com (переключатель — правый Shift).

Размер экрана можно изменить параметром windowresolution в файле «c:\Program Files (x86)\DOSBox-0.74\dosbox.conf» (размер по умолчанию слишком маленький) либо при запуске DOS-программы подключать отдельный файл конфигурации.
Пример: windowresolution=1024×768.
Однако, для этого необходимо изменить и параметр output, т.к. при значении по умолчанию (output=surface) изменение разрешения не поддерживается.
Пример: output=ddraw.

При запуске программы в DOSBox без дополнительных параметров каталог программы автоматически монтируется в DOSBox как диск C:
Например, в ярлыке запуска написано: «C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe» C:\PROGA\prog.exe
Тогда каталог хостовой системы C:\PROGA будет подключен в DOSBox как диск C: и в нем будет запущена программа prog.exe
Еще в строке запуска нужно добавлять:
-exit — для закрытия DOS-окна по завершении работы программы,
-noconsole — для скрытия служебного окна DOSBox.

Конкретная задача

DOS-программа на Windows 7 (хост) находится в каталоге C:\ZAYAVKA. Сама обращается за данными к сетевому ресурсу \\Cavs-4\ZAYAVKA, который подключен как диск Y:, так как DOS-программа не понимает сетевых путей.

На хосте подключаем сетевой диск:

net use Y: \\Cavs-4\ZAYAVKA /PERSISTENT:YES /SAVECRED

В файл «c:\Program Files (x86)\DOSBox-0.74\dosbox.conf» дописываем в конец в секцию [autoexec]:
keyb ru441 866
mount Y Y:\
set clipper=f100

(здесь первая строка — русификатор,
вторая — монтируем в DOSBox на букву Y путь на хосте Y:\,
третья строка нужна для работы этой программы)

Строка запуска на хосте:
«C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe» C:\ZAYAVKA\zavs_sl.exe -exit -noconsole

 

Метки: ,

13 Comments

  • Eugene:

    Привет. У меня такая же задачка. Есть две старые проги. Одна на фоксе, другая на клипере. Первую засунул в бокс без проблем, а вот вторая ни в какую. Т.е. заспускаю ее и висит комстрока в темном экране.((
    Что-то можно править ?

  • Alexandr:

    Привет. У меня проблема, не запускается прога на клипере. Что только не делал.De-FendReload тоже не помогает. Может посоветуете что?

  • Alexandr:

    Вот строка запуска из D-fendReload
    [autoexec]
    @echo off
    SET PATH=Z:\
    SET clipper=f:100
    SET files=250

    keyb RU 866
    mount C «C:\Users\PROGRA~1\D-FEND~1\VIRTUA~1\»
    mount D «D:\INSTAL2\»
    D:
    cd\
    Z:\
    MENU.EXE
    А экрана с ошибками нет.Просто dos-box зависает и все.

    • admin:

      Что такое «D-fendReload» я не понял.
      Строка запуска — это не конфиг, а то, что в ярлычке написано на рабочем столе или где он находится.

      По вашему конфигу:
      не надо монтировать ничего на С:. Смотрите документацию. на С: автоматически монтируется каталог, в котором находится запускаемый ЕХЕшник. Диск Z: по вашему конфигу проге MENU.exe недоступен. Чтобы он был доступен, его нужно смонтировать, но опять же именно букву Z не используйте. Если взять, скажем S, ко монтаж будет выглядеть так:
      «mount S S:\»
      Ну, и, соответственно, последние 4 строки не нужны. Имя проги в ярлык нужно вставить.

      И еще вдогонку. В клиппере я не силен, но мы обычно пишем эту строку без двоеточия:
      SET clipper=f100

    • admin:

      Посмотрел сейчас свою статью. Вижу, что Вы её вообще не читали. Просто спамите все ресурсы про DOS. Там есть всё и даже с примерами.

  • Вадим:

    Добрый день! Подскажите, каким образом устанавливается время в DOSBOX?

  • Игорь:

    доброго дня!
    тоже clipper и тоже не работает.
    у меня программа на clipper под DosBox 0.74 запускается, пароль ввожу — выход. Ошибок нет, но и не работает. Если запустить просто в Windows 7×32 — работает. Мне нужно чтоб программа была во весь экран.
    Не понятно куда писать : SET clipper=f100 в config.nt или dosbox0.74.conf
    А может ему памяти мало ? Если у кого есть рабочий конфиг для clipper — не пожалейте для изучения.

    • admin:

      Вот кусок из рабочего файла dosbox.conf:
      # русификация экрана и клавиатуры
      keyb ru441 866
      # программа обращается к данным на диске Y. Предварительно Y: должен быть подключен как сетевой средствами ОС
      mount Y Y:\
      # это для клипера
      set clipper=f100

      Эти строки дописаны в конец файла

  • Евгений:

    Добрый день! Спасибо за статью! Есть проблема с альтернативным вводом чисел в программу которая работает под DOSBox — не работает правая часть клавиатуры NumLock не вводятся числа с этой панельки, а чисел приходится вводить очень много, не совсем удобно вводить с «основной клавиатуры» расположенные сверху в ряд над буквами. Как нибудь можно решить эту проблему?

    • Евгений:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2017 Сисадминские будни All rights reserved.
Любое воспроизведение материалов сайта возможно только с активной ссылкой на admsoft.ru.