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

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


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

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


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

Программно-аппаратная организация компьютера IBM PC

Предыдущая страница Следующая страница
1 ... 38 39 40 41 42 43 44  45 46 47
использован, если их больше одного; нулевое значение соответствует первому
(и, обычно, единственному) адаптеру. Программы 11-101 и 11-102, входящие в
дисковый  пакет,  прилагающийся  к  этой  книге,  содержит    ассемблерные
интерфейсы  подпрограммы  и  вспомогательные   программы    на    Паскале,
позволяющие наиболее полно воспользоваться всеми процедурами связи системы
BIOS в ПЗУ.
     Первая  процедура,  с  кодом  0,  устанавливает  четыре   стандартных
параметра  связи:  скорость  передачи,  способ  контроля   по    паритету,
количество стоповых битов и длину слова. Эти  параметры  задают  различные
вариации организации связи. IBM/PC может использовать самые  различные  их
сочетания и обычно конкретные  значения  определяются  тем  оборудованием,
которое находится на  другом  конце  линии  связи.  Коды  этих  переменных
выбираются из регистра AL следующим образом:
     Первые три бита задают скорость передачи в битах  в  секунду.  Восемь
возможных значений соответствуют довольно большим скоростям передачи, хотя
персональные компьютеры наиболее часто используют две  скорости  -  300  и
1200 бит в секунду. Ниже приведены коды и соответствующие им значения:


              Код     Скорость передачи (бит в секунду)
         -----------------------------------------------
              000          110
              001          150
              010          300 (примерно 30 символов в секунду)
              011          600
              100         1200 (примерно 120 символов в секунду)
              101         2400
              110         4800
              111         9600


     (Издержки организации связи - необходимость передачи битов паритета и
стоповых  битов  -  увеличивают  число  битов,  необходимых  для  передачи
символа. Поэтому скорость передачи 300 бит в секунду позволяет  передавать
примерно 30 символов в секунду, хотя в коде символа в ASCII всего 7 или  8
бит).
     Следующие два бита определяют способ контроля по паритету:


              Код            Способ контроля
              ___            ________________

              00               отсутствует
              01               контроль по нечетности
              10               отсутствует
              11               контроль по четности


     Следующий бит указывает число используемых стоповых битов, являющихся
обязательной частью протокола RS-232:


              Код            Число стоповых битов
              ___            ____________________

               0                      1
               1                      2


     Последние два бита параметра определяют длину используемого слова:


              Код            Длина слова
              ___            ___________

              10             7 бит (стандартный код ASCII)
              11             8 бит (обычная длина слова для компьютеров)


     Как правило, выбор всех этих параметров не произволен и  определяется
характеристиками системы или оборудования, с которыми Вы связываетесь.
     Вторая процедура для связи, с кодом  1,  используется  для  пересылки
одного  байта  данных.  Этот  байт  загружается  в  регистр  AL  и  сигнал
завершения возвращается в регистр AH. Если передача завершилась  неудачно,
то первый бит в  регистре  AH  будет  установлен  в  единицу,  а  значение
остальных семи бит будет в этом случае таким же, какое  описано  ниже  для
процедуры с кодом 3. Таким образом, сравнение содержимого  регистра  AH  с
числом 128  позволит  определить  успешно  ли  закончилась  передача.  Как
обычно, интерфейсная процедура, входящая  в  прилагающийся  к  этой  книге
пакет, возьмет на себя заботу обо всех этих подробностях.
     Третья процедура для связи, с кодом 2, используется для приема  байта
из линии связи. Эта процедура ожидает завершения операции  (которое  может
заключаться в обнаружении ошибки или условия тайм-аута).
     Эта  процедура  содержит  одну  из  наиболее  существенных  ошибок  в
