Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Управление Памятью    >>    e_sharp
   
 
 EMS-Sharp 2.01 - Модуль для Работы с EMS   Ivan Kalininskiy 14.07.1997

Модуль для поддержки работы с расширенной (EMS) памятью. Приведен пример использования и краткое описание функций.



3k 
 

+-------------------------------------------------------------------------+ | SHARP (2.01) | | Библиотеки для работы с PCX файлами, EMS, XMS памятью и "мышью". | | из программ на Turbo / Borland Pascal 7.0 | | All right reserved | | -= FreeWare Release =- | +-------------------------------------------------------------------------+ | Описание функций библиотек: | ++-------------------------------------------------------------------------++ | EMS-SHARP | | Библиотека для работы с EMS памятью | +---------------------------------------------------------------------------+ | EmsError : byte; | | В этой переменной дается код ошибки при выполнении процедур и функций | |+-------------------------------------------------------------------------+| || Коды ошибок из драйвера EMM || |+-------------------------------------------------------------------------+| || 0 - Ошибок нет || ||81h - Внутренняя ошибка EMM драйвера || ||82h - EMM драйвер занят || ||83h - Недопустимый EMM префикс || ||84h - Запрос нестандартной функции || ||85h - Исчерпан лимит на EMM префиксы || ||86h - Ошибка сохранения или восстановления карты отображения || ||87h - Запрошеное число страниц превышает обьем EMS памяти || ||88h - Запрошеное число страниц больше числа свободных страниц || ||89h - Запрос закрепления нуля страниц || ||8Ah - При создании карты страниц указан номер превышающий || || максимально допустимый для данного EMM префикса || ||8Bh - Номер физической страницы больше 3 || ||8Ch - Область сохранения контекста карты отображения пуста || ||8Dh - Попытка сохранить контекст карты отображения вторично || ||8Eh - Попытка восстановления контекста карты отображения || || без предварительного сохранения || ||8Fh - Недопустимый номер подфункции в регистре AL || |+-------------------------------------------------------------------------+| | | | Procedure EmsStatus; | | Определение состояния EMS, EmsError = 0 если драйвер готов к работе | | | | Procedure EmsSegmentDetect; | | Определение адреса сегмента начиная с которого располагается | | фрейм физических страниц, передается в переменной EmsSegment | | | | Procedure EmsMemAvail; | | Определение общего обьема EMS памяти и кол-во свободных для | | распределения страниц, в LogPages и FreePages соответственно. | | | | Procedure EmsAlloc(Pages : word); | | Распределение указанного в Pages числа страниц, префикс для | | ссылок на рапределенные страницы дается в EmsPrefix. | | | | Procedure EmsMap(Handle : word; Pages : array of word); | | Построение карты отображения. Связывает физические страницы с | | номерами от 0 до 3 с логическими страницами номера которых даны | | в массиве Pages[0..3] of word. В Handle передается EMM префикс. | | | | Procedure EmsSave(Handle : word); | | Сохраняется текущая карта отображения, в Handle передается EMM префикс| | | | Procedure EmsRestore(Handle : word); | | Восстанавливается карта отображения, в Handle передается EMM префикс. | | | | Function EmsVersion : byte; | | Возвращает номер версии EMM драйвера | | | | Procedure EmsFree(Handle : word); | | Освобождает распределенные логические страницы, в Handle передается | | EMM префикс. | | | | Procedure EmsMemoryBlockSave(Segment : Word; Offset1 : Word; | | Offset2 : Word; Bytes : Word); | | Запись в фрейм физических страниц Bytes байтов. В переменную | | Segment передается адрес сегмента данных откуда передаются байты. | | В Offset1 смещение откуда начинаются пересылаемые байты. | | В Offset2 смещение в фрейме физических страниц куда пересылаются | | байты. | | | | Procedure EmsMemoryBlockLoad(Segment : Word; Offset1 : Word; | | Offset2 : Word; Bytes : Word); | | Загрузка из фрейма физических страниц Bytes байтов. В переменную | | Segment передается адрес сегмента данных куда загружаются байты. | | В Offset1 смещение начиная с которого загружаются байты. | | В Offset2 смещение в фрейме физических страниц откуда происходит | | загрузка байтов. | | | +---------------------------------------------------------------------------+ | +----------------------------------------------------------------+ | | | | | | | SHARP (2.01) | | | | Release 25-07-1997 | | | | All right reserved | | | | -= ShareWare Release =- | | | | Programming by VanDamM | | | +----------------------------------------------------------------+ | +---------------------------------------------------------------------------+