Запуск старых DOS программ под Windows x64

  • Автор:
  • Опубликовано:
  • Изменено:
  • Просмотры: 38 388
  • Комментарии: 24
  • Рейтинг: 85,45%
  • Голосов: 22

В любой организации может оказаться так, что при обновлении старых компьютеров на новые можно столкнуться с таким фактом, что компьютеры новые, но необходимость использования старых программ никуда не отпала. А одной из старых программ вполне может оказаться какое-нибудь приложение, написанное в 90ые года под MS-DOS, которое напрочь отказывается запускаться на современных операционных системах.

В таком случае очень помогает эмулятор MS-DOS под названием DOSBox.

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

Теперь ищем необходимую вам DOS программу. Допустим она располагается на диске D в папке Prog и называется Prog.exe. Переходим в эту папку, и создаем там текстовый файл с любым названием и расширением conf. В него пишем:

[autoexec]
mount c D:\Prog
c:
Prog.exe
exit

mount c D:\Prog - монтирует в эмулятор папку D:\Prog как раздел жесткого диска С;
c: - осуществляет переход на раздел C жесткого диска;
Prog.exe - запускает нужную программу. Вместо exe файла могут быть так же файлы с расширением bat или pif.
exit - закрывает DOSBox после завершения работы программы. Работает ТОЛЬКО с exe файлами.

Если вам нужно, чтобы DOSBox закрывался после запуска bat файла, то вместо простого запуска prog.bat пишем:

call prog.bat

Теперь создаем еще один текстовый файл с расширением bat. В него пишем:

start "" "C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe" -conf "D:\Prog\prog.conf"

Вместо "C:\Program Files (x86)\DOSBox-0.74" указываем тот путь, куда была установлена программа DOSBox. Вместо D:\Prog указываем путь к нужной DOS программе, и вместо prog.conf указываем имя файла, созданного выше.
Сохраняем, и пробуем запустить. Если все прошло успешно, то появится окошко DOSBox, в котором запустится нужная программа.

norus

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

[dosbox]
language=russian.txt

[dos]
keyboardlayout=RU

Где "C:\Program Files (x86)\DOSBox-0.74\russian.txt" - это путь к распакованному в папку с программой файлу russian.txt.

Если путь к файлу russian.txt содержит пробелы, обязательно закрываем его в кавычки, как в примере выше. Если же пробелов в пути нет, кавычки не нужны, и скорее всего DOSBox не будет корректно работать.

Сохраняем и пробуем запустить программу.

rus

Теперь русские символы отображаются и печатаются.

Переключение языка в DOSBox осуществляется с помощью одновременного нажатия левого Alt и правого Shift.

Если при запуске программы смущает второе окошко DOSBox, которое открывается вместе с основным окном, то можно в bat файл дописать параметр -noconsole, в итоге bat файл для запуска приобритет следующий вид:

start "" "C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe" -conf "D:\Prog\prog.conf" -noconsole

