Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
set XUPX=upx --8086 –best ® set XUPX=c:upxupx --8086 --best
Если вы используете версию компилятора Watcom C для среды Win32, то в строку
set PATH=%PATH%;%WATCOM%inw
нужно добавить путь к каталогу binnt:
set PATH=%PATH%;%WATCOM%inw;%WATCOM%innt
Итак, для компиляции у нас всё готово, осталось только выполнить то, ради чего всё это затевалось – русификацию.
Минимально необходимая модификация ядра, которая позволяет без проблем обрабатывать файлы с русскими символами в именах, – это задание правильной таблицы преобразования строчных/заглавных букв. Информация о кодовой странице (частью которой является таблица преобразования) хранится в файле KERNEL NLS_HC.ASM. Этот файл является копией одного из исходных файлов, находящихся в каталоге KERNELNLS. В стандартном ядре это KERNELNLS 01-437.HC.
Насколько я понял из комментариев, для создания HC-файлов должна использоваться некая утилита, которая преобразует файл формата UNF (Universal NLS data Format) в ассемблерный листинг (HC). Никаких следов этой утилиты мне обнаружить не удалось, поэтому я решил взять в качестве исходного ассемблерный код файла NLS_HC.ASM и поменять таблицу непосредственно в нём. Структура файла вполне очевидна. Хотя, кроме заголовка, комментарии в файле отсутствуют, имеющиеся имена меток достаточно информативны. Таблица преобразования регистра символов имеет метку _nlsUpcaseHardcoded. Кроме этой таблицы, я также исправил таблицу порядка сортировки, которая помечена как _nlsCollHardcoded.
Порядок сортировки в изменённом варианте используется не алфавитный, а по возрастанию расширенных ASCII-кодов символов.
Для русской кодовой страницы 866 использование такого порядка даёт почти правильный результат, только в последовательность строчных русских букв вклинивается набор символов псевдографики (эти символы в именах файлов встречаются нечасто).
Мой вариант файла NLS_HC.ASM можно скачать по
ссылке
Теперь вернемся в каталог KE2034 и, собравшись с духом, запустим команду BUILD.BAT. После окончания компиляции в каталоге BIN мы получим файл KERNEL.SYS – наше новое ядро FreeDOS. Кроме него, в каталоге BIN находятся дополнительные файлы и утилиты:
n AUTOEXEC.BAT – пример конфигурационного командного файла;
n CONFIG.SYS – пример конфигурационного файла DOS;
n INSTALL.BAT – командный файл для создания загрузочной дискеты с собранным ядром;
n KWC38632.map – карта памяти ядра (отладочная информация);
n KWC38632.sys – копия ядра, в имени файла которого указаны использованные опции сборки – тип компилятора, тип процессора, тип файловой системы;
n SYS.COM – команда для копирования системных файлов и записи на диск загрузочного сектора.
Я не разбирался, привязана ли жёстко команда SYS.COM к версии ядра, скорее всего нет, но на всякий случай я использую оба файла, собранные совместно.
Чтобы проверить работоспособность скомпилированных файлов, можно использовать командный файл INSTALL.BAT. Вставьте в дисковод A: чистую дискету и, находясь в каталоге KE2034BIN, выполните команду INSTALL. На дискету будет скопировано ядро, конфигурационные файлы и командный интерпретатор.
Только при копировании файла COMMAND.COM возникает небольшая проблема. Дело в том, что команда SYS ищет этот файл в трёх местах – в исходном каталоге, в корневом каталоге исходного диска и в переменной среды «COMSPEC», при этом она не проверяет, принадлежит ли найденный файл именно FreeDOS. Так как в каталоге KE2034BIN после завершения сборки никакого COMMAND.COM нет, найден и скопирован на дискету будет командный интерпретатор той операционной системы, под которой выполнялась компиляция. Не самое плохое решение, однако если окажется, что текущая операционная система – это не FreeDOS, а MS-DOS (или MS Windows), то загрузочная дискета будет неработоспособной, так как COMMAND.COM от Microsoft работает только в «своей» версии DOS. Чтобы исправить эту ситуацию, можно либо заранее скопировать в каталог KE2034BIN командный интерпретатор от FreeDOS, либо после создания дискеты скопировать файл на неё, заменив вариант, записанный командой SYS. На инсталяционном компакт-диске FreeDOS COMMAND.COM можно найти в каталоге isolinuxuildcd.