Программы начального самотестирования POST (Power-On-Self-Test) выполняют тестирование процессора, памяти и системных средств ввода-вывода. При прохождении каждой секции POST записывает ее код (номер) в диагностический регистр (обычнопорт 80h). Этот регистр обычно физически располагается на специальной диагностической плате, устанавливаемой в слот системной шины. Плата содержит 8-битный регистр со световой (двоичной или шестнадцатиричной) индикацией состояния бит. В пространстве ввода/вывода регистр занимает один адрес, зависящий от архитектуры PC (точнее, версии BIOS, ночасто используют то же 80h). По индикаторам платы можно определить, на какой секции остановился POST, и определить причину неисправности. Однако для использования такой диагностики необходима, во-первых, сама плата-индикатор, и во-вторых, «словарь» неисправностей - таблица, специфическая для версии BIOS и системной платы.
Во время выполнения POST может выдавать диагностические сообщения в виде последовательности коротких и длинных звуковых сигналов (эти сигналы различны для BIOS конкретных версий и фирм-изготовителей), а после успешной инициализации графического адаптера краткие текстовые сообщения выводятся на экран монитора. Рассмотрим пример обычной последовательности этапов исполненияпрограмм POST:
Тестирование регистров процессора.
Проверка контрольной суммы ROM BIOS.
Проверка и инициализация таймера, портов аналогичных (после этого шага доступна звуковая диагностика ).
Проверка и инициализация контроллеров прямого доступа в память(DMA).
Проверка регенерации памяти.
Тестирование 64 Кбайт нижней памяти.
Загрузка векторов прерывания и стека в нижнюю область памяти.
Инициализация видеоконтроллера: на экране появляется заставка Video BIOS, обычно с указанием модели видеокарты и объемом установленной видеопамяти.После успеха этого шага изображение на экране сменяется заставкой системной BIOS со счетчиком объема тестируемой динамической памяти. Теперь диагностические сообщения выводятся на экран.
Тестирование полного объема ОЗУ.
Тестирование клавиатуры.
Тестирование CMOS-памяти и часов.
Инициализация СОМ и LPT портов.
Инициализация и тест контроллеров устройств внешней памяти.
Инициализация и тест контроллера НЖМД.
Сканирование области дополнительного ROM BIOS.
Вызов Bootstrap (INT 19h) - загрузка операционной системы, при неудаче - останов процессора с сообщением «System Halted» (система остановлена).При загрузке системы с жесткого диска сначала загружается Master Boot сектор (первый сектор нулевого цилиндра нулевой поверхности), содержащей программу (IPL 1) и ей передается управление. Эта программа по таблице разделов находит системный раздел и загружаетиз него Boot Sector (например с логического диска С:) в память и передает управление программе (IPL 2), на ходящейся в этом секторе. Последовательность загрузки может изменяться дополнительным BIOS сетевого адаптера в случае удаленной загрузки по сети.
В процессе работы POST используются ячейки CMOS, например, результаты прохождения тестов заносятся в CMOS 0Eh - Post Diagnostic Status Byte, в байтах 2Еh-2Fh хранится контрольная сумма CMOS и т. д..