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

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


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

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


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

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

Предыдущая страница Следующая страница
1 ... 166 167 168 169 170 171 172  173 174 175 176 177 178 179 ... 198
         что  ограничения по совместимости (или отсутствие таких ограниче-
         ний) явно указны как в программном пакете, так и в рекламных бро-

                                      - 13-5 -
         шюрах.
              Если вы разрабатываете программу,  предназначенную  работать
         под любой такой версией операционной системы MS-DOS,  которая со-
         держит некоторые стандартные программы,  которые  могут  дополни-
         тельно выполняться при использовании конкретных версий операцион-
         ной системы MS-DOS, следует применять функцию 30h (получить номер
         версии  DOS)  для контроля за тем выполняются или нет эти опреде-
         ленные стандартные программы.  Несмотря на то,  что  эта  функция
         обеспечивается только версиями 2.0 и  выше  операционной  системы
         MS-DOS, она может безболезненно выполняться и под версиями 1.0  и
         1.1  до  тех пор,  пока будут соблюдаться предупредительные шаги,
         описанные в разделе "Вызов  DOS-функций"  вашего  руководства  по
         операционной системе MS-DOS.
              Для исполнения этой функции следует загрузить значение 30h в
         регистр АH.  При выполнении прерывания "int 21h"  основной  номер
         версии операционной системы помещается в регистр AL,  а номер мо-
         дификации основной версии операционной системы помещается  в  ре-
         гистр  AH.  Если регистр АL содержит 00,  вы можете предположить,
         что вы работаете с операционной системой MS-DOS,  версий 1.0  или
         1.1.  Любое  другое  число в регистре AL явно указывает номер ис-
         пользуемой версии.
              Если например,  вы используете операционную  систему  MS-DOS
         версии 2.00 в регистре Al будет содержаться число 02, а в регист-
         ре An будет содержаться число 00.  Если вы используете операцион-
         ную  систему MS-DOS  версии 3.10, в регистре AL будет содержаться
         число 03, а в регистре An будет содержаться число 10. Даже тогда,
         когда  вы не должны контролировать выполнение некоторых стандарт-
         ных программ, эта функция позволяет вам управлять отображением на
         экране дисплея "дружественного" сообщения, когда пользователь пы-
         тается запустить программу под несовместимой версией операционной
         системы MS-DOS.  Программа,  представленная листингом 13-1, может
         использоваться в вашей программе для выполнения этой функции.


             Листинг  13-1. Стандартная программа по определению вер-
                          сии операционной системы MS-DOS
         ----------------------------------------------------------------
         ;     Стандартная  программа по определению версии операцион-
         ;  ной системы MS-DOS), под управлением  которой  запускается
         ;  программа, содержащая эту стандартную программу.
         ;
         ;      Примечание:  Убедитесь, что перечисленные ниже команды
         ;  заданы либо в сегменте данных, либо в области данных  сег-
         ;  мента кодов в вашей программе.
         ;
         ;     majver  db ?  ; основной номер версии операционной
         ;                   ; системы (в шестнадцатеричном  виде)
         ;     minver  db ?  ; номер модификации основной версии
         ;                   ; операционной системы (в шестнадцатирич-
                             ; ном виде)

              getdosver     proc   near   ; если нужно, изменить версию
         ;
                  push   ax         ; сохранение регистров
                  push   bx
                  push   cx
              ;

                                      - 13-6 -
                  mov    ah,30h     ; подготовить номер функции
                  int    21h        ; выполнить вызов функции MS-DOS
              ;
                  cmp    al,0       ; проверить, используется ли версия
                                    ; до 2.0
                  jnz    dos2plus   ; если нет, значит используется
                                    ; версия 2.00 или выше
                  mov    al,1       ; основной  является версия 1.00
                  mov    ah,0       ; (поскольку мы знаем,  что  ре-
                                    ; гистр  AH, по-прежнему, сожер-
                                    ; жит номер функции (30h), мы не
                                    ; сможем выяснить номера модифи-
                                    ; кации основной версии операци-
                                    ; онной  системы.   Поэтому   мы
                                    ; предполагаем  наихудший случай
                                    ; - версия 1.00)
         ;
              dos2plus:
                  mov majver,al     ; сохранение основного номера
                                    ; версии операционной системы
                  mov minver,ah     ; сохранение номера модификации
                                    ; основной версии операционной
                                    ; системы
              ;
                  pop    cx         ; восcтановление регистров
                  pop    bx
                  pop    ax
              ;
                  ret               ; возврат
              ;
              getdosver endp
         ----------------------------------------------------------------

              В представленной  выше  стандартной  подпрограмме  вы можете
         производить несколько операций над номером версии,  хранящимся  в
         двух переменных: majver и minver. Каждый номер может быть превра-
         щен в десятичное значение кода ASCII  для  вывода  его  на  экран
         вместе с каким-нибудь сообщением,  или вы можете использовать эти
         переменные для контроля за выполнением определенных частей  прог-
         раммы.

             Некоторые соображения относительно языков высокого уровня

              Если вы пишете программу на языке высокого уровня, вы должны
         быть осведомлены о характеристиках используемого вами конкретного
         компилятора или интерпретатора. Если в спецификации на данное ус-
         тройство говорится, что ваш компилятор или интерпретатор работает
         только под  определенной  версией  операционной  системы  MS-DOS,
         скомпилированная  или проинтерпретированная здесь Вами программа,
         вероятнее всего не будет работать под более ранними версиями опе-
         рационной системы.  Особенно это касается таких интерпретаторов с
         языка Бейсик,  как "Microsoft/IBM BASIC" и "GWBASIC",  потому что
         новые версии этих  интерпретаторов часто выпускаются настроенными
         на выполнение только новых версий операционной системы MS-DOS.



                                      - 13-7 -
                                 Прерывания MS-DOS

              Программные прерывания,  заданные для использования операци-
         онной системы MS-DOS, совместимы для всех версий.  Исключение со-
         ставляет прерывание  2Fl,  которое было добавлено только в версию
         3.0. В таблице 13-1 приведен перечень прерываний.
                                                         Таблица 13-1
                                 Прерывания MS-DOS
         ДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
            Прерывание     ¦    Версия операционной системы MS-DOS
         ДДДДДДВДДДДДДДДДДД†ДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДДД
         Номер ¦ Описание  ¦   ¦    ¦    ¦    ¦    ¦    ¦    ¦    ¦
         преры-¦ преры-    ¦1.0¦ 1.1¦ 2.0¦ 2.1¦ 3.0¦ 3.1¦ 3.2¦ 3.3¦ 4.0
         вания ¦ вания     ¦   ¦    ¦    ¦    ¦    ¦    ¦    ¦    ¦
         ДДДДДД†ДДДДДДДДДДД†ДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДДД
         20    ¦Завершение ¦
               ¦программы  ¦
         ДДДДДД†ДДДДДДДДДДДґ
         21    ¦Запрос к   ¦
               ¦функции    ¦
         ДДДДДД†ДДДДДДДДДДДґ
         22    ¦Адрес      ¦
               ¦завершения ¦
         ДДДДДД†ДДДДДДДДДДДґ
         23    ¦Адрес      ¦
               ¦выхода по  ¦
               ¦Ctrl/Break ¦
         ДДДДДД†ДДДДДДДДДДДґ
         24    ¦Вектор     ¦
               ¦драйвера   ¦
               ¦критической¦
               ¦ошибки     ¦
         ДДДДДД†ДДДДДДДДДДДґ
         25    ¦Чтение     ¦                        Да
               ¦диска (в   ¦
               ¦абсолютных ¦
               ¦адресах)   ¦
         ДДДДДД†ДДДДДДДДДДДґ
         26    ¦Запись на  ¦
               ¦диск (в    ¦
               ¦абсолютных ¦
               ¦адресах)   ¦
         ДДДДДД†ДДДДДДДДДДДґ
         27    ¦Завершение ¦
               ¦с сохране- ¦
               ¦нием рези- ¦
               ¦дентности  ¦
         ДДДДДД†ДДДДДДДДДДД†ДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДДД
         28    ¦Зарезерви- ¦
               ¦ровано     ¦ Для внутреннего использования операционной
               ¦           ¦             системы MS-DOS
         ДДДДДД†ДДДДДДДДДДД†ДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДДД
         29    ¦           ¦
         ДДДДДДґ(Зарезерви-¦               (Зарезервировано)
         2E    ¦  ровано   ¦

                                      - 13-8 -
         ДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
            Прерывание     ¦    Версия операционной системы MS-DOS
         ДДДДДДВДДДДДДДДДДД†ДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДД
         Номер ¦ Описание  ¦   ¦    ¦    ¦    ¦    ¦    ¦    ¦    ¦
         преры-¦ преры-    ¦1.0¦ 1.1¦ 2.0¦ 2.1¦ 3.0¦ 3.1¦ 3.2¦ 3.3¦ 4.0
         вания ¦ вания     ¦   ¦    ¦    ¦    ¦    ¦    ¦    ¦    ¦
         ДДДДДД†ДДДДДДДДДДД†ДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДД
         2F    ¦Мульти-    ¦                  ¦
               ¦плексное   ¦     Нет          ¦           Да
               ¦прерывание ¦                  ¦
         ДДДДДД†ДДДДДДДДДДД†ДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДДД
         30-   ¦Зарезерви- ¦                Зарезервировано
         66    ¦ровано     ¦
         ДДДДДД†ДДДДДДДДДДД†ДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДДД
         67    ¦Интерфейс  ¦        ¦                             ¦
               ¦системы    ¦  Нет   ¦      (см. Примечание 1)     ¦ Да
               ¦расширенной¦        ¦                             ¦
               ¦памяти     ¦        ¦                             ¦
         ДДДДДД†ДДДДДДДДДДД†ДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДДДД
         68-   ¦Зарезерви- ¦                Зарезервировано
         6F    ¦ровано     ¦
         ДДДДДДБДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

              Примечание 1: Обращение  к  системе  расширенной  памяти
         (EMS):    как    задается    в    обеих    спецификациях:   в
         "Lotus/Intel/Microsoft" (LIM) и  в  "AST/Quadram/Ashton-Tate"
         (AQA),  происходит одинаково посредством прерывания "int 67h"
         во всех версиях операционной системы MS-DOS, начиная в версии
         2.0. И только в операционной  системе  MS-DOS  версии  4.0  и
         старше  это прерывание официально зарезервировано для обраще-
         ния к EMS. Подробнее о функциях прерывания "int 67h" системы
         EMS говорится в главе 7.
              Многие вычислительные  машины имеют прерывания,  не перечис-
         ленные в таблице 13-1.  Эти прерывания задаются для таких  специ-
         альных применений, как обращение к программам системы BIOS (базо-
         вая система ввода-вывода) или взаимодействие  с последовательными
         портами. Не следует путать эти обращения с прерываниями, заданны-
         ми для использования в операционной системе MS-DOS.  Только  опи-
         санные в "Техническом руководстве по операционной системе MS-DOS"
         прерывания являются истинными прерываниями  операционной  системы
         MS-DOS.  Для поддержания совместимости со всеми реализациями опе-
Предыдущая страница Следующая страница
1 ... 166 167 168 169 170 171 172  173 174 175 176 177 178 179 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама