Организация памяти в компьютерах типа ibm pc, страница 8

Структура верхней памяти

Для эффективного использования памяти, расположенной в верхних адресах, необходимо, прежде всего, знать, какие именно регионы этой памяти, используются всегда, а какие – зачастую остаются свободными.

Как уже упоминалось, верхняя память представлена 384 Кб, расположенными в адресном пространстве между 640 Кб и 1 Мб и включает в себя рассмотренные ранее регионы А, B, C, D, E и F. Следует сразу же заметить, что не существует четких стандартов на использование всех этих регионов. В общем случае использование участков верхней памяти определяется конкретной конфигурацией и может быть разным на разных машинах. В то же время существуют определенные рассматриваемые ниже соглашения об их распределении.

Регионы A и B зарезервированы для видеопамяти, но в большинстве случаев по крайней мере, часть их не используется. Оригинальный монохромный адаптер берет 4 Кбайт из региона B, чтобы  разместить  4000  байт, необходимых  для описания текстового экрана (25 строк на 80 столбцов, по 2 атрибута). Эта память начинается с адреса B000  и  продолжается почти  до адреса B100, хотя возможно использование области вплоть до B200 и даже B400 в зависимости от конкретной BIOS. В случае наличия в системе адаптера CGA для организации видеопамяти используется 16 Кбайт, лежащих в адресах от B800 до BC00. Хотя  это  оставляет остаток региона B в отрезке BC00h - C000h при наличии CGA в принципе свободным, им можно пользоваться только на свой риск, поскольку некоторые программы предполагают, что эта неиспользуемая видеопамять  доступна и прекрасным образом испортят все, что программа управления памятью поместит в эту область. Адаптеры EGA и VGA используют область B800 - C000 для организации видеопамяти текстового режима и тех графических  режимов,  которые подражают  CGA, а также всю область А для графики с высокой разрешающей способностью.

Другой стандартной областью является область F. В ней располагаются процедуры и данные BIOS и некоторая другая важная системная информация. Тем не менее, не все системы  полностью  занимают  весь отведенный участок размером 64 Кб, и не все из этих 64 Кб нужны после загрузки. Например, в некоторых системах память от F000 до F800 используется программой установки и диагностики, которая может быть вызвана во время загрузки. Поскольку этот участок не используется после  загрузки,  можно позволить программе управления памятью разместить там что-нибудь другое.