Жанр: Учеба

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

сторінка №20

которые
используют клавишу Iusert, например, текстовыми процессорами. Обычно. все
программы, использующие эту клавишу, сами следят за режимом вставки.
Практического значения это не имеет, но нам показалось любопытным отметить
и такой факт.
И, наконец, обратите внимание на бит состояния захвата, который
устанавливается, когда процедура обслуживания клавиатуры системы BIOS
обнаруживает комбинацию клавиши Ctrl-NumLock. Эта комбинация используется
системой BIOS для управления состоянием захвата, которое программам
обнаружить трудно, поскольку в этом состоянии программы не выполняются. В
состоянии захвата система BIOS выполняет короткий цикл, ожидая нажатия
клавиши, которое выводит систему из этого состояния. В этом состоянии
распознаются и обслуживаются все прерывания. Если прерывание поступит от
клавиатуры (при нажатии обычной клавиши), то состояние захвата
завершается, код нажатой клавиши отбрасывается и управление возвращается
той программе, которая выполнялась до установления состояния захвата. Если
прерывание имело другую природу (номер, прерывание от дисков), то оно
обслуживается, но состояние захвата сохраняется пока не будет нажата
клавиша.
Комбинация клавиш Ctrl-NumLock - это один из четырех особых случаев,
отслеживаемых процедурой системы BIOS. Когда процедура обслуживания
клавиатуры обрабатывает коды, принимаемые от клавиатуры, она постоянно
проверяет появление одной из четырех особых комбинаций, которые
обслуживаются специальным образом.
Фактически, эти четыре комбинации рассматриваются как команды, по
которым должно начинаться выполнение определенных служебных процедур. Эти
четыре комбинации: Ctrl-NumLock, PrtSc, Ctrl-Alt-Del и Ctrl-Break.
Как мы уже видели, комбинация Ctrl-NumLock используется для
приостановки работы компьютера. Процедура обслуживания клавиатуры не
позволяет компьютеру продолжать выполнение любой программы, пока
приостановка не будет отменена нажатием клавиши.
Команда распечатки экрана или PrtSc предназначена для вывода
содержимого экрана на устройство печати. Поскольку эта операция
выполняется на самом примитивном уровне, она не может использовать
возможности ДОС, такие как пересылка сообщения в линию связи вместо
устройства печати. Процедура распечатки экрана доступна и Вашим программам
на уровне прерываний, что будет показано в главе 11.
Комбинация клавиш Ctrl-Alt-Del используется для перезапуска или для
перезагрузки системы. Когда встречается такая комбинация, процедура
обслуживания клавиатуры передает управление программе проверки системы и
запуска работы операционной системы.
Эту комбинацию клавиш можно использовать в любой момент времени для
перезапуска системы, если произошло какое-либо отклонение от нормального
функционирования. Однако, как можно заметить, эта комбинация действует не
всегда. В некоторых случаях IBM/PC необходимо бывает выключить, а затем
снова включить и уже после этого пытаться ее перезапустить. Для чего это
бывает необходимо? Комбинация Ctrl-Alt-Del срабатывает всегда, когда
работает процедура обслуживания клавиатуры. Это условие может оказаться
невыполненным в двух случаях. Первый и наиболее распространенный связан с
запретом прерываний. Из главы 3 Вам должно быть известно, что прерывания
запрещаются машинной командой CLI и не обслуживаются пока не будет выдана
команда STI. Обычно команда STI следует за командой CLI через очень
короткий промежуток времени. Однако, если программа по ошибке, оставила
прерывания запрещенными, то нажатие клавиш Ctrl-Alt-Del не приведет ни к
какому результату. Другая причина нарушения работы процедуры обслуживания
клавиатуры может быть связана с изменением значения вектора прерывания от
клавиатуры. Если изменить ячейки памяти с 36 по 39, в которых находится
вектор прерывания от клавиатуры, тогда клавиатура не будет работать, в том
числе и клавиши Ctrl-Alt-Del. Естественно, что программа запуска после
включения питания восстанавливает все вектора прерываний.
Комбинация Ctrl-Break предназначена для прерывания текущей операции.
В отличие от остальных трех специальных комбинаций она может
отрабатываться программно. Прерывание номер 27, шестнадцатиричное значение
1В, зарезервировано для процедуры, которая должна вызываться при нажатии
клавиш Ctrl-Break. Если программа хочет использовать это средство, она
должна занести адрес процедуры обслуживания прерывания в ячейки вектора
прерывания 27 - ячейку с адресом 108, шестнадцатиричное значение 6С. Эту
возможность можно исследовать, нажимая клавиши Ctrl-Break при работе с
интерпретатором БЕЙСИКА или редактором Edlin, поставляемым в составе ДОС.
Если программа не устанавливает адрес процедуры обслуживания прерывания в
ячейку 108, то система BIOS совместно с ДОС прерывают выполнение текущей
программы или файла пакетной обработки. Управление возвращается ДОС.
Поскольку блок клавиатуры сообщает обо всем, что происходит с
клавишами и процедуры системы BIOS в ПЗУ интерпретируют любые действия,
выполняемые с клавиатурой, Ваша программа может следить за всеми
действиями, производимыми с клавиатурой. Программам редко требуются
какие-либо сведения помимо тех, которые сообщаются процедурами
обслуживания клавиатуры системы BIOS в ПЗУ, поэтому не обеспечена
специальная возможность, позволяющая программе определить какие в точности
действия выполнялись с клавиатурой.

Если Вам все-таки необходимо более точно знать, что происходит с
клавиатурой, Ваши программы могут подменить вектор прерываний для
клавиатуры, который расположен по адресу 36, шестнадцатиричное значение
24. Если Вы разрабатываете собственную процедуру обслуживания прерываний
от клавиатуры, то она может либо выполнять абсолютно все функции
обслуживания, либо служить пред-процессором для стандартной процедуры
системы BIOS. Предпроцессор может извлекать любую информацию, которая Вам
необходима, и передавать управление стандартной процедуре для выполнения
обычных действий.

10.3. Символьные клавиши

Коды сканирования клавиши преобразуются системой BIOS в расширенные
коды ASCII, состоящие из всех 256 возможных байтовых комбинаций, кроме
одной (байт с нулевым значением). В этот набор кодов входят обычные
символы, набор которых описывается в различных руководствах по IBM/PC. Эти
коды можно формировать либо с помощью нажатия обычных клавиш (например,
клавиши А для "А" и так далее) или путем использования клавиатуры и
клавиши Alt.
Для формирования кодов ASCII по второму методу нужно, удерживая
клавишу "Alt" в нажатом состоянии, вводить числовое значение кода ASCII.
Значение должно вводиться в десятичном виде (от 1 до 255) и можно
использовать только числовые клавиши в правой части клавиатуры (но не
числа в верхнем ряду средней части клавиатуры). При использовании клавиши
"Alt" процедуры системы BIOS работают особым образом, поскольку несколько
нажатий клавиш должны интерпретироваться как один символ. Пока нажата
клавиша "Alt" можно нажимать сколько угодно цифровых клавиш. Когда клавиша
"Alt" будет наконец освобождена, будет сформирован код символа ASCII,
соответствующий введенному числовому значению. Если ввести слишком большое
число, используется его значение по модулю 256. Например, если ввести
Alt-1000, то будет сгенерирован символ CHR$(232). Деление 1000 на 256 дает
остаток 232, поэтому и генерируется символ с кодом CHR$(232).
Единственное значение в коде ASCII, которое невозможно ввести с
клавиатуры - это нулевое значение или CHR$(0). На это имеется несколько
причин (код 0 определен в системе кодов ASCII как пустой символ, который
должен игнорироваться), однако, главная причина заключается в
использовании нуля системой BIOS для указания на наличие второго набора
символов, специальных символов. Хотя некоторые руководства по IBM/PC
указывают, что нулевой код генерируется нажатием клавиши Ctrl-2 или с
помощью клавиши "Alt", это неверно. Если удерживать клавишу "Ctrl" в
нажатом состоянии и нажать цифровую клавишу "2" будет сформирован один из
специальных символов и этот символ должен интерпретироваться как CHR$(0)
из набора кодов ASCII. Это не совсем то же самое, что формирование
действительного кода ASCII CHR$(0). Использование клавиши "Alt" тоже не
даст желаемого результата, будете ли Вы нажимать клавиши Alt-0 или
пытаться "обмануть" систему, вводя эквиваленты по модулю 256, например,
Alt-256 или Alt-512.
Специальные символы используются для обозначения специальных клавиш,
таких как "Home", "End" и десять функциональных клавиш (фактически, как Вы
скоро увидите, имеется сорок функциональных клавиш).
Специальные символы позволяют использовать специальные клавиши, такие
как функциональные клавиши, не используя ни один из 256 символов
расширенного кода ASCII.
Механизм кодирования, который система BIOS в ПЗУ использует для
указания, какой символ был введен с клавиатуры (и определение того,
обычный это символ или специальный), работает с двумя байтами. Если первый
из двух байтов не нулевой, то введен символ расширенного кода ASCII и этот
символ хранится в первом байте. Если же первый байт нулевой, то с
клавиатуры введен специальный символ и его код хранится во втором байте.
Здравый смысл подсказывает, что можно было бы использовать один бит
второго байта для обычных и специальных символов. Это было бы проще и
позволило бы вводить нулевой код ASCII.
В то время как в расширенном наборе ASCII 256 кодов (255 из них можно
ввести с клавиатуры), специальных кодов столько, сколько требуется для
выполнения всех предусмотренных клавиатурой IBM/PC функций. Например,
сорок кодов выделено для функциональных клавиш (десять обычных и еще
тридцать для трех возможных смещений - обычного и с помощью клавиш "Alt" и
"Ctrl"). Ниже приведена таблица специальных кодов и комбинаций клавиш,
которыми они вырабатываются. Вы конечно заметите определенную хаотичность
этих кодов. Некоторые комбинации с клавишей "Alt" разрешены, а другие нет,
причем без какой-либо видимой причины. То же можно сказать и о комбинациях
с клавишей "Ctrl".

Значение Клавиши, с помощью
специального которых он формируется
кода
____________ __________________________________

3 Ctrl-2 (что должно соответствовать коду
CHR$(0) или ASCII NULL)
15 обратная табуляция (shift-tab)
16-25 от Alt-a до Alt-p (верхний ряд букв)
30-38 от Alt-A до Alt-L (средний ряд букв)
44-50 от Alt-Z до Alt-M (нижний ряд букв)
59-68 от F1 до F10 (функциональные клавиши)
71 клавиша "Home" (курсор в верхний левый
угол экрана)
72 клавиша "Курсор вверх"
73 клавиша "PgUp" (страница вверх)
75 клавиша "Курсор влево"
77 клавиша "Курсор вправо"
79 клавиша "End" (конец)
80 клавиша "Курсор вниз"
81 клавиша "PgDn" (страница вниз)
82 клавиша "Ins" (вставка)
83 клавиша "Del" (удалить)
84-93 от смещение-F1 до смещение-F10 (функ-
циональные клавиши с обычным смещением)
94-103 от Ctrl-F1 до Ctrl-F10
104-113 от Alt-F1 до Alt-F10
114 Ctrl-PrtSc
115 Ctrl-Курсор влево
116 Ctrl-Курсор вправо
117 Ctrl-End
118 Ctrl-PgDn
119 Ctrl-Home
120-131 от Alt-1 до Alt-= (верхний ряд клавиш)
132 Ctrl-PgUp

Как Вы могли заметить, эта таблица не слишком регулярна. Вы,
наверное, заметили, что имеется сорок комбинаций с функциональными
клавишами - каждая из клавиш в одном из четырех смещенных состояний
(обычном, смещенном, с клавишей "Ctrl" и с клавишей "Alt").
Имея в своем распоряжении все эти коды, любая программа не будет
испытывать недостатка кодов специального назначения. Обычно, для любой
программы хватает функциональных клавиш и нескольких клавиш специального
назначения, таких как "Home" и клавиши управления курсором. Однако, если
потребуются дополнительные клавиши, Вы сможете их найти в этой таблице.
Доступ к этим специальным кодам символов требует изменения
определенных особых методов. В следующих двух разделах мы рассмотрим как
это делается.

10.4. Процедура обслуживания клавиатуры в системе BIOS

Рассмотрим теперь служебные процедуры системы BIOS, позволяющие
осуществлять доступ к клавиатуре.
Процедуры обслуживания клавиатуры в системе BIOS вызываются с помощью
прерывания номер 22, шестнадцатиричное значение 16. Таких процедур всего
три, поскольку не слишком много функций можно запросить для клавиатуры.
Первая процедура, имеющая код 0, возвращает очередной принятый от
блока клавиатуры символ. Эта процедура возвращает управление вызывающей
программе только тогда, когда будет введен символ, так что программе не
приходится проверять, был ли действительно введен символ. Код обычного
символа возвращается в регистре AL, но если содержимое AL равно нулю, то в
регистре АН находится код специального символа. Эти регистры соответствуют
первому и второму байтам, упоминавшимся выше, при рассмотрении кодов
специальных символов. Ниже описана логика процесса распознавания
получаемых символов:

