Запуск старих dos програм під windows x64

У будь-якій організації може виявитися так, що при оновленні старих комп'ютерів на нові можна зіткнутися з таким фактом, що комп'ютери нові, але необхідність використання старих програм нікуди не відпала. А однією зі старих програм цілком може виявитися який-небудь додаток, написане в дев'яності роки під MS-DOS, яке геть відмовляється запускатися на сучасних операційних системах.

В такому випадку дуже допомагає емулятор MS-DOS під назвою DOSBox.

Викачуємо останню версію з офіційного сайту. після встановлюємо. Ніяких незвичайних дій при установці програми не потрібно.

Тепер шукаємо необхідну вам DOS програму. Припустимо вона розташовується на диску D в папці Prog і називається Prog.exe. Переходимо в цю папку, і створюємо там текстовий файл з будь-якою назвою і розширенням conf. У нього пишемо:

mount c D: \ Prog - монтує в емулятор папку D: \ Prog як розділ жорсткого диска С;
c: - здійснює перехід на розділ C жорсткого диска;
Prog.exe - запускає потрібну програму. Замість exe файлу можуть бути так само файли з розширенням bat або pif.
exit - закриває DOSBox після завершення роботи програми. Працює ТІЛЬКИ з exe файлами.

Якщо вам потрібно, щоб DOSBox закривався після запуску bat файлу, то замість простого запуску prog.bat пишемо:

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

Замість "C: \ Program Files (x86) \ DOSBox-0.74" вказуємо той шлях, куди була встановлена ​​програма DOSBox. Замість D: \ Prog вказуємо шлях до потрібної DOS програмою, і замість prog.conf вказуємо ім'я файлу, створеного вище.
Зберігаємо, і пробуємо запустити. Якщо все пройшло успішно, то з'явиться віконце DOSBox, в якому запуститься потрібна програма.

Запуск старих dos програм під windows x64

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

Де "C: \ Program Files (x86) \ DOSBox-0.74 \ russian.txt" - це шлях до розпакованого в папку з програмою файлу russian.txt.

Якщо шлях до файлу russian.txt містить прогалини, обов'язково закриваємо його в лапки, як у прикладі вище. Якщо ж прогалин в шляху немає, лапки не потрібні, і швидше за все DOSBox НЕ буде коректно працювати.

Зберігаємо і пробуємо запустити програму.

Запуск старих dos програм під windows x64

Тепер українські символи відображаються та друкуються.

Перемикання мови в DOSBox здійснюється за допомогою одночасного натискання лівого Alt і правого Shift.

Якщо при запуску програми бентежить друге віконце DOSBox, яке відкривається разом з основним вікном, то можна в bat файл дописати параметр -noconsole. в результаті bat файл для запуску пріобрітет такий вигляд:

оцінити статтю

Інші статті:

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

mount c E: \ CHESS2
c:
CG3.exe

І подивитися, чи запуститься програма.

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

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

@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 éδí «α» «ñß¿ßΓѼδ ß πßΓá¡« ó¬ «⌐ ¬« ñá ó «ºóαáΓá

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

sel_next
IF NOT EXIST% P_SOFT% \ sel.exe GOTO end
GOTO sel

rem VIDRAM OFF> NUL
CLS
exit