DOS в коробке

С тех самых пор, как операционные системы Windows семейства NT стали самыми популярными на рынке, запуск старых DOS-приложений — первых курсовых на Turbo Pascal, классических игр вроде Prince of Persia или DOOM — обернулся для многих пользователей настоящей проблемой. Но проблемой разрешимой…

Оконные хроники


История операционной системы, известной публике как MS-DOS, начала вершиться еще задолго до того, как летом 1981 корпорация Microsoft перекупила все права на тогдашний PC-DOS у Seattle Computer Products, давая ему новое имя, а в перспективе не без помощи IBM (продававшей его под старым именем) делая его самой распространенной 16-разрядной ОС для персональных компьютеров. И, вопреки достаточно распространенному мнению, эта история не закончилась и до сих пор. Конечно, когда в 1988 г. Билл Гейтс и компания разработали первую "графически-мышевую" оболочку для DOS, мало кто подозревал, что оболочке этой суждено эволюционировать до самостоятельной ОС. Однако семь лет спустя с выходом на рынок Windows 95 — первой 32-битной операционной системы Microsoft — конец массовому применению MS-DOS и даже его расширению Windows 3.1 стал просто неизбежным.

Причины и следствия

Однако наступил он не через день, и даже не через месяц. И в следующем году, и еще через год разработчики, пользуясь высокой совместимостью "Окон" и DOS, продолжали создавать программы для последнего. Ну, а когда и эта медленно угасающая тенденция окончательно сошла на нет, MS-DOS остался существовать только в виде устаревшей системы, не забытой лишь потому, что для нее было создано множество замечательных программ. На новых системах Microsoft эти программы запускаются крайне неохотно (если вообще запускаются). Причина этого состоит в том, что в последних версиях Windows виртуальные DOS-машины (VDM) сильно редуцированы. В DOS-машинах Windows 2000 в целях безопасности и стабильности системы непосредственный доступ к аппаратному обеспечению компьютера ограничен, а в XP отсутствует вовсе. Имитация же старого оборудования в NTVDM оставляет желать лучшего. Можно выделить два способа заставить DOS-приложения корректно работать в Windows: использование внесистемных реализаций VDM либо эмуляция, отличающаяся от использования VDM тем, что все команды приложений интерпретируются программно (т.е. эмуляция как бы моделирует работу компьютера с DOS программными средствами). Разница в работе этих двух способов состоит, в частности, в том, что эмуляция просто не способна давать те же показатели производительности, что и VDM. Это объясняется достаточно просто: если DOS-машины работают непосредственно с аппаратным обеспечением вашего компьютера, то эмуляция это самое аппаратное обеспечение имитирует программно. Преимущество же такого метода состоит в том, что он гораздо ближе воссоздает те машины, для которых, собственно, и предназначалась система DOS. В частности, программы на Паскале в нем не выдают пресловутой Run-time error 200, вызванной многократным возрастанием скорости работы нынешних процессоров. Эмуляторы также в большинстве своем способны имитировать и старые звуковые карты, и прочее оборудование, которое на многих VDM не всегда воссоздается правильным образом. Именно ввиду этих соображений, а также для простоты говорить мы сегодня будем о самом популярном из DOS- эмуляторов — программе DOSBox.

DOSBox. Итак, первым делом, естественно, нужно скачать последнюю версию эмулятора с сайта разработчиков: dosbox.sourceforge.net. В наличии имеются версии для Windows, Linux и FreeBSD. Автор при написании этой статьи пользовался "оконной" версией DOSBox 0.63. Впрочем, даже более новые версии (если они уже существуют) мало чем отличаются в плане использования, а общие моменты совпадают даже в версиях для различных операционных систем. После установки опытные пользователи могут настроить под свои потребности конфигурационный файл dosbox.conf (находится в одной папке с исполняемым файлом dosbox.exe). Для его редактирования можно воспользоваться стандартным Блокнотом (см. рис.).

Рис. 1. Редактирование конфигурационного файла DOSBox в Блокноте. Все изменяемые параметры снабжены комментариями.

В целом сориентироваться в этих настройках не составляет большого труда. Если у вас достаточно быстрый процессор, попробуйте увеличить количество эмулируемых циклов (строка cycles в разделе [cpu]). Выставлять слишком много не стоит, иначе ваш процессор просто не будет успевать за эмулятором. По некоторым сведениям, на 1 ГГц тактовой частоты можно ставить около 5000 циклов. Для получения более качественного звука установите параметры rate в разделах [mixer] и [gus] и oplrate в разделе [sblaster] равными 44100. Впрочем, при отсутствии каких-то претензий к работе DOSBox редактировать конфигурационный файл вообще не обязательно. Теперь запускаем собственно файл dosbox.exe. Для начала следует пояснить, что в целях удобства пользователя DOSBox автоматически запрограммирован на работу с виртуальными дисками, реализованную проще, чем в большинстве внешних программ, и полноценнее, чем в стандартной подпрограмме DOS subst. Поэтому сразу после запуска эмулятора вам доступен только виртуальный системный диск Z:. Чтобы DOSBox "прозрел" и увидел папку с игрой, которую вы хотите запустить, используйте команду mount. В общем виде она вызывается следующим образом:
mount x y:\folder

Здесь вместо x вы подставляете имя виртуального диска, который будет дублировать содержимое указанной вами папки (y:\folder). Например: mount c c:\, mount a d:\games\arcanoid, mount c f:\progra~1\toxic. Обратите внимание, что имя создаваемого виртуального диска указывается без двоеточия. Также не стоит забывать, что в DOS имена файлов ограничены восемью символами — если их больше, то следует приписывать к первым шести буквам названия индекс ~1, а если папок, где первые шесть букв совпадают, несколько, то и ~2, ~3 и т.д. в алфавитном порядке без пробелов. Так, скажем, d:\my games превращается в d:\mygames, а f:\program files и f:\programming становятся f:\progra~1 и f:\progra~2 соответственно. Чтобы удалить виртуальный диск в DOSBox, вызывайте команду mount -u x, где x — имя вашего диска. Настройка дисковода CD-ROM осуществляется командой mount x y -t cdrom. Вместо x укажите букву виртуального CD-ROM в DOSBox, а вместо y — букву, реально соответствующую вашему CD-ROM. Если вашему виртуальному диску соответствует не одна папка с игрой, а несколько субдиректорий, содержащих исполняемые файлы различных игр (не f=c:\games\tetris, а f=c:\games), то просто прописать в командной строке путь к исполняемому файлу игры в большинстве случаев недостаточно. Дело в том, что компьютерные игры, как правило, помимо exe- или com-файла нуждаются и наличии некоторого числа файлов данных, откуда подгружаются графика, музыка, анимационные последовательности и т.д. И искать эти файлы программа будет в той папке, которая являлась текущей в момент ее запуска. То есть, если вы запустили c:\games\kq4\runme.bat, находясь в c:\, то работать игра не станет, потому как в корневом каталоге диска C: ее файлов, естественно, нет. Чтобы изменять текущую директорию, используйте команду chdir (или cd). Например, инструкция cd c:\games\lba сделает текущей указанную в аргументе папку. Другие команды оболочки, поддерживаемые DOSBox, вам, скорее всего, не понадобятся. Они служат в основном для того, чтобы корректно выполнялись пакетные bat-файлы, потому что непосредственно у пользователя необходимость, скажем, удалить папку или переименовать файл средствами эмулятора, вряд ли возникнет: у него же под рукой Проводник Windows. Но, если вам вдруг понадобится узнать, какие команды DOSBox умеет выполнять (например, для создания того же bat-файла), воспользуйтесь командой help. Она выведет на экран полный список.

Рис. 2. Создание виртуального диска и выбор нужной директории в DOSBox. Процесс немногим отличается от привычной командной строки MS- DOS

Для выхода из DOSBox можно воспользоваться командой exit (в случае, если вы имеете что-то против "крестика в верхнем правом углу") или сочетанием Ctrl-F9. Чтобы перейти в полноэкранный режим или выйти из него, используйте комбинацию Alt-Enter. Сочетания клавиш Ctrl-F11 и Ctrl- F12 позволяют изменять количество эмулируемых DOSBox циклов процессора (в оконном режиме этот показатель отображается в строке заголовка окна программы). Однако даже на достаточно современных по сегодняшним меркам компьютерах могут возникать ситуации, когда количество эмулируемых циклов выставлено на доступный физическому процессору максимум (т.е. использование ресурсов CPU составляет 100%), а "капризная" DOS-программа упорно продолжает работать медленнее, чем хотелось бы. В этом, как уже было упомянуто, и заключается главный недостаток эмуляторов. Способов как- то исправить положение просто не существует… разве что модификация компьютера; а ленивое выполнение программы, написанной 10 лет назад, на гораздо более новом компьютере, чем тот, для которого она предназначена, способно лишить терпения кого угодно. Именно для таких случаев авторы DOSBox придумали довольно необычную уловку. Идея простая: раз мы не успеваем достаточно быстро показывать все кадры, которые программа выводит на экран, мы просто будем пропускать некоторые из них. В результате (особенно при злоупотреблении таким способом) анимация теряет всякую плавность (которой многим старым играм и так недоставало), но зато прибавляет в скорости показа. Чтобы увеличить число пропускаемых кадров (по умолчанию равное нулю), нажмите Ctrl-F8, а для его уменьшения воспользуйтесь комбинацией Ctrl-F7. Правда, автор статьи на своем опыте может сказать, что сколько-нибудь сбалансированного результата достичь при этом вряд ли удастся: или медлительность работы, или резкость анимации все равно будут портить вам впечатление. Впрочем, на достаточно мощных машинах такие ситуации возникают нечасто и связаны, как правило, с выполнением очень ресурсоемких DOS-приложений. Лучше всего в таких случаях закрыть все выполняемые программы и максимально высвободить память, а уже потом запускать DOSBox. Что касается непосредственно DOSBox, то на этом мы и остановимся. Вышеприведенной информации более чем достаточно для запуска большинства старых игр и приложений.

Рис. 3. DOSBox в действии. В не слишком требовательных приложениях наслаждаемся хорошим качеством звука и высокой скоростью работы

…Но не всех. Учитывая, что символьная таблица DOSBox по умолчанию соответствует западным стандартам, при отображении в эмуляторе русского текста на выходе получается набор совершенно бессмысленных знаков. Чтобы исправить эту ситуацию, можно скачать из Интернета старые резидентные программы для DOS, предназначенные для корректного отображения русского текста и обеспечения возможности ввода кириллических надписей с клавиатуры. Найти их можно, например, здесь: www.thg.ru/software/20050228/images/keyrus.rar, — или здесь: fdd5-25.net/drivers/superrus.zip. Проще же и, наверное, правильней достать русификацию DOSBox, доступную на его официальном сайте (на момент сдачи статьи последняя версия располагалась по этому адресу: dosbox.sf.net/tools/DOSBox-russian-lang-063-2.zip). Архив не содержит собственно русификатора, но включает в себя инструкции по его скачиванию и установке. Также в него входит русская версия документации к программе и переведенные комментарии к файлу конфигурации. Перевод, правда, выполнен через пень-колоду, но при достаточной вдумчивости он все же дает ответы на большую часть возникающих вопросов. Если же вы не найдете интересующую вас информацию в документации, попробуйте обратиться на форум DOSBox (vogons.zetafleet.com/index.php?c=7). Там, естественно, придется изъясняться по-английски. Если использование командной строки кажется вам неудобным и непривычным, возможно, вам стоит скачать графическую оболочку (так называемый front-end) для DOSBox (ссылки на них доступны в том же разделе скачивания на странице программы, куда помещен и сам эмулятор). Такие оболочки, судя по всему, представляют собой своеобразные каталогизаторы старых игр, позволяющие с одного клика запускать их в DOSBox. Пользоваться ими совсем несложно. Просто добавьте в список нужные вам игры, и в дальнейшем про командную строку можно будет забыть. У использования front-end-оболочек довольно много сторонников, но их количество отнюдь не перевешивает число пользователей, предпочитающих традиционную командную строку. Удобство этих программ в достаточной степени относительно: добавлять игры в базу данных с указанием названия, жанра, разработчика, издателя и года выпуска, а затем настраивать параметры запуска каждой из них — довольно сомнительное удовольствие, да и потом возникает вопрос, куда относить неигровые прикладные программы, запускаемые через DOSBox (протестированная автором оболочка D-Fend, например, может каталогизировать только игры). Если уж вы не хотите работать в командной строке, попробуйте для начала вызывать через DOSBox старые файловые менеджеры вроде Dos Navigator или Norton Commander (некоторый ассортимент которых наблюдается здесь: fdd5-25.net/shells.php). Вот теперь можно окончательно завершить нашу беседу о лучшем из написанных DOS- эмуляторов. Скачивайте, запускайте… и наслаждайтесь.

