DOSEMU.BIN(1)

ИМЯ
dosemu.bin, dosdebug - запускает DOS и приложения DOS под Linux

СИНТАКСИС
dosemu.bin [ -ABCcdkVNXtsgKm234OU ] [ -h ] [ -F файл ] [ --Fusers файл ] [ --Flibdir каталог ] [ --Fimagedir каталог ] [ -f файл ] [ -u переменная_настройки ] [ -D флаги ] [ -e объем ] [ -x объем ] [ -P файл ] [ -o файл ] [ 2> файл_отладки ] [ -I опции_настройки ] [ -E dos-команда ] [ -K unix_путь[:dos_путь] ] [ env1=val1 ... ] [ unix_путь_к_дос_программе [ -- ] [ аргументы_дос_команды ]

dosdebug

ОПИСАНИЕ
dosemu.bin является бинарным файлом, который запускается скриптом dosemu (1), активизирующим эмулятор DOS под Linux, также известный как DOSEMU.
Файл_отладки представляет собой опциональный файл, куда будет перенаправляться вся отладочная информация.

dosdebug используется для управления или отладки уже запущенного DOSEMU.

Хотя эта программа известна как эмулятор DOS, она в действительноти является виртуальной машиной для DOS, позволяющей оперировать DOS и программами, написанными для DOS, в окружении, подобном стандартному IBM PC/AT компьютеру или совместимому с процессором Intel 80x86 в реальном режиме. DOSEMU предоставляет эмуляцию таких сервисов как видео подсистемы, дисковой, клавиатурной, последовательного порта и подсистемы принтера, доступных через BIOS; памяти CMOS для настроечной информации; часов реального времени; работу с памятью через спецификации XMS 3.0, EMS 4.0 и DPMI 0.9.

Поскольку DOSEMU не является действительным эмулятором DOS, требуется копия FreeDos, которая сейчас преднастроена и включена как часть официального бинарного дистрибутива DOSEMU. В дополнение, любой доступный сейчас проприетарный DOS (такой как MS-DOS, PC-DOS, DR-DOS) может быть запущен, при настройке должным образом.

ТРЕБОВАНИЯ К ЯДРУ
На текущий момент времени, необходимо иметь Linux 2.0.28 или выше с вкомпилированной опцией SYSV IPC (System V InterProcess Communication facilities, смотрите ipc(2)). Опция SYSV IPC включается в окне настройки ядра Linux в процессе его компиляции.

ОПИЦИИ

-A  загрузка с дисковода A (не требует наличия реального дисковода, смотрите ниже)

-B  загрузка с дисковода B (не требует наличия реального дисковода, смотрите ниже)

-C[num]
    загрузка с диска C. Если указан num, то соответствующий диск сначала становится диском C. Например, -C1 означает переименовать диск D в C, а потом с него загрузиться.

-c[d]
    использвать видео консоль напрямую (должно зыпускаться из консоли, требуется, чтобы dosemu был запущен с опцией -s)
    -cd отсоединиться от текущей виртуальной консоли или tty устройства и присоединиться к первой свободной виртуальной консоли

-d path
    монтировать путь path как дополнительный диск в DOS. Можно указывать более одного раза.

-E dos-команда
    Запуск команды DOS в DOSEMU. Путь к бинарнику можно указать с помощью опции -K. Например,
    dosemu -K /home/joeuser/dosemu/freedos/bin -E "xcopy my_file my_dir"
    запустит /home/joeuser/dosemu/freedos/bin/xcopy.exe с 2 аргументами.
    Замечание: это только работает с дефолтным autoexec.bat, в котором есть вызов "system -e".

-K unix_путь[:dos_путь]
    Указать путь unix к программе, запускаемой через -E. Можно не использовать -E, а указать полный путь через -K, но это не рекомендуется, и может быть удалено в будущем. Указывать в -K надо только путь к каталогу.
    Если указан dos_путь, тогда он используется в качестве директории запуска dos-программы. Если unix_путь не указан, то буква диска берётся из dos_пути:
    dosemu -K :C:\\games\\carma -E carma.exe
    Так запустится carma.exe из C:\games\carma

-V  использовать VGA спефицичную оптимизацию видео

-k  использовать прозрачную клавиатуру консоли (должно запускаться из консоли)

--Fusers
    Обойти файл dosemu.users и взять предоставленный файл вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

--Flibdir
    Обойти каталог по умолчанию DOSEMU_LIB_DIR (как, возможно, определено в dosemu.users) и использовать предоставленный каталог вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

--Fimagedir
    Обойти каталог по умолчанию для загрузочного и каталога образов диска (DOSEMU_IMAGE_DIR) и использовать предоставленный каталог вместо него (принимается только в случае, когда dosemu.bin не имеет флага suid-root).

-f  Разобрать предоставленный конфигурационный файл вместо .dosemurc. Если задействована опция -n, то указанный здесь конфигурационный файл будет использован вместо основного dosemu.conf.

-n  Пропустить (не разбирать) пользовательский файл конфигурации .dosemurc. Конфигурационный файл, указанный в -f, будет разобран, но, в этом случае, он заменит основной конфиг dosemu.conf.

-L <log_string>
    Записывает <log_string> в лог-файл.

-I  Обработать строку, следующую за опцией. -I работает с таким же синтаксисом, как и global.conf или .dosemurc, например,

dos ... -I 'video { mda }'
    Эта опция полезна, если необходимо временно заменить предоставленный настроечный параметр. Также можно использовать общую настройку путем запуска скрипта как показано ниже

dos ... -I "`myconf.sh`"
    где myconf.sh является скриптом, выдающим настройку на стандартный вывод. Если имеется альтернативный файл настроек помимо .dosrc, то команда

dos ... -I "`cat myother.conf`"
    его будет использовать. Однако заметьте, что необходимо взять в кавычки параметр за -I, потому что ожидается один аргумент.

-i input_data
    Вводит input_data с эмулируемой клавиатуры. Можно использовать \r в качестве Enter. Так же обрабатываются другие эскейп-последовательности, например можно вставлять задержки с помощью конструкций вида "\p10;", где 10 - величина задержки в десятках миллисекунд.

-D  определяет какие отладочные сообщения позволить, а какие запретить

-h  вывести справку.

-H  определяет флаги, поддерживаемые dosdebug. В настоящий момент только `1' имеет смысл. С -H1 происходит принуждение dosemu к ожиданию, пока подсоединен dosdebug терминал. Отсюда, чтобы отладить DOS сессию с самого начала, необходимо вначале запустить dosemu с параметром -H1, а затем запустить dosdebug. DOSEMU будет затем заблокирован перед переходом в загруженный boot сектор в ожидании соединения dosdebug. Однажды присоединившись, программа находится в состоянии `остановлена' и можно установить точки останова или пройтись пошагово через загрузочный код.

-O  использовать стандартный поток ошибок для вывода отладочных сообщений

-o  использовать предоставленный файл для вывода отладочных сообщений в него

-m  разрешить внутреннюю поддержку мыши

-P  копировать отладочный вывод в предоставленный файл

-2,3,4
    выбрать 286, 386 или 486 процессор (Будьте осторожны! DOSEMU не является полностью 32-хбитным, так что при определении программой 386 или 486 процессора и использовании 32-хбитных регистров, возможно сбивание ее с толку из-за функций BIOS. Если предполагается, что такое случается, используйте -2 для принужденного перехода DOSEMU в режим 286.)

ЖЕСТКИЕ ДИСКИ
DOSEMU
    поддерживает четыре метода замещения DOS с жесткими дисками:

1.  виртуальный файл диска, находящийся на файловой системе Linux, который эмулирует жесткий диск.

2.  непосредственный доступ к разделу DOS через прозрачное дисковое устройство (например, /dev/hda, /dev/hdb, /dev/sdX).

3.  непосредственный доступ к разделу DOS через доступ к единичному разделу (к примеру, /dev/hda1, /dev/hdb2, /dev/sdxx). Необходимо запустить программу mkpartition для разрешения DOSEMU доступа к разделу DOS с SPA (Single Partition Access).

4.  доступ к файловой системе Linux как к "сетевому" устройству, используя драйвер emufs.sys, поставляемый с DOSEMU как commands/emufs.sys.

Настройка ресурсов жесткого диска DOSEMU выполняется путем редактирования файла dosemu.conf перед запуском DOSEMU. Смотрите также @docdir@/README.txt.

ФЛОППИ ДИСКИ
DOSEMU поддерживает два метода замещения DOS с флоппи дисками:

1.  виртуальный файл диска, находящийся на файловой системе Linux, эмулирующий флоппи дисковод

2.  непосредственный доступ к физическому флоппи дисководу через прозрачное дисковое устройство (к примеру, /dev/fd0, /dev/fd1).

Настройка ресурсов флоппи диска DOSEMU выполняется путем редактирования файла dosemu.conf перед запуском DOSEMU.

ВИДЕО
DOSEMU может запускаться на любом tty устройстве. Однако, увеличенная производительность и функциональность может быть получена с применением дополнительных особенностей консоли Linux. Так, для запускаемого в консоли DOSEMU желательно исследовать ключи -c, -k, и -V. Также некоторая укороченная документация находится в файле dosemu.conf, который можно редактировать, если это необходимо.

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

КЛАВИАТУРА
Те, кто желает применять DOSEMU в консоли Linux, могут также воспользоваться прямым доступом к клавиатуре. Такой режим действия, выбранный ключом -k, предоставляет пользователю доступ ко всей клавиатуре прямо из-под DOS. Любые комбинации клавиш ALT, CTRL и SHIFT могут использоваться для генерации необычных кодов клавиш, ожидаемых многими программами.

ПЕЧАТЬ
Сервисы печати BIOS эмулирутся через стандартный I/O доступ к файлам UNIX через временные файлы, которые периодически опрашиваются LPR либо другим клиентом печати как указано в параметре $_printer в файле dosemu.conf.

ОТЛАДОЧНЫЕ СООБЩЕНИЯ
Отладочные сообщения могут контроллироваться как в командной строке, так и в настроечном файле. Просмотрите документацию, находящуюся внутри файла config.dist, включённого в подкаталог примеров DOSEMU, для информации об опциях отладки. В командной строке можно определить какие классы сообщений будут доступны dos. Синтаксис тут передаётся DOSEMU через опцию "-D FLAGS", где FLAGS представляет собой строку букв, которые определяют какие опции будут печатать на экран, а какие подавляться. DOSEMU разбирает эту строку справа налево.
   + включает следующие опции (начальное состояние)
   - выключает следующие опции
   a включает или выключает все опции в зависимости от флага
   0 выключает все опции
   1-9 устанавливает уровень отладки: чем выше, тем больше выводится
   # где # - это буква из списка верного класса,
       включает или выключает опцию в зависимости от состояния +/-. Классы Сообщений:
 d  диск    R  чтение с диска    W  запись на диск
 D  int 21h    C  компакт дисковод    v  видео
 X  поддержка X    k  клавиатура    i  порты I/O
 s  послед. порты    m  мышь    #  прерывания
 p  принтер    g  базовые    c  настройка
 w  предупреждения    h  оборудование    I  IPC
 E  EMS    x  XMS    M  DPMI
 n  сеть IPX    P  пакетный драйвер    S  ЗВУК
 r  PIC    T  трассировка IO    Z  PCI-BIOS
 A  драйвер ASPI    Q  mapping driver
Любые классы отладки, следующие после символа + до символа -, будут включены (неподавляющиеся). Любые, следующие после символа - до символа +, будут подавлены. Символ a действует подобно строке со всеми возможными классами отладки, так +a включит все отладочные сообщения и -a выключит все отладочные сообщения. Символы 0 и 1-9 также специального назначения: 0 выключает все отладочные сообщения, а 1-9 включает все отладочные сообщения, но также устанавливает и уровень отладки. Символ + приписывается в начало строки FLAGS. Некоторые классы, типа класса ошибок, не могут быть выключаны. В случае, если перенаправление на стандартный поток ошибок нежелательно, ближайший путь для достижения результата - перенаправить весь вывод в устройство /dev/null. Несколько примеров:
  "-D+a-v" или "-D1-v" : все сообщения кроме видео
  "-D+kd" : по умолчанию вместе с клавиатурой и диском
  "-D0+RW" : только чтение с диска и запись на диск Любая опциональная буква может располагаться в любом месте. Даже бессмысленные комбинации, типа -D01-a-1+0, будут разобраны без ошибки, так что будьте осторожны. Некоторые опции установлены по умолчанию, некоторые наоборот. Это предмет авторского каприза и возможны изменения между версиями. Можно обеспечить четкую установку конкретных опций, всегда явно определяя их.

СПЕЦИАЛЬНЫЕ КЛАВИШИ
В режиме работы с клавиатурой напрямую (смотрите опцию -k), DOSEMU возвращает известные последовательности клавиш как управляющие функции.

    ctrl-scrlock = показать 0x32 векторов прерываний
    alt-scrlock = показать регистры vm86
    rshift-scrlock = генерировать int8 (таймер)
    lshift-scrlock = генерировать int9 (клавиатура)
    ctrl-break = ctrl-break как под DOS.
    ctrl-alt-pgup = перегрузить DOS. Не доверяйте этому!
    ctrl-alt-pgdn = выйти из эмулятора

Используйте <LEFT CTRL>-<LEFT ALT>-<Функциональная клавиша>, чтобы переключиться на другую виртуальную консоль.

ПАМЯТЬ
Поддержка памяти XMS в DOSEMU соответствует расширенной спецификации памяти Lotus/Intel/Microsoft/AST версии 3.0. Реализованы все функции XMS кроме функции 0x12 (Перераспределить Верхний Блок Памяти).

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

DOSEMU также поддерживает EMS 4.0 и DPMI 0.9 (1.0 частично).

АВТОРЫ
DOSEMU (содержащий в себе файлы dosemu.bin и dosemu ) базируется на версии 0.4 оригинальной программы, написанной Matthias Lautner (текущий адрес которого на данный момент неизвестен).

Robert Sanders <gt8134b@prism.gatech.edu> поддерживал и расширял воплощение DOSEMU, с которым начало распространяться это man руководство. Втечение около 4-х лет James B. MacLean <macleajb@ednet.ns.ca> был неустанным лидером команды dosemu, реализация DPMI (которая позволила запускать Windows-3.1, dos4gw, djgpp и прочее) произошла втечение его 'правления' и перенесла проект ближе к состоянию Beta. Hans Lermen <lermen@fgan.de> работал над новой версией и выпустил первый релиз версии 1.0. Сейчас Bart Oldeman <bart@dosemu.org> является основным разработчиком этого прекрасного программного обеспечения. Перевод выполнен Andy Shevchenko <andy@smile.org.ua>.

ОШИБКИ
Их число довольно велико, лучше свести список до минимума.

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

ДОСТУПНОСТЬ
Большинство последних версий DOSEMU можно получить с сайта www.dosemu.org; скоростное зеркало расположено по адресу ibiblio.unc.edu:/pub/Linux/system/emulators/dosemu/. Если хотите получать частные версии для разработчиков, вступайте в команду разработчиков DOSEMU, всего лишь хорошие и подробные отладочные отчеты - всё, что необходимо!

ФАЙЛЫ
@bindir@/dosemu.bin
    Исполняемый модуль
@bindir@/dosemu
    Оберточный скрипт, рекомендуемый для запуска dosemu.bin, который не стоит запускать непосредственно.
@bindir@/xdosemu
    То же самое, но служит для запуска DOS в X window.
$HOME/.dosemu
    Локальный каталог на каждого пользователя DOSEMU. Создание каталога происходит молча, если он отсутствует.
$HOME/.dosemu/tmp
    Создание всех временных файлов происходит здесь, /tmp больше не используется.
/var/run/dosemu.*
    или
$HOME/.dosemu/run
    Различные файлы, используемые DOSEMU, включая отладочные каналы.
$HOME/dosemu/freedos
    Загрузочный каталог, содержащий FreeDos.
dosemu.conf
    Основной настроечный файл для DOSEMU, включающийся в global.conf (global.conf включен в dosemu.bin по умолчанию).
dosemu.users
    или
@sysconfdir@/dosemu.users
    Для запускаемых бинарников с suid-root: определение прав доступа к DOSEMU на базисе каждого пользователя и установка некоторой необходимой конфигурации. Этот настроечный файл имеет только фиксированное расположение, DOSEMU вначале ищет dosemu.users и, если он не найден, обращается к @sysconfdir@/dosemu.users. Через ключевой параметр default_lib_dir= в файле dosemu.users системно расширяющий каталог DOSEMU_LIB_DIR может быть перемещен куда-нибудь. За более детальной информацией обращайтесь к @docdir@/README.txt
@sysconfdir@/dos.ini
    Настроечный файл для IPX.
@docdir@/DPR
    Команда разработчиков dosemu: кто и какую часть проекта DOSEMU ведет?
doc/DANG.txt
    Помощь для изучения кода DOSEMU.
@docdir@/README.*
    Различная документация.
ChangeLog
    Изменения в DOSEMU с момента последнего релиза.
README.bindist
    Информация о том, как использовать готовый к работе пакет бинарников DOSEMU/FreeDos.
README.distributors
    Информация для дистрибьютеров Linux о том, как паковать сборку DOSEMU, для расширения возможностей системы.
Список рассылки MSDOS
    Для подробной информации пишите на адрес
linux-msdos@vger.kernel.org

СМОТРИ ТАКЖЕ
dosemu(1), mkfatimage16(1)