Программирование, радиоэлектроника,
саморазвитие и частичка из моей жизни здесь...

DosBox - запуск программ и игр для MS-DOS под Windows и Linux

Думаю что многие сталкивались с проблемами запуска старых Microsoft DOS (MS-DOS) совместимых приложений под современными операционными системами Microsoft Windows (MS Windows).

Иногда бывает что старую и нужную программу или игру не получится запустить под MS Windows, приходится для этого держать старенький компьютер или же запускать MS-DOS под VirtualBox. Для решения подобной проблемы есть отличное и удобное свободное программное обеспечение - DosBox.

Содержание:

  1. Что такое DosBox
  2. Установка программы DosBox в FreeBSD, Linux и Windows
  3. Основные консольные команды
  4. Список горячих клавиш
  5. Монтирование директорий как дисков в DosBox
  6. Монтирование образов IMG (Floppy) и ISO (CD)
  7. Создание и использование образов IMG (Floppy) в Linux
  8. Монтирование образов IMG (HDD)
  9. Создание и использование образов IMG (HDD) в Linux
  10. Конфигурационные файлы DosBox
  11. Настройка автозапуска команд после старта
  12. Исправляем "кракозябры" (кодировку)
  13. Переключение раскладок клавиатуры (RUS/LAT)
  14. Пошаговый пример настройки DosBox под Windows
  15. Скриншоты некоторых популярных программ и игр
  16. Заключение

Что такое 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 откроется два окошка: первое - окно статуса программы. а второе - окно где производится эмуляция.

DosBox portable запуск по умолчанию

Для тех кто знает Английский язык проблем со встроенной системой помощи (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? - вот несколько вариантов применения:

  1. Установка программ и игр с наборов образов дискет или лазерных дисков;
  2. Подключение образов жестких дисков, например точных побайтовых копий разделов из когда-то работавших систем с сохраненной ОС, программами и их настройками;
  3. Создание загрузочных образов дисков из 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

Жмем поочередно клавиши, водим значения и таким образом создаем структуру файловой системы:

  1. 'n' - новый раздел (New Partition);
  2. 'p' - основной раздел (Primary Partition);
  3. '1' - номер раздела (Partition number);
  4. '1' - первый сектор (First sector);
  5. жмем ENTER (по умолчанию) - Last sector (последний сектор);
  6. 'l' (буква 'l' от list) - выводим список типов файловых систем (list known partition types). Ищем номер для 'FAT16 <32M' = 4;
  7. 't' - меняем тип файловой системы (change a partition type). Вводим код '4' для ранее найденного типа файловой системы;
  8. 'p' - проверяем текущий тип файловой системы образа диска (Print the partition table);
  9. '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. '1' - создать раздел DOS (Create DOS partition or Logical DOS Drive);
  2. '1' - основной раздел на диске (Create Primary DOS Partition);
  3. '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. '1' - создание нового образа (Create new floppy or hard disk image);
  2. 'hd' - вводим на вопрос о создании образа флоппи или жесткого диска (Please type hd or fd);
  3. 'flat' - указываем тип образа (What kind of image should I create?);
  4. '256' - размер диска в мегабайтах (Enter the hard disk size in megabytes);
  5. '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.

К примеру, после старта нужно выполнить следующие действия:

  1. подмонтировать папку "Data/Disk_C" для портабельной версии программы (Windows - portableapps) как диск "С" в эмуляторе;
  2. перейти на диск С;
  3. вывести список содержимого диска С.

Открываем в текстовом редакторе конфигурационный файл dosbox.conf и ищем в самом низу секцию "[autoexec]" - все заданные там команды будут автоматически выполнены по порядку после запуска эмулятора .

Вот скриншот реализации приведенных выше 3х команд для авто-запуска по очереди:

DosBox добавляем команды в автозапуск. монтирование директории с относительным путем

Хотелось бы обратить внимание на путь к директории "../../Data/Disk_C" - в данном случае мы указываем относительный путь для портабельной версии программы, а не абсолютный (к примеру "c:/Programs/Dosbox/Data/").

Программа DosBox будет искать папку относительно файла DOSBox.exe, что находится в директории "App/DOSBox", поэтому мы поднимаемся на два уровня выше "../../" и уже после указываем расположение директории от текущего уровня.

Данный метод монтирования директорий с относительными путями 100% рабочий и отлично подходит для монтирования директорий что расположены рядом на одном диске с программой.

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

Запускаем DosBox и вот что мы должны увидеть:

Запуск DosBox с автоматическим монтированием директории как диск С

Директория смонтирована как диск С, выполнен переход на этот диск и отображены папки и файлы на нем.

Если вы предпочитаете работу в оболочках типа Norton Commander или Volkov Commander то в автозапуск можно также добавить полный путь для запуска оболочки.

Например вы распаковали Volkov Commander в директорию "vc", что расположена в каталоге который будет смонтирован как диск С. Добавляем в конфигурационный файл примера, что приведен выше, строчку: "c:\vc\vc.com".

Хочу заметить что для всех команд, которые выполняться внутри эмулятора, в путях нужно использовать слеши:

  • для Linux - слеш "/";
  • для Windows - обратный слеш "\".

В показанном выше примере, при запуске DosBox (портабельная версия программы) под Windows автоматически подмонтируется диск С и запустится Volkov Commander:

Volkov Commander запущен в эмуляторе DosBox

Исправляем "кракозябры" (кодировку)

При запуске некоторых русскоязычных программ можем увидеть нечто подобное:

dosbox исправляем кракозябры, делаем нормальные русские буквы

Для корректного отображения кириллических символов в MS-DOS служат специальные драйвера экрана и шрифты. В нашем же случае, в DosBox этот функционал уже встроен внутри, нужно лишь его активировать.

Добавляем в конфигурационный файл DosBox (dosbox.conf), в секцию "[autoexec]" строчку:

keyb ru 866

После перезапуска программы символы кириллицы станут отображаться как следует!

Dosbox - русские символы отображаются верно

Теперь русские символы отображаются корректно!

Переключение раскладок клавиатуры (RUS/LAT)

Поддержка вывода русских символов теперь есть, а как переключить раскладку клавиатуры в DosBox для ввода символов кириллицы? - для этого служат специальные драйверы и программы "руссификаторы".

Одна из самых популярных и достаточно функциональных представителей такого рода - это KEYRUS.

KEYRUS - драйвер дисплея и клавиатуры для MS-DOS, программа класса FreeWare, написанная украинским разработчиком Дмитрием Гуртяком (г.Донецк).

Вот полный архив с KEYRUS версии 7.3 - ZIP archive (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 7.3 для MS-DOS - стартовое окно установок

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

Программа keyrus 7.3 для MS-DOS - настройки блока клавиатуры

В блоке поддержки дисплея можно настроить поддержку шрифтов и символов.

Программа keyrus 7.3 для MS-DOS - настройки блока дисплея

Для работы программы достаточно одного исполняемого файла 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 7.3 для MS-DOS - запуск из командной строки без указания параметров

Поскольку я запустил оригинальный файл KEYRUS.COM (без настройки через "setup.exe"), то для переключения раскладок использую одну клавишу - правый CTRL.

Создал текстовый файл "1.txt" и открыл его в редакторе в Dos Navigator, пробую писать текст в двух раскладках - работает!

Программа keyrus 7.3 для MS-DOS - тест русской и английской раскладок в редакторе DOS Navigator

Делаем вывод содержимого текстового файла в консоль с помощью встроенной команды "TYPE":

вывод содержимого текстового файла в консоль, тест отображения кириллицы в MS-DOS

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

Страница загрузки dosbox на сайте portableapp.com

Как правило, если браузер не спрашивал куда сохранить файл, программа будет сохранена в папке "Загрузки".

dosbox-downloaded-file-in-windows

Заходим в браузере на сайт VirusTotal, жмем кнопочку "Choose file" (выбрать файл), выбираем скачанный файл "DOSBoxPortable_0.74.3.paf.exe".

Выбор файла для проверки на сайте VirusTotal

Ожидаем когда завершится процесс проверки и смотрим на результаты:

Результаты проверки установщика dosbox на вирусы - все чисто

В данном случае видим "0/71" - это значит что проверка выполнялась разными антивирусами в количестве 71 штук и никаких признаков вирусов в загруженном файле не обнаружено.

2. Установка

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

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

Установка dosbox под windows с сайта portableapp

Допустим что распаковывать программу мы будем на диск С, путь установки получится "C:\DOSBoxPortable".

Нажимаем кнопку "Установить" и потом по завершению процесса установки "Готово".

Установка dosbox под windows с сайта portableapp - завершение

Все, программа установлена!

В этом примере она находится на диске С - переходим в "Мой компьютер" на диск С и видим там папку "DOSBoxPortable".

папка с программой dosbox под windows, сборка от portableapps

3. Первый запуск, тест

Прежде всего проясню один очень важный момент. После любого клика курсором мышки в окне DOSBox она автоматически будет захвачена и начнет работать только в пределах этого окна. Чтобы вернуть операционной системе Windows контроль над мышкой нужно нажать сочетание клавиш CTRL-F10 (включение и отключение захвата мышки)!

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

Переходим в папку "DOSBoxPortable" и запускаем там на выполнение одноименный файл "DOSBoxPortable" - будут открыты два окна программы:

  1. Первое окно - это журнал хода выполнения программы
  2. Второе окно - рабочее окно программы DOSBox, в нем будем вводить команды, запускать программы.

dosbox-run-test-on-windows

Для завершения работы программы достаточно закрыть любое из этих двух окон.

4. Папка с программами для MS-DOS

В этой же папке "DOSBoxPortable" создадим новую папку для наших программ под MS-DOS. Жмем правую клавишу мыши (ПКМ) на свободном пространстве окна - Создать - Папку - вводим ее название "Program" и жмем ЕНТЕР. Папка для программ готова!

Теперь в эту папку можно сохранить разных программ и игр, которые предназначены для работы под MS-DOS.

Важно заметить что все папки и файлы здесь лучше именовать так, чтобы их имя не содержало больше чем 8 символов, например:

  • Для программы "Norton Commander" папку можно назвать кратко - "NC";
  • Для программы Банковский Учет 2.0 - "BANK_20";
  • и так далее...

Например, скопируем туда свободный файловый менеджер "DOS Navigator", скачанный архив я распаковал в папку "DN". Также создадим какой-то текстовый файл-документ. После этого эти папки внутри будут выглядеть вот так:

dosbox - папка для программ, работающих под MS-DOS Здесь:

  • 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":

Файловый менеджер dos navigator, запущенный под dosbox в операционной системе MS Windows

Теперь, переместившись с помощью клавиш-стрелок на '..' и нажав ENTER мы поднимемся в файловом менеджере на один каталог вверх (на один уровень вверх). Там мы увидим каталог "DN" и файл "readme.txt".

Став курсором на файл "readme.txt" и нажав клавишу F3 (View, Просмотр) мы увидим содержимое этого файла, для выхода дотаточно нажать Esc.

Файловый менеджер dos navigator, запущенный под dosbox в операционной системе MS Windows - просмотр текстового файла

6. Автоматизация

Теперь сделаем так, чтобы при запуске программы DosBox подготовка диска и запуск программ выполнялся автоматически.

Открываем проводником папку "DOSBoxPortable" с программой на диске С, переходим в подпапку с названием "Data", потом в папку "settings" - тут хранятся файлыв настройки программы DOSBox (в портативной версии).

Здесь нас интересует файл "dosbox.cof", нам нужно его открыть для редактирования и тут на помощь придет простой стандартный редактор MS Windows - Блокнот.

Запускаем программу "Блокнот" (Notepad): нажимаем ПУСК, в поиске набираем "notepad" или "блокнот", нажимаем на значек с найденной программой - она должна открыться.

Теперь переходим в окно проводника, где у нас отображено содержимое папки "settings", и перетаскиваем мышкой файл "dosbox.cof" в окно программы "Блокнот". В программе должно отобразиться содержимое этого файла.

Редактирование конфигурационного файла dosbox.conf в блокноте под MS Windows

В блокноте листаем содержимое файла в самый конец, пока не увидим обозначенную скобками секцию "[autoexec]". В самом низу, под ней, добавляем следующие строчки:

keyb ru 866
mount C Program
c:
cd DN
dn.com

Настрйока автозапуска программ в dosbox через файл dosbox.conf под MS Windows

Сохраняем файл (в меню "Файл" выбираем "Сохранить") и закрываем программу Блокнот.

Все эти строчки фактически повторяют команды, которые мы вводили вручную в консоли чтобы подключить как диск "С" каталог "Program" и запустить программу "Dos navigator", за исключением строчки "keyb ru 866", которая пригодится в будущем для корректного отображения программ с символами кириллицы (русская и украинская раскладки клавиатуры).

Теперь если запустить программу то "Dos Navigator" запустится автоматически.

7. Печеньки :)

Несколько полезных замечаний и идей от меня.

В папку "Program" вы теперь можете скопировать нужные вам файлы и программы, которые планируете запускать в режиме эмуляции MS-DOS. После копирования новых файлов в эту папку программу DOSBox желательно перезапустить (закрыть, если открыта, и снова запустить).

Чтобы заменить "Dos Navigator" на "Нортотн Коммандер" придется в папке "Program" создать папку для программы "NC" и скопировать в нее содержимое программы файлового менеджера.

Потом останется лишь отредактировать файл "dosbox.cof" (как это было показано выше), заменить в нем строчки:

  1. "cd DN" на "cd NC";
  2. "dn.com" на "nc.exe".

Теперь после запуска DOSBoxPortable автоматически запустится "Norton Commander", а в нем уже можно перемещаться по дереву каталогов и запускать другие программы, работать с файлами и т.п.

Ко всем наработанным внутри MS-DOS программ файлам и документам вы потом сможете получить доступ просто перейдя проводником в папку по пути: Диск С - DOSBoxPortable - Program.

Всю папку "DOSBoxPortable" на диске С теперь можно скопировать на флешку, перенести на другой компьютер с MS Windows XP, 7, 10 и там запустить уже настроенную программу DOSBox со всем содержимым папки Program внутри без каких либо дополнительных изменений. Просто и удобно!

Также, папку "DOSBoxPortable" можно заархивировать и сохранить резервный вариант с промежуточными результатами работы и наработками в программах. которые размещены внутри в подпапке "Program".

Архив с уже настроенным DOSBoxPortable и менеджером Dos Navigator внутри для всего проделанного выше - ZIP archive (3.3 МБ).

Скриншоты некоторых популярных программ и игр

На завершение решил сделать десяток скриншотов игр и программ, которые удалось запустить под эмулятором, возможно кто-то вспомнит былые времена:

DosBox - Windows 3.11

Операционная система Microsoft Windows 3.1 (образ с моего 80286 компьютера).

DosBox - Norton Commander хранитель экрана Аквариум.

Файловый менеджер Norton Commander, хранитель экрана  - Аквариум.

Dosbox - Dune 2

Игра от Westwood Studios - Dune 2. Легендарная игра с которой началась серия игр в жанре RTS.

DosBox - Lotus The Ultimate Challange

Игра Lotus The Ultimate Challange - гонки на машинах.

DosBox - Prehistorik 2

Игра Prehistorik 2.

DosBox - WarCraft 2

Легендарный WarCraft II от Blizzard отлично работает под DosBox.

DosBox - Wolfenstein 3D

Игра от Id Software - Wolfenstein 3D. Родоначальник 3D игр. При сжатии RARом умещалась на дискету 1,44. )))

DosBox - DuckTales

Игра от Disney Software - DuckTales.

DosBox - MS-DOS Quick Basic

Среда программирования MS-DOS Quick Basic.

DosBox - Turbo Pascal 7

Оболочка для программирования под Turbo Pascal 7 отлично работает под DosBox.

DosBox - Borland Turbo C++ 3.0

Среда разработки Borland Turbo C++ 3.0, тоже все работает на отлично!

Заключение

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

По данным из Википедии на эмуляторе DosBox версии 0.7 запускаются и проверенно работают 876 игр под MSDOS!

Текущая версия эмулятора (состоянием на 2023-й год): 0.74.

Если статья оказалась полезной - помочь проекту можно тут: 👍 ПОМОЩЬ, 🎁 DONATE
Комментарии к публикации (11):
ph0en1x #1ph0en1x
05 Май 2020 12:54

Дополнил статью. Добавил подробную пошаговую инструкцию по установке и базовой настройке DOSBox portable для операционных систем MS Windows.

0
Света #2Света
24 Май 2020 12:46

Спасибо! Мне статья очень помогла Smile

0
ph0en1x #3ph0en1x
24 Май 2020 13:49

Пожалуйста!

0
Kegorov #4Kegorov
09 Апрель 2021 18:03

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

0
ph0en1x #5ph0en1x
09 Апрель 2021 19:47