исходной версии системы BIOS-ПЗУ; если версия BIOS датирована  24.04.1981,
то в ней сообщение о тайм-ауте ошибочно передается как сообщение об ошибке
по паритету с данными, готовыми для приема. Определить свою версию BIOS Вы
можете с помощью отладчика ДОС-DEBUG. Если вызвать DEBUG и ввести команду:

     D F000:FFF5 L8

то будет отображена дата  создания  версии  BIOS.  Более  подробно  ошибки
первой версии системы BIOS рассмотрены в главе 6.
     Если операция приема закончилась успешно, регистр AH будет обнулен. В
противном случае, единицы будут в первом бите регистра AH  и  в  некоторых
битах с 4-го по 7-ой, как описывается ниже.
     Последняя процедура, с кодом 3, используется для определения  полного
текущего состояния порта связи (в регистре AH) и его  модема  (в  регистре
AL). Часть этой информации сообщается и при выполнении процедур с кодами 1
и 2. Регистры AH и AL устанавливаются следующим образом:


          Регистр      Бит           Значение
          _______      ___           ________

            AH         1-ый      тайм-аут (кроме BIOS версии 24.4.81)
            AH         2-ой      сдвиговый регистр передачи пуст
            AH         3-ий      буферный регистр передачи пуст
            AH         4-ый      обнаружен разрыв связи
            AH         5-ый      ошибка в битах обрамления
            AH         6-ой      ошибка по паритету (BIOS версии
                                 24.4.81 устанавливается в случае
                                 тайм-аута)
            AH         7-ой      коллизия
            AH         8-ой      данные готовы (BIOS версии 24.4.81
                                 устанавливается в случае тайм-аута)
            AL         1-ый      есть сигнал в линии
            AL         2-ой      есть вызов
            AL         3-ий      модем готов
            AL         4-ый      сигнал отбоя посылки
            AL         5-ый      есть дельта - огибающая сигнала при
                                 приеме
            AL         6-ой      есть задний фронт сигнала вызова
            AL         7-ой      есть дельта - огибающая модем
            AL         8-ой      сигнал отбоя по дельта-огибающей


     Вся  приведенная  выше  информация  предназначена  для  того,   чтобы
позволить  специалисту  по  телекоммуникации  начать  программировать  для
IBM/PC.


     11.2. Адаптер устройства печати

     Система  BIOS-ПЗУ  включает  процедуры  поддержки  для  параллельного
адаптера устройства  печати.  (Различия  параллельных  и  последовательных
адаптеров рассмотрены в предыдущем  разделе).  Эти  процедуры  проще,  чем
процедуры обслуживания связи,  поскольку  проще  само  устройство  печати.
Имеется всего три процедуры и используется только шесть бит состояния.
     Для доступа  к  этим  трем  процедурам  используется  прерывание  23,
шестнадцатиричное значение 17. Регистр DX указывается для  указания  того,
какой адаптер должен  использоваться,  когда  их  больше  чем  один;  ноль
обозначает первый (и обычно  единственный)  адаптер.  Программы  11-101  и
11-102  в  дисковом  пакете,  прилагающемся  к  этой    книге,    включают
интерфейсные подпрограммы на Ассемблере  и  вспомогательные  процедуры  на
Паскале,  необходимые  для  более  полного  использования  этих  служебных
процедур системы BIOS.
     Одна из незначительных ошибок  в  исходной  версии  системы  BIOS-ПЗУ
касается как раз обслуживания устройства печати.  Когда  команда  перевода
страницы посылается стандартному устройству печати фирмы "Эпсон",  система
BIOS отводит на выполнение этой операции  несколько  меньше  времени,  чем
фактически может потребоваться устройству. Это происходит в  тех  случаях,
когда команда перевода  страницы  выдается  вблизи  верхнего  края  старой
страницы. Во всех версиях BIOS после 24.4.1981 это время увеличено.
     Первая процедура с кодом 0, используется для пересылки  одного  байта
устройству печати. Эта процедура  очень  проста  и  о  ней  больше  нечего
сообщить.
     Вторая процедура с кодом 1, используется для сброса устройства печати
и определения  его  состояния.  Эта  процедура  может  использоваться  для
перевода устройства печати в нормальное состояние после того как ему  были
посланы какие-нибудь специальные коды управления. Информация  о  состоянии
возвращается в регистре AH,причем биты имеют следующие значения:


            Бит             Значение
            ___             ________

            1-ый         устройство печати занято
            2-ой         сигнал подтверждения
            3-ий         сигнал отсутствия бумаги
            4-ый         сигнал выборки
            5-ый         сигнал ошибки вывода
            6-ой,7-ой    не используются
            8-ой         сигнал тайм-аута (для BIOS версии 24.4.1981
                         это может оказаться ложная тревога)


     Третья и последняя процедура с кодом 2 используется для чтения  битов
состояния, описанных выше, без выполнения сброса. Эта  процедура  особенно
полезна для программ управления устройством печати.
     Вот и все,  что нужно было  сказать  об  устройстве  печати.  Это  не
слишком   сложное  устройство  и,  соответственно,  просты  процедуры  его
обслуживания.


     11.3. Интерфейс кассетного накопителя

     Очередная часть системы BIOS-ПЗУ относится  к  интерфейсу  кассетного
накопителя. Он практически никем не используется и многие, включая и меня,
не видят  других  причин  включения  его  в  состав  IBM/PC,  кроме  чисто
коньюктурных проблем сбыта. (Более подробно этот вопрос рассматривается  в
главе 2).
     Имеется всего четыре простых  служебных  процедуры  для  обслуживания
кассетного накопителя : для чтения и записи блоков данных и для  включения
и  выключения  двигателя.  Отсутствуют  команды  перемотки  кассеты:   эта
операция  должна  выполняться  вручную  с  пульта  управления    кассетным
накопителем.
     Заметим, что имеющиеся команды носят "физический" характер, и  совсем
нет "логических команд, таких как команда  поиска  файла.  Команды  такого
рода относятся скорее к уровню операционной системы, чем к уровню  системы
BIOS  -  в  конце  концов,  система  BIOS  должна  обеспечивать   наиболее
примитивный, элементарный уровень обслуживания,  на  базе  которого  могут
строиться логические процедуры более высокого  уровня.  К  сожалению,  ДОС
совершенно не поддерживает интерфейс кассетного накопителя, так что с  ним
можно работать только из Бейсика или на примитивном уровне  системы  BIOS.
Это существенно  ограничивает  возможности  тех,  кто  хотел  бы  серьезно
использовать кассетный накопитель.
     Для доступа к четырем процедурам обслуживания  кассетного  накопителя
используется  прерывание  21,  шестнадцатиричное  значение  15.  Программы
11-101 и 11-102 в дисковом пакете, прилагающемся к  этой  книге,  включают
интерфейсные подпрограммы на ассемблере  и  вспомогательные  процедуры  на
Паскале,  необходимые  для  более  полного  использования  этих  служебных
процедур системы BIOS.
     Первая процедура,   с   кодом   0,   включает   двигатель  кассетного
накопителя. Эта процедура возвращает управление немедленно, не ожидая пока
двигатель раскрутится - это необходимо учитывать.
     Вторая процедура,  скажем 1, выключает двигатель. Третья процедура, с
кодом   2,  используется  для  чтения  блоков  данных  с  кассеты.  Данные
передаются блоками по 256 байт и за один  раз  можно  считывать  несколько
блоков. Если в процессе передачи данных будет обнаружена ошибка, сообщение
об этом будет передано в регистре AH.


             Код ошибки                Значение
             __________                ________

                1       обнаружена ошибка  циклического  избыточного
                        кода (CRC)
                2       утрачены   некоторые    реквизиты     данных
Предыдущая страница Следующая страница
1 ... 38 39 40 41 42 43 44  45 46 47
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама