DosBox - запуск программ и игр для MS-DOS под Windows и Linux
Думаю что многие сталкивались с проблемами запуска старых Microsoft DOS (MS-DOS) совместимых приложений под современными операционными системами Microsoft Windows (MS Windows).
Иногда бывает что старую и нужную программу или игру не получится запустить под MS Windows, приходится для этого держать старенький компьютер или же запускать MS-DOS под VirtualBox. Для решения подобной проблемы есть отличное и удобное свободное программное обеспечение - DosBox.
Содержание:
- Что такое DosBox
- Установка программы DosBox в FreeBSD, Linux и Windows
- Основные консольные команды
- Список горячих клавиш
- Монтирование директорий как дисков в DosBox
- Монтирование образов IMG (Floppy) и ISO (CD)
- Создание и использование образов IMG (Floppy) в Linux
- Монтирование образов IMG (HDD)
- Создание и использование образов IMG (HDD) в Linux
- Конфигурационные файлы DosBox
- Настройка автозапуска команд после старта
- Исправляем "кракозябры" (кодировку)
- Переключение раскладок клавиатуры (RUS/LAT)
- Пошаговый пример настройки DosBox под Windows
- Скриншоты некоторых популярных программ и игр
- Заключение
Что такое DosBox
DosBox - это программный эмулятор IBM-PC совместимого компьютера под управлением операционной системы (ОС) MS-DOS. Программа DosBox является свободным программным обеспечением, которое позволяет запускать старые программы и игры на современных компьютерах и устройствах под управлением операционных систем Windows, Linux, Adndroid и других.
Официальный сайт программы: www.dosbox.com
Краткий перечень возможностей и плюсов DosBox:
- MS-DOS окружение без наличия физического x86 процессора и оригинала ОС;
- Эмуляция прерываний BIOS и аппаратной части IBM-PC совместимого компьютера;
- Подключение любой папки на компьютере как рабочий диск в виртуальной ОС;
- Графика - Text Mode, Hercules, CGA, EGA, VGA, VESA;
- Аудио - AdLib, Sound Blaster, PC-Speaker(пищалка) и другие старые железки;
- Сеть - TCP/IP, IPX, Com-port(Windows);
- Кроссплатформенность;
- Открытое ПО, наличие исходных кодов;
- Маленький размер дистрибутива 1,5-2 Мб;
- Возможность запуска в портабельном режиме.
Под DosBox уверено запустятся и будут работать различные файловые менеджеры времен MS-DOS, бухгалтерские и банковские программы, среды программирования, программы для радиолюбительских измерений и коммуникации...
В эмуляторе отлично будут работать такие игры как: Dune II, Quake, Duke Nukem, Warcraft II, Chasm the rift и многие другие...
Установка программы DosBox в FreeBSD, Linux и Windows
В системах GNU/Linux Свежую версию программы всегда можно скачать на официальном сайте, а также установить через систему репозиториев. Для установки DosBox под GNU/Linux Debian или Ubuntu достаточно одной команды:
sudo apt install dosbox
Под FreeBSD установка также очень проста - можно воспользоваться пакетом или же собрать из портов, вот команды для этих двух вариантов:
# Из пакетов
pkg install dosbox
# Из портов
cd /usr/ports/emulators/dosbox && make install clean
Для операционной системы Windows проще всего скачать установщик с официального сайта DosBox. Тем не менее, очень удобно использовать портативную (portable) версию программы, которая запускается и работает с флешки или сменного жесткого диска.
Используя портативную версию программы можно, например, сделать подарочную флешку с набором стареньких игр и программ на день рождения для своего друга - если он раньше работал с MS-DOS то ему наверняка будет что вспомнить. :)
Качаем и устанавливаем портабельную версию программы - DosBox Portable (portableapps) (2Мб).
После запуска DOSBoxPortable.exe откроется два окошка: первое - окно статуса программы. а второе - окно где производится эмуляция.
Для тех кто знает Английский язык проблем со встроенной системой помощи (HELP) не возникнет.
Команда INTRO позволяет максимально быстро пройтись по основным пунктам работы с программой: монтирование директорий как дисков, работа с образами CD-ROM, список горячих клавиш.
Основные консольные команды
Если в консоли DosBox ввести 'HELP' или 'HELP /all' - будет выведен список доступных в эмуляторе основных команд MS-DOS:
- CD - смена текущего каталога;
- CLS - очистка экрана;
- COPY - копирование файлов;
- DEL - удаление файлов;
- DIR - отображает содержимое директории;
- EXIT - выход;
- MD - создание директории;
- RD - удаление директории;
- REN - переименование одного или нескольких файлов;
- TYPE - отображение содержимого текстового файла;
- VER - отображает текущую версию DosBox, а также версию эмулируемой MS-DOS.
Кроме того, есть также некоторые внутренние программы и команды:
- IMGMOUNT - монтирование файлов-образов IMG, ISO;
- INTRO - краткий обучающий обзор возможностей программы DosBox;
- MIXER - управление программным аудио-микшером (громкость);
- MOUNT - монтирование директорий как виртуальных дисков.
Список горячих клавиш
- ALT-ENTER - включение/выключение полноэкранного режима;
- ALT-PAUSE - приостановка работы эмулятора DosBox;
- CTRL-F1 - запуск редактора горячих клавиш;
- CTRL-F4 - обновление кеша директорий что подмонтированы, смена подмонтированных образов дисков;
- CTRL-ALT-F5 - запуск и остановка захвата экрана с последующим сохранением в видеофайл;
- CTRL-F5 - захват и сохранение скриншота;
- CTRL-F6 - запуск и остановка записи звука в Wav файл;
- CTRL-ALT-F7 - старт и остановка записи OPL команд;
- CTRL-ALT-F8 - старт и остановка записи разных MIDI команд;
- CTRL-F7 - уменьшить количество пропускаемых фреймов;
- CTRL-F8 - увеличить количество пропускаемых фреймов;
- CTRL-F9 - холодное выключение DosBox (kill);
- CTRL-F10 - включение и отключение захвата мышки;
- CTRL-F11 - замедление эмулятора, уменьшение количества циклов микропроцессора;
- CTRL-F12 - ускорение эмулятора, увеличение количества циклов микропроцессора;
- ALT-F12 - отключение лимита скорости, максимум.
Монтирование директорий как дисков в DosBox
Теперь приступим к созданию и подключению директории на компьютере в качестве виртуального диска внутри DosBox. Хотелось бы заметить что это может быть любая директория на любом из подключенных в операционной системе дисков/томов.
Пример команды, которую нужно выполнить в консоли уже запущенной программы DosBox:
mount C D:\DOSGames
где:
- mount - название команды, которую нужно выполнять;
- C - название (буква), которое будет присвоено доступному в DosBox виртуальному диску;
- D:\DOSGames - путь к папке "DOSGames", которая размещается на диске D основной системы (пример для MS Windows).
После запуска будет выведено оповещение что диск с буквой "C" подмонтирован и для него используется директория "D:/DOS_Games". Таким образом можно подмонтировать несколько виртуальных дисков с директориями - на одном хранить программы, на другом документы и т.п.
Подключаемая директория должна существовать, также хочу заметить что в путях можно использовать разделитель слеш (unix) "/" вместо обратного (win) "\" не зависимо от того под какой ОС вы запускаете DosBox.
Еще пример, команда для монтирования в качестве диска X (внутри DosBox) директории /tmp/DOSTEST из Linux системы:
mount X /tmp/DOSTEST
Монтирование образов IMG (Floppy) и ISO (CD)
Похожим образом, как при работе с директориями, мы можем cмонтировать в виде виртуальных дисков образы:
- IMG - образ снятый с дискетки на 360К, 720К, 1440К (Floppy) или же с жесткого диска (HDD);
- ISO - образ лазерного диска (CD).
Для чего может понадобиться монитрование IMG или ISO образов в DosBox? - вот несколько вариантов применения:
- Установка программ и игр с наборов образов дискет или лазерных дисков;
- Подключение образов жестких дисков, например точных побайтовых копий разделов из когда-то работавших систем с сохраненной ОС, программами и их настройками;
- Создание загрузочных образов дисков из DosBox, например с установленными MS-DOS, Win 3.1.
Монтирование образов выполняется внутри окружения DosBox с помощью команды 'imgmount' (от Image Mount).
Первым аргументом команды выступает имя (буква) виртуального диска, куда будет примонтирован образ. Дальше указываем путь (внутри DosBox) к файлу-образу (с расширением IMG или ISO), и в конце параметр обозначающий тип монтируемого образа.
Например, подмонтируем к диску с буквой 'e' файл-образ дискетки 'DISK1.IMG' из папки по внутреннему пути 'c:\INSTALL\OFFICE\':
imgmount e: c:\INSTALL\OFFICE\DISK1.IMG -t floppy
Параметр 't' (type) - позволяет указать тип монтируемого образа, например: floppy, iso, hdd.
Также можно выполнить загрузку системы с поочередной сменой виртуальных дискеток из образов, єто удобно при установке ОС или программ с множества образов дискет:
boot DOS622_1.IMG DOS622_2.img DOS622_3.img -l a
где:
- DOS622_*.IMG - имена файлов-образов трех дискет с MS-DOS 6.22;
- -l a - задает имя дисковода 'a' (можно также 'b', 'c' или 'd'), с которого будет выполняться загрузка.
При нажатиях комбинаций клавиш 'CTRL+F4' образы дискет 'DOS622_1.IMG', 'DOS622_2.IMG', 'DOS622_3.IMG' будут монтироваться по кругу в дисководы с именами 'A' и 'B'.
А теперь подмонтируем к диску с буквой 'r' файл ISO-образ CD-диска 'RA1.ISO' из папки по внутреннему пути 'c:\IMAGES\':
imgmount r: с:\IMAGES\RA1.iso -t iso
Здесь существует похожая как и с образами дискет при загрузке возможность монтирования разу нескольких файлов-образов к одному виртуальному диску (букве), с последующим их переключением комбинацией клавиш 'CTRL+F4'.
Делается это примерно так:
imgmount e: с:\IMAGES\RA1_CD1.iso с:\IMAGES\RA1_CD2.iso -t cdrom
Тут можно указать список из двух или более образов дисков, при этом опция типа файловой системы '-t' должна быть установлена как 'cdrom' (виртуальный CD-ROM дисковод).
В целях отладки, а также для мониторинга текущих образов в виртуальных дисководах при смене образов дискет, программу DosBox можно запустить из консоли:
dosbox
Теперь в процессе работы там будет выводиться дополнительная полезная информация.
Монтирование директорий и образов можно будет автоматизировать, указав нужные команды в конфигурационном файле DosBox.
Создание и использование образов IMG (Floppy) в Linux
Создаем пустой файл для образа дискетки:
dd if=/dev/zero of=FLOPPY.IMG bs=1K count=1440
где:
- of=FLOPPY.IMG - имя файла, куда будут записываться данные;
- bs=1K - количество Байт для записи в одном блоке данных;
- count=1440 - количество блоков данных.
1440 * 1K = 1440K = 1,44MB.
Создаем в образе раздел с файловой системой FAT16 (используем 'fdisk' с правами суперпользователя):
sudo fdisk FLOPPY.IMG
Жмем поочередно клавиши, водим значения и таким образом создаем структуру файловой системы:
- 'n' - новый раздел (New Partition);
- 'p' - основной раздел (Primary Partition);
- '1' - номер раздела (Partition number);
- '1' - первый сектор (First sector);
- жмем ENTER (по умолчанию) - Last sector (последний сектор);
- 'l' (буква 'l' от list) - выводим список типов файловых систем (list known partition types). Ищем номер для 'FAT16 <32M' = 4;
- 't' - меняем тип файловой системы (change a partition type). Вводим код '4' для ранее найденного типа файловой системы;
- 'p' - проверяем текущий тип файловой системы образа диска (Print the partition table);
- 'w' - сохраняем все изменения и выходим (Write changes).
Осталось отформатировать в нашем файле-образе созданный раздел с FAT16:
sudo mkfs -t fat FLOPPY.IMG
Образ дискетки на 1,44МБ готов к работе!
Теперь полученный файл виртуального диска можно смонтировать в папку '/mnt', записать на него файл, а потом размонтировать:
sudo mount -t vfat -o loop FLOPPY.IMG /mnt
ls /mnt
sudo echo 'Hello!' > /mnt/hello.txt
ls /mnt
sudo umount /mnt
ls /mnt
Монтирование образов IMG (HDD)
Для монтирования образа жесткого диска (IMG) можно попробовать простейший вариант с автоматическим распознаванием образа:
# Монтируем папку с образами как диск D
mount d: c:\images
# Переходим на диск D и смотрим его содержимое
d:
dir
# Монтируем образ как диск C
D:>imgmount c: "hdd.img"
Если команда не сработает, а также при работе с образом загрузочного диска - понадобится расчет и указание его геометрии.
Указать данные геометрии диска можно с помощью параметра 'size', например:
-size 512,63,16,568
где:
- 512 - размер сектора, в Байтах;
- 63 - количество секторов на дорожку;
- 16 - количество магнитных головок;
- 568 - число цилиндров.
Перемножив эти числа мы получим реальный размер диска:
512*63*16*568 = 293142528 Байт
293142528/1024/1024 = 279,5625 ~ 279 МегаБайт
Для понимания что такое секторы, дорожки и головки в жестком диске можете посмотреть мою статью про Ретро ПК на 80486, сразу же перейдя в раздел о жестком диске.
Создать образ нужного размера и узнать его геометрию (количество цилиндров) в Windows/Linux можно с помощью программы 'bximage.exe' из комплекта универсального эмулятора Bochs.
После запуска 'bximage' можно будет создать новый файл-образ или же узнать параметры (в том числе и геометрию) уже существующего. При создании нового образа будет запрошен его размер в МБ, выведены рассчитанные параметры его геометрии, запрошено имя создаваемого файла с дальнейшей его записью.
О том как создать файл-образ виртуального жесткого диска штатными средствами GNU/Linux будет рассказано в следующем разделе.
Допустим что в основной ОС (где установлена DosBox) в папке 'c:\images\' у нас находятся два файла-образа:
- VHD.IMG - образ диска размером 279МБ с указанными выше параметрами геометрии;
- FDOS622.IMG - образ загрузочной дискетки с MS-DOS 6.22.
Пустой образ диска можно будет подмонтировать примерно так:
mount d: c:\images
d:
dir
imgmount 2 VHD.IMG -size 512,63,16,568 -t hdd -fs none
где:
- 2 - номер виртуального диска (не раздела). От 0 до 3 (0=fda, 1=fdb, 2=hda, 3=hdb). 0 и 1 - виртуальные флопики, а 2 и 3 - виртуальные жесткие дисики;
- -size 512,63,16,568 - парметры размерности диска;
- -t hdd - тип "Hard Disk Drive" (жесткий диск);
- -fs none - тип файловой системы не определен (отсутствует или диск пуст).
Виртуальный жесткий диск из файла VHD.IMG теперь подмонтирован. Можно загрузиться с дискетки и создать на нем разделы (если их там еще нет), а также отформатировать.
Вот команды MS-DOS для выполнения таких задач внутри DosBox:
# Загружаемся с установочной дискеты MS-DOS.
# Чтобы выйти из программы установки жмем два раза F3.
boot FDOS622.IMG
# Создаем на диске новый раздел (команда MS-DOS).
fdisk
Программа 'fdisk' должна определить наличие виртуального жесткого диска. Дальше в диалогах программы выбираем:
- '1' - создать раздел DOS (Create DOS partition or Logical DOS Drive);
- '1' - основной раздел на диске (Create Primary DOS Partition);
- 'Y' - ответ 'ДА' на вопрос об использовании всего доступного пространства (Do you wish to use maximum available size for a Priomary DOS Partition).
После перезагрузки монтируем образ VHD.IMG как диск 'C':
# DosBox сам попробует рапознать тип и геометрию образа диска
imgmount c: VHD.IMG
# Если пишет что 'Could not extract drive geometry from image'
imgmount c: VHD.IMG -size 512,63,16,568 -t hdd -fs fat
Грузимся с образа дискеты FDOS622.IMG и форматируем диск 'C' с переносом на него системных файлов MS-DOS, смотрим его содержимое:
boot FDOS622.IMG
format c: /s
c:
dir
Диск отформатирован, системные файлы перенесены. Теперь с него можно загружать MS-DOS, размещать внутри файлы и папки.
Создание и использование образов IMG (HDD) в Linux
Для корректного создания образов, которые будут работать с ванильной DosBox будем использовать программу 'bximage' из комплекта эмулятора Bochs, установим его командой:
apt install bochs
Запустим создание нового образа диска:
bximage
Выбираем опции и значения по очереди:
- '1' - создание нового образа (Create new floppy or hard disk image);
- 'hd' - вводим на вопрос о создании образа флоппи или жесткого диска (Please type hd or fd);
- 'flat' - указываем тип образа (What kind of image should I create?);
- '256' - размер диска в мегабайтах (Enter the hard disk size in megabytes);
- 'VHD.IMG' - имя файла-образа диска (What should be the name of the image?).
Программа завершит работу и файл 'VHD.IMG' будет создан. Обращаем внимание на строчку вывода:
Creating hard disk image 'VHD.IMG' with CHS=520/16/63
Здесь CHS означает: Cylinders (цилиндров), Heads (головок), Sectors/Track (секторов на дорожку). Соответственно значения: C=520, H=16, S=63.
Еще один вариант подготовки пустого образа - воспользоваться командой 'dd'.
Рассчитаем точный размер диска на 256М в байтах:
256*1024*1024 = 268435456 байт
Рассчитаем количество секторов (блоков) по 512 байт для такого диска:
268435456/512 = 524288
Выполним расчет количества цилиндров для данного количества секторов, с учетом того что у нас 16 головок и 63 сектора на дорожку:
С = 524288/16/63 = 520,12698 ~ 520
Создаем пустой файл-образ:
dd if=/dev/zero of=VHD.IMG bs=512 count=524288
# Сброс буферов, дожидаемся завершения записи на диск.
sync
Итак, образ готов.
Зная значения геометрии виртуального диска готовим команду, с помощью которой монтируем образ в DosBox как первый виртуальный жесткий диск ('2' - hda):
imgmount 2 VHD.IMG -size 512,63,16,520 -t hdd -fs none
А дальше можно загрузиться с образа дискеты MS-DOS и выполнить подготовку раздела, точно так само как было показано ранее.
Также, полученный образ теперь можно смонтировать в Linux для чтения/записи каких-то файлов внутри него. Вот пример команды для монтирования и размонтирования образа VHD.IMG в '/mnt':
sudo mount -t msdos -o loop,offset=32256 VHD.IMG /mnt
... создаем файлы и папки в /mnt ...
sudo umount /mnt
здесь:
- -t msdos - тип файловой системы для используемого раздела;
- -o loop,offset=32256 - опции, указываем что для монтирования будем использовать так называемое loop-устройство, а также что чтение нужного нам раздела стоит начинать со смещением 32256 байт (63 сектора по 512 байт);
- VHD.IMG - имя файла-образа виртуального диска;
- /mnt - точка монтирования.
Для получения информации о разделах внутри фала-образа можно воспользоваться программой 'fdisk' (в Linux), нажав в ней поочередно клавиши 'p' и 'i':
sudo fdisk VHD.img
Пример вывода информации о VHD.IMG:
Disk VHD.IMG: 256 MiB, 268435456 bytes, 524288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
VHD.IMG1 * 63 524159 524097 255,9M 6 FAT16
Command (m for help): i
Selected partition 1
Device: VHD.IMG1
Boot: *
Start: 63
End: 524159
Sectors: 524097
Cylinders: 520
Size: 255,9M
Id: 6
Type: FAT16
Start-C/H/S: 0/1/1
End-C/H/S: 519/15/63
Attrs: 80
Конфигурационные файлы DosBox
Для каждой программы можно создать свой конфигурационный файл с уникальными для нее параметрами эмуляции.
После первого запуска DosBox будет автоматически создан конфигурационный файл по умолчанию - dosbox.conf. Вот его местонахождение в разных операционных системах:
- MS Windows: "{системный_диск}:/Users/{имя_пользователя}/AppData/Local/DOSBox/dosbox-{версия}.conf" ;
- GNU/Linux: "~/.config/dosbox/" (для версии 0.75 и выше) или "~/.dosbox/";
- MS Windows - PortableApps: в папке "Data/settings/dosbox.conf" относительно DOSBoxPortable.exe .
Вместо "{системный_диск}", "{имя_пользователя}" и "{версия}" нужно подставить актуальные для вашего случая и системы данные.
Для редактирования файлов конфигурации можно использовать любой текстовый редактор - notepad (Windows), gedit, kate, nano (Linux) и другие.
Чтобы запустить эмулятор с определенным конфигурационным файлом нужно выполнить команду:
DOSBox.exe -conf "ConfigName.conf"
Где "ConfigName.conf" - имя конфигурационного файла. Если конфигурационный файл размещается не в директории с программой, то вместо имени нужно указывать полный путь к файлу (с названиями директорий), примеры для Windows и Linux:
DOSBox.exe -conf "C:\Test\games-config.conf"
dosbox -conf /tmp/games-config.conf
Настройка автозапуска команд после старта
Воспользуемся поддержкой принципа так называемого файла autoexec.bat из мира MS-DOS в эмуляторе, это очень удобно когда после запуска программы-эмулятора DosBox нужно автоматически выполнить некоторые команды, запустить предустановленные программы.
В качестве примеров того что можно автоматизировать:
- почистить мусор в какой-либо директории (использовать команду DEL)
- подмонтировать новый диск (использовать команду mount)
- запустить Norton/Volkov Commander
- автоматически запустить игру или другую программу
- и т.д.
Чтобы задать команды для автостарта в DosBox нужно добавить список этих команд в специальную секцию под названием "[autoexec]" в конфигурационный файл dosbox.conf.
К примеру, после старта нужно выполнить следующие действия:
- подмонтировать папку "Data/Disk_C" для портабельной версии программы (Windows - portableapps) как диск "С" в эмуляторе;
- перейти на диск С;
- вывести список содержимого диска С.
Открываем в текстовом редакторе конфигурационный файл dosbox.conf и ищем в самом низу секцию "[autoexec]" - все заданные там команды будут автоматически выполнены по порядку после запуска эмулятора .
Вот скриншот реализации приведенных выше 3х команд для авто-запуска по очереди:
Хотелось бы обратить внимание на путь к директории "../../Data/Disk_C" - в данном случае мы указываем относительный путь для портабельной версии программы, а не абсолютный (к примеру "c:/Programs/Dosbox/Data/").
Программа DosBox будет искать папку относительно файла DOSBox.exe, что находится в директории "App/DOSBox", поэтому мы поднимаемся на два уровня выше "../../" и уже после указываем расположение директории от текущего уровня.
Данный метод монтирования директорий с относительными путями 100% рабочий и отлично подходит для монтирования директорий что расположены рядом на одном диске с программой.
Эта возможность очень удобна, поскольку позволяет переносить портабельную версию программы и содержимое к ней (программы для ДОС) на сменных носителях и дисках, например на флешке или внешнем жестком диске.
Запускаем DosBox и вот что мы должны увидеть:
Директория смонтирована как диск С, выполнен переход на этот диск и отображены папки и файлы на нем.
Если вы предпочитаете работу в оболочках типа Norton Commander или Volkov Commander то в автозапуск можно также добавить полный путь для запуска оболочки.
Например вы распаковали Volkov Commander в директорию "vc", что расположена в каталоге который будет смонтирован как диск С. Добавляем в конфигурационный файл примера, что приведен выше, строчку: "c:\vc\vc.com".
Хочу заметить что для всех команд, которые выполняться внутри эмулятора, в путях нужно использовать слеши:
- для Linux - слеш "/";
- для Windows - обратный слеш "\".
В показанном выше примере, при запуске DosBox (портабельная версия программы) под Windows автоматически подмонтируется диск С и запустится Volkov Commander:
Исправляем "кракозябры" (кодировку)
При запуске некоторых русскоязычных программ можем увидеть нечто подобное:
Для корректного отображения кириллических символов в MS-DOS служат специальные драйвера экрана и шрифты. В нашем же случае, в DosBox этот функционал уже встроен внутри, нужно лишь его активировать.
Добавляем в конфигурационный файл DosBox (dosbox.conf), в секцию "[autoexec]" строчку:
keyb ru 866
После перезапуска программы символы кириллицы станут отображаться как следует!
Теперь русские символы отображаются корректно!
Переключение раскладок клавиатуры (RUS/LAT)
Поддержка вывода русских символов теперь есть, а как переключить раскладку клавиатуры в DosBox для ввода символов кириллицы? - для этого служат специальные драйверы и программы "руссификаторы".
Одна из самых популярных и достаточно функциональных представителей такого рода - это KEYRUS.
KEYRUS - драйвер дисплея и клавиатуры для MS-DOS, программа класса FreeWare, написанная украинским разработчиком Дмитрием Гуртяком (г.Донецк).
Вот полный архив с KEYRUS версии 7.3 - (93 КБ).
Состав пакета KEYRUS:
- KEYRUS.COM - Сам драйвер;
- SETUP.EXE - Инсталлятор;
- KEYEDIT.EXE - Редактор клавиатур;
- QWERTY.KBD, KEYBOARD.KBD, UKRAINE.KBD - Раскладки клавиатур;
- KEYRUS.DOC - Документация по программе;
- SETUP.DOC - Документация по установке программы;
- _README.1ST - Общая информация от разработчика;
- EVAFONT.EXE - Редактор шрифтов;
- EVAFONT.DOC - документация к редактору шрифтов.
Программа содержит не мало возможностей и ключей запуска (из командной строки). Все хорошо документировано - читайте файлы DOC и настраивайте под свои требования.
С помощью оболочки SETUP.EXE можно выполнить настройки в псевдо-графическом режиме и потом сгенерировать готовую конфигурацию, которая будет записана в исполняемый файл KEYRUS.COM.
На основном экране программы "setup.exe" можно выбрать нужный блок для дальнейшей настройки (клавиатура, поддержка дисплея, интерфейс).
В блоке клавиатуры можно задать клавиши для переключения раскладки, настроить индикацию текущей раскладки и указать дополнительные возможности.
В блоке поддержки дисплея можно настроить поддержку шрифтов и символов.
Для работы программы достаточно одного исполняемого файла KEYRUS.COM, который можно запускать как вручную, та и из файла autoexec.bat или другого пакетного файла со своими настройками для конкретной программы.
Для активации драйвера достаточно просто запустить на выполнение файл KEYRUS.COM. Программа KEYRUS - резидентная. Это значит что она загрузится в память и будет функционировать в фоне пока ее не выгрузят.
Клавишей переключения между раскладками по умолчанию является правый CTRL (RIGHT CONTROL).
Если вы сделали настройки с помощью "setup.exe", то переключение раскладок будет выполняться по нажатию заданной вами клавиши.
Программу KEYRUS можно запускать из командной строки с различными параметрами, тем самым изменяя ее поведение по умолчанию, включая или отключая нужный функционал для экономии памяти.
Некоторые параметры запуска KEYRUS:
# Страничка помощи, список параметров.
keyrus.com /HELP
# Включить интерфейс.
keyrus.com /INTERFACE=On
# Отключить интерфейс.
keyrus.com /INTERFACE=Off
# Включение русской раскладки по клавише "правый CTRL".
# Скан-код клавиши - 29e.
keyrus.com /SCAN=29e
# Включение английской раскладки по клавише "левый CTRL".
# Скан-код клавиши - 29.
keyrus.com /LAT=29
# Выгрузить программу из памяти.
keyrus.com /RELEASE
# Задаем несколько параметров запуска в одной команде.
keyrus.com /SCAN=29e /LAT=29 /INTERFACE=On
Вот как выглядит запуск программы без параметров:
Поскольку я запустил оригинальный файл KEYRUS.COM (без настройки через "setup.exe"), то для переключения раскладок использую одну клавишу - правый CTRL.
Создал текстовый файл "1.txt" и открыл его в редакторе в Dos Navigator, пробую писать текст в двух раскладках - работает!
Делаем вывод содержимого текстового файла в консоль с помощью встроенной команды "TYPE":
Для того чтобы драйвер активировался при запуске DosBox, нужно добавить вызов программы KEYRUS.COM в секции "[autoexec]" в конфигурационном файле "dosbox.conf", не забывая указать полный путь, например:
[autoexec]
keyb ru 866
mount c: ../../Data/Disk_C
c:/KEYRUS73/keyrus.com
c:
dir
В этом примере первым делом включаем поддержку отображения кириллицы в DosBox. Потом монтируем диск "С" к директории "Data/Disk_C", в которой создана поддиректория "KEYRUS73" с программными файлами KEYRUS.
После монтирования выполняется запуск файла KEYRUS.COM из директории с программой, которая теперь доступна на смонтированном диске под именем "C".
Теперь можно запускать нужные программы и работать в них, переключая раскладки клавиатуры ранее заданной клавишей (по умолчанию - правый CTRL).
Пошаговый пример настройки DosBox под Windows
У пользователей операционной системы GNU/Linux скорее всего не возникнет проблем с установкой и настройкой программы. А для некоторых пользователей MS Windows возможно что пригодится следующая подробная пошаговая инструкция.
Но прежде чем приступим, приведу одну очень важную рекомендацию: после скачивания на компьютер файлов каких-либо программ, предназначенных для работы под MS-DOS или MS Windows, их желательно проверить антивирусной программой.
Для пакетной проверки какого-то файла множеством разных антивирусов существует проект VirusTotal.com. На сайте проекта есть кнопка для загрузки файла на проверку.
Загружаем туда скачанные файлы по одному и смотрим результаты проверки множеством разных антивирусов. Файлы размером больше 100МБ загружать туда не рекомендую, как правило большинство небольших программ весят от нескольких единиц до десятков МегаБайт.
В примере будет использоваться портативная версия программы DosBox.
Итак, Поехали!
1. Скачивание программы
Переходим на сайт PortableApps.com со страницей загрузки DosBox - DOSBox Portable (emulator for classic DOS games).
Ищем кнопку "Download" и нажав на нее качаем запакованный пакет с программой.
Как правило, если браузер не спрашивал куда сохранить файл, программа будет сохранена в папке "Загрузки".
Заходим в браузере на сайт VirusTotal, жмем кнопочку "Choose file" (выбрать файл), выбираем скачанный файл "DOSBoxPortable_0.74.3.paf.exe".
Ожидаем когда завершится процесс проверки и смотрим на результаты:
В данном случае видим "0/71" - это значит что проверка выполнялась разными антивирусами в количестве 71 штук и никаких признаков вирусов в загруженном файле не обнаружено.
2. Установка
Начинаем установку программы - кликаем мышью на скачанном установочном файле. Программа-установщик предложит выбрать язык, например выбираем Русский.
Внимательно читаем все что пишет и запрашивает программа, нажимаем Далее. Потом программа запросит куда распаковать программу - нажав на кнопочку "Обзор" можно указать какой-то отдельный диск или папку, например можно распаковать на подключенную к компьютеру флешку.
Допустим что распаковывать программу мы будем на диск С, путь установки получится "C:\DOSBoxPortable".
Нажимаем кнопку "Установить" и потом по завершению процесса установки "Готово".
Все, программа установлена!
В этом примере она находится на диске С - переходим в "Мой компьютер" на диск С и видим там папку "DOSBoxPortable".
3. Первый запуск, тест
Прежде всего проясню один очень важный момент. После любого клика курсором мышки в окне DOSBox она автоматически будет захвачена и начнет работать только в пределах этого окна. Чтобы вернуть операционной системе Windows контроль над мышкой нужно нажать сочетание клавиш CTRL-F10 (включение и отключение захвата мышки)!
Рекомендую изучить и где-то записать себе сочетания клавиш, которые приведены в статье выше - они пригодятся потом при работе с программой.
Переходим в папку "DOSBoxPortable" и запускаем там на выполнение одноименный файл "DOSBoxPortable" - будут открыты два окна программы:
- Первое окно - это журнал хода выполнения программы
- Второе окно - рабочее окно программы DOSBox, в нем будем вводить команды, запускать программы.
Для завершения работы программы достаточно закрыть любое из этих двух окон.
4. Папка с программами для MS-DOS
В этой же папке "DOSBoxPortable" создадим новую папку для наших программ под MS-DOS. Жмем правую клавишу мыши (ПКМ) на свободном пространстве окна - Создать - Папку - вводим ее название "Program" и жмем ЕНТЕР. Папка для программ готова!
Теперь в эту папку можно сохранить разных программ и игр, которые предназначены для работы под MS-DOS.
Важно заметить что все папки и файлы здесь лучше именовать так, чтобы их имя не содержало больше чем 8 символов, например:
- Для программы "Norton Commander" папку можно назвать кратко - "NC";
- Для программы Банковский Учет 2.0 - "BANK_20";
- и так далее...
Например, скопируем туда свободный файловый менеджер "DOS Navigator", скачанный архив я распаковал в папку "DN". Также создадим какой-то текстовый файл-документ. После этого эти папки внутри будут выглядеть вот так:
- DN - папка с программой "DOS Navigator";
- README - текстовый файл README.txt (в проводнике Windows расширение txt не отображено).
5. Работа в консоли
Теперь запускаем программу, как мы делали это раньше. В рабочем окне (там где сообщение "Welcome to DOSBox") вводим попорядку слудующие команды:
mount C Program
C:
dir
cd DN
dn.com
Назначение команд:
- "mount C Program" - Подключаем созданную нами папку "Program" как диск C;
- "C:" - перемещаемся в командной строке на диск C;
- "dir" - выводим содержимое текущего каталога (в данном случае это корень диска С);
- "cd DN" - переходим в папку "DN", которая находится в текущем каталоге;
- "dn.com" - запускаем на выполнение исполняемый файл "dn.com".
После ввода последней команды должна запуститься программа "dn.com", в данном случае это файловый менеджер "DOS Navigator":
Теперь, переместившись с помощью клавиш-стрелок на '..' и нажав ENTER мы поднимемся в файловом менеджере на один каталог вверх (на один уровень вверх). Там мы увидим каталог "DN" и файл "readme.txt".
Став курсором на файл "readme.txt" и нажав клавишу F3 (View, Просмотр) мы увидим содержимое этого файла, для выхода дотаточно нажать Esc.
6. Автоматизация
Теперь сделаем так, чтобы при запуске программы DosBox подготовка диска и запуск программ выполнялся автоматически.
Открываем проводником папку "DOSBoxPortable" с программой на диске С, переходим в подпапку с названием "Data", потом в папку "settings" - тут хранятся файлыв настройки программы DOSBox (в портативной версии).
Здесь нас интересует файл "dosbox.cof", нам нужно его открыть для редактирования и тут на помощь придет простой стандартный редактор MS Windows - Блокнот.
Запускаем программу "Блокнот" (Notepad): нажимаем ПУСК, в поиске набираем "notepad" или "блокнот", нажимаем на значек с найденной программой - она должна открыться.
Теперь переходим в окно проводника, где у нас отображено содержимое папки "settings", и перетаскиваем мышкой файл "dosbox.cof" в окно программы "Блокнот". В программе должно отобразиться содержимое этого файла.
В блокноте листаем содержимое файла в самый конец, пока не увидим обозначенную скобками секцию "[autoexec]". В самом низу, под ней, добавляем следующие строчки:
keyb ru 866
mount C Program
c:
cd DN
dn.com
Сохраняем файл (в меню "Файл" выбираем "Сохранить") и закрываем программу Блокнот.
Все эти строчки фактически повторяют команды, которые мы вводили вручную в консоли чтобы подключить как диск "С" каталог "Program" и запустить программу "Dos navigator", за исключением строчки "keyb ru 866", которая пригодится в будущем для корректного отображения программ с символами кириллицы (русская и украинская раскладки клавиатуры).
Теперь если запустить программу то "Dos Navigator" запустится автоматически.
7. Печеньки :)
Несколько полезных замечаний и идей от меня.
В папку "Program" вы теперь можете скопировать нужные вам файлы и программы, которые планируете запускать в режиме эмуляции MS-DOS. После копирования новых файлов в эту папку программу DOSBox желательно перезапустить (закрыть, если открыта, и снова запустить).
Чтобы заменить "Dos Navigator" на "Нортотн Коммандер" придется в папке "Program" создать папку для программы "NC" и скопировать в нее содержимое программы файлового менеджера.
Потом останется лишь отредактировать файл "dosbox.cof" (как это было показано выше), заменить в нем строчки:
- "cd DN" на "cd NC";
- "dn.com" на "nc.exe".
Теперь после запуска DOSBoxPortable автоматически запустится "Norton Commander", а в нем уже можно перемещаться по дереву каталогов и запускать другие программы, работать с файлами и т.п.
Ко всем наработанным внутри MS-DOS программ файлам и документам вы потом сможете получить доступ просто перейдя проводником в папку по пути: Диск С - DOSBoxPortable - Program.
Всю папку "DOSBoxPortable" на диске С теперь можно скопировать на флешку, перенести на другой компьютер с MS Windows XP, 7, 10 и там запустить уже настроенную программу DOSBox со всем содержимым папки Program внутри без каких либо дополнительных изменений. Просто и удобно!
Также, папку "DOSBoxPortable" можно заархивировать и сохранить резервный вариант с промежуточными результатами работы и наработками в программах. которые размещены внутри в подпапке "Program".
Архив с уже настроенным DOSBoxPortable и менеджером Dos Navigator внутри для всего проделанного выше - (3.3 МБ).
Скриншоты некоторых популярных программ и игр
На завершение решил сделать десяток скриншотов игр и программ, которые удалось запустить под эмулятором, возможно кто-то вспомнит былые времена:
Операционная система Microsoft Windows 3.1 (образ с моего 80286 компьютера).
Файловый менеджер Norton Commander, хранитель экрана - Аквариум.
Игра от Westwood Studios - Dune 2. Легендарная игра с которой началась серия игр в жанре RTS.
Игра Lotus The Ultimate Challange - гонки на машинах.
Игра Prehistorik 2.
Легендарный WarCraft II от Blizzard отлично работает под DosBox.
Игра от Id Software - Wolfenstein 3D. Родоначальник 3D игр. При сжатии RARом умещалась на дискету 1,44. )))
Игра от Disney Software - DuckTales.
Среда программирования MS-DOS Quick Basic.
Оболочка для программирования под Turbo Pascal 7 отлично работает под DosBox.
Среда разработки Borland Turbo C++ 3.0, тоже все работает на отлично!
Заключение
Ну вот, пожалуй и все базовые знания что нужны для запуска старых программ и игр под MS-DOS используя отличный и легковесный эмулятор DosBox.
По данным из Википедии на эмуляторе DosBox версии 0.7 запускаются и проверенно работают 876 игр под MSDOS!
Текущая версия эмулятора (состоянием на 2023-й год): 0.74.
Дополнил статью. Добавил подробную пошаговую инструкцию по установке и базовой настройке DOSBox portable для операционных систем MS Windows.
Спасибо! Мне статья очень помогла
Пожалуйста!
Добрый день. а не подскажете такую вещь. у меня есть программа для расчет досовская, она работает, но я бы хотел узнать какие там зашиты формулы. Но не понимаю есть ли такая возможность в принципе. Можно это как то расшифровать или просто в каком то просмотрщике глянуть?
Здравствуйте.
Можно осмотреть и попробовать открыть файлы с отличающимися от "EXE", "COM" расширениями в текстовом редакторе. Если повезет, то какой-то из таких файлов может содержать нужные настройки или формулы для расчетов.
В противном случае, скорее всего что формулы зашиты в скомпилированном байт-коде исполняемого файла. Тут без реверс-инжиниринга не обойтись, придется производить декомпиляцию и изучение содержимого бинарного файла, понадобится знание ассемблера, принципов работы с регистрами микропроцессора, памятью...
добрый день
у меня в dosbox работает информационная система, при установке у одного пользователя в винде, никак не могу переключиться на русский шрифт, никаким сочетантем клавиш, не подскажите что тут нужно?
Добрый день.
Первым делом нужно включить в DosBOX поддержку кодировки с кириллицей, а дальше использовать одну из программ для переключения между раскладками клавиатуры.
Добавил в статью раздел, где рассмотрел одну из таких - KEYRUS.
Добавил четыре новых раздела, в которых подробно описал работу с файлами-образами дискет, CD и жестких дисков (ISO, IMG) в DosBox и Linux.
Хорошая программа. Нашёл её и установил в Debian. Работает.
Не могу запустить программу досовскую, пишет Illegal file
Возможно запускаемый файл в своем имени содержит какие-то недопустимые для DOS символы. Попробуйте переименовать файл так, чтобы его имя и расширение содержали только символы A-Z и 0-9, причем длина имени была не более 8-ми символов.