Главная · Поиск книг · Поступления книг · 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 ... 83 84 85 86 87 88 89  90 91 92 93 94 95 96 ... 198
         манда похожа на обычную символьную команду INPUT, она все же име-
         ет несколько заметных отличий :
            * Отсутствует буфер данных  и  счетчик  количества  переданных
              данных.  При  вызове  этой команды требуемое количество байт
              всегда равно 1 и если устройство  готово  предоставить  байт
              данных,  он  возвращается  в  поле  "Считанный из устройства
              байт" блока запроса.

            * Нет ожидания. Если устройство не готово предоставить очеред-

                                      - 6-42 -
                     Команда NONDESTRUCTIVE INPUT WITHOUT WAIT
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
      є                                                                 є
      є Команда NONDESTRUCTIVE INPUT WITHOUT WAIT (5)                   є
      є                                                                 є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ЪДДД¬                  є
      є +00 : 14                   Длина         ¦   ¦ Блок. драйверы   є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         АДДДЩ                  є
      є +01 :                 Устройство         ЪДДД¬                  є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ¦ X ¦ Симв. драйверы   є
      є +02 : 05                 Команда         АДДДЩ                  є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД                                є
      є +03 :                     Статус                                є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД          ЧТЕНИЕ      ЗАПИСЬ    є
      є                  Зарезервировано                                є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД ЪДДД¬ ДДДДД ЪДДД¬ ДДДДє
      є +13 :  Считанный из устр-ва байт          ¦   ¦       ¦ X ¦     є
      є ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД АДДДЩ ДДДДД АДДДЩ ДДДДє
      є                                                                 є
      ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
              ной символ, то драйвер должен установить бит BUSY в дополне-
              ние к биту DONE в слове состояния и  незамедлительно вернуть
              управление.

            * Чтение  неразрушающее.  Если  устройство  готово выдать байт
              данных, то драйвер обязан не только возвратить этот байт, но
              и  сохранить его для чтения последующей командой INPUT. Если
              вводимые данные помещаются драйвером в очередь (как в управ-
              ляемых прерываниями драйверах),  то возвращаемый этой коман-
              дой байт должен остаться в очереди.

            Эта команда  предназначена  для  того,  чтобы  MS-DOS   могла,
         во-первых, определить наличие данных, не используя команду INPUT,
         которая может привести к длительному ожиданию данных,  и, во-вто-
                        Команды STATUS и FLUSH INPUT/OUTPUT
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
         єКоманды STATUS и FLUSH INPUT/OUTPUT (6,7,10,11)               є
         є                                                              є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ЪДДД¬                є
         є+00 : 13                   Длина         ¦   ¦ Блок. драйверы є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         АДДДЩ                є
         є+01 : номер #         Устройство         ЪДДД¬                є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ¦ X ¦ Симв. драйверы є
         є+02 : команда            Команда         АДДДЩ                є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД                              є
         є+03 :                     Статус       ЪДДДДДДДДДДДДДДДДДДДД¬ є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД       ¦ КОМАНДЫ :          ¦ є
         є                 Зарезервировано       ¦                    ¦ є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД       ¦  6:  INPUT STATUS  ¦ є
         є                                       ¦  7:  INPUT FLUSH   ¦ є
         є                                       ¦ 10:  OUTPUT STATUS ¦ є
         є                                       ¦ 11:  OUTPUT FLUSH  ¦ є
         є                                       АДДДДДДДДДДДДДДДДДДДДЩ є
         ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј

                                      - 6-43 -
         рых,  анализировать следующий символ в буфере без изъятия его от-
         туда.
            Команды I/O STATUS и I/O FLUSH (команды 6,10 и 7,11, соответс-
         твенно) требуются только для символьных устройств и не  использу-
         ются блоковыми.
            Команды INPUT  STATUS и INPUT FLUSH имеют смысл только для тех
         драйверов символьных устройств,  которые поддерживают управляемые
         прерываниями очереди вводимых данных,  хотя эти команды могут вы-
         зываться для любого символьного драйвера.Команда INPUT STATUS ис-
         пользуется для индикации состояния очереди следующим образом:

            * Если очередь есть,  но она пуста,  то драйвер должен устано-
              вить  биты  DONE и BUSY в слове состояния и вернуть управле-
              ние.

            * Если в очереди есть символы,  доступные для чтения, то драй-
              вер должен установить бит DONE,  сбросить бит BUSY и вернуть
              управление.

            * Если очередь не поддерживается, то драйвер должен установить
              бит DONE,  сбросить бит BUSY в слове состояния и вернуть уп-
              равление. Это выглядит странным -  уведомлять MS-DOS о нали-
              чии символа, когда даже очереди нет.Объяснение заключается в
              том, что после такого ответа MS-DOS выдаст команду INPUT для
              считывания символа.  Если же этого не сделать, то MS-DOS бу-
              дет продолжать опрашивать  статус  ввода бесконечно, так как
              из-за отсутствия очереди статус всегда будет одним и тем же.

            Команда INPUT FLUSH  применяется для уведомления драйвера о не-
         обходимости удаления всех находящихся в данный момент  во входной
         очереди  символов.  После  очистки очереди (если таковая имеется)
         драйвер должен установить бит DONE и вернуть управление.  При об-
         работке этой команды не должно возникать никаких ошибок, по край-
         ней мере MS-DOS предполагает,  что эта команда всегда завершается
         успешно.
            Команда OUTPUT STATUS используется для проверки состояния  вы-
         ходной  очереди или устройства.  Если драйвер не поддерживает вы-
         ходную очередь, то следует, по возможности, вернуть состояние са-
         мого  устройства.  Состояние  определяется  битом BUSY ("занято")
         слова состояния (состояние "занято" означает что вывод задержива-
         ется).  Установив состояние, драйвер должен установить бит DONE и
         вернуть управление.
            Команда OUTPUT FLUSH предназначена для указания драйверу необ-
         ходимости удалить все находящиеся в выходной очереди символы (ес-
         ли очередь поддерживается) и, если это возможно, немедленно прек-
         ратить любые операции  вывода.  После  выполнения  этих  действий
         драйвер  должен  установить бит DONE в слове состояния драйвера и
         вернуть управление MS-DOS.
            Команды DEVICE OPEN и DEVICE CLOSE (команды 13 и  14) являются
         необязательными командами, поддерживаемые MS-DOS версий 3.0 и вы-
         ше, и используются только если драйвер имеет атрибут OCRM (бит 11
         слова  атрибутов драйвера равен 1).  Однако Microsoft рекомендует
         использовать эти команды во всех новых создаваемых драйверах.

                                      - 6-44 -
                    Команды DEVICE OPEN/CLOSE и REMOVABLE MEDIA
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
         є                                                              є
         єКоманды DEVICE OPEN/CLOSE и REMOVABLE MEDIA (13,14,15)        є
         є                                                              є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ЪДДД¬                є
         є+00 : 13                   Длина         ¦ X ¦ Блок. драйверы є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         АДДДЩ                є
         є+01 : номер #         Устройство         ЪДДД¬                є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД         ¦   ¦ Симв. драйверы є
         є+02 : команда            Команда         АДДДЩ                є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД                              є
         є+03 :                     Статус       ЪДДДДДДДДДДДДДДДДДДДД¬ є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД       ¦ КОМАНДЫ :          ¦ є
         є                 Зарезервировано       ¦                    ¦ є
         єДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД       ¦ 13 : DEVICE OPEN   ¦ є
         є                                       ¦ 14 : DEVICE CLOSE  ¦ є
         є                                       ¦ 15 : REMOVABLE     ¦ є
         є                                       ¦      MEDIA CHECK   ¦ є
         є                                       АДДДДДДДДДДДДДДДДДДДДЩ є
         ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј


            Команда REMOVABLE  MEDIA  (15) является дополнительной командой
         для блоковых драйверов в MS-DOS 3.0 и выше и  используется  только
         при наличии у драйвера атрибута OCRM (бит 11 слова атрибутов). Эта
         команда также рекомендуется к использованию  фирмой  Microsoft  во
         всех новых драйверах.

            Условия, при   которых   происходит   обращение   к   командам
         DEVICEOPEN и DEVICECLOSE,  описаны выше в подразделе "Слово атри-
         бутов", подзаголовок "БИТ 11 : OCRM".
            Для блоковых устройств со сменным носителем информации эти ко-
         манды  могут  использоваться для отслеживания количества открытых
         на устройстве файлов, позволяя, таким образом, обнаруживать ситу-
         ацию  недопустимой  замены носителя (которая возникает при замене
         диска, на котором еще имеются открытые файлы).
            Для символьных устройств эти команды могут  использоваться для
         предотвращения одновременного доступа различных программ к одному
         устройству (такому как принтер) или для  обеспечения возможностей
         перед и после обработки устройства (например, операций загрузки и
         сброса принтера).
            Команда REMOVABLEMEDIA  может  быть выдана прикладной програм-
         мой,  используя подфункцию "Проверка заменяемости носителя" функ-
         ции IOCTL (подфункция 08H функции 44H).  При вызове  этой функции
         прикладная программа должна задать номер интересующего ее  диско-
         вода.  Получив команду REMOVABLEMEDIA,  драйвер должен определить
         имеет ли упомянутое устройство возможность замены носителя и вер-
         нуть статус битом BUSY слова состояния драйвера.  Если устройство
         не поддерживает смены носителя, то драйвер должен установить  бит
         BUSY, в противном случае сбросить его.
            Команда GENERIC IOCTL (19) является  дополнительной  командой,
         поддерживаемой  MS-DOS начиная с версии 3.20.  Использование этой
         команды разрешается установленным в 1 атрибутом  GIOCTL  (бит  6)
         слова состояния.

                                      - 6-45 -
                               Команда GENERIC IOCTL
                              ~~~~~~~~~~~~~~~~~~~~~~~
Предыдущая страница Следующая страница
1 ... 83 84 85 86 87 88 89  90 91 92 93 94 95 96 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама