Старые DOS-овские игрушки
Дата публикации: 08/07/2011Иногда хочется запустить какую-нибудь старую досовскую игрушку, несмотря даже на то, что существуют ее аналоги под современные операционные системы. Но аналоги зачастую не всегда полностью повторяют исходную игру и могут отличаться как оформлением, так и особенностями управления. Да и просто ностальгия именно по этой старой игре может вдруг возникнуть. Разумеется, в той же Windows есть режим совместимости, который позволяет запускать старые приложения, но этот режим может не всегда корректно работать. И лучше всего запускать приложения в своей родной среде.
В современных реалиях, родную среду для программы обеспечивают виртуальные машины, а мощности современного процессора вполне достаточно для комфортной работы стареньких программ. Мне нужно было обеспечить работоспособность программы как в Windows, так и в Mac OS X, поэтому я воспользовался свободно распространяемой виртуальной машиной VirtualBox.
Есть такая старенькая игра под названием "Pentix", написанная для чистого DOS и достаточно популярная в свое время, в своих кругах. По крайней мере, я знаю человека, который до сих пор в нее играет. Сама игра это разновидность тетриса, но только фигурки там состоят не из четырех квадратиков, а из пяти или меньше.
Устанавливаем DOS
В общем, для того запустить эту игру нам нужно установить DOS. Последняя версия, выпущенная Microsoft имела версию 6.22. Дистрибутив можно найти на просторах интернета достаточно быстро, но нам не нужен полный дистрибутив, а вполне достаточно минимальной версии - главное, чтобы он был подготовлен в виде образа диска. С виртуальными машинами проблема зачастую возникает в том, чтобы понять как передать нужные файлы в систему. Особенно если на реальном машине уже давно нет Floppy-дисковода, да и CD-привод далеко не всегда есть. Поэтому наше спасение заключается в ISO-образах. Поискав еще немного, я нашел такой образ загрузочного DOS-диска c минимально необходимым набором системных файлов.
На следующем этапе создаем в VirtualBox новую виртуальную машину, указывая в качестве загрузочного образ диска c DOS. При создании виртуальной машины сразу создаем и новый виртуальный жесткий диск - мегабайт 50 хватит за глаза. После чего загружаемся с образа. Теперь нам нужно будет установить DOS на новый виртуальный диск. Для тех кто забыл или не знает как это делается, привожу последовательность действий. Первым делом нужно разметить жесткий диск, запустив утилиту "fdisk":
a:\>fdisk
Необходимо выбрать создание первичного раздела, используя все доступное пространство и сохранить изменения. На следующем этапе вновь созданный раздел нужно отформатировать:
a:\>format c:
Теперь можно приступить и к установке системы. Делается это очень просто, т.к. собственно система состоит из загрузочного сектора и файла command.com. Все остальные файлы системы являются опциональными и при подготовке системы под конкретные нужды могут быть без проблем удалены. Обе операции, т.е. создание загрузочного сектора и копирование файла "command.com" делаются следующей командой:
a:\>sys a: c:
Если сейчас просмотреть содержимое диска c: при помощи команды
a:\>dir c:
То можно будет увидеть как раз этот единственный запускаемый файл и пару конфигурационных файлов. Имеет смысл, однако переписать на диск c: и остальные файлы системы, которые есть на загрузочном диске. В моем случае, они лежали в корне диска a: и я решил переписать их в подкаталог "dos" диска c:
a:\>c: c:\>mkdir dos c:\>copy a:\*.* c:\dos
Ну и сразу же имеет смысл сделать подкаталог для "Pentix", чтобы файлы не валялись где попало.
c:\>mkdir pentix
Но прежде чем двигаться дальше, давайте подключим к системе драйвер CD-ROM и мышку. Для этого нам нужно будет отредактировать конфигурационный и загрузочный файлы DOS. Отредактировать их можно, воспользовавшись системным редактором:
c:\>edit config.sys
Это полноэкранный текстовый редактор, так что проблем с его использованием возникнуть не должно. Запомните только, что для выхода в меню, нужно нажать клавишу "Alt". Содержимое файла "config.sys" должно быть следующим:
DEVICE=c:\dos\himem.sys /testmem:off DEVICE=c:\dos\cd1.sys /d:cdrom FILES=30 BUFFERS=20
Эти команды говорят системе загружать драйвера в верхнюю, а не в основную память, подключают драйвер CD-ROM, а также устанавливают максимальное количество открытых файловых потоков и буферов. Все это делается ради оптимизации системы. Все еще помнят, что в DOS было ограничение основной памяти в 640Кб и знаменитую фразу Билла Гейтса "640Кб хватит на все"?
Теперь отредактируем файл "autoexec.bat", добавив в него запуск драйверов мышки и CD-ROM, а также установив путь для системных файлов, чтобы было проще запускать внешние команды.
c:\>edit autoexec.bat
Содержимое файла автозагрузки должно быть следующим:
PATH=c:\dos c:\dos\mscdex.exe /d:cdrom /l:d c:\dos\mouse.com
Ну, что же, вот система и установлена. Перезагрузите виртуальную машину, предварительно проверив, что первым загрузочным устройством установлен виртуальный жесткий диск. Если все сделано правильно, то система успешно загрузится и вы увидите промпт для запроса команд.
c:\>
Устанавливаем Pentix
А теперь можно перейти и к установке собственно игры. Проблема заключается в том, что у меня есть дистрибутив Pentix в виде RAR-архива, а мне его нужно перенести на виртуальный жесткий диск. Для других операционных систем, устанавливаемых в VirtualBox, для обмена данными удобно использовать общую сетевую папку или на худой конец, USB-флешку. А вот с DOS такой фокус не пройдет, ввиду отсутствия поддержки как USB, так и сетевых протоколов. Единственный выход, который я нашел это создание ISO-образа с распакованными файлами игры и подключение этого образа к виртуальной машине.
Для работы с образами дисков есть несколько программ. Некоторые из этих программ позволяют создавать ISO-образы просто из набора файлов. Я воспользовался очень удобной программой "AnyToISO" существующей в версии как для Mac OS X, так и для Windows.
После создания образа диска с распаковаными файлами игрушки, необходимо подключить его к виртуальной системе и запустить DOS. Проверим, что файлы нам доступны, просмотрев содержимое созданного образа с Pentix-ом.
c:\>dir d:
Если вы видите нужные файлы, то теперь самое время скопировать их на наш жесткий диск.
c:\>copy d:\*.* c:\pentix
Проверим что все прошло успешно, запустив Pentix.
c:\>cd pentix c:\pentix\>pentix.exe
Вот собственно и все! На этом этапе Pentix должен успешно запуститься и можно начать в него играть. Но чтобы было удобнее, давайте сделаем заключительный штрих - добавим автоматический запуск игрушки после старта виртуальной машины. Для этого достаточно добавить в конец файла "autoexec.bat" следующую строчку:
c:\pentix\pentix.exe
Проверьте, что все работает нормально, перезагрузив виртуальную машину.
Бонус для тех, кто дочитал до конца
Если вы дочитали до конца и испытываете ностальгию по этой игре или просто хотите вспомнить DOS, то я подготовил файл с образом виртуальной машины, созданный так, как это описано в статьей. Вы можете скачать его вот по этой ссылке (архив занимает чуть больше 1Mb). Кроме собственно Pentix-а, там также есть несколько базовых DOS-овских утилит, а также Microsoft Quick Basic, который можно запустить из командной строки.
c:\>qbasic.exe
Для запуска образа виртуальной машины, вначале установите VirtualBox, а затем разархивируейте скачанный файл в папку где VirtualBox хранит виртуальные машины. После распаковки, щелкните два раза на файле "PentixDOS.vbox" - произойдет автоматический запуск системы, а следом и игрушки.
В процессе установки игрушки под виртуалкой, вспоминая нужные команды, подумал, насколько же, все-таки, простой и понятной была DOS. Нынешние системы на пару порядков сложнее. И если раньше многие знали все команды DOS, зачем нужен каждый файл, как подключать драйвера и оптимизировать систему, точно понимая как это работает, то нынче я не думаю, что мы найдем хотя бы одного человека досконально разбирающего во всех аспектах любой современной операционной системы. Сейчас скорее работает принцип необходимой достаточности знаний и умение искать нужную информацию в случае возникновения проблем.