### Интерфейс накопителя на гибких магнитных дисках
Установка микросхемы в режим интерфейса накопителя на гибких магнитных дисках
производится подачей на выводы RC0-RC3 напряжения высокого уровня.

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

### Условное графическое обозначение в режиме интерфейса НГМД
![Symbol](/033/img/033-fdc.png)

### Структурная схема для режима интерфейса НГМД
![Structure](/033/img/033-fdc-arch.jpg)

### Назначение выводов в режиме интерфейса НГМД
| Номер       | Название     | Конфигурация | Назначение
|-------------|--------------|--------------|-----------------------------------------
| 1           | RC3          | Вход         | Выбор режима 3 (высокий)
| 2           | RC0          | Вход         | Выбор режима 0 (высокий)
| 3           | RC1          | Вход         | Выбор режима 1 (высокий)
| 4           | RC2          | Вход         | Выбор режима 2 (высокий)
| 5           | RC4          | Вход         | Выбор режима 4
| 6           | RC5          | Вход         | Выбор режима 5
| 7           | nSHIFT       | Вход         | Сдвиг данных
| 8           | nOUT         | Вход         | Выбор направления данных
| 9-16        | nAD0-nAD7    | Вход/Выход   | Канал nAD0-nAD7
| 17-20       | nAD8-nAD11   | Вход         | Канал nAD8-nAD11
| 21          | GND          | Питание      | Нулевой потенциал (земля)
| 22          | nAD12        | Вход         | Канал nAD12
| 23          | nBS          | Вход         | Выбор внешнего устройства
| 24          | nAD14        | Вход         | Канал nAD14
| 25          | nAD15        | Выход        | Канал nAD15
| 26          | nDI          | Вход         | Ввод последовательных данных
| 27          | nDO          | Выход        | Вывод последовательных данных
| 28          | nRUN         | Выход        | Пуск
| 29          | nSET         | Выход        | Начальная установка
| 30          | nERR         | Вход         | Признак ошибки
| 31          | nDONE        | Вход         | Признак завершения
| 32          | nTR          | Вход         | Требование передачи
| 33          | nIAKI        | Вход         | Вход подтверждения прерывания
| 34          | nINIT        | Вход         | Сброс периферии
| 35          | nVIRQ        | Выход-OK     | Запрос на прерывание
| 36          | nIAKO        | Выход        | Выход подтверждения прерывания
| 37          | nDOUT        | Вход         | Строб записи данных канала
| 38          | nDIN         | Вход         | Строб чтения данных канала
| 39          | nRPLY        | Выход-OK     | Подтверждение обмена ведомым
| 40          | nWTBT        | Вход         | Признак записи/байтовой операции
| 41          | nSYNC        | Вход         | Признак операции обмена на канале
| 42          | VCC          | Питание      | Потенциал +5В (источник питания)

### Регистр команд и состояния
| Бит | Название | Доступ | Назначение
|-----|----------|--------|------------------------------------------------
| 15  | ERROR    | RO     | ошибка, устанавливается если в процессе исполнения команды произошла ошибка
| 14  | INIT     | WO     | начальная установка, устанавливается программно для приведения НГМД в исходное состояние, при этом приводы 0 и 1 устанавливаются на нулевую дорожку и в приводе 0 читается нулевой сектор в буфер
| 07  | TR       | RO     | требование передачи, требование записи/считывания данных через регистр РД
| 06  | IE       | RW     | разрешение прерывания, устанавливается программно для осуществления прерывания по завершении выполнения команды, сбрасывается канальным сигналом INIT
| 05  | DONE     | RO     | завершено, выполнение команды завершено
| 04  | US       | WO     | выбор привода, выбор одного из двух дисководов для выполнения требуемой команды
| 03  | F3       | WO     | бит 3 команды
| 02  | F2       | WO     | бит 2 команды
| 01  | F1       | WO     | бит 1 команды
| 00  | GO       | WO     | пуск, инициирует прием контроллером НГМД команды

Разряды 8-13 не используются

### Регистр данных
| Бит | Название | Доступ | Назначение
|-----|----------|--------|-------------
| 07  | D7       | RW     | бит 7 данных
| 06  | D6       | RW     | бит 6 данных
| 05  | D5       | RW     | бит 5 данных
| 04  | D4       | RW     | бит 4 данных
| 03  | D3       | RW     | бит 3 данных
| 02  | D2       | RW     | бит 2 данных
| 01  | D1       | RW     | бит 1 данных
| 00  | D0       | RW     | бит 0 данных

Разряды 8-15 не используются

### Поддерживаемые команды накопителя
| F3 | F2 | F1 | Функция
|----|----|----|-------------------------------------
| 0  | 0  | 0  | запись в буфер
| 0  | 0  | 1  | чтение буфера
| 0  | 1  | 0  | запись сектора
| 0  | 1  | 1  | чтение сектора
| 1  | 0  | 0  | не используется
| 1  | 0  | 1  | чтение регистра состояния
| 1  | 1  | 0  | запись сектора с меткой
| 1  | 1  | 1  | чтение регистра ошибок

### Выбор адреса регистров интерфейса
| RC5 | RC4 | Адрес РК           | Адрес РД           | Адрес вектора прерывания
|-----|-----|--------------------|--------------------|-------------------------
| 0   | 0   | 177170<sub>8</sub> | 177172<sub>8</sub> | 264<sub>8</sub>
| 0   | 1   | 177174<sub>8</sub> | 177176<sub>8</sub> | 270<sub>8</sub>
| 1   | 0   | 177200<sub>8</sub> | 177202<sub>8</sub> | 274<sub>8</sub>
| 1   | 1   | xxxxx0<sub>8</sub> | xxxxx2<sub>8</sub> | xxx

Для активации выбора регистров на входе nBS должен присутствовать низкий уровень.
Если на входах RC4 и RC5 высокий уровень, то адрес регистров определяется внешней схемой
которая должна подать активный низкий уровень на вход nBS, адрес на линиях канала nAD3-nAD15
игнорируется.

### Интерфейсные сигналы контроллера НГМД
| Сигнал | Назначение
|--------|--------------------------------------------------------------------
| nSET   | Начальная установка, вырабатывается микросхемой для приведения механизма в исходное состояние
| nDONE  | Завершено, устанавливается контроллером НГМД для индикации того, что текущая команда выполнена (либо в случае ошибки)
| nRUN	 | Пуск, устанавливается микросхемой для инициирования передачи команды или байта данных
| nOUT   | Вывод, вырабатывается контроллером НГМД для указания направления передачи байта информации (при низком уровне сигнала информация передается от НГМД к микросхеме)
| nTR    | Запрос передачи, устанавливается контроллером НГМД для индикации того, что он готов принять/передать байт информации
| nDI    | Вход данных, линия для приема последовательной информации
| nDO    | Выход данных, линия для передачи последовательной информации
| nSHFT  | Сдвиг, линия синхронизации приема/передачи последовательной информации, длительность отрицательного импульса > 200 нс, период - 1 мкс
| nERR   | Ошибка, устанавливается контроллером НГМД при обнаружении ошибки, при этом прекращается выполнение текущей команды и устанавливается сигнал nDONE

### Функциональное описание
При низком уровне сигнала nDONE запись в регистр команды слова с ”1” в нулевом разряде
вызывает установку сигнала nRUN, который инициирует контроллер НГМД на прием команды.
Контроллер НГМД снимает сигнал nDONE и выставляет на линию nSHIFT серию из восьми импульсов.
После снятия сигнала nDONE снимается сигнал nTR, а серия импульсов синхронизирует выдачу
команды в последовательном коде на вывод DO, начиная со старшего бита. В зависимости от
принятого кода команды контроллер НГМД устанавливает сигналы nOUT и nTR. При установленном
сигнале nTR, в зависимости от состояния сигнала nOUT обращение к регистру данных вызывает
установку сигнала nRUN, который снимается после снятия сигнала nTR, и серию импульсов
на выводе nSHFT. По окончании выполнения команды устанавливается сигнал nDONE, который используется
для работы по прерыванию. Запрос прерывания nVIRQ возникает при появлении сигнала nDONE
и при наличии в регистре команд установленного бита разрешения прерывания IE.
