             ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ

      Кафедра вычислительной техники и программирования

        МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ

        по дисциплине "Периферийные устройства ЭВМ"

                      Тема работы :

        МАНИПУЛЯТОР "МЫШКА" И КОМУНИКАЦИОННЫЙ ПОРТ ПЭВМ

                      преподаватель доц. Червонный С.И.

    Цель работы : изучение принципа работы,принципа  связи с ПЭВМ
манипулятора "мышка" через комуникационный порт и  функций  прог-
раммы-драйвера "мышки".
    Эксперименты с оборудованием предлагается проводить с исполь-
зованием среды Форт-системы "Астрофорт",с которой студенты должны
быть ознакомлены с предыдущих лабораторных работ.

   1.   НАЗНАЧЕНИЕ МАНИПУЛЯТОРА "МЫШКА"

    Основное  назначение  манипулятора - целеуказание  на  экране
дисплея. Потребность  возникает во многих  случаях  автоматизации
проектно-конструкторских работ,при использовании программ для ре-
дактирования изображений (графические редакторы), в игровых прог-
раммах и т.д.В перечислении приборов,которые созданы для графиче-
ского ввода (световое перо,джойстик,трекбол,планшет и др.)манипу-
лятор "мышка" занимает особое место благодаря преимуществам. Этот
прибор наименьший по размерам, удобный и недорогой,а типовая чув-
ствительность датчика  перемещения (200 микки на дюйм) достаточна
для многих приспособлений.Микки - наименьшее расстояние на площа-
ди, которое  может быть зарегистрировано при перемещении "мышки";
название пошло от имени известного персонажа американских  мульт-
фильмов Mickey Mouse.Курсор,управляемогоодимый мышкой, можно пер-
еместить в какое-либо место экрана  дисплея намного  быстрее, чем
это можно  сделать с  помощью  клавиатуры. Современные черты этот
прибор накапливал на протяжении 20 лет развития,поэтому некоторое
знакомство с принципом  действия и организацией  связи с ПЭВМ и с
программой пользователя считаем не лишним.

   2.   ПРИНЦИП ДЕЙСТВИЯ МАНИПУЛЯТОРА "МЫШКА"

    Наиболее часто используется принцип  действия,который основан
на использовании оптико-механических  преобразователей  кругового
движения в поток  электрических импульсов. Перемещение "мышки" по
поверхности стола в определенном направлении приводит к круговому
движению металического шара,который часто выходит за пределы ниж-
ней поверхности  корпуса. Поверхность круга имеет специальное по-
крытие,которое уменьшает возможность прослизання шара при переме-
щении,касается двух валов с взаимно перпендикулярными осями. Кру-
говое движение шара приводит к обороту валов с разложением  общей
скорости движения на две составные части с направлениями  вправо-
влево и вперед-назад.На каждом вале расположен диск с отворами на
краю.Считывание  наличия  отверсия производится  оптоэлектронными
приборами (светодиоды,фотодиоды), из полученных сигналов формиру-
ются  электрические  импульсы, которые возникают через расстояние
движения,которое равно микки.Также есть возможность узнать напра-
вление  движения вдоль оси. Импульсов  отсчета микки и показателя
направления движения достаточно для подсчета чисел,которые служат
относительными координатами поточного расположения "мышки". Коор-
динаты относительные в том смысле,что подсчитаны относительно по-
зиции "мышки",в которой она была во время предыдущей передачи ин-
формации в ПЭВМ. Такое определение  координат целизообразно, т.к.
позволяет уменьшить  поток  данных от  "мышки" в ПЭВМ.У "мышек" с
повышенной чувствительностью датчикка перемещения ( 600 микки  на
дюйм) поток данных в ПЭВМ повышенный,что усложнило аппаратуру ( в
ПЭВМ включают  специальную  платину ) и  привело  к использованию
специального  интерфейса  для  связи  "мышки"  с ПЭВМ ( Microsoft
Inport и IBM PS/2 pointing device port). Но в большинстве случаев
для подключения  "мышки" к  ПЭВМ  используют комуникационный порт
ПЭВМ.Поэтому электронные схемы "мышки" выполняют
 - подсчет координат,
 - подсчет скорости перемещения по отдельным координатам,
 - определение нажатий или отпусканий клавиш,
 - формирование сообщений для ПЭВМ и их передача через  комуника-
   ционный порт.
    Определение скорости (трехклавишная "мышка" Genius-MS) позво-
ляет при обработке сообщений от "мышки" воспользоваться экстрапо-
ляцией для определения будущего  расположения  курсора, что важно
при быстрых перемещениях "мышки", или с той же целью, когда  ско-
рость "мышки" превзойдет определенный уровень, менять вдвое отно-
шение пиксель/микки при отображении движений курсора на экране.
    Небольшие размеры "мышки" и значительное  количество  функций
привели производителей к разработке специальных микросхем для по-
строения  манипуляторов (TMP80C48AP-6-0216  GENIUS-MS, JAPAN  или
SC88715DV MICROSOFT USA).
    Электропитание "мышки" обеспечивается  иногда с помощью галь-
ванических батарей.Такие "мышки" не имеют "хвостов", т.к. связь с
ПЭВМ у них через радиоканал. Но намного дешевле "хвостатые" "мыш-
ки", электропитание которых осуществляется через линии интерфейса
комуникационного порта (RS-232). Основные разновидности "мышек" -
это  двухклавишная  Microsoft  Mouse и трехклавишная Mouse System
Mouse. Трехклавишная "мышка"может эмулировать двухклавишную (т.е.
иметь такой же состав сообщений).Для изменения режима следует во-
спользоваться переключателем на корпусе "мышки" или включать эле-
ктропитание,нажимая клавишу "мышки".

   3.   КОМУНИКАЦИОННЫЙ ПОРТ ПЭВМ И ИНТЕРФЕЙС RS-232

    Использование комуникационного порта ПЭВМ для  подключения ма-
нипулятора "мышка" в конечном счете основано на  использовании ли-
ний интерфейса RS-232 и одного из нескольких  вариантов  протокола
обмена. Интерфейс RS-232, сделанный для объединения програмноруко-
водимого прибора вычислительной  техники (Data Terminal) с аппара-
турой передачи данных по линиям связи, с модулятором-демодулятором
(Data Set), получил широкое  использование для  объединения  также
ПЭВМ с периферийными  устройствами и с другими ПЭВМ. Временами это
сопровождается некоторыми нарушениями стандарта, но и в таком виде
связь привлекает  уменьшением  затрат в сравнении  с параллельным.
Рассмотрим некоторые  типовые случаи использования линий интерфей-
са для объединения  устройств ЭВМ. Схема, которая  илюстрирует ис-
пользование комуникационного порта и  интерфейса  RS-232, показана
на рис.1.

    ┌─────────────────────┐               ┌──────────────────┐
    │ ПЭВМ                │   Интерфейс   │   ПЕРИФЕРИЙНОЕ   │
    │                     │     RS-232    │                  │
    │   ┌─────────────────┤       |       │    УСТРОЙСТВО    │
    │   │ Контроллер      │══════════════>│                  │
    │   │ комуникационного│       |       │      ЭВМ ИЛИ     │
    │   │ порта           │<══════════════│                  │
    │   └─────────────────┤       |       │       МОДЕМ      │
    │                     │       |       │                  │
    └─────────────────────┘               └──────────────────┘
                                рис.1.

    Для соединений исползуется 25-контактный электрический соеди-
нитель согласно стандарту RS-232. Для связи  ПЭВМ с  периферийным
устройством достаточно 9 или 10 линий, поэтому иногда  используют
9-контактный соединитель.
    СОКРАЩЕННЫЕ НАЗВАНИЯ ЛИНИЙ интерфейса RS-232 и их обозначения
даны в таблице 1. Предупреждаем,что названия линий даны с позиции
устройства Data Terminal  и что одна и та же линия или сигнал мо-
жет иметь разные названия в зависимости от того, с позиции какого
устройства они даны.
                                               Таблица 1.

 ┌─────┬──────────────┬───────────┬─────────────────────────────┐
 │  №  │   Название   │ Направле- │      Функция                │
 │конт.│   сигнала    │    ние    │                             │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  1. │ GND (Ground) │    ---    │ Защитная земля.Корпус       │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  2. │TxD (Transmit │   Выход   │ Передача дальше,последова-  │
 │     │Data)         │           │ тельный код,"1"-уровень -15В│
 │     │              │           │             "0"-уровень +15В│
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  3. │ RxD (Receive │   Вход    │ Данные,которые принимаются, │
 │     │ Data)        │           │ последовательный код        │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  4. │ RTS (Request │   Выход   │ Запрос абоненту (Data Set)  │
 │     │ to Send)     │           │ насчет возможности переда-  │
 │     │              │           │ вать ему данные             │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  5. │ CTS (Clear   │   Вход    │ Ответ абонента с разрешени- │
 │     │ to Send)     │           │ ем передавать данные        │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  6. │ DSR (Data    │   Вход    │ Готовность абонента,предыду-│
 │     │ Set Ready)   │           │ щее условие для каких-либо  │
 │     │              │           │ действий,которые касаются   │
 │     │              │           │ абонента                    │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  7. │ SG (Signal   │    ---    │ Сигнальная земля,общий про- │
 │     │ Ground)      │           │ вод                         │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │  8. │ DCD (Data    │   Вход    │ Абонент,если он является ус-│
 │     │ Carrier      │           │ тройством модуляции-демоду- │
 │     │ Detected)    │           │ ляции,оповещает,что с линии │
 │     │              │           │ связи с удаленным устройст- │
 │     │              │           │ вом идет сигнал гармониче-  │
 │     │              │           │ ских колебаний - носитель   │
 │     │              │           │ данных.Т.е.связь есть       │
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │ 20. │ DTR (Data    │   Выход   │ Готовность терминального    │
 │     │ Terminal     │           │ устройства (возможно ЭВМ) к │
 │     │ Ready)       │           │ обмену с абонентом,предыды- │
 │     │              │           │ дущее условие взаимодействий│
 ├─────┼──────────────┼───────────┼─────────────────────────────┤
 │ 22. │ RI (Ring     │   Вход    │ Сигнал оповещает терминаль- │
 │     │ Indicator)   │           │ ное устройство,что с удален-│
 │     │              │           │ ного устройства идет сигнал │
 │     │              │           │ тонального вызова (звонок)  │
 └─────┴──────────────┴───────────┴─────────────────────────────┘

    Рассмотрим некоторые примеры использования  линий  интерфейса
RS-232 для соединения устройств  ПЭВМ без  использования  модемов
(нуль-модемная связь).

    Схема            Приведенную схему соединений 1 линий  интер-
 соединений 1     фейса  используют  с полудуплексным  протоколом
ПЭВМ-1  ПЭВМ-2    связи.Назначение сигналов и линий соответствует
 GND ---- GND     тому, который приведен в таблице 1, кроме линий
 SG  ----  SG     RTS и CTS.Инициатор передачи (им может быть ка-
 TxD ---> RxD     ждая из ПЭВМ) устанавливает у себя RTS=1 и,ког-
 RxD <--- TxD     да имеет на своей линии ответ CTS=0,может пере-
 RTS ---> CTS     давать данные по своей линии TxD. Все остальные
 CTS <--- RTS     линии удерживаются в состоянии "1".Линии,отсут-
 DTR ---> DSR     ствующие на схеме,не используются.
 DSR <--- DTR

    Схема            Схему соединений 2 линий интерфейса  исполь-
 соединений 2     зуют с  побайтным  или  с поблочным  дуплексным
ПЭВМ    Принтер   протоколом связи. В каждом из направлений пере-
 GND --- GND      дачи  готовность приемника регулируется состоя-
 SG  ---  SG      нием линии DTR. Передатчик в каждом направлении
 TxD --> RxD      всегда имеет ответ про готовность противополож-
 RxD <-- TxD      ной стороны,т.к.порождает такой ответ сам себе.
 DTR --> CTS
 CTS <-- DTR
 RTS ┐ ┌ RTS
 DSR ┤ ├ DSR
 DCD ┘ └ DCD

    Схема            Схему соединений 3 линий интерфейса  считают
 соединений 3     достаточно экономной,т.к. она потребляет только
ПЭВМ    Принтер   3-4 линии и поэтому обеспечивает только дуплек-
 GND --- GND      сный протокол обмена с названием XON/XOFF.Кодо-
 SG  ---  SG      вая комбинация СУ1 или XON (11h) в составе дан-
 TxD --> RxD      ных от принтера позволяет  передачу  данных  от
 RxD <-- TxD      ПЭВМ, а кодовая  комбинация  СУ3 или XOFF (13h)
 RTS ┐ ┌ CTS      запрещает передачу.
 CTS ┘ └ RTS
 DTR ┐ ┌ DTR
 DSR ┤ ├ DSR
 DCD ┘ └ DCD

    Схема            Схему соединений 3 линий интерфейса  исполь-
 соединений 4     зуют только для подключения манипулятора  "мыш-
ПЭВМ    "Мышка"   ка" к ПЭВМ.Имеется симплексный протокол обмена,
 GND --- GND      во время  которого "мышка"  передает  данные  с
 SG  ---  SG      максимальной  для нее  скоростью  (1200 бод). В
 TxD --> Еж       случае типа GM-6 и некоторых других "мышка" да-
 RxD <-- TxD      же не обращает  внимания на  неготовность и от-
 RTS --> CTS      сутствие запроса со стороны ПЭВМ.Важная особен-
 DTR --> DSR      ность - линия TxD от  ПЭВМ  всегда  находится в
                  состоянии "1" и используется,как источник элек-
                  тропитания (Еж) для "мышки",поэтому уровни нуля
                  и единицы в линии TxD "мышки" ниже,чем требует-
                  ся по стандарту.
    Протоколы обмена во всех  рассмотренных  случаях  со  стороны
ПЭВМ  реализованы в соответствующих  программах-драйверах для об-
служивания внешних устройств.Программы-драйверы взаимодействуют с
комуникационными портами ПЭВМ.

   4.   ЭКСПЕРИМЕНТЫ С КОМУНИКАЦИОННЫМ ПОРТОМ И С МАНИПУЛЯТОРОМ
                      "МЫШКА"

    Эксперименты этого раздела  можно  выполнять при наличии IBM-
совместимой  ПЭВМ, манипулятора "мышка", который включен в гнездо
комуникационного порта COM1, и  отсутствующего (заблокированного)
драйвера "мышки". Про то,что эти требования выполнены,нужно спра-
виться у преподавателя  или  самостоятельно удостовериться, что в
составе файлов autoexec.bat или config.sys отсутствуют или забло-
кированы ссылки на файлы gmouse.com (возможны  другие  названия).
Для выполнения экспериментов требуется ввести в действие Форт-си-
стему и создать на диске рабочий файл для  размещения  программы.
Создать файл можно пользуясь редактором Форт-системы. Подробности
пользования редактором представлены в Приложении 1 (файл DOD1,или
позиция в меню).

    Задание 1. ОБНАРУЖЕНИЕ НАЛИЧИЯ РЕАКЦИИ "МЫШКИ" НА ДВИЖЕНИЯ

    Обнаружить наличие реакции  манипулятора на движения  можно с
помощью программы,в которой периодически проводится чтение данных
мз РЕГИСТРА ДАННЫХ  комуникационного  порта и вывод  тех чисел на
экран.Текст программы дан ниже. Его следует перенести в ваш рабо-
чий файл, провести  компиляцию  и выполнить словарную статью 1MS.
Имеет место беспрерывный вывод чисел на экран.Перемещения "мышки"
должны привести к изменениям в потоке  чисел на экране. Задержать
картинку на экране можно,нажимая клавишу Pause; выход из програм-
мы - нажатием CTRL-Pause.

    HEX : 1MS    ( установлена 16-ная система счисления для     )
                 ( ввода чисел и начат текст статьи 1MS         )
    BEGIN        ( начат бесконечный цикл                       )
    3F8 PC@      ( чтение в стек байта из порта с адресом 3F8h  )
    .            ( вывод числа на экран                         )
    AGAIN ;      ( закончен бесконечный цикл и текст статьи     )
    DECIMAL      ( возврат десятичной системы счисления         )

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

    Задание 2. ЧТЕНИЕ ДАННЫХ,КОТОРЫЕ ПОСЫЛАЕТ  МАНИПУЛЯТОР, С УС-
               ЛОВИЕМ ГОТОВНОСТИ ПРИЕМНИКА КОМУНИКАЦИОННОГО ПОРТА

    В предыдущем эксперименте числа из регистра данных  комуника-
ционного порта были выведены на экран независимо от того,имела ли
место готовность приемника,т.е.было ли новым очередное число. Мо-
дификация предыдущей  программы  позволит выводить на экран числа
от "мышки" каждое один  раз. Это  позволит  установить количество
байтов в сообщении после нажатий клавиш или движений "мышки". Про
готовность байта данных в приемнике  можно  узнать по  содержанию
РЕГИСТРА СОСТОЯНИЯ ЛИНИИ (3FDh) комуникационного порта.
    Назначение отдельных битов байта состояния линии дано в  таб-
лице 2.
                                               Таблица 2.

  ┌──────┬──────────────────────────────────────────────────┐
  │№ бита│                 Назначение                       │
  ├──────┼──────────────────────────────────────────────────┤
  │  0   │ "1" - готовность данных в приемнике.После чтения │
  │      │ байта из регистра данных приемника  бит  получит │
  │      │ значение "0".                                    │
  ├──────┼──────────────────────────────────────────────────┤
  │  1   │ "1" - переполнение.Предыдущий байт потерян.      │
  ├──────┼──────────────────────────────────────────────────┤
  │  2   │ "1" - ошибка паритета. Он  получит  значение "0" │
  │      │ после чтения байта состояния линии.              │
  ├──────┼──────────────────────────────────────────────────┤
  │  3   │ "1" - ошибка кадра. Нечеткий стоп-бит, нарушение │
  │      │ синхронизации.                                   │
  ├──────┼──────────────────────────────────────────────────┤
  │  4   │ "1" - получен длинный ряд единиц,это значит, что │
  │      │ абонент посылает запрос конца передачи.          │
  ├──────┼──────────────────────────────────────────────────┤
  │  5   │ "1" - регистр передатчика свободный, можно посы- │
  │      │ лать в регистр данные для передачи.              │
  ├──────┼──────────────────────────────────────────────────┤
  │  6   │ "1" - передатчик не занят передачей.             │
  ├──────┼──────────────────────────────────────────────────┤
  │  7   │ "0" - всегда, если  контроллер  комуникационного │
  │      │ порта связан с ПЭВМ.                             │
  └──────┴──────────────────────────────────────────────────┘

    Анализ готовности данных приемника - это анализ наличия  зна-
чения "1" в  бите с номером 0 байта  состояния  линии. Предлагаем
текст словарной статьи 2S,которая во время выполнения в бесконеч-
ном цикле анализирует готовность данных приемника  и  заканчивает
работу при условии готовности данных приемника.

    HEX : 2S
    BEGIN              ( начало текста бесконечного цикла       )
    3FD PC@            ( чтение в стек байта состояния линии из )
                       ( порта с адресом 3FD                    )
    1 AND              ( выделение в байте бита с номером 0     )
    1 = IF EXIT THEN   ( анализ наличия "1" и выход из цикла    )
    AGAIN ; DECIMAL    ( закончен бесконечный цикл и текст      )

    Тестирование словарной статьи можно провести с помощью текста

    HEX 3F8 PC@ 2S DECIMAL

При интерпретации этого текста система находится в состоянии ожи-
дания готовности,пока вы не подвигаете "мышку",после чего возник-
нет признак завешения работы статьи - "ok".
    Используйте словарную статью 2S для модификации созданной ра-
нее статьи 1MS. Создайте новую статью 2MS из текста  статьи  1MS.
Пользуясь словарной статьей 2MS,определите количество чисел,кото-
рое посылает "мышка" в каждом сообщении и зарегистрируйте  состав
сообщений при нажатии и отпускании клавиши 1 (расположена слева).
Если в составе сообщений не 5,а 6 или больше чисел и числа превы-
шают 80h, может возникнуть подозрение,что скорость и состав кадра
(формата) у передатчика и приемника разные.Необходимо констатиро-
вать наличие неисправностей,если они есть.

    Задание 3. ИНИЦИАЛИЗАЦИЯ КОМУНИКАЦИОННОГО ПОРТА

    Известно,что "мышка передает данные с таким описанием  после-
довательного протокола :
  --  скорость                - 1200 бод,
  --  длина данны             - 8 бит,(7 бит у двухклавишной),
  --  контроль по паритету    - отсутствует,
  --  количество стоп-битов   - 1.
