VirtualBox + FreeDOS + BorlandC

Настроим среду для разработки под DOS. Инструкция актуальна для Ubuntu 18.04.


Устанавливаем VirtualBox

Загружаем здесь последнюю версию. Устанавливаем и проверяем работоспособность. При написании использовалась 6-ая версия.


Загружаем образ FreeDOS

На сайте FreeDOS выбираем CDROM “standard” installer.


Создаем виртуальную машину

В VirtualBox создаем виртуальную машину с названием fDOS. Выделяем 32 MB оперативной памяти и диск размером 500 MB.

Открываем настройки виртуальной машины, в разделе Storage находим CD-привод (находится в разделе IDE, обозначен как оптический диск) и выделяем его. Справа жмем по значку диска и выбираем Choose Virtual Optical Disk File... В открывшемся окне указываем путь к образу FreeDOS.

Также рекомендую в разделе User Interface убрать все отметки, чтобы интерфейс VirtualBox не мешал работе с виртуальной машиной. Вместо интерфейса можно будет использовать меню с помощью RightCTRL + Home.


Установка FreeDOS

Запускаем созданную виртуальную машину. Из-за бага в VirtualBox, перед выбором пункта меню Install to harddisk нажимаем TAB и дописываем raw в конец строки (после пробела). Нажимаем Enter и ожидаем загрузки установщика.

На все вопросы установщика отвечаем Yes. В процессе установки машина перезапустится для создания раздела C:. В меню придется снова дописать raw и затем продолжить установку отвечая Yes. Выбираем язык и вариант установки Full installation.


Установка сетевых пакетов

После окончания установки и перезапуска машины, выбираем в меню Boot from system harddisk. В консоли выполняем fdimples. С помощью стрелок на клавиатуре выбираем раздел Networking и справа отмечаем пакеты:

  • FDNET
  • MTCP
  • WGET

Выбираем ОК (два раза стрелка вправо) и нажимаем Enter. Завершаем работу вирутальной машины.


Настройка виртуальной машины

Открываем параметры виртуальной машины и заходим в раздел Storage. Выбираем CD-привод, жмем по значку оптического диска и Remove Disk from Virtual Drive.

Перейдем в раздел Network и убедимся в опция Enable Network Adapter активна. В Attached to выбираем NAT. Раскрываем Advanced и нажимаем Port Forwarding. Создаем новое правило с протоколом TCP и портами 8000 в Host Port и Guest Port. Поля Host IP и Guest IP оставляем пустыми. Для сохранения нажимаем ОК и закрываем настройки.


Создание скриптов

Для запуска программ в FreeDOS над понадобится http-сервер для передачи исходников в виртуальную машину. Создадим в рабочей папке с исходниками скрипт start.sh:

#!/usr/bin/env bash
python3 -m http.server 8000 &
VBoxManage startvm "fDOS"

Разрешим выполнение скрипта: chmod +x start.sh

Этот скрипт будем выполнять при начале работы с FreeDOS. Запустим его: ./start.sh


Настройка окружения

Установим BorlandC. В рабочей дирректории хостовой системы (рядом со скриптом start.sh) создадим дирректории env и src и загрузим Borland C:

mkdir env src
wget -O env/BORLANDC.zip https://0x0.st/zqIE.zip

В гостевой системе распакуем компилятор и создадим рабочую дирректорию:

wget http://10.0.2.2:8000/env/BORLANDC.zip
unzip BORLANDC.zip
mkdir home

Откроем файл autoexec.bat: edit autoexec.bat и добавим в конец:

set PATH=%PATH%;C:\\BORLANDC\\BIN\\
cd home

Перейдем в дирректорию home: cd home, создадим файл s.bat (сокращение от start): edit s.bat и запишем в него:

wget -O main.cpp http://10.0.2.2:8000/src/main.cpp
bcc main.cpp
main

Завершаем работу виртуальной машины. На этом установку и настройку можем считать завершенными.


Использование при разработке

Для начала использования, перейдем в рабочую дирректорию и выполним скрипт start.sh. Окно виртуальной машины можно закрепить нажам ПКМ по рамке над окном и выбрав Always on Top. В редакторе кода изменяем src/main.cpp и сохраняем. Переходим в окно с DOS и выполняем команду s. В результате загрузится исходный файл main.cpp, скомпилируется и выполнится. После изменения исходного кода снова сохраняем main.cpp и выполняем команду s.