====== Мультирежимные контроллеры дисковода "A16" и "A16M": техническое описание ====== (В.Е.Новак, фирма "АльтПро") A16 предназначен для подключения от одного до трех дисководов к БК0010(-01); A16M - для подключения 1 или 2 дисководов к БК0010(-01) или БК0011М, на БК0011М обеспечивает доступ к HALT-режиму. В А16М реализована защита от стирания информации на дискетах при выключении питания (без использования потребляющих большую мощность микросхем 531 серии). * Как различить контроллеры "К+16", А16 и А16М: если у Вас А16 или А16М, то при включении питания (без нажатия каких-либо клавиш) на экран автоматически выводится сообщение о контроллере. Если у Вас А16М, то в сообщении сказано, что контроллер годится и для БК0011М ( А16 - только для БК0010(-01) ). ПЕРЕЗАПУСК компьютера, осуществляемый нажатием кнопки "RESET" контроллера, возможен двух типов: кратковременное нажатие на кнопку работает традиционно и приводит к выходу в текущий режим; длительное удержание кнопки (1 сек и более) приводит к установке стандартного режима работы ДОЗУ (режимы описаны ниже) и: * запуску тестов, если ни одна клавиша в момент отпускания RESET не нажата; на А16: * загрузке операционной системы, если нажат "пробел"; * сохранению регистров R0-R6 в ячейках 37762-37776 и выходу в монитор БК, если нажат "0"; * сохранению регистров R0-R6 в ячейках 7762-7776 и областей памяти 0-10000 в 10000-20000 и 120000-140000 (или 140-160000) в 20000-40000, если нажата клавиша "1" (или "2"); * передаче управления на адреса: 130000 при нажатой клавише "3", 140000 - "4", 150000 - "5", 137000 - "6", 157000 - "7", и на адрес, содержащийся в ячейке 376, если нажата клавиша "8"; на А16М: * старое значение SP сохраняется в 37776, SP устанавливается на 37776; если установлен признак "перехвата перезапуска" - содержимое ячейки 137720 "стартового" режима = 37776, то управление сразу передается на 137722; иначе устанавливается стандартный для данной модели БК (10-01 или 11М) режим работы доп. ОЗУ и: * если нажата клавиша "0" или "1" - произойдет попытка загрузки с соответствующего привода; * если нажата клавиша "2" - передается управление на 100000 (таким образом на БК0011М достигается "перезапуск на 100000"); * клавиши "3"-"8" обрабатываются так же, как и на А16. И на А16, и на А16М команды монитора БК10 "T0", "T1" (а на А16 и "T2") вызывают загрузку с привода с соответствующим номером; "T3"-"T7", "T10" работают аналогично перезапуску с нажатием клавиш 3-7, 8 соответственно; "Т2" на А16М передает управление на 100000. Примечания: - Встроенный тест включает в себя проверку программируемого таймера, который находится в процессоре БК 1801ВМ1 и к контроллеру отношения не имеет. В случае появления сообщений об ошибках других узлов необходимо обратиться к изготовителям. - В тесте корректно определяется тактовая частота БК 3 МГц, 4 МГц и 6 МГц. При использовании неправильной схемы "турбирования" БК, опубликованной в журнале "ИНФО", точность определения тактовой частоты не гарантируется. Если ваш экземпляр контроллера на повышенной тактовой частоте не работает, обратитесь в фирму-изготовитель. - Наращивание памяти до 64 или 128 Кбайт можно произвести в фирме "АльтПро" или у официальных дилеров на льготных условиях. ===== Назначение контактов выходного разъема контроллера ===== (выход к дисководу) ^ Контакт ^ Сигнал ^ Назначение контакта ^ | 8 | ИНД | Индексный маркер | | 10 | ВН0 | Выбор накопителя 0 | | 12 | ВН1 | Выбор накопителя 1 | | 14 | ВН2 | Выбор накопителя 2 | | 16 | МВК | Включ. двигателя | | 18 | НПШ | Направление шага | | 20 | ШАГ | Шаг | | 22 | ЗПД | Данные записи | | 24 | РЗП | Разрешение записи | | 26 | Д00 | Нулевая дорожка | | 28 | ЗЗП | Запрет записи | | 30 | ДЧТ | Данные чтения | | 32 | ВП0 | Выбор поверхности | | 34 | ГОТ | Готовность | Все нечетные - ОБЩИЙ. В А16М сигнал ВН2 незадействован. Первый провод в плоском кабеле соответствует 8-му контакту разъема. Используется кабель 2 видов: 27 жил или 26 жил. В случае, если в кабеле 26 жил, 33 контакт разъема пропускается. ===== Назначение контактов входного разъема контроллера (МПИ) ===== ^ Сигнал ^ Контакт ^ | AD0 | A31 | | AD1 | B31 | | AD2 | B29 | | AD3 | B30 | | AD4 | B28 | | AD5 | A28 | | AD6 | B27 | | AD7 | B32 | | AD8 | B26 | | AD9 | A27 | | AD10 | B25 | | AD11 | A26 | | AD12 | B24 | | AD13 | A25 | | AD14 | B23 | | AD15 | B7 | | SYNC | B22 | | RPLY | B20 | | DIN | A23 | | DOUT | B21 | | WTBT | B11 | | RESET | B19 | | RESTA | A1 | | BAS1 | A14 | | BAS2 | A29 | | MON10 | B1 | | GND | AB2,3 | | +5V | AB12 | | +5V | A4 | | MON11 | B6 | | RAM11 | A22 | AD0-AD15-...-RESET - стандартные сигналы шины; RESTA - перезапуск процессора (низким уровнем); BAS1,BAS2 - блокировка ПЗУ Бейсика на БК0010(-01) (высоким); MON10 - сигнал отключения ПЗУ монитора БК0010(-01) (высоким), схема отключения реализована не на всех БК (зависит от завода-изготовителя - см. ниже); MON11 (только для A16M) - сигнал отключения ПЗУ монитора БК11М (высоким), для отключения требуется доработка БК0011М; RAM11 (только для А16М) - сигнал отключения верхней страницы ОЗУ (100000-140000) БК0011М (низким); при выставленном сигнале RAM11 потребление увеличивается на 30-50 мА. ===== Дополнительные возможности ===== На БК0010-01 последней версии, выпускаемой заводом "Экситон" с 1991 года, возможно программное отключение монитора-ПЗУ БК и подключение на его место вторых 8 Кбайт ДОЗУ, что дает возможность внесения изменений в монитор БК, максимально надежного перехвата обращений программ к магнитофону за счет изменения содержимого ячейки 100036, загрузки любых экранных шрифтов. Доработка БК0010-01 предыдущих выпусков заключается в следующем: 1) отсоединить от схемы вывод B1 разъема МПИ и вывод 23 микросхемы 1801РЕ2-017; 2) в образовавшийся разрыв между выводом 23 и "общим" впаять резистор 1 кОм и соединить вывод 23 с контактом B1 МПИ. По многочисленным просьбам в А16М предусмотрена возможность отключения монитора БК0011М, сигнал отключения выведен на контакт B6 разъема МПИ (как было предложено в статье в журнале "Персональный компьютер БК"). Контакт B6 в БК незадействован - для того, чтобы отключение монитора БК11М работало, необходимо сделать доработку, аналогичную предложенной для БК0010 - только B6 отделять от схемы не надо и номер микросхемы другой: DS17 (1801РЕ2-324 или 1801РР1). Сигнал отключения верхней страницы ОЗУ БК0011М используется при обмене данными с дополнительной памятью контроллера. ===== Режимы подключения ОЗУ контроллера A16M ===== ^Название режима ^ Start ^ Std10 ^ ОЗУ10 ^ Basic ^ Std11 ^ ОЗУ11 ^ ОЗУзз ^ Hlt11 ^ |Код включения | 160 | 60 | 120 | 20 | 140 | 40 | 100 | 20000 | |Откл. мон. БК10 | | | + | + | | | + | + | |-/- мон. БК11М| | + | | + | | + | | + | |-/- верх.ОЗУ-11М| + | + | + | + | | | | | |170000-177777 | ПЗУ | - | - | - | - | - | - | 3W | |160000-167777 | ПЗУ | ПЗУ | ПЗУ | - | ПЗУ | 2 | ПЗУ | 2 | |150000-157777 | 1 | 1 | - | - | - | 1 | - | 1 | |140000-147777 | 0 | 0 | - | - | - | 0 | - | 0 | |130000-137777 | 3 | 3 | 3 | - | - | - | 3 | - | |120000-127777 | 2 | 2 | 2 | - | - | - | 2 | - | |110000-117777 | - | - | 1 | 1 | - | - | 1 | - | |100000-107777 | - | - | 0 | 0R | - | - | 0R | - | Обозначения: ПЗУ - ПЗУ объемом 10000; 0,1,2,3 - 4 сегмента ОЗУ по 10000 (по 4 Кб); R,W (0R,3W) - указанный сегмент доступен только по чтению или записи соответственно. Назначение режимов: * Start - аппаратно подключается при вкл. питания и "длинном" перезапуске, перехватывается управление при запуске; * Std10 - стандартный для БК10 с доп. ОЗУ 16 Кб; * ОЗУ10 - для БК10: вместо монитора подкл. вторые 8 Кб ОЗУ; этот же режим используется на БК0011М для доступа к доп. ОЗУ контроллера (верхняя страница ОЗУ БК11М отключается); * ОЗУзз - то же, но нижние 10000 ОЗУ подключаются в режиме квази-ПЗУ (с запретом записи - отсюда "зз"), что позволяет обеспечить максимально надежную эмуляцию БК0010 с магнитофоном - работают даже савинские программы, стирающие экран до прерывания по вектору 4; * Basic - режим для подключения ПЗУ Бейсика БК0010-01; * Std11 - стандартный для БК0011М - ОЗУ отключено (при запуске подключается стандартный для каждой модели БК режим!); * ОЗУ11 - на место монитора БК11М и ПЗУ-160000 подключается ОЗУ, на МПИ выставляется сигнал отключения монитора БК11М; * Hlt11 - то же, плюс обеспечивается доступ к HALT-режиму. Режимы включаются следующим образом: MOV #6,@#177130 ;стробирующий код MOV CODE,@#177130 ;код включения режима MOV #0,@#177130 ;очистка Для очистки в данной модели контроллера можно использовать и команду CLR, команда "MOV #0,..." приведена для совместимости с контроллерами с доп. ОЗУ 128 Кб и выше - там CLR использовать нельзя (MOV #0 и CLR - не одно и то же). ПЗУ Бейсика БК0010-01 подключается традиционно установкой 3 разряда регистра 177130, правда при этом, как видите, режим работы ОЗУ не меняется. Регистры контроллера дисковода отключаются по чтению установкой 2 разряда того же регистра. (Т.е., для подключения Бейсика после соотв. подготовки используется команда MOV #14,@#177130; для работы в Бейсике есть готовая программа - BASIC16M). ===== Режимы подключения ОЗУ контроллера A16 ===== ^ Название режима ^ Start ^ Std ^ ОЗУзз ^ ОЗУрз ^ - ^ Std ^ ОЗУзз ^ ОЗУрз ^ | Код включения | 140 | 40 | 100 | 0 | /150 | /50 | /110 | /10 | | Откл. мон. БК10 | | | + | + | | | + | + | | 170000-177777 | ПЗУ | - | - | - | BAS | BAS | BAS | BAS | | 160000-167777 | ПЗУ | ПЗУ | ПЗУ | ПЗУ | BAS | BAS | BAS | BAS | | 150000-157777 | 1 | 1 | - | - | BAS | BAS | BAS | BAS | | 140000-147777 | 0 | 0 | - | - | BAS | BAS | BAS | BAS | | 130000-137777 | 3 | 3 | 3 | 3 | BAS | BAS | BAS | BAS | | 120000-127777 | 2 | 2 | 2 | 2 | BAS | BAS | BAS | BAS | | 110000-117777 | - | - | 1 | 1 | - | - | 1 | 1 | | 100000-107777 | - | - | 0R | 0 | - | - | 0R | 0 | Назначение первых четырех режимов совпадает с назначением аналогично названных режимов контроллера A16M (зз = запрет записи, рз = разрешение записи). Их включение тоже выполняется аналогично контроллеру A16M. Установка 3-го разряда регистра 177130 автоматически увеличивает номер режима на 4 (т.е. перебрасывает в правую половину приведенной таблицы режимов), отключает регистры контроллера (177130,177132) по чтению и подключает ПЗУ с Бейсиком. ===== Нумерация версий контроллеров "АльтПро" ===== Номер версии доступен программно - он содержится в последнем слове ПЗУ (по адресу 167776). В старшем байте закодирован номер модели контроллера, в младшем - номер версии прошивки ПЗУ: * 174000 - A16; * 174400 - A16 + контроллер "винта" с доп. ОЗУ 4 Кб (170-177000); * 175000 - A16M; * 175400 - не использ.; * 176000 - 64 Кб * 176400 - 128 Кб * 177000 - 256 Кб * 177400 - 512 Кб Для четырех последних: если младший байт > 0 - то это старая версия ПЗУ совмещенного контр. винчестера и дисковода SMK64, ее нужно заменить (ПЗУ установлено на панелях); если мл. байт имеет значение от 200 до 300 - это номер версии ПЗУ контроллера SMK с указанным объемом ОЗУ; если > 300 - это номер версии ПЗУ дисководного контроллера A..M с указанным старшим байтом объемом памяти.