Оценить статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (22 оценок, среднее: 4,27 из 5)
  • Ювеналий:

    Здравствуйте!
    При попытки запустить бат файл он пишет ошибку; Не удается найти "-conf". Проверьте, правильно ли указанно имя и повторите попытку.
    Проверял правильность заполнения созданных мною файлов несколько раз и ошибок не увидел.

  • Никита:

    Та же ерунда, что и у предыдущего пользователя/

  • Recluse:

    Да, в статье была допущена небольшая ошибка. Попробуйте исправить свой bat файл на то, что сейчас в статье.

  • QuicKid:

    У меня всё отлично заработало. Даже с CLS поэкспериментировал, чтоб удалять мусор из КС. Автор, спасибо за помощь. Ты отличный человек)
    К сведению: Windows 7 ultimate 64x. Проблем не возникло.
    Ребят проверяйте себя лучше. Вероятнее всего сами допустили ошибку.
    Пишите, подскажу, если что alexxx.merc@gmail.com

  • Алексей:

    Как настроить загрузку необходимых BD, если они в другом каталоге?

  • Recluse:

    Не совсем в курсе, что подразумевается под "BD", не могли бы вы поподробнее рассказать про это?

  • Алексей:

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

  • Recluse:

    Самое простое, что мне приходит на ум, это попробовать сделать символическую ссылку, например через программу Link Shell Extension. О том, как ей пользоваться можно почитать в этой статье -

    https://sysadmin.ru/windows-xp-kak-sdelat-simvolicheskuyu-ssylku-simlink.html#___Link_Shell_Extension

    Т. е. попробовать сделать ссылку с файлом/папки базы в ту директорию, которая монтируется в DOSBox.

  • Ирина:

    Добрый день! У меня почему-то не получается сделать русский язык. Все сделала как сказано. После добавления в conf-файл
    [dosbox]
    language="C:\Program Files (x86)\DOSBox-0.74\russian.txt"

    [dos]
    keyboardlayout=RU
    открывается только черное окошко, программа не загружается и через несколько секунд окно закрывается.
    Без этого открывается, но с иероглифами. Подскажите, пожалуйста, что не так.

  • Recluse:

    Попробуйте в файле conf написать следующее (вместо того, что было в статье):

    [dosbox]
    language=russian.txt
    
    [dos]
    keyboardlayout=RU

    Ну и стоит убедиться в наличии файла russian.txt в папке DOSBox.

  • Ирина:

    Спасибо! Скопировала файлы russian.txt и dosbox.conf в папку с программой, которую нужно запустить и написала в файле conf
    [dosbox]
    language=russian.txt

    [dos]
    keyboardlayout=RU

    Все заработало!!! Еще раз спасибо!!!

  • Сергей:

    Всем привет! Эта программа и все процедуры будут действовать для 32-х разрядной системы? А то вроде все правильно, а в итоге все закрывается( Если нет то как мне быть кто подскажет!!!

  • Recluse:

    Для 32-разрядных систем путь по умолчанию к программе в bat файле будет немного другой - вместо C:\Program Files (x86)\DOSBox-0.74 должен быть просто C:\Program Files (x86)\DOSBox-0.74.

  • Игорь:

    Здравствуйте, уважаемый Recluse.
    У меня после запуска bat файла появляется вот такое окошко (ссылка на скриншот http://take.ms/12ZLK). Странно, DOSBox лежит в папке Program File, а его .exe файл почему-то Windows 10 не видит? В чем тут может быть дело? Подскажите, пожалуйста.
    И еще, в Вашем последнем ответе на комментарий от 10.02 Вы вроде бы исправляете какую-то ошибку в bat файле, но я не увидел никакой разницы в записях:
    (" вместо C:\Program Files (x86)\DOSBox-0.74 должен быть просто C:\Program Files (x86)\DOSBox-0.74."). Возможно тут опять какая-то неточность?
    Спасибо

  • Recluse:

    Судя по тексту ошибки, у вас нету файла DOSBox.exe по пути C:\Program Files (x86)\DOSBox-0.74. Попробуйте перейти в эту папку через Проводник, и скопировать через него путь к исполняемому файлу DOSBox в bat файл.

  • Игорь:

    Здравствуйте, уважаемый Rrecluse!
    Спасибо за Ваш быстрый ответ. Я скопировал путь из проводника и теперь после запуска bat файла открывается вот такое окно DOSBox (ссылка http://take.ms/iWGID ), но нужный мне DOS файл не запускается. Проверьте, пожалуйста, мои 2 файла.
    Нужная мне программа CESS2 лежит на диске D, исполняемый файл CG3.exe.
    Первый файл st.conf
    [autoexes]
    mount c E:\CHESS2
    c:
    CG3.exe
    exit
    Ниже bat файл Chess.bat
    start "" "C:\Program Files\DOSBox-0.74\DOSBox.exe" -conf "E:\CHESS2\st.conf"
    Надеюсь на Вашу помощь.
    Спасибо

  • Игорь:

    Извините, ошибка в предыдущем коментарии - программа лежит на диске E, а не на D

  • Recluse:

    Если честно, то с трудом представляю, что могло пойти не так, так как вроде все в файлах указано верно.
    Могу предложить выполнить в окне DOSBox следующие команды из файла st.conf:

    mount c E:\CHESS2
    c:
    CG3.exe

    И посмотреть, запустится ли программа.

  • Игорь:

    Спасибо большое, получилось, правда с трудом и с нюансами. Попробую описать. После ввода рекомендованной Вами добавки, нажимаю Enter - ничего, жду сек 30, опять на всякий случай жму Еnter - появляется пустое голубоватое окошко, жду и примерно через минуту запускается программа. Если бы не ждал,то и не узнал бы. Проделал ту же операцию с другой программой. Без добавки она тоже не запускалась, но с добавкой открылась и гораздо быстрее. Но есть еще такие трудности. Добавка не сохраняется и ее надо вводить при каждой попытке запуска. Закрыть запущенную программу удается или введя команду exit через диспетчер задач - движение курсора мыши ограничено и до строки с крестом закрытия он не достает.
    Но все равно,большое спасибо!

  • Алексей:

    Может быть кто-то подскажет.
    Программа для DOS работала через com-порт с медицинским прибором.
    Запустить программу через Dosbox получилось (через графическую оболочку D-Fend Reloaded), доступ в архив программы есть, но получать данные с устройства не получается. Номер порта и прерывание установил вроде бы правильно. Система Windows XP 32-битная.
    Очень извиняюсь, что не совсем соответствует теме.
    Заранее огромное спасибо за помощь.

  • Recluse:

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

  • Сергей:

    Здравствуйте, подскажите пожалуйста, в чем может быть проблема, DOS приложение нормально запускается через DosBox но при работе не функционируют часть кнопок, например в программе есть возможность индексации базы данных и при попытке выполнить индексацию ничего не происходит, так же при работе в базе данных не открывается некоторые окна. Никаких ошибок при этом не показывается. Есть ли какие нибудь настройки в DOSBox касающиеся работы с БД? Спасибо.

  • Recluse:

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

  • Сергей:

    Для Алексея:
    А какой смысл под 32 разрядной ХР запускать DOSbox ? ХР вполне сносно исполняет большинство досовских программ и доступ к компорту будет прямой.
    С DOS программами не было проблем и в Win7 32.
    DOSbox необходим при наличии 64-битной системы

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

Ваш e-mail не будет опубликован.