Программирование и кодирование
¦ ¦ласти источника/прием- ¦
¦ ¦ника ¦
¦Обменять об- ¦AX:5701h(код функции) ¦ Нет
¦ласть памяти ¦DS:SI-->дескриптор об- ¦
¦ ¦ласти источника/прием- ¦
¦ ¦ника ¦
¦Дескриптор об- ¦ ¦
¦ласти источни- ¦ ¦
¦ка/приемника ¦ ¦
¦region_length dd ? ¦ Кол-во байтов для
¦ ¦ ¦ движения/обмена
source_memory_type db ? ¦ Обычная память: 0
¦source_handle dw ? ¦ Обычная память: 0
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ обработчик источника
source_init_offset dw ? ¦ Обычная память:
¦ ¦ ¦ начальное смещение в
¦ ¦ ¦ сегменте источника
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ начальное смещение в
¦ ¦ ¦ странице источника
source_page_seg dw ? ¦ Обычная память:
¦ ¦ ¦ начальный сегмент
¦ ¦ ¦ источника
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ начальная логическая
¦ ¦ ¦ страница источника
dest_memory_type db ? ¦ Обычная память: 0
- 7-18 -
¦ ¦ Расширенная память:1
¦ dest_handle ¦dw ? ¦ Обычная память: 0
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ обработчик приемника
dest_init_offset dw ? ¦ Обычная память: на-
¦ ¦ ¦ чальное смещение в
¦ ¦ ¦ сегменте приемника
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ начальное смещение в
¦ ¦ ¦ странице приемника
dest_seg_page dw ? ¦ Обычная память: на-
¦ ¦ ¦ чальный сегмент при-
¦ ¦ ¦ емника
¦ ¦ ¦ Расширенная память:
¦ ¦ ¦ начальная логическая
¦ ¦ ¦ страница приемника
25 ¦Получить массив ¦AX:5800h(код функции) ¦ CX: кол-во элементов
¦отображаемых ¦ES:DI-->массив отоб- ¦ в массиве отобража-
¦физических ¦ражаемых физических ¦ емых физических ад-
¦адресов ¦адресов ¦ ресов
¦Массив отобра- ¦(Массив, отсортирован- ¦
¦жаемых физичес- ¦ный по порядку нарас- ¦
¦ких адресов ¦тания сегментов) ¦
phys_page_segment dw ? ¦ Адрес сегмента отоб-
¦ ¦ ¦ ражаемой страницы,
¦ ¦ ¦ соответствующей но-
¦ ¦ ¦ меру физической
¦ ¦ ¦ страницы
phys_page_number dw ? ¦
¦Получить счетчик¦AX:5801(код функции) ¦ CX: кол-во элементов
¦элементов масси-¦ ¦ в массиве отображае-
¦ва физических ¦ ¦ мых физических адре-
¦адресов ¦ ¦ сов
¦ ¦ ¦
26 ¦Получить массив ¦AX:5900(код функции) ¦ Массив конфигурации
¦конфигурации ¦ES:DI-->массив конфи- ¦ оборудования<--дан-
¦оборудования ¦гурации оборудования ¦ ные оборудования
¦Массив конфигу- ¦ ¦
¦рации оборудования ¦
¦raw_page_size dw ? ¦ Исходный размер
¦ ¦ ¦ страницы в байтах
alternate_reg_sets dw ? ¦ Кол-во альтернатив-
¦ ¦ ¦ ных наборов регист-
¦ ¦ ¦ ров отображения
¦save_area_size dw ? ¦ Кол-во байтов в об-
¦ ¦ ¦ ласти сохранения
¦ ¦ ¦ контекста(также воз-
¦ ¦ ¦ вращается функц. 15)
¦DMA_reg_sets dw ? ¦ Кол-во наборов ре-
¦ ¦ ¦ гистров, которое мо-
¦ ¦ ¦ жет назначаться ка-
¦ ¦ ¦ налам ПДП
¦ ¦ ¦ 0: работа ПДП по
¦ ¦ ¦ стандарту LIM
DMA_channel_op dw ? ¦ 0: работа ПДП по
¦ ¦ ¦ стандарту LIM
¦ ¦ ¦ 1: только 1 канал ПДП
- 7-19 -
¦Получить счетчик¦AX:5902h(код функции) ¦ BX: кол-во неразме-
¦неразмещенных ¦ ¦ щенных исходных
¦исходных страниц¦ ¦ страниц
¦ ¦ ¦ DX: общее кол-во
¦ ¦ ¦ исходных страниц
27 ¦Разместить ¦AH:5Аh (код функции) ¦ DX: обработчик
¦стандартные/ ¦AL:00h-разместить ¦ исходных/стандарт-
¦исходные страни-¦стандартные страницы ¦ ных страниц
¦цы ¦01h-разместить исход- ¦
¦ ¦ные страницы ¦
¦ ¦BX:нет страниц для раз-¦
¦ ¦мещения ¦
28 ¦Получить альтер-¦AX:5В00h(код функции) ¦ Если BL<>0<--актив-
¦нативный набор ¦ ¦ ный альтернативный
¦регистров отоб- ¦ ¦ набор регистров
¦ражения ¦ ¦ отображения
¦ ¦ ¦ Если BL=0-ES:DI<--
¦ ¦ ¦ область сохранения
¦ ¦ ¦ контекста регистров
¦ ¦ ¦ отображения
¦Установить аль- ¦AX:5В01h(код функции) ¦ Нет
¦тернативный на- ¦BL:00h ¦
¦бор регистров ¦ES:DI-->область сохра- ¦
¦отображения ¦нения контекста регист-¦
¦ ¦ров отображения ¦
¦ ¦<>00h-кол-во альтерна- ¦
¦ ¦тивных наборов регист-¦
¦ ¦ров отображения ¦
¦Получить размер ¦AX:5В02h(код функции) ¦ DX: кол-во байтов в
¦области сохра- ¦ ¦ области сохранения
¦нения альтерна- ¦ ¦ контекста регистров
¦тивного отобра- ¦ ¦ отображения
¦жения ¦ ¦
¦Разместить аль- ¦AX:5В03h(код функции) ¦ BL:0 - нет доступных
¦тернативный на- ¦ ¦ альтернативных набо-
¦бор регистров ¦ ¦ ров регистров отоб-
¦отображения ¦ ¦ ражения
¦ ¦ ¦ <>0 - кол-во разме-
¦ ¦ ¦ щенных альтернатив-
¦ ¦ ¦ ных наборов регист-
¦ ¦ ¦ ров отображения
¦Освободить аль- ¦AX:5В04h(код функции) ¦ Нет
¦тернативный на- ¦BL: кол-во альтернатив-¦
¦бор регистров ¦ных наборов регистров ¦
¦отображения ¦отображения ¦
¦ ¦ ¦
¦Разместить на- ¦AX:5В05h(код функции) ¦ BL:0 - наборы регист-
¦бор регистров ¦ ¦ ров ПДП не поддержи-
¦ПДП ¦ ¦ ваются
¦ ¦ ¦ <>0 - кол-во разме-
¦ ¦ ¦ щенных наборов
¦ ¦ ¦ регистров ПДП
¦Включить ПДП на ¦AX:5В06h(код функции) ¦ Нет
¦альтернативный ¦BL:номер набора регист-¦
¦набор регистров ¦ров ПДП ¦
¦отображения ¦DL: номер канала ПДП ¦
¦Выключить ПДП на¦AX:5В07h(код функции) ¦ Нет
- 7-20 -
¦альтернативный ¦BL:номер набора регист-¦
¦набор регистров ¦ров ПДП ¦
¦отображения ¦ ¦
¦Освободить на- ¦AX:5В08h(код функции) ¦ Нет
¦бор регистров ¦BL:номер набора регист-¦
¦ПДП ¦ров ПДП ¦
29 ¦Подготовиться ¦AH:5Сh (код функции) ¦ Нет
¦к загрузке из ¦ ¦
¦памяти ¦ ¦
30 ¦Включить набор ¦AX:5D00h(код функции) ¦ BX,CX: ключ доступа
¦функций OS/E ¦BX,CX: ключ доступа ¦ (возвращаемый толь-
¦ ¦(требующийся при всех ¦ ко на первом вызове)
¦ ¦вызовах после первого) ¦
¦Выключить набор ¦AX:5D01h(код функции) ¦ BX,CX: ключ доступа
¦функций OS/E ¦BX,CX: ключ доступа ¦ (возвращаемый толь-
¦ ¦(требующийся при всех ¦ ко на первом вызове)
¦ ¦вызовах после первого) ¦
¦Возвратить ключ ¦AX:5D02h(код функции) ¦ Нет
¦доступа ¦BX,CX: ключ доступа ¦
¦ ¦(возвращаемый первым ¦
¦ ¦вызовом включения или ¦
¦ ¦выключения набора функ-¦
¦ ¦ций OS/E ¦
ДДДБДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДД
Реализации менеджера расширенной памяти
Исходный менеджер расширенной памяти был разработан фирмой
Intel для обеспечения программного интерфейса с платами памяти,
которые изготавливались для спецификации расширенной памяти LIM.
Другие поставщики делали менеджеры расширенной памяти, которые
подгонялись к платам расширенной памяти их собственного изготов-
ления. Однако, реализации менеджера расширенной памяти не ограни-
чены по форме программного драйвера для специального типа платы
памяти.
В предыдущем рассмотрении менеджера расширенной памяти отме-
чалось, что спецификация расширенной памяти LIM (по крайней мере
после версии 3.2) в сущности не зависит от аппаратуры. Несколько