Немига/SysDesc

Материал из Emuverse
                  Н Е М И Г А   в. 4.05 - 4.06

   Техническое   описание   программно-доступных   регистров
   ПК588, ПК588-01, необходимое для системного программиста.

                           Содержание

        01.00 Системный терминал
        02.00 Драйвер экрана
        02.01 .. Управляющие коды драйвера экрана
        02.02 .. Некоторые служебные ячейки драйвера экрана
        03.00 Работа с графическим экраном
        03.01 .. Доступ к графическому экрану
        03.02 .. Графические процедуры, доступ к  которым  имеет
                 пользователь
        04.00 Служебные процедуры, доступ к которым имеет  поль-
              зователь
        05.00 Звукоформирующее устройство
        06.00 Контроллер дисковода
        07.00 Адаптер локальной сети
        07.01 .. Общие положения
        07.02 .. Форматы сообщений
        07.03 Организация обмена по сети
        07.04 .... Организация программного опроса сети
        07.05 .... Организация аппаратного опроса сети
        07.06 .... Организация приема/передачи данных (программ)
                   по сети



                    01.00 Системный терминал

        Регистры системного  терминала  полностью  соответствуют
стандартным для машин линии DEC. Бит 7 регистров состояния явля-
ется битом готовности, а бит 6 - разрешение работы  по  прерыва-
нию.
        В связи с тем, что все эти регистры  моделируются  прог-
раммно, вывод на системный терминал для ускорения  можно  прово-
дить, не анализируя бит готовности.

        KBS  -   177560         регистр состояния клавиатуры
        KBD  -   177562         регистр данных клавиатуры
        TTS  -   177564         регистр состояния дисплея
        TTD  -   177566         регистр данных дисплея


                      02.00 Драйвер экрана

            02.01 .. Управляющие коды драйвера экрана

        Системный терминал может работать в двух режимах :
в режиме "Немига" и режиме "VT-52",  которые  отличаются  кодами
клавиатуры и управляющими кодами драйвера экрана.

                         Режим "Немига"
        4 регистра :  РУС-LAT-НР-ВР   кодировка КОИ-8

 Код :                       Функция :
 ---------------------------------------------------------------
 00     -       не используется
 01     -       вклучить/выключить сдвиг экрана
 02     -       инверсия байта на 2/3 яркости
 03     -       инверсия байта на 1/3 яркости
 04     -       гашение  байта на 2/3 яркости
 05     -       гашение  байта на 1/3 яркости
 06     -       сброс функций, управляемых кодами 02-05,30
 07     -       звук
 10     -       возврат на шаг, в крайней левой позиции сохра-
                няется
 11     -       горизонтальная табуляция (8,16,24,32,
                                         40,48,56,64)
 12     -       перевод строки; курсор на строку вниз. Если была
                последняя строка : при выключенном сдвиге  -  на
                первую строку, в противном случае  сдвиг  экрана
                вверх. Позиция в строке сохраняется.
 13     -       очистить строку от позиции курсора
 14     -       перевод формата, очистка экрана; служебная стро-
                ка сохраняется
 15     -       ВК - курсор в левую позицию
 16     -       не используется
 17     -       не используется
 20     -       прямая адресация курсора; следующие два байта :
                N строки+40, N позиции+40
 21     -       очистка экрана; очищается весь экран, включая
                служебную строку
 22     -       курсор вверх 1; в верхней строке не выполняется
 23     -       опустить; курсор опускается на 1 линию,в послед-
                ней строке игнорируется
 24     -       поднять; курсор поднимается на 1 линию,в верхней
                строке не выполняется
 25     -       начало; установка курсора в первую позицию пер-
                вой строки экрана
 26     -       курсор вниз 1; в нижней строке игнорируется
 27     -       VT-52; переход в режим VT-52
 30     -       погасить/включить курсор
 31     -       курсор вправо; в крайней правой позиции игнори-
                руется
 32     -       курсор влево; в крайней левой позиции игнори-
                руется
 33     -       включить/отключить звук подтверждения нажатия
                клавиши
 34     -       курсор вверх 2; если курсор был в верхней стро-
                ке - сдвиг текста  вниз; сдвиг  кодом 01 не уп-
                равляется
 35     -       курсор вниз 2; если курсор был в нижней  стро-
                ке - сдвиг текста вверх; сдвиг кодом 01 не уп-
                равляется
 36     -       очистка служебной строки
 37     -       очистка экрана от позиции курсора

                           Примечание
        При выводе символа вначале производится гашение символа,
 если оно задано, а затем инверсия ( если задана ). Таким  обра-
 зом гашение+инверсия имеет смысл "установки в 1". Всего возмож-
 но 12 наборов ( Одновременно подавать команды 04 и 05 не  имеет
 смысла ).
        Команда 06 переводит вывод в  исходное  состояние,  т.е.
 полная яркость без инверсии.
        При выполнении команд 23 и 24 производится смещение кур-
 сора на одну линию изображения  ( 1 строка = 10 линиям ).
        Команды влияют на выполнение сдвигов текста : курсор  не
 может быть смещен так, чтобы не оставалось достаточно места для
 прорисовки символа.

                         Режим VT-52
        2 регистра :   кодировка КОИ-7

 Код :                       Функция :
 ---------------------------------------------------------------
 07     -       звук
 10     -       возврат на шаг, в крайней левой позиции сохра-
                няется
 11     -       горизонтальная табуляция (8,16,24,32,
                                         40,48,56,64)
 12     -       перевод строки; курсор на строку вниз. Если была
                последняя строка : при выключенном сдвиге  -  на
                первую строку, в противном случае  сдвиг  экрана
                вверх. Позиция в строке сохраняется.
 14     -       перевод формата, очистка экрана; служебная стро-
                ка сохраняется
 15     -       ВК - курсор в левую позицию
 16     -       переход на русский регистр
 17     -       переход на латинский регистр
 30     -       погасить/включить курсор
 33     -       ESC; комндная последовательность
 33-131 -       N строки+40, N позиции+40; аналогично команде 20
                в режиме "Немига"
 33-100 -       переход в режим "Немига"
 33-101 -       вверх 1; "Немига"(22)
 33-102 -       вниз  1; "Немига"(26)
 33-103 -       вправо;  "Немига"(31)
 33-104 -       влево;   "Немига"(32)
 33-106 -       включить/отключить звук подтверждения нажатия
                клавиши; "Немига"(33)
 33-110 -       начало;  "Немига"(25)
 33-111 -       вверх 2; "Немига"(34)
 33-112 -       очистка экрана от позиции курсора; "Немига"(37)
 33-113 -       очистить строку от курсора;        "Немига"(13)
 36     -       очистка служебной строки

        Остальные команды и командные последовательности игнори-
 руются.
        Независимо от функций вывода ( коды 01-06 ), установлен-
 ных в режиме "Немига", в режиме VT-52 вывод всегда идет с  пол-
 ной яркостью и действует сдвиг экрана.
        Аналогично клавиатура  переходит  к  формированию  кодов
 КОИ-8 или КОИ-7 в зависимости от режима "Немига"  или  VT-52  и
 кодов или управляющих последовательностей клавиатуры.
        Формирование изображений символов производится по табли-
 це, адрес начала которой хранится в  ячейке  SYMGEN  =  177774.
 Каждый символ занимает 10 байтов. Таблица начинается с  символа
 с кодом 40. В исходном состоянии используется сокращенная  таб-
 лица символов с набором больших латинских и русских букв,  хра-
 нящаяся в ПЗУ.
                           Примечание
        На практике установка адреса начала таблицы образов сим-
 волов производится не через SYMGEN, а следующим образом :
         mov #70003,@#VADDR ; Описание ячеек смотрите в 03.01
         mov @#VDATA,R0     ; в R0 теперь адрес начала таблицы
                            ; образов символов

        02.02 .. Некоторые служебные ячейки драйвера экрана

        Драйвер экрана, зашитый в ПЗУ для своих целей использует
 следующие ячейки :
        FRG   -   177762        Маска фона для вывода символа
                                (Управляется кодами 02,03)
        COL   -   177764        Маска для гашения символа перед
                                выводом (Управляется кодами
                                02,03)
        SIZE  -   177770        Размер экрана в байтах, начиная
                                от начала ГЗУ
        CUR   -   177772        Адрес текстового курсора отно-
                                сительно начала ГЗУ



               03.00 Работа с графическим экраном

             03.01 .. Доступ к графическому экрану

        Графический и текстовый экраны в ПЭВМ "Немига"  совмеще-
 ны. Для обращения к видеопамяти  используется  режим  косвенной
 адресации. Используемые регистры :

        VADDR   -   177572     регистр адреса косвенного доступа
        VDATA   -   177570     регистр данных косвенного доступа

        Косвенный адрес начала видеопамяти VRAMBEGIN = 140000.
        Вся видеопамять состоит из 256 строк по 512 точек. Слово
 в видеопамяти соответствует 8 точкам на экране с четырьмя  гра-
 дациями яркости. Строка видеопамяти содержит 64 слова.
        Обращение к видеопамяти отличается от обычного обращения
 к ОЗУ. Прежде всего значение, записанное по  четному  адресу  и
 записанное по нечетному не одно и тоже. Таким образом  происхо-
 дит "сжатие" 32 Кб ГЗУ в 16 Кб. Это означает, что если вы хоти-
 те зажечь девятую точку в нулевой строке,  то  должны  записать
 слово, устанавливающее это слово по  адресу  140001,  а  не  по
 140002 :
        mov #140001,@#vaddr   ; установить адрес
        mov #140000,@#vdata   ; 140000=1100000000000000, т.е.
                              ; зажечь точку белого цвета

    03.02 .. Графические процедуры, доступ к  которым  имеет
                          пользователь

        В ПЗУ ПЭВМ "Немига" зашиты процедуры, реализующие следу-
 ющие графические примитивы :

     DRAW     -   160042    -    адрес  подпрограммы  рисования
                                 линии из точки с  координатами
                                 XOLD,YOLD в точку с координата-
                                 ми XNEW,YNEW. После выполнения
                                 операции XNEW=XOLD,YNEW=YOLD.
     QDRAW    -   160046    -    то  же,  что  и  DRAW,  но  для
                                 QUASIC-программ.
     FDRAW    -   160052    -    то  же,  что  и  DRAW,  но  для
                                 FORTRAN-программ.
     LINE     -   160056    -    адрес  подпрограммы  рисования
                                 линии из точки с  координатами
                                 XOLD,YOLD в точку с координата-
                                 ми XNEW,YNEW.
     QLINE    -   160062    -    то  же,  что  и  LINE,  но  для
                                 QUASIC-программ.
     FLINE    -   160066    -    то  же,  что  и  LINE,  но  для
                                 FORTRAN-программ.
     POINT    -   160072    -    адрес подпрограммы рисования
                                 точки с координатами XNEW,YNEW.
     QPOINT   -   160076    -    то  же,  что  и  POINT, но  для
                                 QUASIC-программ.
     FPOINT   -   160102    -    то  же,  что  и  POINT, но  для
                                 FORTRAN-программ.
     RPOINT   -   160106    -    адрес подпрограммы  чтения  яр-
                                 кости  точки   с   координатами
                                 XNEW,YNEW
     QRPOIN   -   160102    -    то  же,  что  и RPOINT, но  для
                                 QUASIC-программ.
     FRPOIN   -   160102    -    то  же,  что  и RPOINT, но  для
                                 FORTRAN-программ.

        При своей работе эти подпрограммы  используют  следующие
 ячейки ОЗУ :
     REV      -   000204    -    рабочий регистр
     VFORM    -   000206    -    регистр вертикального формата
     BRIGHT   -   000210    -    регистр яркости (0..3)
     XNEW     -   000212    -    регистр новой X-координаты
     YNEW     -   000214    -    регистр новой Y-координаты
     XOLD     -   000216    -    регистр старой X-координаты
     YOLD     -   000220    -    регистр старой Y-координаты

                           Примечание

     1. Описываемые подпрограммы, имена которых начинаются с Q и
 F являются аналогами ассемблеровских подпрограмм,  обращение  к
 которым производится из языков QUASIC-2 и FORTRAN соответствен-
 но.
        Точки входа программ, относящиеся к QUASIC-2 :
        jsr pc,q...
        br 1$
        .word bright,x,y,x1,y1
    1$: ...     ,
        где bright,x,y,x1,y1 - адреса фактических значений пара-
 метров.
        Точки входа программ, относящиеся к FORTRAN-4 :
        mov #tabl,r5
        jsr pc,f...
        ...
        ...
        ...
  tabl: .word bright,x,y,x1,y1

  2.    В любом случае параметры пересылаются в область 210..220
 ( за исключением яркости в RPOINT  ).  Число  параметров  может
 быть меньше требуемого количества, в  этом  случае  недостающие
 сохраняют старые значения. Программы  регистров  не  сохраняют.
 Если даны координаты, выходящие за пределы экрана, то точки вы-
 числяются, но не отображаются, а программа RPOINT выдает значе-
 ние, равное 1.
        При построении графики на экране монитора приняты следу-
 ющие соглашения :
        1) Начало координат - левый нижний угол
        2) maxX = 511, maxY = (VFORM), но меньше 255
        3) VFORM по сигналу "сброс" ( команда RESET ) принимает-
           ся равным 240

  3.    При загрузке программы .SAV содержимое ячейки VFORM = 0,
 если не принять специальных мер.
        На время обращения к экрану графические процедуры блоки-
 руют доступ к регистру косвенного адреса.

    04.00 Служебные процедуры, доступ к которым имеет  поль-
                            зователь

        В процессоре имеется специальный регистр для  запрещения
 всех специальных системных прерываний. Это регистр MODE=170006.
 Записав в него 3, можно запретить специальные системные  преры-
 вания ( системный таймер,локальная сеть, клавиатура, дисплей ).
 Для разрешения этих прерываний нужно записать в этот регистр 0.
                            Пример :
       bis #1400,@#170006       ; запретить прерывания
       ...............
       ...............
       bic #1400,@#170006       ; разрешить прерывания

 Для управления этим регистром можно воспользоваться подпрограм-
 мой MODE3 - 160016. В подпрограмме, где нужно запретить  преры-
 вания, первой командой нужно поставить
        jsr pc,mode3

 После выхода из подпрограммы прерывания будут снова разешены.
        Младший байт регистра MODE  (170006)  -  регистр  данных
 клавиатуры.

                 Использование служебной строки

        HALT-монитор содержит процедуру SYSLIN, которая позволя-
 ет делать вывод в служебную строку :
        SYSLIN = 160022
        jsr pc,syslin
        br 1$
        .word text
    1$: .....
        .....
        .....
 text:  .byte номер_позиции [0..63]
        .ascii /текст/
        .even

        Текст может включать коды 02-06, 10, 11, 16, 17, 36. Ос-
 тальные игнорируются. Коды 16 и 17 используются в режиме VT-52.
 Если текст вышел за пределы строки, вывод прекращается.  Курсор
 в служебной строке не отображается. Управляющие коды  02-06  не
 влияют на режим основного вывода. По умолчанию  действует  фун-
 кция 06.

        Имеются две подпрограммы системного  вывода  символа  на
 экран с точками входа  SYSOUT=160032  и  TT.OUT=160026,  причем
 TT.OUT работает с переключением  MODE.  Подпрограммы  сохраняют
 все регистры, выводимый символ должен быть в R0.
        Имеется подпрограмма вывода текста на  экран  (ограничи-
 тель - нулевой байт) с точкой входа PRINT=160036. Адрес первого
 байта задается в R5, используется также и R0. Программа работа-
 ет с переключением MODE.
        Имеется подпрограмма восьмеричного дампа содержимого ре-
 гистра R3 с точкой входа DUMP=160122. Подпрограмма не сохраняет
 содержимого регистров R0,R1,R3,R5. В регистре R5  должен  зада-
 ваться адрес первого байта текста,  который  ограничен  нулевым
 байтом и будет выведен после дампа регистра R3.
        Имеется подпрограмма исполнения музыкальных  эффектов  с
 точкой входа .SOUND=160126. Подпрограмма служит для запуска ис-
 полнения мелодии, закодированной определенным образом. Подпрог-
 рамма служит только для запуска мелодии, и дальше параллельно с
 выполнением программы  будет  звучать  мелодия.  В  случае  от-
 сутствия звукоформирующего  устройства  или  его  неисправности
 подпрограмма никаких действий не выполняет.
        Кодировка мелодии выполняется следующим образом :

    1. Первым должен быть байт октавы и громкости :
       Двузначное восьмеричное число
           00
           ! └! номер октавы [1..7]
           ! └  громкость [0..3]
    2. Далее следуют два байта :
       Байт с номером ноты ( бит 7=1, т.е. коды от 200 до 214 )
       Байт с длительностью ( в 1/50 долях секунды )
    3. Далее повторяются два байта, задающие ноту и ее  длитель-
       ность, а при необходимости, перед ними может стоять  байт
       октавы и громкости.
    4. Мелодия заканчивается байтом, содержащим нули в  разрядах
       0..4 и 7. Комбинация разрядов 5 и 6 определяют способ за-
       вершения мелодии :

       000      -       никаких действий не производится
       040      -       прерывание по вектору 110
       100      -       зацикливание мелодии
       140      -       очистка байта, следующего после индика-
                        тора конца мелодии

        Обращение к .SOUND производится следующим образом :

        jsr pc,.sound
        br 1$
        .word melody
    1$: ............
        ............
        ............
