|
Цитата:
|
Цитата:
- Правильно ли я понимаю, что выбор нужного контроллера осуществлялся дополнительными разрядами в посылке данных? Вы писали на форуме iXBT, что в расширенной посылке было полноценных 8 (а не 5) бит данных - Как конкретно осуществлялся выбор контроллера? Я предполагал, что "номер" задавался распайкой выводов и определялся внутри самого контроллера. Однако на блок-схеме есть порт P0–P3 — правильно ли я понимаю, что он использовался для выбора "следующего" в схеме (ведущий/ведомый) или у него была другая задача? ( Вот ссылка на описание, которое я имею в виду: https://calculators.pdp-11.ru/manuals/1013vg2.pdf ) - Возможность задействовать дополнительные разряды — это было предусмотрено в стандартной версии контроллера, или речь шла об опытных экземплярах? Аналогичный вопрос и по процессору: поддерживалась ли такая схема посылки стандартным серийным процессором, или использовались доработанные версии? |
Цитата:
Посылка на последовательном интерфейсе состоит из 8 бит адреса и 5 бит данных, причем адрес задвигается в регистр непрерывно и может быть любой длины, в регистре остаются последние 8 бит на момент изменения состояния вывода SYNC. А вот данные - наоборот - задвигаются по внутреннему счетчику, первые же пять бит после изменения состояния вывода SYNC, которые сразу записываются в ячейку ОЗУ или в регистр. Имеется 96 ячеек ОЗУ размером 5 бит в адресами 00H..5FH, регистр курсора по адресу 60H и регистр порта по адресу 68H. В регистре курсора старший бит определяет тип курсора (подчеркивание или блок), младшие 4 - номер знакоместа. Младшие 4 бита регистра порта просто выводятся на выводы P0..P3. Регистр порта задумывался просто как расширитель для процессора (у него сильно не хватало выводов для управления внешними устройствами). В АОНе на базе этого комплекта - ребята повесили на эти выводы R2R матрицу и получили простейший ЦАП, который использовали для управления контрастностью. Старший бит адреса должен соответствовать уровню на входе Т. Собственно это и давало возможность подключить два контроллера к одной шине данных (подключив вывод Т к земле у первого, и к питанию у второго) и выбирать нужный одним битом в адресе. Это штатная работа того контроллера, который используется в МК-85 и МК-87. От процессора тут тоже ничего дополнительного не требуется в аппаратном смысле. Версия контроллера с посылкой 8 бит данных - это совсем другое изделие, и в виде микросхем не выпускалось - 4 контроллера разваривались прямо на стекле индикатора и управляли матрицей 80х64 точек - это был индикатор для советского GPS приемника. Версия двух контроллеров, которые могли управлять одним ЖКИ с двумя строчками по 12 символов была мной сделана на базе Т36ВГ2 в начале 90-х годов и, насколько мне известно, в серию не пошла. Надеюсь я все объяснил. Если что непонятно - спрашивайте. Однако хочу отметить, что все это - жуткий офтоп здесь, наверное лучше обсуждать это в другом месте (например в той самой теме про калькуляторы, которую создал Андрей Бабанин) |
Цитата:
Понимаю, что вопросы оффтоп, но продолжать обсуждение в теме "про калькуляторы", наверное, тоже не лучший вариант. Надеюсь, Андрей нас простит и, если посчитает нужным, перенесёт посты в другую ветку. В целом теперь всё стало ясно. Т.е. для адресации второго ЖКИ надо подать питание на вывод "Т" (61, вход управления режимом) и писать в область, начинающуюся с 0x80. С самого начала мне казалось странным использовать дополнительные биты данных именно для адресации — логично было бы передавать полные 8 бит данных. Вероятно, недопонимание у меня возникло из-за формулировок в описании Т36ВМ1-2 (в КА1013ВМ1 уже явно говорится о 5 битах) и вашей статьи на форуме iXBT: "Контроллер дисплея преобразует 8 младших разрядов адреса и 8 младших разрядов данных в последовательный код на выводе ADO и формирует сигнал синхронизации каждого разряда этого кода на выводе SHIFT" Еще один уточняющий вопрос: Правильно ли я понимаю, что нумерация знакомест в регистре курсора начинается с нуля и, чтобы "погасить" курсор в одной из строк, достаточно записать в регистр номер несуществующего знакоместа, например 0xF? |
Цитата:
Цитата:
Остальные данные, едущие по шине просто игнорируются, до изменения состояния на выводе SYNC, которое сбрасывает состояние последовательного интерфейса в исходное. Цитата:
Цитата:
|
Цитата:
"Контроллер дисплея преобразует 8 младших разрядов адреса и 8 младших разрядов данных в последовательный код на выводе ADO и формирует сигнал синхронизации каждого разряда этого кода на выводе SHIFT" - скопирована из документации на процессор Т36ВМ1-2 (скорее всего, это просто ошибка). А вот в более подробном описании микросхемы КА1013ВМ1 (в моем понимании, та же микросхема) дано уже "правильное" описание. Еще раз спасибо за ответы, все понятно. |
Цитата:
Есть еще такая фигня - первая версия МК-85 была сделана на стандартном 1806вм2 и куче достаточно тупых БМК типа 1515хм1. И в этой версии - в контроллере дисплея хранилась только одна строка битов для вывода на ЖКИ. То есть - на каждую строку отображения ЖКИ генерировалось прерывание, процессор выкатывал очередную строку (30х1) на контроллер ЖКИ для вывода, заодно опрашивая состояние клавиатуры. Это была первая версия МК-85, она была полностью рабочей, но прожила недолго - до момента замены всего комплекта на Т36. И, как положено, компьютер именно этой первой версии и имеется у меня:) |
Цитата:
Разные версии МК-85 это очень интересная тема! Еще бы Бэйсик получше и побыстрее (p-code + двоичная арифметика) ... но что не случилось, то не случилось. Ну и давайте сразу попробую "просуммировать" и попросить разрешения скопировать текст, т.к. разговор изначально стартовал на другом форуме: Использование двух ЖКИ-контроллеров КА1013ВГ2 (МК-85/87) (по информации Бориса Кроткова, разработчика контроллера) Контроллер поддерживает возможность подключения двух устройств к общей последовательной шине. Выбор активного контроллера осуществляется с помощью входа "Т" (управление режимом) и старшего бита адреса в посылке, которая формируется при байтовой записи в нижние адреса ПЗУ процессора. Информация передается на вход AD под управлением сигналов SHIFT и SYNC (W/R сигнал процессора). При этом на последовательную шину передаются адрес и данные, начиная с младшего бита. По переднему фронту сигнала SHIFT процессор устанавливает очередной бит на выводе AD, по заднему фронту информация защёлкиваются в приёмнике контроллера ЖКИ. Посылка начинается с передачи адреса. После перехода сигнала SYNC из высокого уровня в низкий передаются данные. Контроллер всегда использует последние 8 переданных бит адреса и первые 5 бит данных. Контроллер обрабатывает посылку только если старший бит адреса совпадает с уровнем на входе "Т", т.е. байтовая запись в ПЗУ процессора с адресами 00H–7FH обрабатывается контроллером с входом "Т", подключённым к земле. Запись в адреса 80H–FFH — контроллером с входом "Т", подключённым к питанию. Обращение к памяти и регистрам со стороны процессора : ОЗУ (адреса 00H–5FH / 80H–DFH): 96 ячеек по 5 бит.По информации от Бориса разрабатывались и другие версии контроллеров. Вариант с 8 битами данных собирались применять в сборках ЖКИ (80×64 точки), предназначенных для GPS-приёмников. Также была опытная версия на базе Т36ВГ2 для ЖКИ с двумя строками по 12 символов. |
Цитата:
Цитата:
Цитата:
Использование двух ЖКИ-контроллеров КА1013ВГ2 (МК-85/87) (по информации Бориса Кроткова, одного из разработчиков контроллера) Контроллер поддерживает возможность подключения двух устройств к общей последовательной шине. Выбор адресного пространства контроллера осуществляется с помощью входа "Т" (управление режимом) и, соответствеенно, старшего бита адреса в посылке, которая формируется при байтовой записи в нижние адреса ПЗУ процессора(*). Информация передается на вход AD под управлением сигналов SHIFT и SYNC (W/R сигнал процессора). При этом на последовательную шину передаются адрес и данные, начиная с младшего бита. По переднему фронту сигнала SHIFT процессор устанавливает очередной бит на выводе AD, по заднему фронту информация защёлкиваются в приёмнике контроллера ЖКИ. Посылка начинается с передачи адреса. После перехода сигнала SYNC из высокого уровня в низкий передаются данные. Контроллер всегда использует последние 8 переданных бит адреса и первые 5 бит данных. При переходе сигнала SYNC в высокий уровень последовательный интерфейс контроллера ЖКИ переходит в исходное состояние. Контроллер обрабатывает посылку только если старший бит адреса совпадает с уровнем на входе "Т", т.е. байтовая запись в ПЗУ процессора с адресами 00H–7FH обрабатывается контроллером с входом "Т", подключённым к земле. Запись в адреса 80H–FFH — контроллером с входом "Т", подключённым к питанию. (**) Обращение к памяти и регистрам со стороны процессора : ОЗУ (адреса 00H–5FH / 80H–DFH): 96 ячеек по 5 бит.По информации от Бориса разрабатывались и другие версии контроллеров. Вариант с 8 битами данных применяли в сборках ЖКИ (80×64 точки), предназначенных для GPS-приёмников. Также была опытная версия на базе Т36ВГ2 для ЖКИ с двумя строками по 12 символов (в серию не пошла). * - эту фразу я не понял, извините. Что за "нижние адреса"? оставил как есть ** - в те времена было модно считать низкий уровень как логическая "1", а высокий - как логический "0". Так что может быть и наоборот. |
Цитата:
Я имел в виду "младшие" адреса - эх, давно уже ничего не писал по-русски. Вы также абсолютно правы по поводу уровней - я перепроверил по схеме МК-85 и исправил. Обсуждение велось на этом форуме, однако, на мой взгляд, ко многим сообщениям (особенно касающимся планов модификации МК-85) стоит относиться с определённой осторожностью: http://www.leningrad.su/calc/cforum....1&topicid=1215 Использование двух ЖКИ-контроллеров КА1013ВГ2 (МК-85/87) (по информации Бориса Кроткова, одного из разработчиков контроллера) Контроллер поддерживает возможность подключения двух устройств к общей последовательной шине. Выбор адресного пространства контроллера осуществляется с помощью входа "Т" (управление режимом) и, соответственно, старшего бита адреса в посылке, которая формируется при байтовой записи в младшие адреса ПЗУ процессора. Информация передается на вход AD под управлением сигналов SHIFT и SYNC (W/R сигнал процессора). При этом на последовательную шину передаются адрес и данные, начиная с младшего бита. По переднему фронту сигнала SHIFT процессор устанавливает очередной бит на выводе AD, по заднему фронту информация защёлкиваются в приёмнике контроллера ЖКИ. Посылка начинается с передачи адреса. После перехода сигнала SYNC из высокого уровня в низкий передаются данные. Контроллер всегда использует последние 8 переданных бит адреса и первые 5 бит данных. При переходе сигнала SYNC в высокий уровень последовательный интерфейс контроллера ЖКИ переходит в исходное состояние. Контроллер обрабатывает посылку только если старший бит адреса соответствует уровню на входе "Т" - байтовая запись в ПЗУ процессора с адресами 00H–7FH обрабатывается контроллером с входом "Т", подключённым к питанию. Запись в адреса 80H–FFH — контроллером с входом "Т", подключённым к общему. (Этот вариант используется в МК-85) Обращение к памяти и регистрам со стороны процессора : ОЗУ (адреса 00H–5FH / 80H–DFH): 96 ячеек по 5 бит.По информации от Бориса разрабатывались и другие версии контроллеров. Вариант с 8 битами данных применяли в сборках ЖКИ (80×64 точки), предназначенных для GPS-приёмников. Также была опытная версия на базе Т36ВГ2 для ЖКИ с двумя строками по 12 символов (в серию не пошла). Цитата:
Тут надо определиться с тем, что такое сделать "лучше": - Удобство использования - однозначно (разве что было жесткие ограничения ТЗ). - Расширение/дополнения языка BASIC - от введения целых/одинарной/двойной точносит (скорость) до другого определения массивов, команд работы с портами, возможность ассемблерных вставок (опять-таки тут возможны проблемы с ТЗ) - Изменение работы с переменными (предварительная упаковку, одинарная/двойная точность, денормализация). Тут, возможно, были бы проблемы с размером кода в 8К ПЗУ, но частично можно было бы реализовать. У меня (был) неплохой опыт разработки ПРО под эту платформу (Э-60/ ДВК/НЦ-80) - не только "офисных" приложений (за моим авторством EDIK, CALC, EM.SYS), но и оптимизации вычислений для систем управления реального времени. К сожалению, без сравнительных тестов производительности трудно говорить о чем-то конкретном в смысле скорости. |
Часовой пояс UTC +3, время: 08:31. |