Запуск старих 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, в якому запуститься потрібна програма.

Втім, момент тріумфу може затьмарити повна відсутність української мови - але це можна поправити.
Для початку завантажуємо з офіційного сайту офіційну локалізацію - після чого розпаковуємо вміст архіву в каталог з програмою. Тепер відкриваємо створений вище conf файл, і дописуємо туди в самий верх наступне:
Де "C: \ Program Files (x86) \ DOSBox-0.74 \ russian.txt" - це шлях до розпакованого в папку з програмою файлу russian.txt.
Якщо шлях до файлу russian.txt містить прогалини, обов'язково закриваємо його в лапки, як у прикладі вище. Якщо ж прогалин в шляху немає, лапки не потрібні, і швидше за все DOSBox НЕ буде коректно працювати.
Зберігаємо і пробуємо запустити програму.

Тепер українські символи відображаються та друкуються.
Перемикання мови в 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