если AL=0 то
начало
спец_символ:= истина;
введенный_символ:= АН
конец
иначе
начало
спец_символ:= AL
конец;

Можно сделать ряд интересных замечаний, касающихся значений,
возвращаемых этой процедурой. Если введен обычный код АSCII (то есть, AL
не равняется нулю), то в регистре АН содержится код сканирования для
нажатой клавиши. Но, если код ASCII был введен с помощью клавиши "Alt", то
в регистре АН будет ноль. Эту информацию программа может использовать для
определения способа вода символа. Некоторые символы кода ASCII встречаются
на клавиатуре IBM/PC дважды.


Приложение 10.1. Текст программы демонстрации возможностей управления
клавиатурой (Бейсик).

1000 REM Листинг 10.1 - программа отображения битов
1010 REM состояния клавиатуры
1030 GOSUB 2000 'вывод заголовка
1040 GOSUB 3000 'дополнительная информация
1050 GOSUB 4000 'отображение битов клавиатуры
1060 GOSUB 5000 'проверка завершения ввода с клавиатуры
1070 GOTO 1050

2000 REM Подпрограмма вывода заголовка
2010 KEY OFF : CLS : WIDTHS 80 : LOCATE ,,0
2020 REM
2030 LOCATE 5,1
2040 PRINT " Программы для книги 'Персональный компьютер"
2050 PRINT " фирмы ИБМ', автор Питер Нортон, 1983"
2060 PRINT
2070 PRINT "Программа 10-1: Отображение битов состояния"
2080 PRINT "клавиатуры"
2999 RETURN

3000 REM Подпрограмма отображения вспомогательной информации
3010 LOCATE 11,28
3020 PRINT "Байт 1 Байт 2";
3030 LOCATE 12,28
3040 PRINT "12345678 12345678";
3050 LOCATE 17,10
3060 PRINT "Чтобы увидеть изменение битов состояния нажмите";
3065 PRINT "и удерживайте любую из";
3070 LOCATE 18,15
3080 PRINT "-- Левую или правую клавишу смещения";
3090 LOCATE 19,15
3100 PRINT "--Ctrl,Alt,Num-Lock,Scroll-Lock,Caps-Lock,Ins";
3110 LOCATE 21,10
3120 PRINT "(обратите внимание на влияние смещения и"
3125 PRINT "Num-Lock yf клавишу Ins) ";
3130 LOCATE 24,10
3140 PRINT "Для выхода в ДОС нажмите любую клавишу ввода";
3999 RETURN

4000 REM Подпрограмма отображения битов состояния клавиатуры
4010 DEF SEG = &H40
4020 CONTROL% = PEEK(&H17)
4030 CHECK% = 128
4040 FOR I% = 1 TO 8
4050 LOCATE 14,27 + I%
4060 IF CONTROL% >= CHECK% THEN COLOR 30,0 ELSE COLOR 7,0
4070 IF CONTROL% >= CHECK% THEN PRINT "1"; ELSE PRINT "0";
4080 IF CONTROL% >= CHECK% THEN CONTROL% = CONTROL%-CHECK%
4090 CHECK% = CHECK / 2
4100 NEXT I%
4110 CONTROL% = PEEK(&H18)
4120 CHECK% = 128
4130 FOR I% = 1 TO 8
4140 LOCATE 14,36 + I%
4150 IF CONTROL% >= CHECK% THEN COLOR 30,0 ELSE COLOR 7,0
4160 IF CONTROL% >= CHECK% THEN PRINT "1" ELSE PRINT "0"
4170 IF CONTROL% >= CHECK% THEN CONTROL% = CONTROL%-CHECK%
4180 CHECK% = CHECK% / 2
4190 NEXT I%
4999 RETURN

5000 REM Подпрограмма ожидания завершения работы
5010 K$ = INKEY$
5020 IF LEN(K$) = 0 THEN RETURN 'ожидание ввода с клавиатуры
5030 IF (LEN(K$) = 2) AND (CHR$(82) = MID(K$,2,1)) THEN
5035 RETURN 'Нажата клавиша Ins
5040 CLS : LOCATE ,,1
5999 SYSTEM

9999 REM Конец программы 10-1

Посмотри в окно!

Чтобы сохранить великий дар природы — зрение, врачи рекомендуют читать непрерывно не более 45–50 минут, а потом делать перерыв для ослабления мышц глаза. В перерывах между чтением полезны гимнастические упражнения: переключение зрения с ближней точки на более дальнюю.

ГЛАВА 11. ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА - АДАПТЕР СВЯЗИ, ДИНАМИК И ПРОЧЕЕ


В этой главе мы рассмотрим дополнительные средства, представляемые
IBM/PC, некоторые их низ более сложны, другие менее сложны, но все
сложности не таковы не таковы, чтобы посвящать каждому из этих средств
самостоятельную главу. Здесь мы рассмотрим устройство печати, асинхронный
адаптер связи, интерфейс накопителя на кассетной магнитной ленте, динамик
и ряд полезных сведений о системе BIOS в ПЗУ.

11.1. Асинхронный адаптер связи

Асинхронный адаптер связи позволяет IBM/PC общаться с внешним миром с
помощью стандартного метода, известного под названием RS-232. В
персональных компьютерах адаптер RS-232 обычно используется для двух
целей.
Первая цель использования RS-232 собственно для связи, по телефонным
линиям. При этом адаптер RS-232 подключается к модему (или
модулятору-демодулятору), который выполняет преобразование сигналов
компьютера в телефонные сигналы. Модем, в свою очередь, подключается к
телефонной линии. На другом конце линии должен находиться другой модем,
который может быть подключен к чему-нибудь. Это может быть все что угодно,
от универсального компьютера до другого персонального компьютера или
какого-либо простого устройства, например, устройства печати. Это, нужно
сказать, и является нормальным использованием адаптера связи.
Другой способ использования RS-232 значительно проще. Некоторые
устройства вывода разработаны в соответствии с протоколом взаимодействия
RS-232. Наиболее часто это относится к устройствам печати, особенно
посимвольным устройствам. Таким образом, адаптер связи IBM/PC может
использоваться просто в качестве дополнительного средства взаимодействия с
периферийным оборудованием, таким как устройство печати.
Сделаем небольшое отступление и рассмотрим два основных способа
взаимодействия персональных компьютеров, в том числе IBM/PC, с
периферийным оборудованием. Эти два способа кратко называют
последовательным и параллельным. Протокол RS-232 является
"последовательным", поскольку данные передаются по одной линии и биты
данных посылаются последовательно, по одному. Параллельная связь реализует
другую схему взаимодействия, которая по названию популярных устройств
печати фирмы "Центроникс", получила название параллельного интерфейса типа
"Центроникс" или, для краткости, просто параллельного интерфейса. При
параллельном взаимодействии данные передаются побайтно и этот интерфейс
включает столько линий связи, сколько необходимо чтобы передавать все эти
биты одновременно.
Параллельный интерфейс приспособлен для непосредственной связи
компьютера с внешними устройствами, в частности, что данные могут
передаваться быстрее, поскольку за один цикл передачи пересылается сразу
целый байт. Параллельный интерфейс типа "Центроникс" используется в
качестве стандартного адаптера связи с устройством печати в IBM/PC.
Последовательный интерфейс работает медленнее, однако, он имеет ряд
специальных возможностей для организации взаимодействия с удаленными
объектами. Все эти возможности не нужны при локальном использовании
последовательного интерфейса, для взаимодействия с устройством печати.
Однако, это может оказаться удобным способом организации связи между
компьютером и устройством печати, в частности, еще и потому что многие
персональные компьютеры предыдущего поколения не имели параллельного
интерфейса.
Осуществление связи с удаленным абонентом может оказаться очень
сложной задачей, поскольку может возникнуть множество различных неполадок,
требуется контроль многочисленных ошибок и необходимо работать с
разнообразным оборудованием, подключенным к линии. Однако, служебные
процедуры, входящие в систему BIOS IBM/PC для обслуживания адаптера RS-232
достаточно просты и удобны в использовании.
Имеется всего четыре служебных процедуры для связи и все они
вызываются с помощью прерывания 20, шестнадцатиричное значение 14: регистр
DX используется для указания того, какой адаптер связи должен быть
использован, если их больше одного; нулевое значение соответствует первому
(и, обычно, единственному) адаптеру. Программы 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 устанавливаются следу

Список сторінок

Поділитися у соцмережах

☏ Замовлення реклами: +3805044-68-872

© Асоціація електронних бібліотек України

☝ Усі матеріали сайту (зокрема статті, зображення, рекламні оголошення тощо) призначені лише для попереднього ознайомлення. Усі права на публікації, представлені на сайті, належать їхнім законним власникам. Просимо Вас не зберігати копії інформації.