Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 109 110 111 112 113 114 115  116 117 118 119 120 121 122 ... 198
        }

        EMSMapMultPages(handle, map, method, count)   /*отображает count
                                             страниц в map для handle*/
        unsigned int handle;     /*обработчик, для которого отображаются
                                                            страницы*/
        LOG_TO_PHYS *map;        /*отображение логических страниц в физи-
                                                             ческие*/
        unsigned int method;     /*используются номера кадра страниц или
                                      адреса отображаемых сегментов*/
        unsigned int count;      /*кол-во элементов в отображении*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.h.ah =0x50;      /*функция "Отобразить много страниц
                             обработчика" спецификации расширенной памяти*/
             inregs.h.al = (unsigned char) method;
             inregs.x.cx = count;    /*кол-во страниц для отображения*/
             inregs.x.dx = handle;   /*обработчик, которому эти страницы
                                                     принадлежат*/
             inregs.x.si = (unsigned int) map; /*страницы для отображения*/
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                       &segregs) >> 8;
             return(result);
        }

        EMSReallocPages(handle, pages)   /*изменяет размещение handle для
                                             pages*/
        unsigned int handle, *pages;
        {
             inregs.h.ah =0x51;      /*функция "Переразместить страницы"
                                          спецификации расширенной памяти*/
             inregs.x.bx = *pages;   /*кол-во логических страниц, которое
                                                   будет после выполнения*/
             inregs.x.dx = handle;   /*обработчик, для которого переразме-

                                      - 7-64 -
                                                   щается страница*/
           result = (unsigned int) int86(EMM_INT, &inregs, &outregs) >> 8;
             if (!result)                   /*функция завершилась успешно*/
                 *pages = outregs.x.bx;     /*новое кол-во страниц*/
             return(result);
        }

        EMSGetHandleAttr(handle, attr)   /*получает атрибут обработчика*/
        unsigned int handle, *attr;
        {
             inregs.x.ax =0x5200;      /*функция "Получить атрибут обра-
                                  ботчика спецификации расширенной памяти*/
             inregs.x.dx = handle;
             result = (unsigned int) int86(EMM_INT, &inregs, &outregs);
             if (!(result & 0xFF00))        /*функция завершилась успешно*/
                 *attr = outregs.h.al;      /*атрибут*/
             return(result >> 8);
        }

        EMSSetHandleAttr(handle, attr)   /*устанавливает атрибут обработ-
                                                                 чика*/
        unsigned int handle, attr;
        {
             inregs.x.ax =0x5201;      /*функция "Установить атрибут об-
                                работчика спецификации расширенной памяти*/
             inregs.x.dx = handle;
             inregs.h.bl = attr & 0x00FF;
             result = (unsigned int) int86(EMM_INT, &inregs, &outregs)>> 8;
             return(result);
        }
        EMSGetAttrCap(cap)               /*получить возможности атрибута*/
        unsigned int *cap;
        {
             inregs.x.ax =0x5202;      /*функция "Получить возможности ат-
                                  рибута спецификации расширенной памяти*/
             result = (unsigned int) int86(EMM_INT, &inregs, &outregs);
             if (!(result & 0xFF00))     /*успех */
                   *cap = outregs.h.al;
             return(result >> 8);
        }
        EMSGetHandleName(handle, name)  /*получает имя обработчика handle*/
        unsigned int handle;    /*обработчик, для которого получается имя*/
        char *name;               /*буфер для получения имени обработчика*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5300;    /*функция "Получить имя обработчика"*/
             segregs.es = segregs.ds;
             inregs.x.di = (unsigned int) name;
             inregs.x.dx = handle;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                       &segregs) >> 8;
             return(result);
        }

        EMSSetHandleName(handle, name)  /*устанавливает имя обработчика
                                                                  handle*/
        unsigned int handle;     /*обработчик, для которого устанавл. имя*/

                                      - 7-65 -
        char *name;               /*буфер с именем обработчика*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5301;    /*функция "Установить имя обработч."*/
             inregs.x.si = (unsigned int) name;
             inregs.x.dx = handle;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                       &segregs) >> 8;
             return(result);
        }


        EMSGetHandleDir(hnt, hn_cnt)  /*получает имя каталога обработчика
                                                                  handle*/
        HANDLE_NAMES *hnt;       /*указатель на таблицу имен обработчиков*/
        unsigned int *hn_cnt;    /*возвращенное кол-во элементов*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5400;    /*функция "Получить каталог обработчи-
                                      ка" спецификации расширенной памяти*/
             inregs.x.di = (unsigned int) hnt;
             segregs.es = segregs.ds;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs);
             if (!(result & 0xFF00))        /*функция завершилась успешно*/
                *hn_cnt = outregs.h.al;     /*возврат кол-ва полученных
                                                        имен обработчиков*/
             return(result >> 8);
        }

        EMSSearhHandleName(name, handle)  /*поиск названного  обработчика*/
        char *name;                       /*имя, которое нужно искать*/
        unsigned int *handle;            /*возвращаемый номер обработчика*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5401;    /*функция "Поиск названного обработчи-
                                      ка" спецификации расширенной памяти*/
             inregs.x.si = (unsigned int) name;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs) >> 8;
             if (!result)                   /*функция завершилась успешно*/
                *handle = outregs.x.dx;    /*возврат значения обработчика*/
             return(result);
        }

        EMSGetTotalHandles(handle_count)  /*Получить общее кол-во  обработ-
                                                                    чиков*/
        unsigned int *handle_count;
        {
             inregs.x.ax =0x5402;       /*подфункция "Получить общее кол-во
                            обработчиков" спецификации расширенной памяти*/
             result = (unsigned int) int86(EMM_INT, &inregs, &outregs) >>8;
             if (!result)
                *handle_count = outregs.x.bx;
             return(result);
        }


                                      - 7-66 -
        EMSMoveRegion(rp)                          /*передвинуть область*/
        MOVE_XCHG *rp;                 /*указатель на дескриптор области*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5700;           /*функция "Передвинуть область"
                                          спецификации расширенной памяти*/
             inregs.x.si = (unsigned int) rp;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs) >> 8;
             return(result);
        }

        EMSExchangeRegion(rp)                         /*обменять область*/
        MOVE_XCHG *rp;                 /*указатель на дескриптор области*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5701;              /*функция "Обменять область"
                                          спецификации расширенной памяти*/
             inregs.x.si = (unsigned int) rp;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs) >> 8;
             return(result);
        }

        EMSGetMapAddrArray(mpaa, mpa_cnt)   /*получить массив отображаемых
                                               физических адресов*/
        MAP_PHYS_PAGE *mpaa;           /*указатель на массив отображаемых
                                               физических адресов*/
        unsigned int *mpa_cnt;         /*кол-во возвращенных элементов*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5800;              /*функция "Получить массив
                                         отображаемых физических адресов"*/
             inregs.x.di = (unsigned int) mpaa;
             segregs.es = segregs.ds;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs) >> 8;
             if (!result) >> 8);            /*функция завершилась успешно*/
                *mpa_cnt = outregs.x.cx;    /*возврат кол-ва отображаемых
                                                  физических страниц*/
             return(result);
        }

        EMSGetMapAddrCount(mpa_cnt)   /*получить кол-во отображаемых
                                               физических адресов*/
        unsigned int *mpa_cnt;         /*кол-во отображаемых физических
                                                             страниц*/
        {
             inregs.x.ax =0x5801;              /*функция "Получить кол-во
                                         отображаемых физических адресов"*/
             result = (unsigned int) int86(EMM_INT, &inregs, &outregs) >>8;
             if (!result)                   /*функция завершилась успешно*/
                *mpa_cnt = outregs.x.cx;    /*возврат кол-ва отображаемых
                                                  физических страниц*/
             return(result);
        }


                                      - 7-67 -
        EMSGetHardwareInfo(hwp)            /*получить информацию об обору-
                                 довании спецификации расширенной памяти*/
        HARDWARE_INFO *hwp;            /*указатель на область для получе-
                                        ния информации об оборудовании*/
        {
             segread(&segregs);           /*заполнить  регистры сегментов*/
             inregs.x.ax =0x5900;      /*функция "Получить информацию  об
                             оборудовании спецификации расширенной памяти*/
             inregs.x.di = (unsigned int) hwp;
             segregs.es = segregs.ds;
             result = (unsigned int) int86x(EMM_INT, &inregs, &outregs,
                            &segregs) >> 8;
             return(result);
        }

        EMSGetRawPageCount(rpg_cnt, urpg_cnt)  /*получить кол-во исходных
                                                                  страниц*/
        unsigned int *rpg_cnt;                  /*кол-во исходных страниц*/
        unsigned int *urpg_cnt;   /*кол-во неразмещенных исходных страниц*/
Предыдущая страница Следующая страница
1 ... 109 110 111 112 113 114 115  116 117 118 119 120 121 122 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама