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