TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Распознавание сопроцессора 80х87 в программах DOS 

             Исполняющая библиотека Borland  Pascal,  встроенная  в  вашу
        программу  (скомпилированную  с директивой {$N+}) включает в себя
        код инициализации,  который автоматически  распознает  наличие  в
        системе микросхемы сопроцессора 8087.  Если сопроцессор 8087 име-
        ется, то программа будет его автоматически использовать. В случае
        же его отсутствия программа будет использовать эмулирующую библи-
        отеку исполняющей системы.  Если программа компилировалась с  ди-
        рективой {$E-} и по время начала ее работы сопроцессор не обнару-
        живается,  то программа завершает  работу  с  сообщением  Numeric
        coprocessor  required  ("Требуется сопроцессор арифметических вы-
        числений").

             Есть несколько случаев,  когда вы возможно захотите изменить
        такую принятую  по  умолчанию  логику автоматического обнаружения
        сопроцессора. Например, в вашей системе может присутствовать соп-
        роцессор 8087, но вы захотите проверить, как будет работать прог-
        рамма,  предназначенная для функционирования на системах без соп-
        роцессора.   Или  же  потребуется  запустить  вашу  программу  на
        системе, совместимой с компьютером РС, но на этой системе при ра-
        боте  алгоритма автообнаружения будет выводиться некорректная ин-
        формация (например, будет сообщаться о наличие сопроцессора, ког-
        да на самом деле его нет, или наоборот).

             В Borland  Pascal  предусмотрена возможность отмены принятой
        по умолчанию логики автоматического  распознавания.  Эта  возмож-
        ность задается переменной операционной среды 87.

             Вы можете  установить переменную операционной среды 87 в от-
        вет на подсказку DOS с помощью команды SET,  например,  следующим
        образом:

             SET 87=Y
        или
             SET 87=N

             Установка для  переменной  операционной  среды 87 значения N
        (Нет) указывает коду инициализации, что вы не хотите использовать
        сопроцессор 8087, хотя он может и присутствовать в системе. И на-
        оборот: установка для переменной 87 значения Y (Да) означает, что
        сопроцессор имеется,  и вы хотите,  чтобы ваша программа его  ис-
        пользовала.  Однако  при этом нужно помнить о том,  что установка
        для переменной 87 значения Y при отсутствии в системе сопроцессо-
        ра 8087 приведет к тому, что ваша программа аварийно завершит ра-
        боту или "зависнет".

             Если переменная операционной среды 87 определена, а вы хоти-
        те,  чтобы она стала неопределенной,  то можно ввести в ответ  на
        подсказку DOS:

             SET 87=

        и нажать клавишу Enter.

             Если в  операционной среде DOS присутствует запись 87=Y, или
        если код инициализации успешно распознает сопроцессор,  то  далее
        код  инициализации выполняет последующие проверки,  чтобы опреде-
        лить,  какой это сопроцессор (8087, 80287 или 80387). Это необхо-
        димо  для того,  чтобы Турбо Паскаль мог корректно работать с от-
        дельными несовместимостями,  которые имеются между сопроцессорами
        различных типов.

             Результат автоматического распознавания наличия сопроцессора
        и его модели сохраняется в переменной Test8087 (которая  описыва-
        ется в модуле System). Для нее определены следующие значения:

               ┌──────────────┬────────────────────────────────┐
               │  Значение    │   Определение                  │
               ├──────────────┼────────────────────────────────┤
               │       0      │   сопроцессор не обнаружен     │
               │       1      │   обнаружен сопроцессор 8087   │
               │       2      │   обнаружен сопроцессор 80287  │
               │       3      │   обнаружен сопроцессор 80387  │
               └──────────────┴────────────────────────────────┘

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

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz