Данная программа написана на языке Assembler. При написании программы использовался
пакет Turbo Assembler фирмы Borland и компьютер следующей конфигурации P166/16Mb/3.2Gb.
Программа проходила тестирование на платформах 586, 486 процессоров с AWARD
BIOS. Были обнаружены проблемы с подсчетом некоторых контрольных сумм BIOS.
Это связано с тем что использовались разные версии BIOS при тестировании. Есть
предположение, что они могут использовать разные алгоритмы подсчета контрольных сумм.
Программа написана в процедурном стиле. Большую ее часть занимает набор
процедур. Задачи процедур: уменьшить количество повторяемых участков кода; обеспечить
удобство редактирования и усовершенствования кода программы. Так как многие процедуры
сами являются надстройками над входящими в них процедурами, то категорически не
рекомендуется изменять входящие и выходящие параметры процедуры, т.к. это приведет к
выходу алгоритма из строя.
Структура программы. Работа программы контролируется главной процедурой (main), первая
часть при старте настраивает интерфейс программы, вторая часть (в ней и происходит работа
программы) представляет собой обработчик сообщений клавиатуры. Он в зависимости от
сообщения вызывает необходимую подпрограмму, после чего программа переходит в режим
ожидания следующего сообщения от клавиатуры. В программе реализованы функции
обработки ошибок открытия, создания, сохранения, чтения файла. В Cmos Editor отсутствует
обработка ошибок при вводе с клавиатуры. Так, программа не проверяет факт нахождения число в допустимом диапазоне. В данной постановке задачи это не требовалось. Поэтому вся ответственность за вносимые изменения ложится на пользователя. Для обеспечения хоть какой-нибудь безопасности в программу встроена функция авто-сохранения старого содержимого CMOS-памяти перед включением режима редактирования.
В перспективах у этой программы выход версии под Windows, и расшифровка и чтение пароля
BIOS, обновление версии BIOS и ряд других менее значительных добавлений.
Ниже приведен листинг программы с пояснением всех процедур с описанием входящих и
выходящих параметров этих процедур. Наиболее трудно читаемые участки кода имеют
подробные комментарии.
Далее приведен текст программ с более подробными, чем в файле cmos.asm, комментариями: