Корвет/Техническая документация

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Источник: http://www.emu80.org/dev/dev_k.html

;                    Москва, НИИСЧЕТМАШ, 10 декабря 1986 г.
;
;       ОПИСАНИЕ ПРОГРАММНО-ДОСТУПНЫХ ЭЛЕМЕНТОВ ПЭВМ ПК8020
;
;    Для программиста ПЭВМ представляется совокупностью про-
; граммно доступных узлов, в число которых входят:
;  - центральный процессор КР580ВМ80А;
;  - узел дешифрации адресов и задания конфигураций памяти
; (системный регистр);
;  - клавиатура;
;  - контроллер отображения алфавитно-цифровой информации;
;  - контроллер отображения графической информации;
;  - системный таймер;
;  - контроллер прерываний;
;  - адаптер локальной сети;
;  - адаптер магнитофона;
;  - программируемый генератор звука;
;  - адаптер печатающего устройства;
;  - адаптер последовательного интерфейса ИРПС;
;  - контроллер внешнего ЗУ на гибких магнитных дисках.

        ; СИСТЕМНЫЙ РЕГИСТР И КОНФИГУРАЦИИ ПАМЯТИ

;    Все узлы ПЭВМ адресуются как ячейки памяти. Различные типы
; памяти (ПЗУ, ОЗУ и т.д.) могут логически подключаться, от-
; ключаться и перемещаться, образуя различные конфигурации
; для разных системных и прикладных программ. Область ПЗУ
; всегда начинается с 0 адреса. Клавиатура, регистры адаптеров
; и контроллеров внешних устройств, а также отображаемое на
; экране алфавитно-цифровое ЗУ сведены в единую область
; адресов размером 2 кбайта (область УВВ), подключаемую, от-
; ключаемую и перемещаемую как единое целое. В некоторых конфи-
; гурациях используются сокращенные варианты области УВВ, сос-
; тоящие только из едресов регистров и портов периферийных БИС.
; Поскольку на дешифратор адресов поступает только старший
; байт адреса, конфигурации могут задаваться с точностью до
; одной страницы, при этом относительное расположение адресов
; внутри каждой страницы постоянно.
;    Ниже определяются относительные адреса различных элемен-
; тов ПЭВМ в соответствующих страницах и начальные смещения
; этих страниц для различных конфигураций памяти. Адрес каж-
; дого элемента в программе должен задаваться в виде суммы
; относительного адреса и начального смещения.
;    Выбор одной из 9 имеющихся конфигураций осуществляется
; путем задания содержимого специального пятиразрядного ре-
; гистра, называемого системным регистром. Адрес этого ре-
; гистра располагается в текущей области УВВ.
;
; Условные названия конфигураций памяти и соответствующие им
; константы для записи в системный регистр:

TRS80   EQU     00H     ; ПЗУ 14к, область УВВ с 3800 по 3FFF,
                        ; ОЗУ с 4000 по FFFF

ROMB1   EQU     18H     ; ПЗУ 16к, область УВВ с F800 по FFFF,
                        ; ОЗУ с 4000 по F7FF

ROMB2   EQU     20H     ; ПЗУ 14к, область УВВ с 3800 по FFFF,
                        ; ОЗУ с 4000 по BFFF, граф. ЗУ (ГЗУ)
                        ; с C000 по FFFF

ODOSA   EQU     1CH     ; Конфигурация для ОС CP/M:
                        ; ОЗУ с 0 по F7FF, область УВВ
                        ; с F800 по FFFF

NDOS    EQU     14H     ; ПЗУ 8к, ОЗУ с 2000 по F7FF,
                        ; область УВВ с F800 по FFFF

BASIC   EQU     40H     ; ПЗУ 24к, ОЗУ с 6000 по F7FF,
                        ; область УВВ с F800 по FFFF

BASG    EQU     60H     ; ПЗУ 24к, ОЗУ с 6000 по BEFF,
                        ; регистры ВВ с BF00 по BFFF,
                        ; ГЗУ с C000 по FFFF

DOSA    EQU     5CH     ; ОЗУ с 0 по FDFF, регистры
                        ; с FE00 по FFFF

DOSG1   EQU     3CH     ; ОЗУ с 0 по 3FFF и с 8000 по
                        ; FDFF, ГЗУ с 4000 по 7FFF,
                        ; регистры с FE00 по FFFF

;    Системный регистр вместе с регистром цвета и
; цветовой таблицей (см. ниже) располагается в стра-
; нице, начальное смещение которой определяется па-
; раметром RGBASE, способным принимать одно из 4
; значений:

RGBASE1 EQU      3A00H  ; в TRS80 и ROMB2
RGBASE2 EQU     0FA00H  ; в ROMB1, ODOSA, NDOS и BASIC
RGBASE3 EQU     0FF00H  ; в DOSA и DOSG1
RGBASE4 EQU     0BF00H  ; в BASG

SYSREG  EQU     7FH     ; Относительный адрес
                        ; системного регистра

; Адреса остальных регистров, представляющих собой
; порты периферийных БИС, сведены в одну страницу,
; начальный адрес которой PBASE может принимать одно
; из 3 значений:

PBASE1  EQU      3B00H  ; в TRS80 и ROMB2
PBASE2  EQU     0FB00H  ; в ROMB1, ODOSA, NDOS и BASIC
PBASE3  EQU     0FE00H  ; в DOSA и DOSG1

;------------------------------------------------------------

        ; КЛАВИАТУРА

; Состояние клавишных переключателей клавиатуры доступно
; программе при опросе групп клавишей или всей клавиатуры
; целиком как ячеек памяти. Ниже приводятся адреса ячеек,
; соответствующие группам по 8 клавишей. Нажатое состояние
; клавиши дает '1' в соответствующем разряде считанного
; байта данных. Опрос одновременно нескольких групп с
; целью выявления хотя бы одной нажатой клавиши можно
; производить путем объединения их адресов лог. ИЛИ.


;                             D7  D6  D5  D4  D3  D2  D1  D0
;                           |---|---|---|---|---|---|---|---|
; основное поле
KB00    EQU      01H    ;     Г   Ф   Е   Д   Ц   Б   А   Ю
KB01    EQU      02H    ;     О   Н   М   Л   К   Й   И   Х
KB02    EQU      04H    ;     В   Ж   У   Т   С   Р   Я   П
KB03    EQU      08H    ;     ъ   Ч   Щ   Э   Ш   З   Ы   Ь
KB04    EQU      10H    ;     7   6   5   4   3   2   1   0
KB05    EQU      20H    ;     ?   >   =   <   +   *   9   8
KB06    EQU      40H    ; ПРОБЕЛ ТАБ  ВШ  ВЗ  ИЗ СТП СТР  ВК
KB07    EQU      80H    ;    РГП ФКС УПР СЕЛ ПРФ ГРФ АЛФ РГЛ
; дополнительные поля
KB08    EQU     101H    ;     7   6   5   4   3   2   1   0
KB09    EQU     102H    ;         .                   9   8
KB10    EQU     104H    ;                 F5  F4  F3  F2  F1

; Начальное смещение области адресов клавиатуры KBBASE
; может принимать одно из двух значений:

KBBASE1 EQU      3800H  ; в TRS80 и ROMB2
KBBASE2 EQU     0F800H  ; в ROMB1, ODOSA, NDOS и BASIC

        ; КОНТРОЛЛЕР ОТОБРАЖЕНИЯ АЛФАВИТНО-ЦИФРОВОЙ ИНФОРМАЦИИ

; Этот узел состоит из 9-разрядного статического ОЗУ (АЦЗУ)
; объемом 1 кбайт, регистра управления и регистра атрибута.
; АЦЗУ располагается в конце текущей области адресов УВВ (XC00-
; XFFF), каждая ячейка отображается на экране в виде одного
; символа, начиная с левого верхнего угла, всего 16 строк по
; 64 символа. Коды и начертания символов определяются знакоге-
; нератором, причем за основу взят код КОИ-8, дополненный эле-
; ментами псевдографики. Регистр управления, реализованный в
; виде порта одной из микросхем КР580ВВ55А, устанавливает режим
; отображения и позволяет управлять состоянием атрибута инвер-
; сии изображения в 9-м разряде АЦЗУ, в частности, формировать
; на экране курсор. Этот регистр работает на вывод, но доступен
; и для чтения. Одноразрядный регистр атрибута позволяет прог-
; раммно анализировать состояние атрибута в 9-м разряде АЦЗУ.

VIBASE1 EQU      3C00H  ; Начальный адрес АЦЗУ в конфигурациях
                        ; TRS80 и ROMB2
VIBASE2 EQU     0FC00H  ; Начальный адрес АЦЗУ в конфигурациях
                        ; ROMB1, ODOSA, NDOS и BASIC

VIREG   EQU     3AH  ; Относительный адрес регистра управления
                     ; отображением
VISTS   EQU     38H  ; Относительный адрес регистра состояния
                     ; атрибута видеоинверсии

; Константы для работы с регистрами

ATRMSK  EQU     8  ; Маска атрибута видеоинверсии
VBLMSK  EQU     2  ; Маска кадрового гасящего импульса

FONT1   EQU     4       ; Выбор альтернативного набора
                        ; символов в знакогенераторе
LARGE   EQU     8       ; Режим отображения расширенных
                        ; символов (32 символа в строке)
ATRSET  EQU     10H     ; Установка бита атрибута
ATRRES  EQU     20H     ; Сброс бита атрибута
ATRFRE  EQU     30H     ; Сохранение состояния атрибута
                        ; и условие чтения атрибута

        ; КОНТРОЛЛЕР ОТОБРАЖЕНИЯ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

; Состоит из двух или трех слоев (банков) динамического ОЗУ,
; содержимое которых отображается на экране в виде карты бит,
; регистра цвета, регистра выбора страниц, таблицы присвоения
; цветов и логической матрицы для анализа содержимого ГЗУ.
; Объем каждого слоя может быть 16 или 64 к, но отображается
; всегда только 16 к из каждого слоя.
;   Четырехразрядный регистр выбора страницы при объеме 64 к
; определяет, какая часть (страница) каждого слоя отображается
; в текущий момент на экране и какая открыта для доступа
; процессору.
;   Байты информации одновременно из всех слоев выводятся на
; экран начиная с верхнего левого угла таким образом, что
; одноименные биты совмещаются и определяют логический цвет
; соответствующей точки на экране.
;   Старший бит каждого байта отображается слева, младший -
; справа. Окончательный (физический) цвет точки определяется
; содержимым программируемой таблицы присвоения цветов,
; причем учитывается также информация из АЦЗУ. Таблица
; присвоения цветов расположена в области УВВ и адресуется
; как одна ячейка памяти, работающая только на запись, при
; этом выбор строки таблицы определяется содержимым запи-
; сываемого байта.

PAGREG  EQU     VIREG   ; Адрес регистра выбора страниц

VPAGE0  EQU  00000000B  ; Выбор 0 страницы отображения
VPAGE1  EQU  00000001B  ; Выбор 1 страницы отображения
VPAGE2  EQU  00000010B  ; Выбор 2 страницы отображения
VPAGE3  EQU  00000011B  ; Выбор 3 страницы отображения

RWPAG0  EQU  00000000B  ; Выбор 0 страницы чтения/записи
RWPAG1  EQU  01000000B  ; Выбор 1 страницы чтения/записи
RWPAG2  EQU  10000000B  ; Выбор 2 страницы чтения/записи
RWPAG3  EQU  11000000B  ; Выбор 3 страницы чтения/записи

; Если объем слоя ограничен 16 к, состояние битов PAGREG
; безразлично.

LUT     EQU     0FBH    ; Адрес таблицы присвоения цветов
                        ; (относительный)

;  При записи в LUT биты D0...D3 задают номер одной из 16
; строк таблицы, а D4...D7 - содержимое этой строки.
; D3 соответствует АЦЗУ, D2 - слою ГЗУ #2, D1 - слою #1,
; D0 - слою #0;  D7 задает интенсивность (яркость),
; D6 - наличие красного цвета, D5 - зеленого цвета, D4 -
; синего цвета.
;
;  Регистр цвета задает маски логических цветов и режимы
; записи и считывания ГЗУ. Имеются два основных режима -
; послойный и цветовой. Этот регистр работает только на
; запись.

NCREG   EQU     0BFH  ; Относительный адрес регистра цвета

; Константы для программирования регистра цвета

BANKMD  EQU     0       ; Послойный режим чтения/записи

WSEL0   EQU     11111101B       ; Выбор слоя 0 при записи
WSEL1   EQU     11111011B       ; Выбор слоя 1 при записи
WSEL2   EQU     11110111B       ; Выбор слоя 2 при записи

RSEL0   EQU     00010000B       ; Выбор слоя 0 при чтении
RSEL1   EQU     00100000B       ; Выбор слоя 1 при чтении
RSEL2   EQU     01000000B       ; Выбор слоя 2 при чтении

WBIT    EQU     00000001B  ; Маска значения бита, записы-
                           ; ваемого в биты ГЗУ в послой-
                           ; ном режиме

COLORMD EQU     80H     ; Цветовой режим чтения/записи
                        ; (выбраны все три слоя)

WRMSK   EQU     00001110B  ; маска битов, задающих логи-
                           ; ческий цвет при записи
RDMSK   EQU     01110000B  ; маска битов, задающих логи-
                           ; ческий цвет при чтении

; При записи в ГЗУ записываемый байт данных определяет,
; какие биты ГЗУ изменятся (примут значение WBIT или
; WRMSK), а какие сохранят свое значение. Признаком
; изменения является соответствие битов записываемого
; байта значению BITWR, признаком сохранения - противо-
; положное значение.

BITWR   SET     1       ; Изменяются биты, заданные единицами

; При чтении ГЗУ в послойном режиме в считываемом байте
; получается содержимое ячейки выбранного слоя.
; При чтении в цветовом режиме в считанном байте содер-
; жатся признаки совпадения цвета в каждой точке с задан-
; ной маской. В случае совпадения в соответствующих битах
; читаются нули.

        ; СИСТЕМНЫЙ ТАЙМЕР

; Функции системного таймера выполняет канал # 2
; микросхемы КР580ВИ53. Таймер формирует запросы прерывания
; однократно или многократно через заданные интервалы
; времени. На вход таймера поступает частота 50 Гц, которую
; он делит в заданное число раз. Режим работы канала
; микросхемы задается в регистре режима, а коэффициент
; пересчета - в регистре счета.

STMRM   EQU     03H     ; Относит. адрес регистра режима
STMRD   EQU     02H     ; Относит. адрес регистра счета

; Константы для программирования режимов таймера

CTR0S   EQU     00000000B ;Выбор счетчика 0
CTR1S   EQU     01000000B ;Выбор счетчика 1
CTR2S   EQU     10000000B ;Выбор счетчика 2
LCTR    EQU     00000000B ;Стробирование счетчика
RLMB    EQU     00100000B ;Чтение/загрузка старшего байта
RLLB    EQU     00010000B ;Чтение/загрузка младшего байта
RLLM    EQU     00110000B ;Чтение/загрузка мл. и ст. байта
MODE0   EQU     00000000B ;Режим 0 (датчик прерывания)
MODE1   EQU     00000010B ;Режим 1 (одновибратор)
MODE2   EQU     00000100B ;Режим 2 (делитель частоты)
MODE3   EQU     00000110B ;Режим 3 (делитель частоты)
MODE4   EQU     00001000B ;Режим 4 (прогр.формирователь строба)
MODE5   EQU     00001010B ;Режим 5 (аппар формирователь строба)
BCDC    EQU     00000001B ;Двоично-десятичный счет

; Работа 2 канала в режиме периодического прерывания с
; заданием коэффициента пересчета в десятичной форме:

STMD    SET     CTR2S OR RLLM OR MODE2 OR BCDC

; Номер запроса прерывания от системного таймера:

TMRINT  SET     5

        ; КОНТРОЛЛЕР ПРЕРЫВАНИЙ

; Этот узел реализован на основе микросхемы КР580ВН59
; и обслуживает 8 запросов (уровней ) прерывания от
; контроллеров и адаптеров внешних устройств. В системе
; контроллер имеет два адреса для обращения со стороны
; процессора, а его внутренние регистры выбира-
; ются дополнительно разрядами данных при записи или
; их выбор определяется порядком обращения. Регистры
; делятся на регистры инициализации, регистры управ-
; ления и регистры ввода. После инициализации контрол-
; ер готов к работе с фиксированными приоритетами
; запросов ( 0 - высший, 7 - низший). Контроллер при
; возникновении прерывания генерирует код команды CALL
; с адресом, соответствующим обрабатываемому запросу.
; Адреса всех 8 команд CALL попадают в одну область
; памяти, заданную программистом, где с шагом 4 или 8
; ячеек должны располагаться команды переходов к подпро-
; граммам обслуживания запросов.

; Параметры для инициализации

SICP0   EQU     28H     ; Относительный адрес
                        ; первого регистра инициализации

ICW1    SET     00010010B ; Основная часть первого слова
                          ; инициализации
LADR    EQU     11100000B ; Маска разрядов A5...A7 адреса
                          ; таблицы переходов
SHORT   EQU     00000100B ; Интервал 4 байта

SICP1   EQU     29H     ; Относительный адрес
                        ; второго регистра инициализации

ICW2    SET     00000000B ; Второе слово инициализации
                          ; ( Старший байт адреса таблицы
                          ; переходов )

; Параметры для управления

; Любой запрос прерывания можно запретить путем установки
; разрядов специального регистра маски (первого регистра
; управления ). Этот регистр доступен для чтения.

MSKREG  EQU     29H     ; Относит. адрес регистра маски

;Маски для уровней прерывания

INT0    EQU     00000001B ; Запрет прерывания уровня 0
INT1    EQU     00000010B ; Запрет прерываний уровня 1
INT2    EQU     00000100B ; Запрет прерываний уровня 2
INT3    EQU     00001000B ; Запрет прерываний уровня 3
INT4    EQU     00010000B ; Запрет прерываний уровня 4
INT5    EQU     00100000B ; Запрет прерываний уровня 5
INT6    EQU     01000000B ; Запрет прерываний уровня 6
INT7    EQU     10000000B ; Запрет прерываний уровня 7
INTA    EQU     00000000B ; Разрешение всех прерываний

; Второй регистр управления позволяет задавать различные
; условия окончания обработки прерываний.

EIOREG  EQU     28H     ; Адрес регистра конца прерывания

; Константы условий окончания обработки прерываний

PRSHF   EQU     10000000B ; Циклический сдвиг приоритетов
SEOI    EQU     01000000B ; Признак указания сбрасываемого
                          ; уровня прерывания
EOI     EQU     00100000B ; Конец прерывания
LEVEL   EQU     00000111B ; Маска битов, указывающих
                          ; уровень, которому присва-
                          ; ивается низший приоритет

; Третий регистр управления позволяет задавать особые
; условия маскирования и осуществлять выбор одного из
; регистров ввода.

SELREG  EQU     28H     ; Адрес регистра выбора

SELRID  EQU     00001000B ; Признак адресации (идентифи-
                          ; катор) регистра выбора
SMEN    EQU     01000000B ; Разрешение управления спец.
                          ; маскированием
SMSET   EQU     00100000B ; Установка спецмаскирования

POLL    EQU     00000100B ; Режим опроса
SELEN   EQU     00000010B ; Разрешение выбора регистра
SELIRR  EQU     00000000B ; Выбор регистра запросов
SELISR  EQU     00000001B ; Выбор регистра обрабатываемых
                          ; прерываний

IRISRG  EQU     28H     ; Адрес регистров опроса, входных
                        ; запросов и обрабатываемых пре-
                        ; рываний


        ; АДАПТЕР МАГНИТОФОНА

; В состав этого узла входят регистр записи и регистр
; чтения, функции которых выполняют отдельные цепи
; портов микросхемы КР580ВВ55А. В ПЭВМ ПК8010 и ПК8020
; имеется возможность прямого управления битами.
; Разряды регистров чтения и записи отражают только
; состояние входных и выходных сигналов, а кодирование
; и декодирование информации должны осуществляться
; программно.

CASOUT  EQU     32H     ; Адрес регистра записи
CASIN   EQU     38H     ; Адрес регистра чтения

CASMSK  EQU     01H     ; Маска входного сигнала

SETLOW  EQU     00B     ; Посылка сигнала низкого уровня
SETMID  EQU     01B     ; Посылка сигнала среднего уровня
SETHIGH EQU     11B     ; Посылка сигнала высокого уровня

STOP    EQU     4       ; Временный останов ленты (пауза)


        ; ПРОГРАММИРУЕМЫЙ ГЕНЕРАТОР ЗВУКА

; Генератор звука построен на основе канала #0
; микросхемы КР580ВИ53. На вход счетчика подана частота
; 2000 кГц. Генератор дополнительно управляется
; одноразрядным регистром разрешения, доступным также
; для чтения.

SOUNDD  EQU     00H     ; Адрес регистра счета
SOUNDM  EQU     03H     ; Адрес регистра режима
SOUNDC  EQU     32H     ; Адрес регистра разрешения

SNDEN   EQU     8       ; Разрешение формирования звука

; Константа для задания режима работы счетчика

SNDMD   SET     CTR0S OR RLLM OR MODE3

        ; АДАПТЕР ЛОКАЛЬНОЙ СЕТИ

; Этот адаптер построен на основе микросхемы КР580ВВ51А,
; работающей в асинхронном режиме на общую сигнальную
; линию локальной сети класса. В указанной микросхеме
; используются только цепи принимаемых и передаваемых
; данных. На вход синхронизации подана частота 312 кГц,
; что позволяет вести прием и передачу со скоростью
; около 19500 бит/с. Адаптер способен генерировать
; запрос прерывания при приеме байта данных из канала.
; Адрес (номер) рабочего места в локальной сети задается
; 4 перемычками на разъеме локальной сети. Адрес может
; быть прочитан через регистр LANADR (порт A первой
; микросхемы типа КР580ВВ55А).

; Адреса регистров адаптера локальной сети

LAND    EQU     20H ; Регистр данных
LANC    EQU     21H ; Регистр управления
LANS    EQU     21H ; Регистр состояния
LANADR  EQU     38H ; Регистр адреса рабочего места

ADRMSK  EQU     0F0H ; Маска адреса раб. места

; Константы для программирования режима
                        ; Коэффициент деления
                        ; частоты синхронизации:
R64X    EQU     00000011B ; 64
R16X    EQU     00000010B ; 16
R1X     EQU     00000001B ;  1

CL8     EQU     00001100B ;Длина символа = 8 бит
CL7     EQU     00001000B ;              = 7 бит
CL6     EQU     00000100B ;              = 6 бит
CL5     EQU     00000000B ;              = 5 бит

PEHB    EQU     00010000B ; Разрешение контроля
PEVEH   EQU     00100000B ; Контроль на четность
                        ; Пауза при передаче:
ST2     EQU     11000000B ;2 стоповых бита
ST15    EQU     10000000B ;1.5 стоповых бита
ST1     EQU     01000000B ;1 стоповый бит

; Устанавливаемый режим работы:

LANMD   SET     R16X OR CL8 OR PEHB OR ST1

; Отдельные биты команды

TXEN    EQU     00000001B ; Разршение работы передатчика
RXEN    EQU     00000100B ; Разрешение работы приемника
SBCH    EQU     00001000B ; Посылка признака обрыва
CLERR   EQU     00010000B ; Сброс признаков ошибок
USRST   EQU     01000000B ; Программный сброс

; Маски отдельных признаков в регистре состояния

TRDY    EQU     00000001B ; Признак готовности передатчика
RRDY    EQU     00000010B ; Признак готовности приемника
TXBE    EQU     00000100B ; Передающий буфер пуст
RPAR    EQU     00001000B ; Признак ошибки по четности
ROV     EQU     00010000B ; Признак ошибки переполнения
RFR     EQU     00100000B ; Признак ошибки формата байта

LANINT  EQU     3       ; Используемый уровень прерывания

        ; АДАПТЕР ИНТЕРФЕЙСА ИРПС

; Данный узел построен на основе микросхемы КР580ВВ51А и
; одного из каналов КР580ВИ53 и реализует последовательный
; интерфейс типа 'Токовая петля' с дополнительными
; цепями для сигнализации о состоянии устройств, участву-
; ющих в обмене. Скорость передачи задается путем установки
; соответствующего коэффициента деления счетчика микросхемы
; КР580ВИ53, на вход которого подана частота 2000 кГц.
; Выделены отдельные уровни прерывания для приемника и
; передатчика.

; Адреса регистров микросхемы КР580ВВ51А:

SERD    EQU     10H ;Регистр данных
SERC    EQU     11H ;Регистр управления
SERS    EQU     11H ;Регистр состояния

; Предполагаемый режим работы

SERMD   SET     R16X OR CL8 OR ST1

; Дополнительные биты команды

DTR     EQU     00000010B ; Сигнал 'Готовность ПК'

; Дополнительные признаки в регистре состояния

DSR     EQU     10000000B ; Сигнал 'Готовность УВВ'

; Адреса регистров канала БИС КР580ВИ53

BCNTC   EQU     03H     ; Регистр управления
BCNTD   EQU     01H     ; Регистр счета

; Константы для программирования счетчика

BCMD    SET     CTR1S OR RLLM OR MODE3 ; Режим работы

; Коэффициенты деления для скоростей обмена:

B9600   EQU      13 ; 9600 бод
B4800   EQU      26 ; 4800 бод
B2400   EQU      52 ; 2400 бод
B1200   EQU     104 ; 1200 бод

SERINT1 EQU     1  ; прерывание от приемника
SERINT2 EQU     2  ; прерывание от передатчика

        ; АДАПТЕР ПЕЧАТАЮЩЕГО УСТРОЙСТВА

; В состав этого узла входят регистр данных, регистр
; управления и регистр состояния, реализованные в виде
; портов параллельного адаптера КР580ВВ55А, причем
; регистр управления обеспечивает непосредственное
; управление битами (сброс и установку). Передача байта
; данных осуществляется при наличии признака готовности
; принтера в регистре состояния путем записи кода
; символа в регистр данных с последующей установкой и
; сбросом бита стробирующего сигнала в регистре управления.
; В драйверы печатающего устройства в некоторых случаях
; необходимо вводить инвертирование передаваемого
; байта и байта состояния (условное ассемблирование
; в зависимости от значения параметра LSTINV).

LSTDAT  EQU     30H     ; Регистр данных принтера
LSTSTS  EQU     38H     ; Регистр состояния
LSTCTL  EQU     33H     ; Регистр управления
LSTINV  SET       1     ; Признак инверсии
                        ; данных и состояния
LSTRDY  EQU       4     ; Маска признака готовности
                        ; принтера
STBSET  EQU      0BH    ; Установка строба данных
STBRST  EQU      0AH    ; Сброс строба данных

LSTINT  EQU     6    ; уровень прерывания по готовности
                     ; принтера


; Программируемые параллельные адаптеры КР580ВВ55А,
; упомянутые выше в составе адаптеров внешних уст-
; ройств, имеют следующие адреса портов и регистров
; для установки режимов:

; ППР#1 :

PIA1    EQU     38H ; Порт А (LANADR, VISTS, LSTSTS,
                    ; CASIN )
PIB1    EQU     39H ;Порт В (DRVREG )
PIC1    EQU     3AH ;Порт С (VIREG )
PIMC1   EQU     3BH ;Регистр режима и управления

PI1MD   EQU       90H ; Байт задания режима

; ППР#2 :

PIA2    EQU     30H ; Порт А ( LSTDAT )
PIB2    EQU     31H ; Порт В ( резерв )
PIC2    EQU     32H ; Порт С (CASOUT, LSTCTL, SOUNDC)
PIMC2   EQU     33H ; Регистр режима и управления

PI2MD   EQU       82H ;Байт задания режима

; ППР#3 ( порт расширения системы )

        PIA3    EQU     08H ; Порт А
        PIB3    EQU     09H ; Порт В
        PIC3    EQU     0AH ; Порт С

        PIMC3   EQU     0BH ; Регистр управления


        ; УЗЕЛ СОПРЯЖЕНИЯ С НГМД

; В состав этого узла входят БИС контроллера НГМД КР1818ВГ93,
; регистр выбора и управления НГМД и одновибратор включения
; двигателя НГМД.

        ; Регистр выбора и управления НГМД

DRVREG  EQU     39H ; (порт B КР580ВВ55 #1)

; Этот регистр работает на вывод, но доступен программно и
; для чтения, поэтому состояние его разрядов можно изменять
; с помощью логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ.

; Разряды регистра выбора и управления

DS0     EQU     00000001B ; выбор НГМД #0
DS1     EQU     00000010B ; выбор НГМД #1
DS2     EQU     00000100B ; выбор НГМД #2
DS3     EQU     00001000B ; выбор НГМД #3

SIDE1   EQU     00010000B ; выбор стороны диска #1

MOTOR   EQU     00100000B ; запуск одновибратора
                          ; включения двигателя
SDEN    EQU     01000000B ; режим работы с одинарной
                          ; плотностью записи
D200    EQU     10000000B ; работа с диском 203 мм

; Одновибратор включения двигателя запускается на время 3 с
; при переходе сигнала (бита) MOTOR из 0 в 1. Для разгона
; двигателя требуется время около 0,5 с, после этого можно
; инициировать операции контроллера НГМД. Если двигатель
; уже был включен, время на разгон не требуется. Опрос
; состояния одновибратора включения двигателя производится
; через регистр запросов контроллера прерываний.

MOTINT  EQU     7  ; Прерывание от одновибратора
                   ; управления двигателем

        ; Контроллер НГМД

; Регистры контроллера

CMDREG  EQU     18H ; Регистр команд
STSREG  EQU     18H ; Регистр состояния
TRKREG  EQU     19H ; Регистр текущей дорожки
SECREG  EQU     1AH ; Регистр сектора
DATREG  EQU     1BH ; Регистр данных

; Команды контроллера НГМД
; (команды записываются в регистр команд при наличии
; разрешения, т.е. при отсутствии признака BUSY
; в регистре состояния). Опрос регистра состояния можно
; производить не ранее, чем через 30 мкс после записи
; команды в регистр команд.

; Команды позиционирования (команды I типа). Основные коды

RESTORE SET     00000000B ; позиционирование на 0 дорожку

SEEK    SET     00010000B ; позиционирование на дорожку,
                          ; заданную в регистре данных
STEP    SET     00100000B ; позиционирование на одну
                          ; дорожку в направлении, задан-
                          ; ном предыдущей командой
STEPIN  SET     01000000B ; позиционирование к центру
                          ; на одну дорожку
STEPOUT SET     01100000B ; позиционирование от центра
                          ; на одну дорожку

; Модификаторы команд позиционирования

UPDATE  EQU     00010000B ; отслеживание перемещения
                          ; головки в регистре дорожки
HLD     EQU     00001000B ; прижим головки при движении

VERIFY  EQU     00000100B ; проверка установки головки
                          ; после перемещения
RATE    SET     00000011B ; коэффициент скорости позици-
                          ; онирования (для мини-дисков
                          ; время перехода с дорожки на
                          ; дорожку при 00 будет 6 мс,
                          ; 01 - 12 мс, 10 - 20 мс,
                          ; 11 - 30 мс )
; Модификаторы HLD, UPDATE и VERIFY могут использоваться
; по усмотрению системного программиста.
; Использование модификатора RATE является обязательным,
; причем для дисководов типа FD55FV его значение может
; быть установлено равным 00.


; Команды чтения/записи (команды II типа)
; Основные коды

RDSEC   SET     10000000B ; чтение сектора

WRSEC   SET     10100000B ; запись сектора

; Модификаторы

MULTI   EQU     00010000B ; операция с несколькими
                          ; секторами
DELAY   EQU     00000100B ; включение задержки опе-
                          ; рации на время подвода
                          ; головки

; использование модификатора  DELAY для используемых
; в КУВТ НГМД является обязательным.

; Команды форматирования (команды III типа)
; Основные коды

RDADR   EQU     11000000B ; чтение идентификатора

RDTRK   EQU     11100000B ; чтение дорожки

WRTRK   EQU     11110000B ; запись дорожки

; Модификатор - DELAY (см. выше)


; Команды прерывания (команды IV типа)
; Основные коды

FORCE   EQU     11010000B ; прекращение операции
                          ; и/или генерация зап-
                          ; роса прерывания на ЦП

; Модификаторы (используются по усмотрению программиста)

ONRDY   EQU     00000001B ; прерывание по готов-
                          ; ности НГМД
ONNRDY  EQU     00000010B ; прерывание по неготов-
                          ; ности НГМД
ONINDX  EQU     00000100B ; прерывание по индекс-
                          ; ному импульсу
IMMID   EQU     00001000B ; немедленное прерывание

        ; Признаки состояния контроллера НГМД

; Эти признаки могут быть получены путем чтения регистра
; состояния контроллера НГМД с последующим выделением их
; путем логического умножения на соответствующую маску.

; Маски признаков (флагов ) состояния контроллера НГМД

BUSY    EQU     00000001B ; признак неготовности конт-
                          ; роллера к приему команд
DRQ     EQU     00000010B ; запрос на передачу очеред-
                          ; ного байта данных (кроме
                          ; команд I типа)
INDX    EQU     00000010B ; индексный маркер, т.е.
                          ; начальная позиция диска
                          ; (только для команд I типа)
LOST    EQU     00000100B ; признак потери данных
                          ; (кроме команд I типа)
TRK00   EQU     00000100B ; признак 0 дорожки
                          ; (для команд I типа)
CRCERR  EQU     00001000B ; признак ошибки по
                          ; циклическому конт-
                          ; рольному коду
RECNF   EQU     00010000B ; признак ненахождения
                          ; заданного сектора
                          ; (кроме команд I типа)
SEEKER  EQU     00010000B ; ошибка позиционирования
                          ; (для команд I типа)
FAULT   EQU     00100000B ; ошибка при записи
                          ; (для команд II и III типа)
HLDD    EQU     00100000B ; признак прижима головки
                          ; (для команд I типа)
WPRTD   EQU     01000000B ; признак диска, защищенного
                          ; от записи и стирания
NOTRDY  EQU     10000000B ; признак отсутствия
                          ; готовности НГМД

;------------------------------------------------------

; Кроме перечисленных выше, в ПЭВМ ПК8020 имеются
; следующие уровни прерывания:

AUXINT  EQU     0  ; Прерывание от внешних адаптеров
                   ; (через разъем расширения)
PERINT  EQU     4  ; Прерывание от кадровых импульсов
                   ; с частотой 50 Гц