30 апреля 2014

Загрузочная дискета DOS

В этой статье поговорим о создании собственного образа загрузочной дискеты FreeDOS. 

Загрузка DOS может понадобиться во многих случаях. Это и прошивка BIOS материнской платы, запуск утилит диагностики и восстановления жестких дисков MHDD и Victoria, старые досовские игры и еще какие-нибудь интересные задачи.

У DOS есть важное преимущество перед другими ОС. Это в первую очередь прямое обращение к аппаратуре и умение работать с дисками на физическом уровне. Поэтому под DOS написано такое большое количество низкоуровневых программ.
Мы будем использовать свободную и открытую версию DOS, называемую FreeDOS. Она до сих пор поддерживается в актуальном состоянии и полностью совместима с оригинальной MS-DOS. К тому же у нее есть ряд усовершенствований, например, ядро сразу имеет доступ к файловой системе FAT32 и поддерживает диски большого объема (LBA). Этим так же может похвастаться версия ms dos 7.1 из загрузочного диска windows 98.

Приступим к созданию собственного загрузочного диска. Скачаем ISO-образ последней версии  FreeDOS с официального сайта. Внутри него, в папке ISOLINUX есть образ загрузочной дискеты FDBOOT.IMG, с которым мы и будем работать. Внутри этого образа мы оставим только самое необходимое и по мере надобности будем добавлять туда то, что потребуется. 
Препарировать img-образы под Windows удобней всего в программе Winimage.

Итак, для минимальной загрузки FreeDOS необходимо только два файла, ядро KERNEL.SYS и интерпретатор команд command.com. Поэтому открываем образ FDBOOT.IMG и удаляем все, кроме двух этих фалов.
Дальше мы создадим два текстовые файла: fdconfig.sys - конфигурационный файл операционной системы и autoexec.bat. - файл автозагрузки. В fdconfig.sys комментарии ставятся знаком ";" или "rem" в начале строки, а в autoexec.bat двойным двоеточием "::".

Поскольку DOS-системы работают в реальном режиме процессора с архитектурой x86, то это запрещает адресовать более 1 Мб ОЗУ. Что бы обойти это ограничение используют драйвер дополнительной памяти XMS. В freedos он называется himemx.exe. Так же для совместимости с некоторыми приложениями еще устанавливают драйвер расширенной памяти EMS. В freedos это jemm386.exe. Но за место двух этих драйверов в freedos рекомендуется использовать один JEMMEX, он занимает меньше памяти.

На iso-образе в папке  \FREEDOS\SETUP\ODIN вы найдете все необходимые драйверы и утилиты. Так же их можно скачать и с официального сайта в разделе software. Все, что будет упоминаться в конфигах, нужно скопировать на ваш образ FDBOOT.IMG.   

Добавим  в FDCONFIG.SYS следующие строчки.
device=a:\jemmex.exe
DOS=HIGH,UMB 
Еще нам потребуются драйвер для мышки. В freedos используется CuteMouse (CTMOUSE). Это очень миниатюрный драйвер, с поддержкой колеса прокрутки. В памяти занимает меньше 3.5Kb и распознает COM и PS/2 мышки. USB мышки не поддерживает, но большинство современных BIOS благодаря режиму "legacy USB" позволяют их видеть как PS/2. Поэтому они тоже становятся доступны драйверу CTMOUSE.

Чтобы не засорять 640Kb основной памяти, будем все по возможности загружать в верхнюю память.  Для этого используется команда LH.

Добавим строчку в autoexec.bat
LH a:\ctmouse
Дальше загрузим драйвер для CD-ROM'а. Предполагается, что он подключен к IDE интерфесу. Для всех ATA-устройств в freedos есть один универсальный драйвер UIDE.SYS. Он перехватывает прерывание "Int 13h" BIOS, умеет кэшировать данные и поддерживает 48-битную LBA и 24-битную CHS адресацию.
В FDCONFIG.SYS добавим.
DEVICEHIGH=a:\UIDE.SYS /B /D:MYDVD
А в autoexec.bat
shsucdx /D:MYDVD
Если вы хотите подключить какой-нибудь iso-образ в качестве cd-rom'a, то это можно сделать при помощи SHSUCDHD.
SHSUCDHD /f:c:\horde.iso
shsucdx /d:shsu-cdh
здесь после ключа /f идет место расположения образа.