Описание протокола,который устанавливается при подключении элект-
ро питания ПЭВМ, если отсутствует драйвер "мышки", не совпадает с
приведенным выше,поэтому требуется инициализация комуникационного
порта с целью установления требуемого протокола.Для инициализации
требуется установить определенные значения битов в РЕГИСТРЕ УПРА-
ВЛЕНИЯ  ЛИНИИ и в РЕГИСТРЕ  ДЕЛИТЕЛЯ. Запись в регистр управления
линии происходит через порт с адресом 3FB.Значения битов РЕГИСТРА
УПРАВЛЕНИЯ ЛИНИИ (3FDh) дано в таблице 3.
                                               Таблица 3.

  ┌──────┬──────────────────────────────────────────────────┐
  │№ бита│                 Назначение                       │
  ├──────┼──────────────────────────────────────────────────┤
  │ 1-0  │ длина байта : "00" - 5 бит,"01" - 6 бит,"10" - 7 │
  │      │ бит,"11" - 8 бит.                                │
  ├──────┼──────────────────────────────────────────────────┤
  │  2   │ количество стоп-битов : "0" - 1, "1" - 1.5, если │
  │      │ длина байта равна 5 битам,иначе - 2.             │
  ├──────┼──────────────────────────────────────────────────┤
  │  3   │ наличие контроля по  паритету : "1" - бит  есть, │
  │      │ "0" - бита контроля нет.                         │
  ├──────┼──────────────────────────────────────────────────┤
  │  4   │ тип контроля по паритету : "0" - непарность,"1"- │
  │      │ парность.                                        │
  ├──────┼──────────────────────────────────────────────────┤
  │  5   │ установка фиксированного значения бита  контроля │
  │      │ по паритету : "0" - отменить установку,"1" - ус- │
  │      │ тановить "0", если бит 3 и бит 4 имеют  значение │
  │      │ "1",или отменить бит контроля,когда бит 3 = "0". │
  ├──────┼──────────────────────────────────────────────────┤
  │  6   │ "1" - установка  передачи   безпрерывной  строки │
  │      │ единиц, используют с целью проверки оборудования │
  │      │ или как объявление перерыва.                     │
  ├──────┼──────────────────────────────────────────────────┤
  │  7   │ "1" - позволяет через порты с адресами 3F8 и 3F9 │
  │      │ делать запись младшего и старшего  байтов в  РЕ- │
  │      │ ГИСТР ДЕЛИТЕЛЯ, иначе - обыкновенная работа пор- │
  │      │ тов с адресами 3F8 и 3F9.                        │
  └──────┴──────────────────────────────────────────────────┘

    Потоковое состояние РЕГИСТРА СОСТОЯНИЯ ЛИНИИ можно вывести на
экран с помощью текста

    HEX 3FB PC@ . DECIMAL

    Выполните предложенные статьи и запишите в рабочий файл пара-
метры протокола обмена, которые  устанавливаются при  подключении
электропитания ПЭВМ.
    Скорость передачи данных зависит от частоты генератора  коле-
баний (входит в состав  контроллера  комуникационного  порта, f =
115.2 Кгц) и коэффициента деления, который нужно установить в РЕ-
ГИСТРЕ ДЕЛИТЕЛЯ. Чтобы получить скорость передачи 1200 бод  нужно
иметь делитель 96.Данный ниже текст с коментариями позволяет про-
вести требуемую инициализацию комуникационного порта  исполнением
словарной статьи INIT.

    HEX 80 3FB PC|   ( в РЕГИСТР СОСТОЯНИЯ ЛИНИИ сделана запись )
                     ( числа, которое имеет "1" разряды с номе- )
                     ( ром 7                                    )
    0 3F9 PC|        ( сделана запись нуля в старший байт РЕГИ- )
                     ( СТРА ДЕЛИТЕЛЯ                            )
    60 3F8 PC|       ( сделана запись числа 60h = 96d в младший )
                     ( байт РЕГИСТРА ДЕЛИТЕЛЯ,это даст скорость )
                     ( передачи 1200 бод                        )
    3 3FB PC|        ( сделана запись числа 3 в РЕГИСТР СОСТОЯ- )
                     ( НИЯ ЛИНИИ,которое устанавливает длину    )
                     ( байта данных 8 бит,один стоп-бит и отсу- )
    DECIMAL          ( тствие контроля по паритету              )

    Исполните данный  текст, после этого воспользуйтесь словарной
статьей  2MS и  констатируйте  неизменное количество (5) байтов в
сообщениях от "мышки" независимо от направления движения.
    Оформите приведенный  выше  текст в виде  словарной  статьи с
именем INM и используйте ее  для  инициализации  комуникационного
порта в дальнейшей работе.

    Задание 4. УПРАВЛЕНИЕ ПОТОКОМ ДАННЫХ ОТ "МЫШКИ"

    При перемещениях и нажатии или отжатии клавиш "мышка" посыла-
ет в ПЭВМ сообщение из 5 (3) байтов.Программы,которые обрабатыва-
ют отдельные байты во время работы должны запрещать "мышке" пере-
давать  данные, т.е. устройство должно задерживать данные в своей
буферной  памяти до тех пор, пока приемник не даст разрешение  на
передачу очередного байта.Это конкретные условия обмена.Определим,
задерживает ли передачу данных от "мышки" смена  состояния  линий
интерфейса DTR и RTS,которые идут от контроллера.Установка состо-
яния линий DTR и RTS может быть путем записи соответствующих  чи-
сел в РЕГИСТР УПРАВЛЕНИЯ МОДЕМОМ через порт с адресом 3FCh.Значе-
ние отдельных разрядов РЕГИСТРА  УПРАВЛЕНИЯ  МОДЕМОМ (3FCh) пред-
ставлено в таблице 4.
                                               Таблица 4.

  ┌────────┬────────────────────────────────────────────────┐
  │ № бита │         Назначение                             │
  ├────────┼────────────────────────────────────────────────┤
  │   0    │ Определяет состояние DTR                       │
  │   1    │ Определяет состояние RTS                       │
  │   2    │ Определяет состояние дополнительной линии OUT1 │
  │   3    │ Определяет состояние дополнительной линии OUT2 │
  │        │ Назначение дополнительных линий определяет     │
  │        │ пользователь                                   │
  │   4    │ "1" активизирует токовую петлю для диагностики │
  │  5-7   │ Должны быть нули                               │
  └────────┴────────────────────────────────────────────────┘

    Определите,влияет ли на поток  данных от "мышки", за  которым
можно следить с помощью словарной статьи 2MS,выполнение текста

    HEX 0 3FC PC| DECIMAL     ( Установка DTR=0,RTS=0       ) или
    HEX 1 3FC PC| DECIMAL     ( Установка DTR=1,RTS=0       ) или
    HEX 2 3FC PC| DECIMAL     ( Установка DTR=0,RTS=1       ) или
    HEX 3 3FC PC| DECIMAL     ( Установка DTR=1,RTS=1       ) .

    Запишите  результаты  наблюдений в рабочий  файл и определите
время,которое мы имеем на обработку очередного  байта  от "мышки"
без возникновения переполнения  приемника. Результаты  запишите в
рабочий файл.Жаль,но "мышка" несколько необыкновенное устройство,
т.к. не дает в интерфейс никакой служебной  информации, проверить
содержание которой можно путем чтения байта из РЕГИСТРА СОСТОЯНИЯ
МОДЕМА. Это возможно через порт с адресом 3FE. Значение отдельных
битов байта состояния модема дано в таблице 5.

                                       Таблица 5.

          ┌────────┬──────────────────────────────────┐
          │ № бита │         Назначение               │
          ├────────┼──────────────────────────────────┤
          │   0    │ "1" - были изменения в линии CTS │
          │   1    │ "1" - были изменения в линии DSR │
          │   2    │ "1" - были изменения в линии RI  │
          │   3    │ "1" - были изменения в линии DCD │
          │   4    │ состояние линии CTS              │
          │   5    │ состояние линии DSR              │
          │   6    │ состояние линии RI               │
          │   7    │ состояние линии DCD              │
          └────────┴──────────────────────────────────┘

    Вывести на экран число, которое отображает СОСТОЯНИЕ  МОДЕМА,
можно с помощью текста

    HEX 3FE PC@ . DECIMAL

    Исполните  предложенный текст и определите, какое  логическое
значение ("0" или "1") получают сигналы в интерфейсе RS-232, если
линии, которые их  передают, отсутствуют. Заметьте выводы в рабо-
чем файле.
