С помощью простых специальных программ обычную системную плату можно превратить в универсальный стенд для диагностирования и ремонта большинства узлов и устройств ПК(персонального компьютера). Умение программировать дает возможность создавать «инструментальные» программные средства, заменяющие дорогие аппаратные тестеры, используемые для контроля и диагностики устройств. Стоимость аппаратных тестеров достаточно высока, а их номенклатура невелика. Модификация и их приспособление к конкретному устройству - это сложное и дорогостоящее удовольствие.
Разработанные «инструментальные» программные средства, в отличие от аппаратных тестеров, легко модифицируются и приспосабливаются для работы с любым устройством. Программным путем можно задать в устройстве любой необходимый для контроля режим работы, удобно и эффективно осуществлять контроль процессов осциллографом.
Для получения такой диагностической информации, как - коды ошибок устройств, формируемые программами-функциями BIOS; байты состояния устройства, формируемые аппаратурой контроллеров; содержимое регистра ошибок или регистра состояния контроллера, обычно, достаточно однократного выполнения в отладчике (например, AFD) небольшой специальной программы, запускающей контролируемый процесс в устройстве. Затем с помощью AFD можно прочитать, например, регистры ошибок и состояний внешнего устройств, или коды ошибок в регистре АН и AL микропроцессора. После анализа полученной диагностической информации можно приступать к планированию дальнейших действий по локализации неисправности.
Байты состояния и байты уточненного состояния, коды ошибок, информация из регистров ошибок и регистров состояний являются весьма достоверным источником уточняющей диагностической информации. Эта диагностическая информация формируется схемами контроля адаптеров внешних устройств и программами BIOS, которые пишутся высококвалифицированными специалистами. Эта диагностическая информация может быть получена и в результате выполнения специально написанных программ тестирования. Коды ошибок, байты состояний, информация в регистрах ошибок и регистрах состояний - формируются аппаратурой контроллеров и являются информацией о конкретных состояниях и ошибках в аппаратуре контроллеров и внешних устройств. Это достоверная опорная информация для поиска ошибок в контроллерах, расположенных на системных платах (и во внешних устройствах). С помощью отладчика AFD можно прочитать содержимое регистров состояния и ошибок которые содержат диагностическую информацию, сформированную в контроллере устройства. Дополнительная уточняющая информация может быть получена и в результате использования специально написанных программ активизации сигналов, с проведением исследований электрической схемы с помощью осциллографа.
Заключительный этап поиска неисправности в устройствах компьютера, как правило, требует исследования электронных схем с помощью осциллографа. Это исследование можно производить в устойчивом состоянии электронных схем устройств и программы после отказа. Но наибольший эффект при исследовании осциллографом можно получить, если с помощью программы активизировать исследуемый процесс. Для получения устойчивого изображения динамических сигналов на экране осциллографа необходимо, чтобы исследуемые в данном процессе сигналы повторялись периодически с одной и той же частотой. То есть необходимо циклически повторять исследуемый процесс, а это в большинстве случаев достаточно просто обеспечивается с помощью «зацикливания» программы, запускающей исследуемый процесс. Научиться писать небольшие специальные программы несложно, а отказываться от такого мощного и эффективного инструмента просто неразумно и расточительно.
Написание специальных программ обычно осуществляют на ассемблере. Для упрощения процесса создания программ, в составе этих программ используют стандартные программы-функции BIOS. Лучший эффект дает использование стандартных программ-функций BIOS. Программы BIOS являются низшим (физическим) уровнем стандартного ввода/вывода операционной системы. Программы «прошиты» в постоянном запоминающем устройстве ПЗУ BIOS(флэш-памяти) и реализуют при своем выполнении функции управления внешними устройствами на физическом уровне. Ввод-вывод на физическом уровне осуществляется на уровне команд контроллеров внешних устройств, их программно-доступных регистров (с реализацией всех необходимых задержек и особенностей управления устройством). Программы BIOS подробно описаны (как говорят, хорошо документированы). По ним изданы справочники в печатном и электронном виде. Набор программы, ее отладку и запуск программы на выполнение, удобно осуществлять с помощью специальных программ типа профотладчиков Debug, AFD и др..
Например, программа BIOS INT 13h, функция 02h (чтение секторов) читает один или группу секторов с физического диска в память. Для запуска программы BIOS INT 13h, функция 02h нужно занести в регистры процессора следующую информацию:
AH=02h;
AL=число читаемых секторов;
СН=номер цилиндра;
CL=номер начального сектора;
DH=номер головки;
DL=номер дисковода (00h...7Fh - гибкий диск , 80h...FFh - жесткий диск);
ЕS:ВХ=адрес буфера;
и выполнить команду INT 13.
При нормальном завершении программа записывает в разряд регистра флагов процессора CF=0, в регистр АН=0, а в регистр АL=число прочитанных секторов.
При ошибке: в CF=1, АН= код состояния (или ошибки):
00h - отсутствие ошибки;
0lh - неправильная команда;
02h - не найдена адресная метка;
03h - дискета защищена от записи;
04h - сектор не найден;
05h - сброс жесткого диска не прошел;
06h - дискета вынута;
07h - неправильная таблица параметров жесткого диска;
0Ch - не найден тип носителя данных;
0Dh - неправильное число секторов в формате на жестком диске;
10h - невосстановимая ошибка данных;
11h - восстановленная ошибка данных на жестком диске;
20h - неисправность контроллера;
40h - ошибка позиционирования;
80h - тайм-аут диска;
AAh - жесткий диск не готов;
BBh - неизвестная ошибка жесткого диска;
CCh - ошибка при записи;
E0h - ошибка регистра состояния.
Программы-профотладчики предназначены для использования в работе специалистами по ремонту и диагностированию персональных компьютеров. С точки зрения программистов, они обладают скромными функциональными возможностями, но для написания и выполнения небольших специальных программ их возможностей вполне достаточно. Для написания специальных программ тестирования и активизации сигналов для исследований осциллографом нужно, как минимум, знать следующее: знать примерно 10-15 простых команд ассемблера из базового набора команд семейства микропроцессоров и наиболее простые виды адресации, используемые для указания операндов в командах; уметь пользоваться справочником по функциям BIOS; знать назначение основных программно-доступных регистров процессора, используемых при программировании; уметь пользоваться профотладчиком AFD (уметь использовать основные команды и функциональные клавиши); знать общую архитектуру IBM PC подобных компьютеров.
Путем исследования с помощью осциллографа обычно проводится последний, завершающий этап поиска и определения дефектного элемента ПК. Анализ полученной диагностической информации подтверждает или опровергает наши выводы о местонахождении дефектного элемента.