Открыть индекс EMM
На входе: AX = 4300h;
BX = требуемое в данном пуле количество логических страниц.
На выходе: AH = байт состояния EMM;
DX = индекс пула EMS, он будет использоваться в операциях с пулом логических страниц.
Эта функция позволяет заказать пул логических страниц (т.е. некоторую совокупность логических страниц дополнительной памяти). Полученному пулу присваивается индекс (handle), который указывает на пул и используется во всех операциях с пулом.
/** *.Name ems_open *.Title Открытие индекса пула страниц EMS * *.Descr Эта функция открывает индекс пула страниц * EMS, делая доступными логические страницы * дополнительной памяти. * *.Proto int ems_open(int n_pages, int *handle); * *.Params int n_pages - количество требуемых логических * страниц; * int *handle - указатель на слово, в которое * будет записан индекс полученного пула. * *.Return Байт состояния драйвера EMS * *.Sample ems_test.c **/
#include <stdio.h> #include <dos.h> #include "sysp.h"
int ems_open(int n_pages, int *handle) {
union REGS reg;
reg.x.ax = 0x4300; reg.x.bx = n_pages; int86(0x67, ®, ®);
*handle = reg.x.dx; return(reg.h.ah); }