Защищенный режим процессоров Intel




Phar Lap DOS-экстендер


В состав Phar Lap DOS-экстендера входят транслятор для языка Си hc386.exe, ассемблер 386asm.exe, редактор связей 386link.exe, отладчик minibug.exe и программа загрузки run386.exe.

С помощью транслятора языка Си или ассемблера получаются объектные модули, которые компонуются редактором связей 386link.exe в загрузочный модуль. Этот загрузочный модуль имеет расширение "exp" и запускается при помощи программы загрузки run386.exe. Полученный загрузочный модуль может работать только на процессорах i80386 или i80486. Версия 2.2 Phar Lap DOS-экстендера не поддерживает интерфейс DPMI, поэтому разработанные с использованием экстендера этой версии программы не будут работать на виртуальной машине WINDOWS в режиме "Enhanced 386 Mode".

Phar Lap DOS-экстендер предоставляет программе, которая получает управление сразу в защищённом режиме, возможность использовать документированные прерывания MS-DOS и BIOS. Кроме того, в рамках прерывания INT 21h DOS-экстендером реализуются дополнительные функции, связанные с работой в защищённом режиме.

Для того, чтобы у вас было представление о возможностях Phar Lap DOS-экстендера, приведём таблицу дополнительных функций, реализованных в рамках прерывания INT 21h:

Таблица 13. Функции Phar Lap DOS-экстендера.

Регистр AX Выполняемая функция
2501h Установка в исходное состояние структур данных DOS-экстендера.
2502h Получить вектор прерывания защищённого режима.
2503h Получить вектор прерывания реального режима.
2504h Установить вектор прерывания защищённого режима.
2505h Установить вектор прерывания реального режима.
2506h Установить режим, при котором прерывание будет всегда обрабатываться в защищённом режиме.
2507h Установить вектора прерываний реального и защищённого режима.
2508h Установить линейный базовый адрес сегмента.
2509h Преобразовать линейный адрес в физический
250Ah Отобразить физическую память в конце сегмента.
250Ch Получить вектора аппаратных прерываний.
250Dh Получить информацию связи с реальным режимом.
250Eh Вызвать процедуру реального режима.
250Fh Преобразовать адрес защищённого режима в адрес реального режима.
2510h Вызвать процедуру реального режима с заданным содержимым регистров.
2511h Вызвать прерывание реального режима с заданным содержимым регистров.
2512h Загрузить программу для отладки.
2513h Создать алиасный дескриптор сегмента (т.е. для заданного дескриптора создаётся ещё один, указывающий на тот же сегмент).
2514h Изменить атрибуты сегмента.
2515h Получить атрибуты сегмента.
2516h Освободить всю память, распределённую при помощи LDT.
2517h Получить информацию о буферах данных DOS.
2518h Определить драйвер для обработки перемещения сегмента.
2519h Получить дополнительную информацию об ошибке памяти.
251Ah Зафиксировать страницы в памяти.
251Bh Расфиксировать страницы.
251Ch Освободить страницы физической памяти.
251Dh Прочитать элемент таблицы страниц.
251Eh Записать элемент таблицы страниц.
251Fh Обменять элементы таблицы страниц.
2520h Получить статистическую информацию о памяти.
2521h Максимальный размер доступной программам расширенной памяти.
2522h Определить альтернативный драйвер, обрабатывающей ситуацию отсутствия страницы в памяти.
2525h Максимальный размер доступной программам стандартной памяти.
25C0h Получить блок стандартной памяти MS-DOS.
25C1h Освободить блок стандартной памяти MS-DOS.
25C2h Изменить размер блока стандартной памяти MS-DOS.
25C3h Выполнить программу.



Содержание  Назад  Вперед