"…и кое-что еще"

Напоследок поговорим о других программах, полезных при запуске старых DOS-приложений. Утилиту VDMSound наверняка оценят пользователи систем Windows 95/98, у которых проблемы с совместимостью DOS-программ возникают сравнительно нечасто, но которые хотят добиться поддержки звука во всех запускаемых приложениях. Эта программа имитирует работу популярной звуковой карты SoundBlaster для DOS-программ, выполняемых в Windows. Существуют, конечно, и версии для Windows 2000/XP, но какой толк от поддержки звука, когда большая часть приложений DOS в этих ОС не работает вовсе?

Популярный эмулятор ScummVV (scummvm.org) не может похвастаться такой универсальностью, как DOSBox, поскольку предназначен в первую очередь для запуска конкретных игр (старых квестов Lucas Arts; серии Simon the Sorcerer и ряда других), но со своей задачей справляется на 10 баллов по пятибалльной шкале. Так что, если у вас наблюдаются проблемы с запуском той или иной игры в DOSBox, вам стоит проверить, нет ли ее в списке поддержки ScummVV.

Между прочим…

Пи-система.
Предком современных эмуляторов можно в какой-то степени считать появившуюся еще на заре эры персональных компьютеров UCSD p- system. Эта операционная система также прибегала к программной имитации работы центрального процессора и других устройств в целях независимости работы приложений от аппаратных характеристик компьютера. Правда, как и сегодняшние эмуляторы, p-system отличалась ощутимо более низкой скоростью работы.

Загрузочный диск. Впрочем, ничто, наверное, не сравнится с оригинальным "чистым" DOS. Для выхода в него создадим загрузочный диск. Стоит понимать, что по сравнению с оригинальным комплектом поставки MS-DOS тот, что Windows запишет вам на дискету, сильно редуцирован и содержит лишь необходимый минимум, "ядро" системы. Но для запуска тех DOS-приложений, которые вообще способны выполняться на вашем компьютере, этого вполне достаточно. А уж если они конфликтуют с вашим аппаратным обеспечением, то без эмулятора не обойтись никак. Итак, чтобы создать загрузочный диск в Windows xp, вставьте дискету, выберите в Проводнике свой дисковод и нажмите на пункт "Форматировать" контекстного меню, вызываемого правой кнопкой. Поставьте галочку напротив "Создание загрузочного диска MS-DOS" и жмите "Начать". В более ранних версиях Windows тот же результат достигается несколько более длительной последовательностью действий: Панель управления > Установка и удаление программ > Загрузочный диск > кнопка "Создать диск". Далее стоит позаботиться, чтобы именно Floppy-дисковод был выставлен первым загрузочным устройством (1st boot device) в Advanced Settings вашего BIOS. Разумеется, если при внесении изменений на первом месте стоит загрузка с IDE или CD-ROM, ее стоит сместить вниз. Вот и все. Теперь при необходимости просто вставьте загрузочную дискету в дисковод раньше, чем начнется загрузка системы. Так вы окажетесь в "чистом" DOS. Это не даст такой аппаратной совместимости, как использование эмуляторов, но зато вы заметите существенный прирост в быстродействии. Если же вы не дружите с командной строкой, воспользуйтесь оболочкой. Загрузочный диск поможет вам и при падении всей системы (в том случае, если вы держите дистрибутив Windows на винчестере).

Михаил '$ky$pe@R' Федотов, skyspear@tut.by


Компьютерная газета. Статья была опубликована в номере 03 за 2006 год в рубрике ос

©1997-2024 Компьютерная газета