В предыдущей главе изучалась аппаратура IBM PC. Фирма IBM поставляет стандартные управляющие программы для рассмотренных выше аппаратных компонент. Эти программы находятся в ПЗУ на системной плате и носят название BIOS (Basic Input/Output System, базовая система ввода-вывода). В этой главе объясняются функции, обеспечиваемые BIOS. Материалом этой главы нужно пользоваться вместе с гл.3 и приложением A технического описания IBM PC. В гл.3 описана базовая системы ввода-вывода, в частности некоторые ее функции, а в приложении A приведен полный ассемблерный листинг BIOS IBM PC.
По мере того, как разрабатывается новая аппаратура для персональной ЭВМ, появляются и новые программные интерфейсы для нее. И если вы пишите программы, используя непосредственно аппаратуру, вам придется корректировать программы каждый раз, когда изменяется системная аппаратура. Это не имеет особого значения в случае индивидуального использования ваших программ, но важно, если вы пишите программы, которые будут использоваться многими. Или, если вы собираетесь тиражировать вашу программу, вам бы хотелось, чтобы она использовалась длительное время; т.е. вы не захотите поставлять новые версии программы всякий раз, когда кто-то создает новую системную аппаратуру.
Интерфейс с BIOS - попытка разрешить эту проблему. Фирма IBM определила интерфейс с различными компонентами системы. Изготовители стараются поддерживать такой интерфейс для своей новой аппаратуры, а это означает, что даже если аппаратура и изменится, интерфейс с BIOS останется прежним. Ваша программа не потребует изменений.По мере того, как будут появляться новые аппаратные функции, вам нужно будет изменять программу для того, чтобы воспользоваться ими. В этом случае, вероятно, фирма IBM расширит интерфейсы с BIOS. Но ваши старые программы, которые хорошо работали на старых машинах, будут продолжать работать и на новых машинах. Конечно, они не будут использовать новые функции, но если раньше ваша программа была полезной, весьма вероятно, что будет использоваться и далее.
Предположим теперь, что фирма IBM решила модифицировать плату контроллера дисковода. Это могло бы потребоваться по разным причинам. Или фирма захотела уменьшить стоимость изготовления платы, или расширить возможности платы контроллера. В любом случае программный интерфейс с платой, который мы рассматривали в предыдущей главе, может оказаться другим. Но ПЗУ с BIOS, которое фирма IBM будет поставлять с таким новым контроллером, будет иметь тот же самый интерфейс. Это означает, что вызывающая последовательность и передача параметров через интерфейс останутся теми же. Если вы написали программу, использующую дискеты, и обращаетесь к BIOS при всех видах доступа к дискете, ваша программа будет выполняться правильно. Если же вы написали эту программу так, что она непосредственно работает с контроллером дисковода, скорее всего, она не будет работать с новым контроллером.
Эта глава описывает различные компоненты BIOS. Мы начнем с программы POST, поскольку она - первая в листинге ассемблера и первой выполняется при включении питания. Программы системного сервиса все связаны с системной платой, и поэтому они будут рассматриваться далее. И в конце мы рассмотрим, как фирма IBM обеспечивает работу различных функций ввода-вывода системы.