Главная · Поиск книг · Поступления книг · 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 ... 73 74 75 76 77 78 79  80 81 82 83 84 85 86 ... 198
       ¦     ¦ СТРАТЕГИЙ  є   ¦     ¦ СТРАТЕГИЙ  є   ¦     ¦ СТРАТЕГИЙ  є
       ¦     ГДДДДДДДДДДДД¶   ¦     ГДДДДДДДДДДДД¶   ¦     ГДДДДДДДДДДДД¶
       ¦     ¦ Указатель  є   ¦     ¦ Указатель  є   ¦     ¦ Указатель  є
       ¦  ЪДДґ     на     є   ¦  ЪДДґ     на     є   ¦  ЪДДґ     на     є
       ¦  ¦  ¦ ПРЕРЫВАНИЙ є   ¦  ¦  ¦ ПРЕРЫВАНИЙ є   ¦  ¦  ¦ ПРЕРЫВАНИЙ є
       ¦  ¦  ГДДДДДДДДДДДД¶   ¦  ¦  ГДДДДДДДДДДДД¶   ¦  ¦  ГДДДДДДДДДДДД¶
       ¦  ¦  ¦ Устройство є   ¦  ¦  ¦  Имя или   є   ¦  ¦  ¦  Имя или   є
       ¦  ¦  ¦    NUL     є   ¦  ¦  ¦   число    є   ¦  ¦  ¦   число    є
       ¦  ¦  ¦            є   ¦  ¦  ¦ устройств  є   ¦  ¦  ¦ устройств  є
       АДДДД>ГДДДДДДДДДДДД¶   АДДДД>ГДДДДДДДДДДДД¶   АДДДД>ГДДДДДДДДДДДД¶
          ¦  ¦ Программа  є      ¦  ¦ Программа  є      ¦  ¦ Программа  є
          ¦  ¦ СТРАТЕГИЙ  є      ¦  ¦ СТРАТЕГИЙ  є      ¦  ¦ СТРАТЕГИЙ  є
          ¦   \/\/\/\/\/\/       ¦   \/\/\/\/\/\/       ¦   \/\/\/\/\/\/
          ¦  /\/\/\/\/\/\/\      ¦  /\/\/\/\/\/\/\      ¦  /\/\/\/\/\/\/\
          АД>ГДДДДДДДДДДДД¶      АД>ГДДДДДДДДДДДД¶      АД>ГДДДДДДДДДДДД¶
             ¦ Программа  є         ¦ Программа  є         ¦ Программа  є
             ¦ ПРЕРЫВАНИЙ є         ¦ ПРЕРЫВАНИЙ є         ¦ ПРЕРЫВАНИЙ є
              \/\/\/\/\/\/           \/\/\/\/\/\/           \/\/\/\/\/\/
             /\/\/\/\/\/\/\         /\/\/\/\/\/\/\         /\/\/\/\/\/\/\
             ФННННННННННННј         ФННННННННННННј         ФННННННННННННј
                     Рисунок 6-1. Цепочка драйверов устройств.
            Не только NUL-драйвер не может быть заменен. Драйверы, работа-

                                      - 6-9 -
         ющие с устройствами массовой памяти (например с  дисками),  также
         не  могут  быть  заменены.  Вы можете добавить драйверы для новых
         дисков,  но не удалить или заменить уже существующие. Это ограни-
         чение возникает по той причине, что имена драйверам дисковых уст-
         ройств (A,B,C и т.д.) назначает MS-DOS при  загрузке.  Невозможно
         присвоить  конкретному  дисководу уникальное имя,  соответственно
         нельзя и заменить его.

                      Использование команды ASSIGN для замены
                           драйверов дисковых устройств

            Тем не менее не расстраивайтесь, если Вас не удовлетворяет ра-
         бота существующих дисковых драйверов. Хотя их нельзя удалить, они
         могут быть "нейтрализованы". После того, как Вы написали (и прове-
         рили) новый драйвер,добавьте его в файл CONFIG.SYS. После  переза-
         грузки системы он будет включен в цепочку драйверов устройств. На-
         пример, если Вы имеете три дисковода,  новый драйвер  получит  имя
         "D".  Теперь  используйте  команду ASSIGN для переназначения любых
         обращений к старому драйверу на новый. Допустим, мы хотим заменить
         драйвер дисковода "A". Команда ASSIGN, при этом, будет иметь вид

                ASSIGN A = D

            MS-DOS переназначит  все  обращения  к драйверу "A" на драйвер
         "D",  включая абсолютный доступ к диску по прерываниям 25H и 26H.
         Если  Вы  написали  новый  драйвер для работы с тем же физическим
         дисководом, с которым работал старый драйвер, то описанной проце-
         дурой  Вы довольно эффективно заменили его на новый.  Если же Вам
         покажется, что старый драйвер все-таки лучше, Вы можете восстано-
         вить первоначальную конфигурацию,  введя команду ASSIGN без пара-
         метров.
        ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
        ¦    ПРЕДУПРЕЖДЕНИЕ : Когда НЕЛЬЗЯ использовать команду ASSIGN    ¦
        ¦                                                                 ¦
        ¦    Хотя  команда  ASSIGN  позволяет  Вам  заменять существующие ¦
        ¦ драйверы  дисков  на  новые,  это  не всегда разумно. Некоторые ¦
        ¦ команды,  такие  как  BACKUP  и  PRINT, или программы, подобные ¦
        ¦ Lotus 1-2-3 будут весьма удивлены, если их попросят работать  с ¦
        ¦ переопределенными дисками.  Другие команды,  такие как  FORMAT, ¦
        ¦ DISKCOPY или DISKCOMP, вообще игнорируют такие диски и работают ¦
        ¦ с настоящими логическими дисками.                               ¦
        АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

                             Типы драйверов устройств

            Существует два типа драйверов устройств,  именованные и неиме-
         нованные,  называемые соответственно драйверами  символьных  уст-
         ройств  и драйверами блоковых устройств.  Различие между ними го-
         раздо глубже,  чем способность иметь имя или заменяемость.  Кроме
         того,  что блоковые драйверы предназначены для поддержки дисковых
         устройств, предполагается,что один блоковый драйвер может поддер-
         живать  более  одного  дисковода.  Команды ввода/вывода для таких
         драйверов обеспечивают возможность доступа к  отдельным  секторам
         и,  если  не  задан  атрибут NONIBM (также известный как NONFAT),
         предполагается,  что драйвер должен поддерживать стандартную  для
         MS-DOS структуру диска, включая FAT (таблицу распределения диска)

                                      - 6-10 -
         и директории.
            Откровенно говоря,  названия "символьный" и "блоковый" не сов-
         сем точны,  так как символьный драйвер  тоже  может  поддерживать
         блоковый режим передачи данных.  Более того,  нельзя сказать, что
         символьные драйверы обеспечивают последовательный доступ, а блоч-
         ные драйверы обеспечивают прямой доступ,  так как можно спроекти-
         ровать символьный драйвер так, чтобы он поддерживал прямой доступ
         к устройству (если, конечно, он может работать в таком режиме.
            Оставив пока вопрос о том,  что же такое символьный драйвер  и
         что  такое  блоковый драйвер,  обсудим некоторые способы работы с
         драйверами устройств через MS-DOS. Это даст нам некоторые сообра-
         жения о том,  какой тип следует выбрать, если Вы желаете написать
         драйвер для какого-либо приложения.

                   Работа с драйверами устройств в среде MS-DOS

            Для прикладных  программ  MS-DOS  обеспечивает четыре основных
         метода доступа к внешним устройствам.  Каждый из них  удобен  для
         соответствующих  приложений и мы обсудим достоинства и недостатки
         каждого метода для того,  чтобы Вы могли выбрать метод,  наиболее
         удобный для Вашего приложения.  Мы не будем описывать детали каж-
         дого из функциональных вызовов, так как эту информацию можно най-
         ти в "MS-DOS Programmer's Reference Manual" ("MS-DOS. Руководство
         программиста.") фирмы Microsoft или другом аналогичном  руководс-
         тве. Следующий ниже список классифицирует эти четыре метода.

         * CP/M-ориентированные  функции для работы с такими устройствами,
           как консоль, принтер или вспомогательное устройство. Это истин-
           но символьные устройства. Функции, входящие в эту группу :

                CON: Функции 01H, 02H, и с 06H по 0CH
                PRN: Функция 05H
                AUX: Функции 03H и 04H

         * CP/M-ориентированные функции для работы с файлами с использова-
           нием FCB (блока управления файлами).  Этот  метод  также  может
           быть  использован  для доступа к символьным устройствам.  В эту
           группу входят функции :

             Открыть/Закрыть:                 Функции 0FH и 10H
             Читать/Писать Устройство/Файл:   Функции 14H и 15H
             Читать/Писать Файл:              Функции 21H, 22H, 27H и 28H

         * Функции MS-DOS-стиля для  работы  с  файлами  с  использованием
           описателей. Этот метод (аналогично FCB-методу) тоже можно ис-
           пользовать для работы с символьными устройствами.  Функции, ра-
           ботающие с использованием описателей файлов :

                Открыть/Закрыть:                 Функции 3DH и 3EH
                Читать/Писать Устройство/Файл:   Функции 3FH и 40H
                Управление Устройством:          Функция 44H
         * Функции прямого доступа к диску, выполняющие чтение и запись по
           абсолютным адресам.  Эти функции обеспечиваются отдельными пре-
           рываниями INT 25H (абсолютное чтение) и INT 26H (абсолютная за-
           пись).


                                      - 6-11 -
             Функции CP/M-стиля для работы с символьными устройствами

            CP/M-ориентированные функции предназначены,  в  основном,  для
         работы со стандартным устройством CON и предлагают возможности для
         буферизации, эхо-отображения, ожидания символов и проверки состоя-
         ния.  Поддержка устройств PRN и AUX более ограниченная,  но вполне
         достаточна для многих приложений. Для нестандартных устройств, од-
         нако,  необходимо использовать либо метод, использующий FCB (блоки
         управления файлами), либо метод на основе описателей файлов.

          Работа с устройством с использованием блоков управления файлами

            FCB-метод работы с устройствами имеет и достоинства  и  недос-
         татки. С одной стороны, FCB сложнее создавать и использовать, чем
         работать с  описателями файлов,  хотя использование макросредств и
         директив STRUC может весьма облегчить задачу построения блока  уп-
         равления  файлом.  С другой стороны,  FCB-метод позволяет програм-
         мисту непосредственно указывать номер записи в файле,  делая  воз-
         можным  прямой  доступ  к  файлам.  Функции  3FH  ("Читать") и 40H
         ("Писать"), работающие с описателями, позволяют осуществлять толь-
         ко последовательный доступ к файлам. Для выполнения прямого досту-
         па к файлам,  используя функции описателей ,  прикладная программа
         должна  обращаться  к функции 42H ("Передвинуть указатель файла").
         FCB-метод работы таких дополнительных действий не требует.

                 Работа с устройствами на основе описателей файлов

            Хотя прямой доступ очень нужен при работе  с  файлами,  он  не
         имеет большого значения при работе с  не  дисковыми  устройствами.
         При  работе  с  такими  устройствами  метод доступа,  использующий
         описатели,  намного проще в использовании и не требует от програм-
         миста  создания FCB.  Кроме того,  описатель-ориентированный метод
         доступа  (ДОМД)  поддерживает  IOCTL  (управление  вводом/выводом)
         функцию 44H. Как мы вскоре увидим, IOCTL-функция может быть исклю-
         чительно полезна для управления устройством.
            При использовании   ДОМД   (описатель-ориентированного   метода
         доступа) для работы с не дисковыми  устройствами,  программист  не
         ограничен пересылкой одного байта за один раз. За одно обращение к
         функциям ввода/вывода может быть переслано  с  устройства  или  на
         устройство до 64 Kбайт.  Как и при работе с дисками, использование
         этих функций для  не  дисковых  устройств  приводит  к  выполнению
         последовательной передачи данных. Используя, однако, IOCTL-функцию
         прямого управления,  можно задать устройству дополнительные  пара-
         метры.  Так, например, если и устройство и его драйвер установлены
         в режим прямого доступа,  можно использовать IOCTL-функцию для уп-
         равления  точками  отправления и назначения при пересылке данных в
         устройстве.
            Этот пример может помочь при  иллюстрации  потенциала  прямого
         управления вводом/выводом с устройством. Предположим, что некото-
         рая система имеет отображаемую на адресное пространство графичес-
Предыдущая страница Следующая страница
1 ... 73 74 75 76 77 78 79  80 81 82 83 84 85 86 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама