Главная страница
Навигация по странице:

  • Возвращаемое

  • Назначение

  • Переносимость

  • Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования


    Скачать 3.41 Mb.
    НазваниеПодпрограммы классификации Подпрограммы преобразования
    АнкорСправочник по функциям С++.doc
    Дата07.05.2018
    Размер3.41 Mb.
    Формат файлаdoc
    Имя файлаСправочник по функциям С++.doc
    ТипДокументы
    #18992
    КатегорияИнформатика. Вычислительная техника
    страница17 из 120
    1   ...   13   14   15   16   17   18   19   20   ...   120

    bdos


    -----------------------------------------------------------------
    Назначение Системный вызов MS-DOS.
    Синтаксис int bdos (int dosfun, void dosdx,

    unsigned dosal)
    Прототип в dos.h
    Замечания Эта функция обеспечивает прямой доступ к многим

    системным вызовам MS-DOS. Смотри руководство

    системного программиста (Programmer's Reference

    Manual) для детализации каждого системного вы-

    зова.
    Те системные вызовы, которые требуют целый ар-

    гумент, используют bdos, те же, которые требуют

    указатель на аргумент, используют bdosptr.
    Для малых модeлей данных (tiny, small и medium)

    bdos и bdosptr аналогичны. В больших моделях

    данных (compact, largе и huge), очень важно ис-

    пользование именно bdosptr для системных вызо-

    вов, которые требуют указатель в качестве аргу-

    мента вызова.
    dosfun описана в Руководстве программиста по MS

    -DOS.
    dosdx - значение регистра DX при вызове bdos.
    dosal - значение регистра AL.
    Возвращаемое bdos возвращает значение регистра АХ,

    значение установленное системным вызовом.
    Переносимость Уникальна для MS-DOS.
    Смотри также bdosptr, geninterrupt, int86, int86x, intdos,

    intdosx
    Пример

    #include

    #include
    /* Получение текущего драйвера в виде: 'A',

    'B', ...*/

    char current_drive (void)
    {

    char curdrive;

    /* Получение имени текущего диска в виде: 0,

    1, ... */

    curdrive = bdos(0x19,0,0);

    return('A'+curdrive);

    }
    main()

    {

    printf("Текущий драйвер - %s\n",

    current_drive()); }


    Результат выполнения программы:
    Текущий драйвер - С

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

    bdosptr


    -----------------------------------------------------------------
    Назначение Системный вызов MS-DOS.
    Синтаксис int bdosptr(int dosfun, void *argument,unsigned

    dosal);
    Прототип в dos.h
    Замечания bdosptr обеспечивает прямой доступ ко многим

    системным вызовам MS-DOS. Смотри руководство

    системного программиста (Programmer's Reference

    Manual) для детализации каждого системного вы-

    зова.
    Те системные вызовы, которые требуют целый ар-

    гумент, используют bdos, те же, которые требуют

    указатель на аргумент, используют bdosptr.
    Для малых модeлей данных (tiny, small и medium)

    bdos и bdosptr аналогичны. В больших моделях

    данных (compact, largе и huge), очень важно ис-

    пользование именно bdosptr для системных вызо-

    вов, которые требуют указатель в качестве аргу-

    мента вызова.
    dosfun описана в Руководстве программиста по MS

    -DOS.
    В малых моделях параметр argument в bdosptr за-

    дается в DX; в больших моделях этот параметр

    задается парой величин DS:DX, используемой в

    системныx вызоваx.
    dosal - значение регистра AL.
    Возвращаемое bdosptr в случае успешного завершения возвра-

    значение щает значение регистра AX, а в случае ошибки

    -1. Кроме того, в случае ошибки устанавливаются

    значения _doserrno и errno.
    Переносимость Уникальна для MS-DOS.
    Прототип в dos.h
    Смотри также bdos, geninterrupt, int86, int86x, intdos,

    intdosx
    Пример Смотри harderr

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

    bioscom


    ----------------------------------------------------------------
    Назначение Коммуникация ввода/вывода.
    Синтаксис int bioscom(int cmd, char byte, int port)
    Прототип в bios.h
    Замечания bioscom осуществляет различные коммуникационные

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

    фейса RS232 через порт, заданный в port.
    Величина port равная 0 соответствует COM1, рав-

    ная 1 - COM2 и т.д.
    Значение cmd может быть одним из следующиx:
    0 - устанавливает коммуникационные параметры

    равные значению, указанному в byte.

    1 - посылает в линию связи символ из byte.

    2 - получает символ из линии связи.

    3 - возвращает текущее состояние коммуникацион-

    ного порта.
    byte представляет собой комбинацию из следующих

    битов:
    0х02 7 бит данных

    0х03 8 бит данных

    0х00 1 стоп бит

    0х04 2 стоп бит

    0х00 отсутствие контроля четности

    0х08 контроль на нечетности

    0х18 контроль четности

    0х00 110 бод

    0х20 150 бод

    0х40 300 бод

    0х60 600 бод

    0х80 1200 бод

    0хA0 2400 бод

    0хC0 4800 бод

    0хE0 9600 бод
    Например, заданное в byte значение 0хEB (0хE0|0

    х08|0х00|0х03) устанавливает коммуникационный

    порт в 9600 бод, контроль на нечетность, 1 стоп

    -бит и 8 бит данныx. Функция bioscom использует

    прерывание BIOS 0x14.
    Возвращаемое Для всеx значений cmd кодом возврата является

    значение 16-битовое целое, в котором 8 старшиx бит явля-

    ются битами состояния, а 8 младших - изменяются

    в зависимости от значения cmd.
    Старшие биты кода возврата определяются следую-

    щим образом:
    бит 15 - истек тайм-аут

    бит 14 - сдвиговый регистр передачи пуст

    бит 13 - передающий регистр-защелка пуст

    бит 12 - фиксация завершения

    бит 11 - ошибка кодирования

    бит 10 - ошибка четности

    бит 9 - ошибка переполнения

    бит 8 - готовность данныx
    Если значение cmd=1 и 15-ый бит установлен, то

    значение byte не может быть передано. В против-

    ном случае оставшиеся старшие и младшие биты

    устанавливаются соответствующим образом.
    При обнаружении ошибки устанавливается по край-

    ней мере один из старших битов. Если старшие

    биты не установлены, то байт был принят без

    ошибки.
    При значении cmd 0 или 3, старшие биты возвра-

    щаемого значения установлены как описано выше,

    а младшие биты определяются следующим образом:
    бит 7 - получен сигнал открытия линии

    бит 6 - индикатор кольца

    бит 5 - готовность набора данныx

    бит 4 - посылка сброса

    бит 3 - получен дельта-сигнал открытия линии.

    бит 2 - обрыв кольца

    бит 1 - завершение модификации набора данных

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

    совместимых моделях.
    Пример

    /* Демонстрационный пример работы bioscom */
    #include

    #include
    #define COM1 0

    #define DATA_READY 0x100

    /* 1200 бод, 7 бит, 1 стоп-бит, контроль

    четности отменен */

    #define SETTINGS (0x80|0x02|0x00|0x00)
    main()

    {

    int register in,out,status;
    bioscom(0,SETTINGS,COM1);
    cprintf("...BIOSCOM [ESC] для завершения "

    " ...\n");
    while(1)

    {

    status = bioscom(3,0,COM1);

    if (status & DATA_READY)

    if ((out = bioscom(2,0,COM1) & 0x7F) != 0)

    putch(out);

    if (kbhit())

    {

    if ((in = getch()) == '\x1B')

    return(0);

    bioscom(1,in,COM1)

    }

    }

    }

    ---------------------------------------------------------------
    1   ...   13   14   15   16   17   18   19   20   ...   120


    написать администратору сайта