Займемся вопросом руссификации. Для этого нужно загрузить драйвер дисплея, который будет выводить кириллицу. Пишем в autoexec.bat
LH DISPLAY CON=(EGA,,1)
Команда mode prep подготавливает вывод на устройство CON кодовую страницу 866, используя файл шрифтов.
LH MODE CON CP PREP=((866) a:EGA3.CPX)
команда mode sel устанавливает активную кодовую страницу.
LH MODE CON CP SEL=866
Устанавливаем драйвер и руссификатор клавиатуры
LH KEYB RU,,keybrd2.sys
Переключения раскладки осуществляется с помощью CTRL+SHIFT.
Зададим русские форматы даты и времени. В FDCONFIG.SYS напишем.
!COUNTRY=007,866,a:\COUNTRY.SYS
Еще добавим в autoexec.bat поддержку длинных имен
doslfn.com -z:cp866uni.tbl
Для доступа к NTFS будем использовать драйвер Paragon ntfs4dos, у него встроенная поддержка русских длинных имен. Отдельно скачать можно здесь.
ndos.exe -lfn -cp:866 -mountall
Теперь, что касается звука. Драйверов современных звуковых карт в DOS нет. Но если вы планируете запускать DOS на старой машине или в эмуляторе, с поддержкой Sound Blaster, то можно установить драйвер "Sound Blaster 16 Drivers.zip". Например, его можно взять здесь. В архиве есть отдельный установщик, который скопирует все необходимые файлы и добавит нужные строки в  autoexec.bat.
SET SOUND=a:\
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
a:\DIAGNOSE /S
a:\MIXERSET /P /Q
Поскольку во всех современных биосах есть опция Legacy USB Support, то они поддерживат USB-клавиатуры и мышки.  Благодаря этому FreeDOS может нормально работать с большинством usb-устройств и даже с флешками. Так же биосы поддерживают SATA диски, и они ток же видны в FreeDOS.

Еще для ускорения работы с дисками по средством кэширования в dos'е есть утилита SMARTDRV. В FreeDos'е для этих целей используют LBACACHE. По умолчанию использует 2Mb, есть смысл задать больше. В autoexec.bat пишем.
LBACACHE 8192
Вообщем и целом все. Еще не забудьте скопировать Volcov Commander, тоже программка must have!

Получившийся образ можете скачать здесь.
Удачных экспериментов! 

04 апреля 2014

Делаем кулер для socket478 из LGA775

Если на вашем стареньком Pentium 4 сломался кулер, то найти ему замену будет не так то просто. Сегодня в магазинах их практически уже не продают. Поэтому если появилась такая потребность или просто захотелось улучшить систему охлаждения своего компьютера, я расскажу,  как поставить кулер от LGA775 на Socket478. 

В качестве подопытного был выбран Cooler Master Hyper 101. Хотя  подойдут и другие модели, главное, что бы крепежные пластины прикручивались каждая отдельно! В противном случае потребуется  незначительная доработка, как то разрезание, сверление доп. отверстий и т.д.
Вся прелесть этого кулера в том, что он годится для использования на Socket478 абсолютно без какой либо переделки. Единственное, что я заменю, это пластмассовые клипсы на железные болты. Не вызывают у меня доверия эти зажимы. Поэтому дополнительно вам потребуются только 4 винта, 4 гайки и 4 шайбы. Я использовал винты 4x20 и гайки-барашки М4. Цена вопроса 20 руб.
Для крепления к материнской плате кулер имеет 4 отдельные лапы, каждая крепится к радиатору двумя винтиками. Весь фокус состоит в том, что бы закрепить их необычным  способом. Так, что бы они совпали с отверстиями у Socket478. Для этого накладываем две лапы друг на друга и прикручиваем к центральным отверстиям радиатора. Смотрите фото ниже.
Такого варианта установки в инструкции нет! Поскольку он не предназначен заводом изготовителем для socket478 .
 
Предварительно с материнской платы нужно убрать черную пластиковую рамку вокруг процессора и освободить отверстия. Теперь осталось все собрать и прикрутить.
 
Радиатор встает как родной, обеспечивает хороший контакт со всей поверхностью процессора. Конденсаторы сбоку не мешаются.
Поставив новый кулер с тепловыми трубками вы увеличите эффективность отвода тепла и снизите уровень шума. Удачного вам абгрейда или ремонта!