Здравствуйте.
Можно осмотреть и попробовать открыть файлы с отличающимися от "EXE", "COM" расширениями в текстовом редакторе. Если повезет, то какой-то из таких файлов может содержать нужные настройки или формулы для расчетов.

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

0
andre #6andre
28 Май 2021 10:19

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

0
ph0en1x #7ph0en1x
28 Май 2021 19:42

Добрый день.

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

Добавил в статью раздел, где рассмотрел одну из таких - KEYRUS.

+1
ph0en1x #8ph0en1x
09 Июль 2022 04:23

Добавил четыре новых раздела, в которых подробно описал работу с файлами-образами дискет, CD и жестких дисков (ISO, IMG) в DosBox и Linux.

0
thepages #9thepages
12 Июль 2023 05:18

Хорошая программа. Нашёл её и установил в Debian. Работает.

+1
Frant #10Frant
12 Сентябрь 2023 16:24

Не могу запустить программу досовскую, пишет Illegal file

0
ph0en1x #11ph0en1x
12 Сентябрь 2023 19:50

Возможно запускаемый файл в своем имени содержит какие-то недопустимые для DOS символы. Попробуйте переименовать файл так, чтобы его имя и расширение содержали только символы A-Z и 0-9, причем длина имени была не более 8-ми символов.

0