Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
168
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Installuserfont

-----------------------------------------------------------------

Назначение Загрузка нового файла шрифта.

Синтаксис #include<graphics.h>

int far installuserfont(char far *name);

Прототип вgraphics.h

Замечанияname определяет маршрут доступа к файлу, содер-

жащему строчный шрифт. Одновременно может быть

установлено до 12 шрифтов.

Возвращаемоеinstalluserfont возвращает номер нового шрифта,

значениекоторый в последующем может быть передан функ-

ции settextstyle для выбора соответствующего

шрифта. Если внутренния таблица шрифтов пере-

полнена, то возвращается значение -11

(grError).

ПереносимостьДанная функция работает только на IBM PC и сов-

местимых моделях при наличии соответствующих

графических адаптеров.

Смотри такжеsettextstyle

-----------------------------------------------------------------

int86

-----------------------------------------------------------------

НазначениеОбщий интерфейс программных прерываний процес-

сора 8086.

Синтаксис#include<dos.h>

int int86(int intr_num,union REGS *inregs,

union REGS *outregs);

Прототип в dos.h

Замечанияint86 вызывает программное прерывание процессо-

ра 8086,указанное в аргументе intr_num. Перед

выполнением программного прерывания функция ко-

пирует содержимое регистров из inregs в регист-

ры.

После завершения обработки прерывания функция

копирует текущее значение регистров в outregs,

а флаг состояния в поле outregs x.cflag, копи-

рует значения флагов 8086 в x.flags (в

outregs).

Если установлен флаг состояния, то это значит,

что возникла ошибка.

Отметим, что inregs может указывать на ту же

структуру, что и outregs.

Возвращаемоеint86 возвращает значение AX после заверше-

значениения программного прерывания. Если флаг состоя-

ния, установлен

(outregs -> x.cflag != 0),

указывая на ошибку, функция присваивает

_doserrno код ошибки.

Переносимостьint86 уникальна для процессоров семейства 8086.

Смотри такжеbdos, bdosptr, geninterrupt, intdos, intdosx,

intr

Пример

#include<dos.h>

#define VIDEO 0x10

/* помещает курсор в позицию x,y */

void gotoxy(int x,int y)

{

union REGS regs;

regs.h.ah=2; /* установка позиции курсора */

regs.h.dh=y;

regs.h.dl=x;

regs.h.bh=0;

int86(VIDEO,&regs,&regs);

}

-----------------------------------------------------------------

int86x

-----------------------------------------------------------------

НазначениеОбщий интерфейс программных прерываний процес-

сора 8086.

Синтаксис#include<dos.h>

int int86x(int intr_num, union REGS *inregs,

union REGS *outregs, union SREGS *segregs);

Прототип вdos.h

Замечанияint86x вызывает программное прерывание процес-

сора 8086, указанное в аргументе intr_num. Пе-

ред выполнением программного прерывания int86x

копирует содержимое регистров из inregs в ре-

гистры.

int86x, кроме того, копирует segregs->x.ds и

segregs->x.es в соответствующие регистры перед

выполнением программного прерывания. Эта осо-

бенность позволяет программам, которые исполь-

зуют дальние (far) указатели или большую модель

памяти, определить сегмент, который будет ис-

пользован во время программного прерывания.

После завершения обработки прерывания функция

копирует текущее значение регистров в outregs,

а флаг состояния в поле outregs x.cflag, копи-

рует значения флагов 8086 в x.flags (в

outregs). int86x, кроме того, восстанавливает

DS и устанавливает segregs->es и segregs->ds в

значения соответствующих регистров. Если уста-

новлен флаг состояния, это значит, что возникла

ошибка.

int86x позволяет вам вызывать программное пре-

рывание процессора 8086, которое берет значение

DS, отличное от текущего сегмента данных, и/или

которое берет аргумент в ES.

Отметим, что inregs может указывать на ту же

структуру, что и outregs.

Возвращаемоеint86x возвращает значение AX после

значениезавершения программного прерывания. Если флаг

срстояния, установлен

(outregs -> x.cflag != 0),

указывая на ошибку, функция присваивает

_doserrno код ошибки.

Переносимостьint86x уникальна для процессоров семейства

8086.

Смотри такжеbdos, bdosptr, geninterrupt, intdos, intdosx,

int86, intr, segread

-----------------------------------------------------------------

intdos

-----------------------------------------------------------------

НазначениеОбщий интерфейс программных прерываний MS-DOS.

Синтаксис #include<dos.h>

int intdos(union REGS *intregs,

union REGS *outregs);

Прототип в dos.h

Замечанияintdos вызывает программное прерывание 0x21 для

вызова специальной функции DOS. Значение inregs

->h.al определяет вызываемую функцию.

После завершения обработки прерывания 0x21

intdos копирует текущее значение регистров в

outregs, а флаг состояния системы - в поле

outregs x.cflag.

Если установлен флаг состояния, это значит, что

возникла ошибка.

Отметим, что inregs может указывать на ту же

структуру, что и outregs.

Возвращаемоеintdos возвращает значение AX после

значениезавершения функции DOS. Если флаг состояния ус-

тановлен (outregs->x.cflag != 0), указывая на

ошибку, функция присваивает _doserrno код ошиб-

ки.

ПереносимостьУникальна для MS-DOS.

Смотри такжеbdos, bdosptr, geninterrupt, intdosx, int86,

int86x, intr

Пример

#include<stdio.h>

#include<dos.h>

/* уничтожает имя файла, при успехе возвращает

0, иначе не 0 */

int delete_file(char near *filename)

{

union REGS regs; struct SREGS sregs;

int ret;

regs.h.ah = 0x41; /* уничтожить файл */

regs.x.dx = (unsigned) filename;

ret = intdos(&regs,&sregs);

/* Если флаг состояния установлен, то имеет

место ошибка */

return(regs.x.cflag ? ret : 0);

}

main()

{

int err;

err=delete_file("NOTEXIST.$$$");

printf("Возможно уничтожить NOTEXSIT.$$$ ?"

"%s\n",((!err) ? "ДА" : "НЕТ");

}

Результат выполнения программы

Возможно уничтожить NOTEXIST.$$$? НЕТ

-----------------------------------------------------------------