melody: .byte  .........  ; мелодия
        .byte  0          ; индикатор конца мелодии

               05.00 Звукоформирующее устройство

        Звукоформирующее устройство предназначено  для  создания
 звуковых эффектов. Имеет следующие управляющие регистры :

     RgStSnd    -   170020  -  регистр состояния
     RgF        -   170022  -  регистр частоты
     RgLength   -   170024  -  регистр длительности
     RgOn       -   170026  -  включение звука (обращение)
     RgOct      -   170030  -  регистр октавы и громкости
     RgOff      -   170032  -  выключение звука (обращение)

        Инициализация устройства производится записью в  RgStSnd
 кода 1516, причем разряд 1000 - означает  готовность  к  приему
 данных (окончание ноты). В RgOct заносится  двузначное  восьме-
 ричное число ( см. пункт 1 в описании .SOUND ). Для инициализа-
 ции ноты необходимо занести информацию в RgStSnd,RgF,RgLength и
 RgOct и обратиться к регистру RgOn. Для  следующей  ноты  можно
 задавать только частоту и длительность (RgF и RgLength)  и  для
 инициализации звука обратиться к RgOn.

                   06.00 Контроллер дисковода

        Контроллер дисковода предназначен для операций ввода/вы-
 вода с 80-дорожечным двухсторонним накопителем на  гибких  маг-
 нитных дисках ЕС 5323.01 и аналогичных по методу частотной  мо-
 дуляции ( ЧМ )

        Контроллер имеет следующие регистры :

        RgStat  -   177100   -   регистр состояния
                Значения RgStat :
        TrRq    -   000200   -   требование обмена    (1)
        LostD   -   000100   -   потеря данных        (1)
        OpFail  -   000040   -   прекращение операции (1)
        Tr00    -   000010   -   нулевая дорожка      (0)
        WrPrt   -   000010   -   защита от записи     (0)
        Index   -   000004   -   индексный маркер     (0)
        Reload  -   000001   -   перезагрузка ( 1 - если выклю-
                                 чен мотор  /чтение/ )
        Step    -   000001   -   шаг (1) при команде "шаг"
                                 /запись/
        Run     -   000001   -   запуск операции (1) /запись/

        RgData  -   177102   -   регистр данных
        RgCntrl -   177104   -   регистр управления
                Значения RgCntrl :
        Read    -   000000   -   чтение
        Write   -   000040   -   запись
        StBack  -   000020   -   шаг от центра
        StForm  -   000060   -   шаг к центру
        MotrOn  -   000010   -   включение мотора
        HdSel   -   000004   -   выбор поверхности (0-низ,1-верх)
        SelDev  -   000003   -   выбор устройства

        RgTime  -   177106   -   регистр отсчета  временных  ин-
                                 тервалов
                Значение RgTime :
        Set3ms  -   000001   -   установка на 3ms


        Для запуска операции необходимо в регистр управления за-
 писать код команды и номер устройства, а затем запустить коман-
 ду, записав 1 в RgStat. Единичное состояние бита TrRq говорит о
 готовности к приему или выдаче байта данных. На один байт  дан-
 ных отводится 64 Мкс. Если за это время процессор не успел осу-
 ществить обмен, то устанавливается бит LostD. Бит OpFail  уста-
 навливается, если пропала готовность при  выполнении  операции.
 Бит ReLoad устанавливается, когда накопитель не готов к работе.
        Бит Tr00 устанавливается первый раз в 1 при чтении, ког-
 да контроллер находит маркер дорожки, а при записи -  по  физи-
 ческому началу дорожки.
        Формат записи, поддерживаемый драйвером MD :

        1. 8 байтов "0"
        2. маркер (байт "363")
        3. байт с номером дорожки
        4. слово с числом секторов на дорожке
        5. слово с номером первого сектора на дорожке
        6. слово статуса
        7. слово контрольной суммы
        8. сектора по 128 байтов  с  двумя  байтами  контрольной
           суммы, число секторов на дорожке до 23 штук

        Запись в RgTime вызывает установку в 1 разряда  0  этого
 регистра, который остается установленным в течение 3.5 Мс.

                  07.00 Адаптер локальной сети

                    07.01 .. Общие положения

        Для написания программ, обращающихся  непосредственно  к
 адаптеру локальной сети (АЛС), необходимо ознакомиться со  сле-
 дующими документами :
        -  техническое описание ( п.6.3. Модуль локальной сети )
        - микропроцессорный комплект КР588. Расширение  (микрос-
          хема КР588ВГ6)

        В адресном  пространстве  ПЭВМ  адаптер  локальной  сети
 представлен двумя ячейками, которые  являются  внутренними  ре-
 гистрами и отдельными триггерами АЛС.К ним относятся три регис-
 тра БИС адаптера мультиплексного канала (БИС АК) :
        - регистр данных приемника (RgL)
        - регистр данных передатчика (RgD)
        - регистр инструкций передатчика (RgIns)

        Загружаемая в RgD информация может быть передана в  сеть
 как слово данных СД. Загружаемая в RgIns информация может  быть
 передана в сеть как командное слово КС или ответное  слово  ОС.
 КС передается из РМП, ОС передается в сеть из РМУ.

        Приходящая в АЛС из сети информация (СД,КС или ОС) может
 быт прочитана из RgL. Кроме того, признаки приходящей  из  сети
 информации (формируемые микросхемой БИС АК) и состояние некото-
 рых триггеров, расположенных на плате АЛС, могут быть прочитаны
 как регистр состояния АЛС (RgSt)

           Перечисленным регистрам присвоены адреса :
        170010  -  регистр RgIns БИС АК и регистр RgSt при за-
                   писи
                -  регистр RgSt при чтении
        170012  -  регистр RgD БИС АК при записи
                -  регистр RgL БИС АК при чтении

        Для управления работой  АЛС  в  него  введены  следующие
 программно-доступные триггеры :

        РПР     -  триггер разрешения прерывания (чтение/запись
                   в 6-ом разряде RgSt)
        ТПР     -  триггер требования прерывания (чтение в 5-ом
                   разряде RgSt; после чтения RgSt он  сбрасыва-
                   ется, однако для надежного сброса  необходимо
                   повторить чтение RgSt)
        ТОШ     -  триггер ошибки (чтение в 15-ом разряде RgSt;
                   сбрасывается по чтению RgSt, как и ТПР)
        РОП/   -   триггер разрешения опроса сети для РМП или
        АКТ        триггер активности для РМУ (чтение/запись в
                   1-ом разряде RgSt)
        Для удобства описания будем обозначать адрес 170010  как
 RgSt, а адрес 170012 - как RgD ( следует однако помнить, что по
 записи и по чтению это разные регистры, кроме РПР и РОП/АКТ).
        Рассматриваемая ЛС ПЭВМ имеет такую  дисциплину  обмена,
 при которой только РМП имеет право выходить в сеть в любой  мо-
 мент времени. РМУ может выходить в сеть только получив  на  это
 специальную команду от РМП, предназначенную этому и только это-
 му РМУ.
        Для индентификации ПЭВМ в сети  им  присваиваются  номер
 абонентов сети ( от 1 до 12 ). РМП, являясь ведущим, в сети но-
 мера не имеет. Каждое КС, посылаемое в сеть  из  РМП,  имеет  в
 своем составе номер РМУ, которому оно предназначено. Каждое ОС,
 посылаемое из РМУ, имеет в своем  составе  номер  РМУ,  которое
 послало ОС. Номер РМУ в сети задается  аппаратно.  Предусмотрен
 "общий режим" (КС с нулевым номером).  В  общем  режиме  данные
 можно передавать из РМП одновременно во все РМУ.
        При записи информации по адресу 170012 она сразу же  по-
 сылается в сеть в формате СД. При записи информации  по  адресу
 170010 она запоминается в RgIns БИС АК и может быть  послана  в
 сеть как КС (из РМП) или ОС (из РМУ).  Если  в  младший  разряд
 170010 записывается "1", то КС/ОС сразу посылается в сеть, если
 же в младший разряд записывается "0", то КС/ОС  запоминается  в
 RgIns. Оно может быть послано в сеть из РМУ по  сигналу  опроса
 сети из РМП.
        Ввиду того, что РМУ не может быть инициатором обмена  по
 сети, необходим постоянный опрос всех АЛС РМУ  со  стороны  АЛС
 РМП. Для опроса сети АЛС РМП посылает в  сеть  КС  специального
 формата. В ответ на него АЛС РМУ посылает в сеть ОС, хранящееся
 в данный момент в его RgIns. По содержимому ОС АЛС РМП  опреде-
 ляет наличие требования обмена со  стороны  опрашиваемого  РМУ.
 Такой опрос можно организовать программно,  однако,  это  будет
 постоянно занимать ресурсы РМП. Предусмотрен  аппаратный  опрос
 сети, работающий без участия ПЭВМ (РМП и РМУ). Для его  включе-
 ния РМП записывает в RgSt АЛС КС, содержащее признак  опроса  и
 разрешение аппаратного опроса. С этого момента АЛС РМП от внут-
 ренного таймера (20 мс) организует последовательный опрос  сос-
 тояния всех РМУ в сети. В случае обнаружения требующего  обмена
 РМУ аппаратный опрос прекращается (РОП=0) и в РМП идет требова-
 ние прерывания.

                   07.02 .. Форматы сообщений

        Слово данных СД передается по сети отличающимся  от  ко-
 мандного или ответного слова (КС/ОС). Эти  два  вида  пересылок
 различаются стартовыми посылками автоматически ( при  выдаче  в
 сеть RgD или RgIns). Когда принимается сообщение из  сети,  оно
 анализируется и БИС АК формирует его признаки :

        CHD     -    правильность данных по контрольному разряду
        CHA     -    совпадение адреса (адрес из сети совпал с
                     собственным - "0", не совпал - "1")
        МО      -    общий режим  ( "1" - общий режим, "0" - нет
                     общего режима )
        INS     -    иструкция ( "1" - пришло КС/ОС, "0" - приш-
                     ло СД)
        SAINS   -    сигнал, показывающий, что в КС/ОС в разря-
                     дах 8-5 содержатся 0000 или 1111  (активный
                     SAINS).Исползуется в АЛС РМУ для опроса се-
                     ти, в АЛС РМП для сообщения, что пришло  ОС
                     с требованием обмена от РМУ.

               Формат КС, передаваемого от РМП :

