[Назад ] [↑] [Вперед] |
|
"Дама сдавала в багаж, Диван, чемодан,саквояж..." С.Я.Маршак |
Как известно, чем меньше с собой нужно везти вещей, тем легче собраться в путь, да и ехать менее обременительно. Обсудим необходимый в дороге минимум. Мы хотим написать программу, затем перевести ее в исполняемый код и записать на дискету, с которой и будет загружаться компьютер.
Чтобы написать программу, нужен карандаш, листок бумаги и немного знаний или жгучее желание это сделать :-). В качестве карандаша и бумаги подойдет любой текстовый редактор, например, Notepad для MS Windows. Однако, лучше подобрать специализированный редактор с подсветкой синтаксиса и другими удобными при программировании свойствами.
Наша программа будет написана на языке Assembler. Поэтому выбираем подходящий
компилятор, который способен выдавать результат в виде
бинарного файла, готового к переносу в загрузочный сектор дискеты.
При разработке примеров для нашей задачи вначале использовался свободно распространяемый
компилятор NASM - Netwide Assembler
с простым и четким синтаксисом и с минимальным количеством директив и умолчаний.
После довольно длительного затишья развитие этого компилятора снова активизировалось
(в основном для Linux).
Последняя версия: 2.06rc10 - 7.04.2009 г.
Развивается также другой компилятор
с похожим синтаксисом и возможностью генерировать бинарные файлы:
FASM (Flat ASseMbler, автор Tomasz Grysztar).
Когда для этого компилятора была разработана интегрированная среда под Win32 с довольно
удобным текстовым редактором, все примеры были переписаны под этот компилятор
(практически заменены только отличающиеся директивы). При работе использовалась следующая
версия FASM. (version 1.51 for Win32 GUI (interface 0.91) [06-02-2004]).
Последняя версия компилятора на сайте разработчика 1.67.38 от 26.03.2009 Есть также версии этого компилятора для DOS, console Win32 и Linux.
После того, как программа написана, откомпилирована и получен бинарный файл,
его нужно записать в загрузочный сектор дискеты (первый сектор на нулевой дорожке нулевого цилиндра).
Специальных средств для этого нет (по крайней мере в продуктах небезызвестной фирмы). Можно
воспользоваться командой "w" программы "debug" в MS DOS и Windows, или приспособить другие программы,
например DiskEdit из пакета Norton Utilites или DiskProbe из пакета Windows NT SDK.
Правильнее, однако, написать свою - понятную, надежную и бесплатную :-)
программу. Эта программа (wrboot.exe)
написана на языке FASM и работает в среде MS DOS или Console Win32.
Теперь о дискете, на которой будет располагаться наш программный шедевр. Дискета обычная 3,5", предварительно форматированная программой FORMAT. Правда,после записи на нее нашего загрузчика, любая ОС скажет, что дискета не форматирована :-). Позже станет понятно почему.
Не обязательно, но желательно взять с собой какой-нибудь, пусть даже 286, компьютер для проведения первых экспериментов и отладки нашей программы. Ведь чтобы загрузиться с дискеты на рабочем компьютере, надо закончить текущий сеанс, а после эксперимента снова перезагрузить систему, чтобы усовершенствовать наше творение. Если это Windows NT, 2000 или XP, то быстро надорвешься. А так, переставил дискету из одного дисковода в другой и нажимай RESET.
Вот,пожалуй и все на первые дни пути. Чего не хватит, будем изыскивать по мере возможности.