Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises
Demon's Souls |#8| Maiden Astraea
Demon's Souls |#7| Dirty Colossus

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 188 189 190 191 192 193 194  195 196 197 198
         твам,  которые не описываются подробно,  а о которых просто  идет
         упоминание  как о "зарезервированных" или "неиспользуемых" средс-
         твах в Техническом справочном руководстве по MS-DOS (фирмы "Майк-
         рософт")  или  Техническом  справочном  руководстве по DOS (фирмы
         "ИБМ").
              Несмотря на то, что некоторые из "зарезервированных" средств
         действительно зарезервированы и,  по-видимому,  функционально  не
         связаны  между  собой,  другие же средства функционально связаны,
         что обнаружено на практике опытными и искусными программистами.
              Описанные ниже средства представляют собой конспективное из-
         ложение не описанных в документации прерываний и функций по обра-
         ботке прерываний, которые были проанализированы авторами и други-
         ми лицами,  представившими свои находки в  различных  электронных
         возможностях объявлений в качестве общедоступной информации.
              Необходимо отметить,  что  авторы  и издатель не дают вообще
         никаких заверений относительно верности  и  точности  информации,
         представленной в данном приложении.
              Поскольку все прерывания и функции,  описанные в этом прило-
         жении,  помечены как "зарезервированные" в технической справочной
         документации фирм "Майкрософт" и "ИБМ", разумно предположить, что
         разработчики операционной системы MS-DOS должны,  возможно, изме-
         нить определение этих прерываний и функций в будущих версиях опе-
         рационной  системы MS-DOS.  Поэтому,  любой желающий использовать
         любые из описанных прерываний или функций в своих программах  де-
         лает это на свой страх и риск.  Только некоторые из данных преры-
         ваний и функций прерываний получили общераспространенное  призна-
         ние их использования в некоторых типах программ (например,  TSR -
         программ, остающихся резидентными после завершения).
             Большинство описанных  средств  представлено  с  единственной
         целью удовлетворить свойственное нам любопытство и с целью  даль-
         нейшего понимания работы операционной системы MS-DOS.


               Не описанные в  документации прерывания операционной
                                  системы MS-DOS

              В версии 3.3 операционной системы 2Eh описаны в документации
         по операционной системе как  зарезервированные. Прерывания  28h,
         29h и 2Eh описаны в следующих параграфах.


                                      - П-44 -

                Прерывание 28h(40): прерывание по безопасности DOS

              Прерывание 28h  обычно  называется "прерыванием для безопас-
         ности операционной системы MS-DOS" или "прерыванием по циклу  за-
         нятости  клавиатуры".  Оно  используется  внутренней  стандартной
         программой операционной системы MS-DOS "Get  Input"  (Осуществить
         ввод с клавиатуры),  если только она безопасна для  использования
         функций  "0Сh"  и  выше при прерывании "int 21h". Прерывание "int
         28h" используется главным образом программами "завершиться и  ос-
         таться  резидентными",  включая  программу PRINT.COM операционной
         системы MS-DOS.  Если какая-либо  программа  вызвала  стандартную
         программу  "Осуществить ввод с клавиатуры" и ожидает нажатия кла-
         виши, операционная система MS-DOS приостанавливает вызов прерыва-
         ния  "int  28h"  в качестве сигнала другим прикладным программам,
         которые могут могут быть загружены,  что никакие функции прерыва-
         ния  "int  21h" (кроме 0Сh и выше) не должны вызываться.  Нажатие
         клавиши и завершение выполнения данной стандартной программы  вы-
         зывает  прерывание "int 28h",  служащее сигналом для других прик-
         ладных программ,  которые могут быть загружены, что система прос-
         таивает  и безопасна для выполнения функций прерывания "int 21h".
              В большинстве случаев прерывания "int 28h" используются сов-
         местно  с  функцией  34h (Получить признак занятости операционной
         системы DOS) прерывания "int 21h" :  операционная система  MS-DOS
         вызывает или снимает прерывание "int 28h" соответственно, а прик-
         ладная программа вызывает функцию установления признака занятости
         DOS с целью определения незанятого состояния системы.


                  Прерывание 29h(41): Вывод на устройство консоли

              Прерывание "int  29h" ,  часто называемое по "выводу на уст-
         ройство консоли" или FAST PUTCHAR,  вызывает внутренние стандарт-
         ные программы вывода операционной системы MS-DOS, если вывод осу-
         ществляется на устройство,  а не в файл,  а также, если  в  слове
         атрибута   драйвера,  обслуживающего  данное  устройство,  разряд
         3(04h) установлен в 1.  Прерывание "int 29h" можно назвать черным
         ходом для драйвера устройства вывода на консоль: символ в регист-
         ре AL выводится на консоль в процессе обработки этого прерывания.

             Прерывания с 2Ah(42) по 2Dh(45) : внутренние стандартные
                       программы операционной системы MS-DOS

              Прерывания, начиная с "int 2Ah" и кончая "int 2Dh" , являют-
         ся  внутреними прерываниями операционной системы MS-DOS.  Векторы
         всех этих прерываний указывают на код операции  IRET.  Прерывание
         "int 2Ah"  используется для управления сетью в системах, установ-
         ленных с MSNET и другим сетевым  программным  обеспечением  фирмы
         "Майкрософт".


            Прерывание 2Eh(46). "Черный ход" для командного процессора

              Обычно для обработки команды с помощью командного процессора
         COMMAND.COM используется  функция  EXEC (функция  4Вh  прерывания

                                      - П-45 -
         "int 21h").  Однако, альтернативный, быстрый и "грубый" метод вы-
         полнения  той же функции обеспечивает прерывание "int 2Eh". Чтобы
         выполнить какую-либо команду операционной системы MS-DOS, вначале
         уплотняется  память  с  целью выделения места для новой программы
         (как и в случае функции 4Вh прерывания "int 21h" ), затем заносят
         в регистр DS:SI указатель на строку параметров данной команды и в
         конце обрабатывается прерывание "int 2Eh". Первый байт  в  строке
         параметров данной команды - это длина строки, за ней следует сама
         строка (например,  CHKDSK  C:),  которая  заканчивается  символом
         "возврат каретки" (0Dh).
              Этот завершающий символ считается частью длины строки. После
         того как прерывание "int 2h" обработано, важным моментом является
         обнуление стека,  поскольку в результате прерывания "int 2h"  со-
         держимое регистров SS и SP может не сохраниться.

                         Прерывания с 30h(48) по FFh(255)

              Для операционной системы MS-DOS, начиная с версии 3.30, пре-
         рывания с "int 30h" по "int FFh" помещаются  как  зарезервирован-
         ные.  Однако  некоторые  из этих прерываний используются дополни-
         тельным аппаратным и программным обеспечением.  К примеру, преры-
         вание  "int  67h"  является зарезервированным для использования в
         спецификации  систем  расширенной  памяти  (EMS)   с   драйверами
         Lotus/Intel/Microsoft (LIM). С помощью этого прерывания (реализо-
         ванного в драйвере устройства EMS)выполняются все функции LIM EMS
         (см.  главу 7 для более полной информации по системам расширенной
         памяти EMS).  Прерывания с 30h(48) по FFh(255) используют  другие
         типы дополнительного аппаратного и программного обеспечения , та-
         кого как сетевые адаптеры фирмы "Майкрософт" и "ИБМ", стандартные
         программы базовой системы ввода-вывода (BIOS), адаптеры EGA и VGA
         и другие.

           Не описанные в документации вызовы функций прерывания 21h(33)

              Следующие вызовы функций  прерывания  "int 21h" помечены как
         "зарезервированные" или "неиспользуемые" в Техническом справочном
         руководстве  по  операционной  системе  DOS  фирм  "Майкрософт" и
         "ИБМ"  (для версии 3.3 операционной системы MS-DOS):  18h,  с 1Dh
         до 20h,  32h,  34h,  37h,  с 50h по 53h, 55h, 58h, 5Dh, 60h, 61h,
         63h, 64h.
              Наибольшим номером  описанной  функции  прерывания "int 21h"
         (по данным на версию  3.3  операционной  системы MS-DOS) является
         68h. Зарезервированные функции свыше 68h,  если  вообще  имеются,
         еще предстоит узнать.  Ниже описаны более детально недокументиро-
         ванные функции прерывания 21h и выполняемые этими функциями  опе-
         рации.

             Функции  18h(24), 1Dh(29), 1Eh(30), 20h(32h): формальные
        функции, обеспечивающие совместимость с операционной системой CP/M
              Многие функции операционной системы MS-DOS c  более  низкими
         номерами эквивалентны   подобным  функциям  операционной  системы
         CP/M.  Не все из функций CP/M реализованы в операционной  системе
         MS-DOS,  однако  многие из них располагают "пустым окном" для об-
         легчения переноса программ операционной системы  CP/M  в  MS-DOS.
         Эти функции после своего выполнения ничего не возвращают.


                                     - П-46 -

                Функция 1Fh(31): найти информацию о блоке на диске
                                для текущего диска

              Функция 1Fh  используется для возврата указателя на "таблицу
         с информацией о блоке на диске" для текущего диска. В таблице Б-1
         приведен формат этой таблицы и ее содержимое.
              Вход :   AH = 1Fh
              Возврат: DS:BX содержит адрес точки первого входа блока на
                       диска для текущего диска
              Примечание: Функция 1Fh аналогична функции 32h,  за исключе-
                       нием того, что функция 32h возвращает информацию  о
                       блоке диска для указанного диска. При работе с вер-
                       сиями 2.0 и выше операционной  системы  MS-DOS  эта
                       функция  просто  выполняет  функцию  32h прерывания
                       "int 21h" при AL = 0.

                                                         Таблица Б-1
                  Формат блока диска операционной системы MS-DOS
         ДДДДДДДДВДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
         Смещение¦     Тип    ¦Данные
         ДДДДДДДД†ДДДДДДДДДДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
         00      ¦Байт        ¦Диск (дисковод) 0 = A, 1 = В и т.д.
         01      ¦Байт        ¦Устройство внутри драйвера (0,1,2, и т.д.)
         02      ¦Слово       ¦Количество байтов  в  секторе
         04      ¦Байт        ¦Количество секторов в кластере - 1;
         05      ¦Байт        ¦Кластер сдвига сектора
         06      ¦Слово       ¦Количество зарезервированных (начальная
                 ¦            ¦загрузка) секторов
         08      ¦Байт        ¦Количество  таблиц FAT
         09      ¦Слово       ¦Количество элементов корневого каталога
         0B      ¦Слово       ¦Номер сектора  кластера  2  (1-ый  сектор
                 ¦            ¦данных)
         0D      ¦Слово       ¦Количество кластеров +1 (или последнего
                 ¦            ¦кластера)
         0F      ¦Байт        ¦Секторы для таблиц FAT
         10      ¦Слово       ¦Номер сектора в каталоге
         12      Двойное слово¦Адрес  заголовка устройства
         16      ¦Байт        ¦Байт дескриптора среды
         17      ¦Байт        ¦Нуль, если к диску  идет обращение
         18      Двойное слово¦Адрес следующего блока диска операционной
Предыдущая страница Следующая страница
1 ... 188 189 190 191 192 193 194  195 196 197 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама