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

  • 22.04.2015
  • 167 866
  • 125
  • 10.11.2019
  • 145
  • 145
  • 0
Запуск старых DOS программ под Windows x64

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

Комментарии к статье (125)

    • Владимир

    Всем доброе время. Имеется dos программа которая подхватывает файл с русским наименованием пароль.prl. При запуске через DOSBox программа не подхватывает этот файл, видимо из-за его названия. Переименовывать файл нельзя. Может кто-то сталкивался с подобной проблемой?

    • Александр

    Программа, запускаемая через dosbox, открывает лог-файл и пишет в него данные. Но эти данные не будут видны, пока я не выйду из программы. Как можно задать интервал обновления данных? Ctrl+F4 не помогает. И второй вопрос: насколько большой кэш у dosbox? Мне для логов нужно максимум 256 Кб.

    • Олег

    Категорически приветствую, уважаемые! Вопрос про этот самый досбокс.
    Что уж только не пробовал, какие настройки не менял - никак не могу побороть одну проблемку.
    К примеру, на работе есть (т.е. был) древний комп с виндоуз ХР, всё на нём работает (я имею в виду досбокс, работаю с FoxPro, а это, сами понимаете, раритет), никакие настройки не правил, всё как было в исходном конфигурационном файле (ну единственные изменения - это монтирование нужной папки программы).
    Сейчас на работе вин 7 х64 - и вот тут никак! Всё запускается, но экран не весь - сверху и снизу чёрные полосы, а мне очень желательно на весь экран (монитор 17 дюймов, не из современных, у которых соотношение сторон 16:9, а из тех, что 4:3 (т.е. разрешение 800 на 600). Что я только не пробовал менять - никак не удаётся добиться работы программы во весь экран. Конечно, в крайнем случае можно и так работать, если уж по другому ну совсем никак, но не верю, что нельзя что то сделать!
    Кто то может подсказать, что исправить в досбокс.конф ?
    Заранее благодарю!

    • Александр

    Спасибо за статью, настроил на Win7 х64 запуск терминала от древних АТС dx-500. У меня не запускается программа с секцией:
    [dosbox]
    language=russian.txt
    Без неё всё ок.
    Также пробросил com-port для работы с dial-up модемом.
    Единственное, что хочу узнать, есть ли какая-то комбинация клавиш, по которой dosbox отпускает указатель мыши?

      • Recluse

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

      Что же касается "захвата мышки", то здесь можно сделать следующее:

      • Нажать горячие клавиши Ctrl + F10
      • Отключить "захват" мыши, путем добавления в файл dosbox.conf параметра autolock=true
        • Александр

        Никакая ошибка не появляется. Окно dosbox открывается и сразу закрывается.
        Ещё заметил одну особенность: курсор мыши ползает только по верхней половине окна, в нижнюю не попадает, не может пересечь воображаемый экватор окна.

      • Алексей

      Отпустить мышь — Ctrl+F10

    • Андрей

    Добрый день!
    Поменял старый ПК. Теперь стоит Win7 64. Есть необходимость запустить старенькую программу на новом ПК. Вроде всё сделал, как написано в статье, но программа не запускается.
    Вопросы:
    1)Есть ли необходимость создавать в папке C:\Windows\System32 файлы
    autoexec.nt с содержимым
    path=c:\kadry (папка с программой)
    set clipper=f95
    rem c:\cyrill.com
    lh %SystemRoot%\system32\kb16 ru
    и config.nt с содержимым
    dos=high, umb
    device=%SystemRoot%\system32\himem.sys
    files=100

    2)сама программа находится C:\KADRY
    3)содержимое файлов, которые нужно было создать:
    файл C:\KADRY\1.conf
    [autoexec]
    mount c c:\KADRY
    c:
    call KADRY.BAT
    exit
    файл C:\KADRY\1.bat
    start "" "C:\Program Files (x86)\DOSBox-0.74-3\DOSBox.exe" -conf "c:\KADRY\1.conf"

    сам же файл KADRY.BAT (оригинальный и рабочий на старом компе) содержит следующие строки и, мне кажется, в итоге программа путается
    @echo off
    cls
    c:
    CD\kadry\DBF
    erase instal_2.mem
    erase instal_3.mem
    c:\kadry\main.EXE //clipper=f85
    IF ERRORLEVEL 3 GOTO END
    IF ERRORLEVEL 2 GOTO ER
    IF ERRORLEVEL 1 GOTO END
    IF ERRORLEVEL 0 GOTO END
    :ER
    LAMBADA
    GOTO END
    :END
    rem ERASE *.NTX
    CD..

    Что в итоге я сделал лишнего и не так?

    Скрины, после запуска программы

    https://skr.sh/s5QWvoz9i78?a

    • Ирина

    Здравствуйте! На Windows 8 - в ДОС - в Foxprox26 переход с англ на рус по Alt-Shilt получается, а назад нет. Почему?

      • Александр

      Здравствуйте. Перевод рус./англ. делается с помощью только ЛЕВОГО Alt: левый Alt + левый Shift - перевод на англ., левый же Alt + правый Shift - перевод на рус. раскладку.

    • Сергей

    спасибо! почти сразу все заработало. запустилась старая прога под foxprox 2.6 (под Win 7 -64)
    правда пришлось провести переиндексацию.
    все работает кроме одного. у меня в главном меню старой программы использовались комбинации функциональных клавиши Ctrl + F5 Ctrl + F1
    при нажатии которых сейчас досбокс зачем-то делает принтскрин и всё! а функции которые были закреплены за кнопками не включаются. можно ли это как-то настроить? при чем это только в главном меню.

      • Сергей

      сразу не заметил но в добавок , потом выяснилось что в поля не вводятся цифры, чекбоксы "пробелом" не нажимаются. просто по форме ввода курсор ходит TAB и все а ввод делать не дает..

    • Михаил

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

      • Recluse

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

      xms=true
      ems=true
      umb=true
      keyboardlayout=auto

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

    • Андрей

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

    Пример строчки запуска bat файла из под вин ХР
    pd\paradox -codepool 16000 -extk 16000 main

      • санёк

      Я так и писал, только без EXT и всё заработало.
      [autoexec]
      mount c E:\VODA_PR
      c:
      Paradox.exe pred
      exit

      • Аноним

      попробуй так:
      pd\paradox main

      у меня запустилось.

    • Татьяна

    Спасибо! Очень помогла Ваша инструкция. Немного усилий по переделке своего bat файла и получился отличный результат!!!

    • Аноним

    Спасибо!!!!!

    • Trel

    Подскажите, пожалуйста, по поводу Dosbox.

    run.bat создал такой:

    start "" "C:\Program Files (x86)\DOSBox-0.74-3\DOSBox.exe" -conf "G:\Ball\s.conf" -noconsole

    А s.conf такой:

    language="C:\Program Files (x86)\DOSBox-0.74-3\russian.txt"
    memsize=1024

    [dos]
    keyboardlayout=RU
    FILES=250

    [cpu]
    cycles=max

    [autoexec]
    mount c G:\Ball
    c:
    Ball.exe
    exit

    Всё работает нормально, но есть следующий нюанс.
    Выше рекомендовано в самом начала .conf файла вставить строчку:
    [dosbox]
    Стоит её туда вставить как программа перестаёт запускаться.
    А если не вставлять, то вроде всё нормально работает.
    Может быть кто знает почему так?
    Установлена была стандартная новая dosbox с сайта разработчиков
    и также установлена была официальная русификация dosbox.
    Под Windows 10 X64.

    • Иван

    Здравствуйте!

    При запуске программы ловлю ошибку:

    Error while initializing DT-MAX expanded memory management:
    EMM manager does not map enough pages for swapping

    [dos]
    ems=frue

    Обойти ошибку так и не смог, надеюсь на вашу помощь

      • Recluse

      Здравствуйте,
      К сожалению, лично мне не приходилось сталкиваться с DOSEMU, с которым (судя по ошибке) у Вас возникла проблема. Но, может быть, под Ваши цели подойдет DOSBox?

        • Иван

        Как раз в dosbox и запускаю. Отключение ems/xms в конфиге и загрузка с JEMMEX тоже не помогла

          • Recluse

          Извиняюсь, был введен в заблуждение ошибкой.

          Пробовали менять стандартное значение размера оперативной памяти, выделяемой в DOSBox?
          За это отвечает параметр memsize в секции [dosbox], т. е. я бы предложил попробовать:

          [dosbox]
          memsize=32
            • Иван

            Пробовал, и к сожалению никакого эффекта

    • Андрей

    Добрый день
    Программа за пустилась, но она обращается к базе данных.
    В DOS это решалось присвоением переменной значения каталога, например
    set amber=c:\prog\basa (место куда обращается исполняемая программа)
    А как подключить такую базу в DOSbox?

      • Recluse

      Как самый простой вариант:

      Монтируем нужную директорию, как диск D:

      mount D C:\Base

      И в конфиге вашего приложения прописываем путь к базе "на диске D".

    • bsm

    Здравствуйте. Установил DOSBox-0.74-3. В каталоге F:\test.DOSBox создал файлы,-
    test.bat:

    rem test.bat
    rem
    start "" "C:\Program Files (x86)\DOSBox-0.74-3\DOSBox.exe" -conf "F:\test.DOSBox\test.conf" -noconsole

    test.conf:

    [dosbox]
    language="C:\Program Files (x86)\DOSBox-0.74-3\russian.txt"
    memsize=1024

    [dos]
    keyboardlayout=RU
    FILES=250

    [autoexec]
    mount T F:\test.DOSBox
    T:
    T:\DN-DPMI\DN.com

    После запуска test.bat запускается пустое окно DOSBox и через некоторое время закрывается. Как говорит stdout.txt,-

    DOSBox version 0.74-3
    Copyright 2002-2019 DOSBox Team, published under GNU GPL.
    ---
    CONFIG:Loading primary settings from config file F:\test.DOSBox\test.conf
    Exit to error: MSG:Can't load messages: F:\test.DOSBox\"C:\Program Files (x86)\DOSBox-0.74-3\russian.txt"

    Как исправить ситуацию? Спасибо.

      • Recluse

      А файл локализации был скачан? Судя по логу, программа просто не может его загрузить. Еще, желательно попробовать в конфиге указать просто название файла локализации, а не целый путь, т. е.:

      [dosbox]
      language=russian.txt
        • bsm

        Да, файл локализации имеется.

        • bsm

        Согл. файла конфигурации, файл локализации должен браться с
        language="C:\Program Files (x86)\DOSBox-0.74-3\russian.txt"
        а DOSBox пытается взять его с F:\test.DOSBox\"C:\Program Files (x86)\DOSBox-0.74-3\russian.txt"

    • Ирина

    У меня авторская досовская программа не открывается на windows 8. Что можно сделать?

      • Recluse

      Может быть, при этом пишутся какие-то ошибки? Сложно определить в чем проблема, особенно если речь идет о какой-то уникальной программе.

    • Владимир Марциновский

    У меня всё сразу получилось. Программа работает. НО!!! Не просто медленно - УЖАСАЮЩЕ медленно!
    На обработку 1-й (!) обычной текстовой строки из Блокнота (просмотр и вылов заданных слов) уходит почти 1 (!) секунда. И -cycles=max не помогает. А у меня обычно сотни и тысячи строк... Придётся теперь продавать только что купленный комп 64-bit и покупать 32-ку..... :(

      • Владимир Марциновский

      Дополняю (жаль, что нельзя здесь скриншот), в заголовке окна стоит:
      DOSBox 0.74-3, Cpu speed 3000 cycles, Frameskip 0, Program: FOXPROL

        • Владимир Марциновский

        УРРРРРРААААА! Просто я, балбес, по аналогии с -console в .bat занёс туда же и max. А надо же в .conf!!!
        Всё работает, и не так уж и медленно, очень даже терпимо.
        Большущее Вам спасибище!!!

        С огромным уважением, Владимир Марциновский

    • Сергей

    Извините за вопрос! А где именно взять русскую локализацию? новичок, сильно не пинайте плииз :)

      • Сергей

      нашёл где :) http://www.dosbox.com/tools/DOSBox-russian-lang-074.zip
      Но мне не помогло! Окно просто закрывается и дальше тишина! мой конфиг выглядит так
      [autoexec]
      mount c F:\Realizacia
      c:
      C:FOXPRO25\FOXPROx.EXE -T C:\real\uprprg.prg
      exit

        • Сергей

        Всё разобрался сам спасибо! :)

    • Аноним

    топ!

    • Олег

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

    • Денис Шиловский

    Есть у вас на компе стоит, 64-ти разрядная Windows 8 или 10, то имеет смысл установить этот эмулятор DOS. Потому, что опытные компьютарщики знают, что "старые добрые" досовские программы, универсальные и среди них, есть такие которые, до сих пор нельзя заменить, аналогами для Windows

    • Станислав

    Recluse, подскажите пожалуйста как заставить программу dosbox работать с моим com1 (настоящий последовательный порт). На virtualbox я разобрался как "пробросить" Com1, а тут мне не понятно есть ли такая возможность вообще. Программа работает, но связи нет. Win10 X64 pro.

      • Recluse

      В конфиг нужно добавить:
      serial1=directserial realport:com1
      вместо directserial может быть dummy, modem, nullmodem, при этом для остальных значений параметр realport не нужен. Подробнее можно прочесть на английском языке тут.

    • Дмитрий

    Программа лежит на диске D:\top. Конфиг:
    [dosbox]
    «C:\Program Files (x86)\DOSBox-0.74\russian.txt»
    [dos]
    keyboardlayout=RU
    [autoexec]
    mount c D:\top
    c:
    call top.exe
    exit
    Программа запускается, но не видит базу с настройками, которая лежит в d:\top\DB\. Как пофиксить?

      • Recluse

      Возможно в программе есть какие-то настройки, которые стоит изменить для работы по новому пути?

      Например, программа до этого была по пути C:\top, но сейчас просто находится по адресу C:\, и пытается обратиться по пути C:\top\DB...

      • DAV7772

      В разделе [dosbox] указывать на файл настроек русского языка надо так:
      language=«C:\Program Files (x86)\DOSBox-0.74\russian.txt»
      а не просто название файла.

    • DAV7772

    Кажется, я нашел подходящий вариант.
    Вместе с DOSBOX (для обеспечения работы программы) надо использовать SPRINT (для обеспечения печати). Конечно, некоторые формы выглядят не так, как задумывались или как привыкли пользователи на протяжении многих лет (есть эффект сжатия и сдвига налево, тогда как есть достаточно много места до низа страницы и правого края), но когда северный пушной зверек появится на пороге, сгодится и так.

    • DAV7772

    Здравствуйте!

    У меня два вопроса по использованию dosbox.
    1) Каким образом можно поставить максимальное быстродействие исполняемой программы (не игра)? На WinXP формирование некоего отчета занимает минуту (усредненно), а в Win7 под dosbox - минут 15, или больше. Ctrl+F12 ускоряет, но не намного, до 13-14 минут максимум. Даже при формировании этого самого отчета видно, как медленно ползут проценты, нажатие Ctrl+F12 ускоряет, ускоряет, но потом опять замедляет.

    2) Насчет распечатки. Программа, о которой я писал выше, может печатать и на LPT порт, и на USB. Но LPT принтеров уже нет, а при команде печатать на USB результат нулевой, оно и понятно, во времена DOS-а такого порта не было. Есть какой-то вариант непосредственной печати (кроме как сохранить файл и напечатать стандартными средствами Windows)?

    Заранее спасибо!

      • Recluse

      Каким образом можно поставить максимальное быстродействие исполняемой программы (не игра)?

      Попробуйте добавить в конфиг следующую строчку - cycles=max. После этого DOSBox должен обеспечить максимально возможную производительность.

      Насчет распечатки.

      Попробуйте скачать модифицированную версию DOSBox отсюда - http://ykhwong.x-y.net/. Затем, в конфиг добавьте это:

      [printer]
      printer=true
      printoutput=printer
      multipage=true
      timeout=10000
      
      [parallel]
      parallel1=printer
        • DAV7772

        Здравствуйте!
        Спасибо большое за ответы.
        С производительностью ясно. При установке cycles=max действительно программа работает наиболее быстро (хотя до работы под WinXP далеко), но ясно, что это тот максимум, на который способна эмуляция.
        С печатью тоже получилось. Но...
        1) Печатается нерусскими буквами, как подгрузить в принтер кириллицу?
        2) При второй или третьей посылке задания на печать - синий экран смерти.
        3) Если документ, посылаемый на печать, в ширину больше 80 символов, то остальные переносятся на вторую и даже третью строку. Есть ли вариант применения управляющих последовательностей - чтобы печатать полусжатым, сжатым или суперсжатым методом, а также задавать ориентацию - книжную или альбомную?

          • Recluse

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

            • DAV7772

            Как вариант - вариант ))))
            Собственно, кое-какие пользователи так сейчас и поступают. Те, которые не пожелали понизить версию с семерки или десятки на WinXP. Потому что программа широко распространена в узких кругах, аналога ей нет (или будет стоить очень дорого). Те, которые печатают раз в месяц какие-то итоговые отчеты на 5 страницах.
            Но если дело дойдет до центрального офиса, где десяток пользователей печатают каждый день по 50 страниц, и до того ближайшего или далекого будущего, когда образуется нехватка компьютеров под 32-разрядной XP, а продаваться будут только 64-разрядные, то хотелось бы знать, насколько реальна штатная работа под DOSBOX с регулярной и частой печатью?

              • Recluse

              К сожалению, на этот вопрос я не могу дать квалифицированный ответ.

              Однако, могу предложить вам посмотреть в сторону виртуальных машин - бесплатных программ более чем достаточно. Если ваша программа без проблем работает например под Windows XP, то можете просто создать виртуальную машину, сделать автозапуск своей программы в ней, расшарить на компьютере-хосте принтер, и подключится на него с виртуальной машины...

    • Miky

    Спасибо! запустилась с первого раза! Много проблем отпало! Рулит на Windows 10 64 bit!

    • rrenard

    отличная статья, со второй попытки запустил ностальгический EOB1 ;)
    Единственно (но могу ошибаться), если в папке два исполняемых файла, то в conf надо вписывать их оба

    • Светлана

    При запуске программы в DOSBOX выходит сообщение: "This program must be run under Win32". Можно как то это победить? Стоит Windows7 x64.

      • Recluse

      Судя по всему вы пытаетесь запустить исполняемый файл, который предназначен для работы в Windows, а не в MS DOS. Попробуйте запустить программу прямо из под Windows, хотя не исключено, что под Windows 7, да и к тому же 64 разрядной, она нормально работать не будет.

    • Андрей

    А можно как-нибудь сделать, чтобы сама DosBox монтировалась не в диск Z:, а какой-нибудь другой? Дело в том, что в самой моей ДОС-программе базы прописаны именно на диске Z, а получается, что я его не могу смонтировать в файле conf, так как эта буква уже занята самой программой.

      • Recluse

      Без перекомпиляции исполняемого файла DOSBox такое проделать невозможно.

    • Юрий

    Большое спасибо. Все получилось.
    В dosbox.conf добавил FILES=250,
    и перед запуском программы, запускаю KEYRUS.COM.
    Программа стала работать.

      • Ната

      Юрий, каким ехе пользуетесь скачанным с офиц. сайта DosBox или по ссылке предложенной выше?

    • Юрий

    Доброго времени суток!
    Программа СУБД написана на Foxpro 2.6 DOS.
    Программа открывает много таблиц.
    При запуске программы из-под DOSBOX
    возникает ошибка "Too many files open" (Слишком много открытых файлов.).
    При запуске программы в 32-х разрядной системы, без DOSBOX,
    в C:\Windows\System32\config.nt
    записывал files=250 и программа работала.
    Где и как можно в DOSBOX указать количество открываемых файлов?

      • Recluse

      К сожалению, судя по всему, без правки исходных кодов DOSBox это не сделать, однако есть в интернете люди, которые столкнулись с этой же проблемой. Есть и решение - модифицированный исполняемый DOXBox.exe, который можно скачать здесь. Предупреждаю - используйте на свой страх и риск - проверить работу данного файла нет возможности.

        • Петр

        Спасибо огромное за файл!
        Две недели искал решение, помог только ваш модифицированный файл.

    • Олег

    Доброго времени суток!
    DOSBox - замечательная программа, даже принтер порта LPT на USB печатает, но есть для меня один БОООООЛЬШУЩИЙ минус... запускаемая прога написана на CLIPPER, и почему-то в среде DOSBox неимоверно долго открываются файлы баз данных... параметр FILES=60. Может сталкивался кто?

    • Сергей
    @ECHO OFF
    SET CLIPPER=V030;F250;
    SET CLIP_PATH=\UCHET\WORK\
    SET P_SOFT=\UCHET
    SET LINGVA=1
    SET sel=
    rem VIDRAM ON > NUL
    
    REM      é¢üÄÉ ÅÉàäÅÉêƒÆêƒ
    :sel
    CLS
    IF NOT EXIST  %P_SOFT%\sel.exe  GOTO  again
    SET CLIP_PATH=\UCHET\WORK_1\
    sel.exe
    
    IF ERRORLEVEL -1 GOTO end
    if ERRORLEVEL 20 GOTO i20
    if ERRORLEVEL 19 GOTO i19
    if ERRORLEVEL 18 GOTO i18
    if ERRORLEVEL 17 GOTO i17
    if ERRORLEVEL 16 GOTO i16
    if ERRORLEVEL 15 GOTO i15
    if ERRORLEVEL 14 GOTO i14
    if ERRORLEVEL 13 GOTO i13
    if ERRORLEVEL 12 GOTO i12
    if ERRORLEVEL 11 GOTO i11
    if ERRORLEVEL 10 GOTO i10
    if ERRORLEVEL 9  GOTO i9
    if ERRORLEVEL 8  GOTO i8
    if ERRORLEVEL 7  GOTO i7
    if ERRORLEVEL 6  GOTO i6
    if ERRORLEVEL 5  GOTO i5
    if ERRORLEVEL 4  GOTO i4
    if ERRORLEVEL 3  GOTO i3
    if ERRORLEVEL 2  GOTO i2
    if ERRORLEVEL 1  GOTO i1
    
    :i1
    SET clip_path=\UCHET\WORK_1\
    SET sel=1
    GOTO again
    
    :i2
    SET clip_path=\UCHET\WORK_2\
    SET sel=2
    GOTO again
    
    :i3
    SET clip_path=\UCHET\WORK_3\
    SET sel=3
    GOTO again
    
    :i4
    SET clip_path=\UCHET\WORK_4\
    SET sel=4
    GOTO again
    
    :i5
    SET clip_path=\UCHET\WORK_5\
    SET sel=5
    GOTO again
    
    :i6
    SET clip_path=\UCHET\WORK_6\
    SET sel=6
    GOTO again
    
    :i7
    SET clip_path=\UCHET\WORK_7\
    SET sel=7
    GOTO again
    
    :i8
    SET clip_path=\UCHET\WORK_8\
    SET sel=8
    GOTO again
    
    :i9
    SET clip_path=\UCHET\WORK_9\
    SET sel=9
    GOTO again
    
    :i10
    SET clip_path=\UCHET\WORK_10\
    SET sel=10
    GOTO again
    
    :i11
    SET clip_path=\UCHET\WORK_11\
    SET sel=11
    GOTO again
    
    :i12
    SET clip_path=\UCHET\WORK_12\
    SET sel=12
    GOTO again
    
    :i13
    SET clip_path=\UCHET\WORK_13\
    SET sel=13
    GOTO again
    
    :i14
    SET clip_path=\UCHET\WORK_14\
    SET sel=14
    GOTO again
    
    :i15
    SET clip_path=\UCHET\WORK_15\
    SET sel=15
    GOTO again
    
    :i16
    SET clip_path=\UCHET\WORK_16\
    SET sel=16
    GOTO again
    
    :i17
    SET clip_path=\UCHET\WORK_17\
    SET sel=17
    GOTO again
    
    :i18
    SET clip_path=\UCHET\WORK_18\
    SET sel=18
    GOTO again
    
    :i19
    SET clip_path=\UCHET\WORK_19\
    SET sel=19
    GOTO again
    
    :i20
    SET clip_path=\UCHET\WORK_20\
    SET sel=20
    GOTO again
    
    :again
    IF NOT EXIST %P_SOFT%\U_ARM.EXE  BE  %P_SOFT%\uchet2.dat
    IF NOT EXIST %P_SOFT%\U_ARM.EXE  GOTO end
    IF EXIST  %P_SOFT%\U_ARM.EXE  %P_SOFT%\U_ARM.EXE
    
    REM                   éδí«α »«ñß¿ßΓѼδ ß πßΓá¡«ó¬«⌐ ¬«ñá ó«ºóαáΓá
    
    IF ERRORLEVEL -1 GOTO sel_next
    IF ERRORLEVEL  3 GOTO restored
    IF ERRORLEVEL  2 GOTO copyd
    GOTO end
    
    REM                    ÅÑαÑσ«ñ ¬ óδ»«½¡Ñ¡¿ε óδíαá¡¡«⌐ »«ñß¿ßΓѼδ
    
    :restored
    IF NOT EXIST  %P_SOFT%\unarc.bat  BE  %P_SOFT%\uchet2.dat
    IF EXIST  %P_SOFT%\unarc.bat call %P_SOFT%\unarc.bat uchet a:\
    goto again
    
    :copyd
    IF NOT EXIST  %P_SOFT%\arc.bat  BE   %P_SOFT%\uchet2.dat
    IF EXIST  %P_SOFT%\arc.bat call %P_SOFT%\arc.bat uchet a:\
    goto again
    
    :sel_next
    IF NOT EXIST  %P_SOFT%\sel.exe  GOTO  end
    GOTO sel
    
    :end
    cls
    
    rem VIDRAM OFF > NUL
    CLS
    exit
      • Recluse

      По пути D:\UCHET есть папка с таким же названием - Uchet? Если нет, то попробуйте скопировать данный bat файл в корень диска D, и запустить его оттуда.

    • Recluse

    А что внутри Uchet.bat?

    • Сергей

    Conf-файл:

    [autoexec]
    mount c D:\Uchet
    c:
    Uchet.bat
    exit
    bat-файл:
    start "" "C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe" -conf "D:\Uchet\start.conf"
    • Recluse

    Сложно сказать, что в вашем случае пошло не так, но если вы выложите содержимое файлов конфигурации и bat файла, то возможно я смогу вам помочь.

    • Сергей

    Все делал по инструкции, запускается Dosbox и тут же закрывается, в чем может быть проблема. система Win 7x64.

    • Иван

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

      • Recluse

      А что подразумевается "поехавшие шрифты"? Если вместо русского языка отображаются различные загогулины, то в статье есть решение.

    • Васян

    Пытаемся загрузить БД с перечнем людей, сделали все, что указанно в инструкции. Но при запуске эмулятора он выключается и ничего не происходит. Интерфейс этой БД очень похож на FAR Manager, вот и подумал, что он тоже может быть связан с запуском.

    • Антон

    Уважаемый Recluse и остальные знающие, как заставить работать F1-10 клавиши?

    • Recluse

    Что пытаетесь запустить?
    Если FAR Manager, то он не является MS-DOS программой.

    • Васян

    Уважаемые знатоки! Сделал все по инструкции, но результата это не принесло. Вместо запуска голубого окна эмулятор просто закрывается. Что я делаю не так? Может ли программа MS-DOS запускаться через другую, FAR?

    • Recluse

    Попробуйте после строки

    mount c D:\Prog

    Написать следующее:

    mount A A:\ -t floppy

    Подразумеваю, что у вас есть дисковод, которому в системе присвоена буква A (по умолчанию), и в него вставлена нужная дискета.

    • Игорь

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

    • Сергей

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

      • Олег

      Ну не совсем всё работало... У меня на ХР х32 ДОС-программа напрямую запускалась, но ни мышь, ни клавиатура не работали и пришлось через досбокс.

    • Recluse

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

    • Сергей

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

    • Recluse

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

    • Алексей

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

    • Игорь

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

    • Recluse

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

    mount c E:\CHESS2
    c:
    CG3.exe

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

    • Игорь

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

    • Игорь

    Здравствуйте, уважаемый 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"

    Надеюсь на Вашу помощь.
    Спасибо

    • Recluse

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

    • Игорь

    Здравствуйте, уважаемый 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

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

    • Сергей

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

    • Ирина

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

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

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

    • Recluse

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

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

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

    • Ирина

    Добрый день! У меня почему-то не получается сделать русский язык. Все сделала как сказано. После добавления в conf-файл

    [dosbox]
    language="C:\Program Files (x86)\DOSBox-0.74\russian.txt"
    
    [dos]
    keyboardlayout=RU

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

    • Recluse

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

    https://pc.ru/articles/windows-xp-kak-sdelat-simvolicheskuyu-ssylku-simlink

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

    • Алексей

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

    • Recluse

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

    • Алексей

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

    • QuicKid

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

    • Recluse

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

    • Никита

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

    • Ювеналий

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

Добавить комментарий для Владимир

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

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