|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
 |___________|     |   |  |  |  |           |  |
       |           |   |-----|--|           |  |___ стартовый
 адрес абонента    |      |  |__триггер     |         бит
 в сети или 00000  |      |        РПР      |___ триггер РОП
 для общего режима |      |
                   |      |          0000 |
                  "1"     |___ SAINS  или |--- признак
              признак КС             1111 |    опроса
                                               сети


               Формат ОС, передаваемого от РМУ :

 в сеть идет          в сеть идет
 адрес РМУ в          "0" (признак
 сети (инверсный)         |  ОС)
 |~~~~~~~~~~~|      |~~~~~
|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
                       |  |  |  |           |  |
                       |-----|--|           |  |___ стартовый
                          |  |__триггер     |         бит
                          |        РПР      |___ триггер АКТ
                          |
                          |          0000 |
                          |___ SAINS  или |--- признак
                                     1111 |    требования
                                               обмена

        При чтении слова с адресом RgD (170012) в ПЭВМ поступают
 16 разрядов последнего пришедшего из  сети  сообщения.  Следует
 помнить, что в разрядах 15-11 ОС содержится инверсный код номе-
 ра РМУ.
        При чтении слова с адресом RgSt (170010) в ПЭВМ поступа-
 ет содержимое триггеров АЛС и сигналов БИС АК.


                    Формат RgSt по чтению :

|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
 |__триггер ошибки           |  |  |  |  |  |_триггер РОП/АКТ
               триггер РПР___|  | CHA MO INS
                   триггер ТПР__|  |_____|
                                      |
                                   (БИС АК)


            Триггеры АЛС имеют следующие значения :

        ТОШ  -  триггер ошибки устанавливается в 1, если было
                принято  сообщение (СД,КС или ОС) с признаком
                ошибки. Сбрасывается только по команде RESET
                и при чтении RgSt.
        ТПР  -  триггер требования прерывания, устанавливается
                в 1, если из сети пришло КС с пассивным SAINS
                ( не "0000" или "1111" в разрядах 8-5) - в АЛС
                РМУ или из сети пришло ОС с активным SAINS (есть
                "0000" или "1111" в разрядах 8-5) - в АЛС РМП;
                если пришло СД - для РМП - всегда, для РМУ -
                только при установленном в "1" триггере АКТ.
                Сбрасывается по тем же условиям, что и ТОШ.Если
                РПР=1, то по переходу ТПР из "0" в "1" в ПЭВМ
                идет прерывание SH4 ( вектор 104).
        РПР  -  триггер разрешения прерывания. Устанавливается в
                "0" или в "1" программно. Кроме того,  сбрасыва-
                ется сигналом К СБРОС  Н.  Доступен  по  чтению.
                Особенностью является то, что одновременно с за-
                писью в РПР "0" или "1" соответствующий бит  за-
                писывается также в 7-й разряд RgIns БИС АК.  Это
                следует учитывать при формировании  битов  SAINS
                (разряды 8-5).
        РОП/ -  триггер разрешения опроса (РМП) или активности
        АКТ     (РМУ). Устанавливается в "0" или "1" программно.
                Сбрасывается сигналом К СБРОС Н. Кроме  того,  в
                АЛС РМП триггер РОП сбрасывается, если  установ-
                лен в 1 ТПР (т.е. если пришло ОС от РМУ,  требу-
                ещего обмена по сети). В АЛС РМУ триггер АКТ де-
                лает АЛС данного РМУ "активным". В  этом  случае
                каждое пришедшее из сети СД, устанавливает  в  1
                ТПР. Если же АКТ=0, то приходящее в АЛС  РМУ  СД
                игнорируется, т.е. ТПР остается в "0".

                07.03 Организация обмена по сети

        ПЭВМ, объединенные в сеть, через свои адаптеры локальной
 сети могут обмениваться между собой словами данных СД  (РМП  ->
 РМУ или РМУ -> РМП), командными словами КС (РМП -> РМУ)  и  от-
 ветными словами ОС (РМУ -> РМП).
        Аппаратные средства АЛС используют лишь  часть  разрядов
 КС/ОС ( номер РМУ (15-11),бит  признака  КС/ОС  (9),бит  старта
 (0), биты SAINS (8-5), триггер РОП/АКТ (1),триггер РПР (6)).Ос-
 тальные  разряды  можно  использовать  для  передачи  некоторых
 инструкций от РМП к РМУ и состояния от РМУ к РМП.  Это  разряды
 КС/ОС : 10,4,3,2.

         07.04 .... Организация программного опроса сети

        Для программного опроса сети в РМП запускается специаль-
 ная программа, поочередно посылающая в каждое РМУ КС с активным
 SAINS. Пришедшее ОС анализируется. По состоянию раз (КС с нулевым номером).  В  общем  режиме  данные
 можно передавать из РМП одновременно во все РМУ.
        При записи информации по адресу 170012 она сразу же  по-
 сылается в сеть в формате СД. При записи информации  по  адресу
 170010 она запоминается в RgIns БИС АК и может быть  послана  в
 сеть как КС (из РМП) или ОС (из РМУ).  Если  в  младший  разряд
 170010 записывается рядов 10,4-2
 в соответствии с принятым соглашением об их использовании дела-
 ется вывод о состоянии данного РМУ.

         07.05 .... Организация аппаратного опроса сети

        При включении аппаратного опроса сети РМП должно послать
 в свой RgSt АЛС КС с признаком опроса ( SAINS активный с разре-
 шением опроса ( РОП=1 ) и разрешением прерывания (РПР=1)).Перед
 этим необходимо загрузиь вектор прерывания  от  локальной  сети
 (вектор 104) адресом программы обслуживания этого прерывания.

        07.06 .... Организация приема/передачи данных (программ)
                   по сети

        При необходимости выполнить обмен по инициативе РМП  или
 при обнаружении соответствующего требования от  РМУ  управление
 должно быть передано программе, осуществляющей  собственно  об-
 мен.
        Следует помнить, что при вклюсении ПЭВМ РМУ она оказыва-
 ется в состоянии опроса АЛС и готовности принять  данные,  т.е.
 работает программа-загрузчик из сети, зашитая в ПЗУ.  Признаком
 этого состояния РМУ является появление на его ЭЛТ надписи "Жди-
 те..".Для активизации приемной части  загрузчика  в  РМУ  через
 сеть следует послать КС с пассивным SAINS. Загрузчик  принимает
 информацию в соответствии со следующим протоколом : первым при-
 нимает СД, содержащее количество пересылаемых  слов,  следующие
 СД загружают ОЗУ, начиная с адреса 000000. По окончании  обмена
 проверяет триггер ошибки, и, если ошибки не было, передает  уп-
 равление по адресу 000000, предварительно загрузив в RgSt ОС  с
 пассивным SAINS. При обнаружении ошибки в RgSt засылается ОС  с
 "1" в 10-м разряде (признак ошибки приема), т.с.  2000(8)  и  с
 тем же пассивным SAINS.

           (c) 1992, MG Soft corp.
 ва АЛС используют лишь  часть  разрядов
 КС/ОС ( номер РМУ (15-11),бит  признака  КС/ОС  (9),бит  старта
 (0), биты SAINS (