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

  • 86 245
  • 84
  • 92,46%
  • 69

В любой организации может оказаться так, что при обновлении старых компьютеров на новые можно столкнуться с таким фактом, что компьютеры новые, но необходимость использования старых программ никуда не отпала. А одной из старых программ вполне может оказаться какое-нибудь приложение, написанное в 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


Комментарии:

    • Аноним

    топ!

    • Олег

    Может немного тупой совет, но не ставьте пробелов в названии папки с игрой, иначе работать не будет. Думаю, те, кто впервые работает с DOS-системой могут этого не знать.

    • И_В

    Можно ли увеличить размер окна, в котором
    запускается DOS-программа?

      • Recluse

      Самый простой способ - нажать Alt+Enter для того, чтобы окно раскрылось на весь экран.

    • Олег

    чуть не в тему, но до установки некоего обновления и Win'7 64x, и Win'10 64x нормально работают с DOS-программой, с ее графикой. Какое-то обновление "гробит" эмулятор.. - можно что-то исправить?

      • Recluse

      Не так давно вышла новая версия DOSBox (в сентябре 2018) - попробуйте протестировать её в работе.

    • russ1971

    Программа супер, но есть нюанс, при раскрытии окна на полный экран (Alt-Enter), размер отображения досовской программы остается прежний, хотя DosBox растягивается на весь экран (заливая черным оставшуюся часть окна). Есть ли возможность "растянуть" окно именно дос программы?

      • Recluse

      Попробуйте добавить в конфиг следующие строки:

      fullscreen=true
      fulldouble=true
      fullresolution=1366x768
      windowresolution=1366x768
      output=opengl
      autolock=true
    • marevika

    У меня та же проблема, что и у Светланы из комментария:
    "Светлана 19.12.2017 09:12
    При запуске программы в DOSBOX выходит сообщение: "This program must be run under Win32". Можно как то это победить? Стоит Windows7 x64."
    После установки DOSBOX я установила в него win3.11, но как воспользоваться win3.11 для запуска нужной мне программы не знаю. Может быть Вы знаете, как это сделать?

      • Recluse

      В вашем случае, вам нет нужды использовать DOSBox, так как вы пытаетесь запустить исполняемый файл Windows - в среде DOS он просто работать не будет.

      Попробуйте запустить его прямо в основной операционной системе, используя различные параметры совместимости (правой кнопкой мыши - Свойства - Совместимость), а если не получится - смотрите в сторону виртуальных машин с Windows XP.

    • Александр

    После запуска программы в каталоге создаются 2 файла
    Stdout и stderr

    Stderr.txt он пустой

    Stdout с таким содержимым

    DOSBox version 0.74
    Copyright 2002-2010 DOSBox Team, published under GNU GPL.
    ---
    CONFIG:Loading primary settings from config file p:\nal\DOSBox-0.74\conf\nal99.conf
    MIDI:Opened device:win32
    DOS keyboard layout loaded with main language code RU for layout RU
    DOSBox switched to max cycles, because of the setting: cycles=auto. If the game runs too fast try a fixed cycles amount in DOSBox's options.
    Warning: file creation failed: p:\39963328.TMP

    Файлы эти создаются и при запуске foxpro и fox26x и отличаются только
    строкой с предупреждением.
    Где искать проблему?

    • 1

    можно ли в досбоксе зашарить файлы по сети для совмместной работы с базой данных с другими компьютерами? несколько лет назад пробовал в убунту - любой один комп работает с БД, а если одновременно, то не получается... похоже типо как на отсутствие команды шары в ДОСе.

      • Recluse

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

        • 1

        сама программа шарит БД совместно с другими по сети на win95-98/nt/xp - автоматически, никаких спец. действий для этогог не нужно, кроме объявления сетевых ресурсов (в "чистом" ДОСе для совместной работы с файлами требовалась команда share)... а вот как с этим в досбоксе?

          • Recluse

          Судя по зарубежным форумам, шары в DOSBox не поддерживаются, но поддерживаются в его аналоге vDOS - https://sourceforge.net/projects/vdos

          • Роман

          Никак. В dosbox невозможно поставить клиент Microsoft Network (всё упирается в общем-то в отсутствие config.sys)
          Но можно подключить сетевые ресурсы дисками в хост-системе, а в досбоксе смонтировать их как диски - никаких проблем, и даже эмуляций NE2000 не требуется.
          Ну или использовать что-то другое: vDOS, FreeDOS на VirtualBox и т.п.

    • Александр

    Программа работает под Foxpro .а под Fox26x вылетает по ошибке

    Warning: file creation failed: p:\50507648.TMP
    Что делать?

      • Recluse

      А такой файл существует? Убедитесь, что если он существует, то не имеет атрибутов "скрытый" или "только чтение".

        • Александр

        нет , такого файла не нашлось! А теоретически должна работать под fox26x?

          • Recluse

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

          • Роман

          А диск "p:" то в досбоксе прописан?

    • Аноним

    Замечательная программа , но возникла такая проблема.Если запускаемая программа написана на FOXPRO , то все хорошо работает на 64.Если же на Fox26x , То запускается , а потом ошибка и вылетает.Помогите разобраться
    Ошибка Warning: file creation failed: p:\50507648.TMP

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

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

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.