|
Цитата:
|
Цитата:
Я пришел работать в НИИТТ весной 1987, к тому моменту кристалл был уже скопирован топологами весь и вышла первая опытная пластина, совершенно нерабочая, естественно. Мы восстанавливали из топологии принципиальные схемы проблемных участков, разбирались в их назначении и искали ошибки. Летом и осенью мы были заняты выпуском партии электронных записных книжек МК-87, потом вернулись к Винни-Пуху. Так что первый рабочий кристалл вполне мог быть изготовлен к лету 1988. На этом наша работа над этим кристаллом закончилась, а куда передавали его производство, я не сильно интересовался тогда. |
Цитата:
Мне это казалось странным и я думал, что это "закоротило" где-то на кристалле, но возможно, это просто ошибки копирования и пластину пустили в производство т.к. в режиме игры все работает нормально. |
Цитата:
До полноценного тестирования с чтением ПЗУ мы дошли гораздо позже. Если я правильно помню, это когда мы масштабировали кристалл от "Ну погоди!" до таких маленьких размеров, что на одной пластине их сделалось очень много, и такой тупой способ тестирования стал занимать на заводе слишком много времени. Тогда я расковырял схему использования тестовых входов и написал полноценную и быструю программу тестирования, которая проводила полноценную внутреннюю проверку АЛУ, ОЗУ, ПЗУ и выдавала на из выводов порта готовый бинарный результат в виде "годен / не годен". Времени на это тратилось на два порядка меньше, и результат был несравнимо более надежным. |
Цитата:
|
Вот это да! А про МК-87 можете поподробнее написать? Очень нравится эта чудо -книжка.
|
Цитата:
------- ДОБАВЛЕНО ЧЕРЕЗ 14 МИН -------- Цитата:
Про МК-87 я могу рассказать гораздо больше, чем про Винни-Пуха. Я участвовал в разработке контроллера ЖКИ для него. Что именно вас интересует? Вот я написал все это и подумал - это же тут лютый офтоп - ни к часам, ни даже к играм это изделие никакого отношения не имеет:) |
Я в свое время создал тему про Калькуляторы, где начал обсуждение про МК-87
http://forum.watch.ru/showthread.php?t=418049 В принципе интересно все, так как проект оказался мега прорывным для этого времени. Датабанки только набирали популярность за рубежом. |
Цитата:
|
Цитата:
А вы не помните, другие игры (картриджы) этой серии - Стройка, Сказка, тоже проектировали у вас? |
Цитата:
|
Цитата:
- Правильно ли я понимаю, что выбор нужного контроллера осуществлялся дополнительными разрядами в посылке данных? Вы писали на форуме 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), но и оптимизации вычислений для систем управления реального времени. К сожалению, без сравнительных тестов производительности трудно говорить о чем-то конкретном в смысле скорости. |
Цитата:
Цитата:
Изначально контроллер ЖКИ имел встроенный делитель напряжения (подразумевалось, что ему не будут нужны внешние резисторы), и встроенный выключатель питания. Делитель был нарисован как длинный резистор с отводами, а выключатель представлял собой транзистор чудовищного размера в углу кристалла (видимый невооруженным глазом) через который на кристалл проходило питание от внешнего вывода. Однако на первой же опытной пластине выяснилось, что из-за отсутствия защитных карманов имеются нелинейные утечки тока в подложку по всей длине резистора. За неимением времени на коррекцию в нижних слоях - мы этот резистор просто отрезали, благо что внешние выводы для делителя все равно существовали (для подключения демпферных емкостей). Чуть позже выяснилось еще одно обстоятельство - при выключении питания путем закрытия чудовищного транзистора, кристалл запитывается через защитные диоды на управляющих входах (ну то есть - например если процессор оставил высокий уровень на входе SYNC, его хватало, чтобы контроллер запитался и включился). И более того - если в такой ситуации включить питание контроллера, его намертво клинило, вплоть до выхода из строя (т.н. "тиристорный эффект"). Поэтому этот транзистор тоже отрезали и провели питание вокруг него. И делитель, и транзистор еще очень долго оставались на серийных кристаллах. Потом вроде бы мы их убрали, когда время уже позволило провести коррекцию. Так вот к чему я это все - этот транзистор открывался и закрывался сигналом на внешнем выводе CE. Этот вывод сделался незадействованым. И вот настигло меня сомнение - не путаю ли я функции выводов "T" и "CE". Это довольно легко выяснить опытным путем, так что ничего критичного тут нет, просто надо взять на заметку. Цитата:
|
Цитата:
Цитата:
Цитата:
Но понятно, что все эти разговоры - старческое брюзжание в пользу бедных. Цитата:
Где-то до середины 1991 года с нами ещё ездил представитель первого отдела и переводчица-стенографистка из министерства т.к. у всех «проданных», разумеется, были допуска. Но позже всем уже стало совершенно всё равно - вот тогда-то и до меня дошло, что СССР больше нет :-) |
Цитата:
Цитата:
|
Цитата:
И, конечно, МК-85/87 были безусловно прорывными "машинками" для своего времени, супер технологии с огромным потенциалом для развития платформы. Очень жаль, что тогда, в конце 80-х, нам не удалось пообщаться за «рюмочкой чая». Хотя в те годы я занимался в основном ПРО и к "железу" относился скорее потребительски, зато сегодня все эти обсуждения вызывают ностальгию — и по тому времени, и по молодости. :) |
Друзья, я тут загорелся идеей заказать новодельные ЖКИ для ИМ-50, Весёлая арифметика. Подскажите, пожалуйста,
1. остались ли у кого контакты тех, с кем можно про это поговорить? Техночас? Китайцы? 2. нету ли у кого топологии данного ЖКИ? Заранее спасибо ;) |
Цитата:
|
Интересная статья по получению прошивки, интересна тем, что там упоминается инструмент для извлечению битов по фотографиям кристалла масочной ПЗУ. Ещё статья по теме.
|
Юбилей эмуляции!
Друзья! Сегодня ровно десять лет, как из чипа была считана прошивка игры "Ну, погоди!" Это важное событие положило начало возможности эмуляции игр Нинтендо и Электроника. Своеобразный юбилей! За эти десять лет десятки тысяч людей по всему миру смогли снова поиграть в ту самую игру детства. Спасибо всем, кто помогал и участвовал в обсуждении этой (безумной тогда) идеи!
|
Цитата:
Десять лет назад сама идея считать ПЗУ "Ну, погоди!" напрямую с чипа, а не по фотографии кристалла, казалась невозможной! Не думали ли Вы закончить цикл статей о процессоре КБ1013ВК1-2 и о том, как считывается ПЗУ? Думаю, что общая схама процесса чтения мне понятна (вот попытался написать на псевдокоде), но дьявол, как обычно, кроется в деталях. Было бы здорово, если бы Вы описали аппаратную схему и дали больше конкретики по таймингам и проблемам. Код:
for each Bank in (0..1) |
Igor427
Описание 1013 было предназначено для создания эмуляторов чипа. Устройство чтения прошивок из Sharp SM5A было повторено по моим наработкам разработчиками MAME, после этого были считаны все программы из всех моделей игр Game&Watch. Таким образом, сам процесс считывания/управления реальным процессором более неактуален. Если коротко пройтись по нюансам считывания, то: 1) Подаваемые извне коды команд должны быть инвертированы (относительно того, что читается из чипа) 2) Момент смены внешних команд относительно клока должен в точности совпадать с моментом переключения шины при чтении пзу, иначе команды не принимаются, либо проц виснет. Больше никаких подводных камней не припомню. |
Цитата:
Ну и, конечно, многим было бы интересно прочитать и про "железо" - но тут я понимаю, что процесс написания статьи занимает много времени. |
Про Альтаир Вы сами писали, что разобрались, и его прошивку добавили в отладчик Милана.
А про футбол и баскетбол — наверно, это Нупогоди с другой картинкой. Где посмотреть видео геймплея? |
Вложений: 2
Я действительно "разбирался" с работой прошивки/железа в игре "Альтаир", но ПЗУ прочитал MilanSK (без его помощи у меня вряд ли нашлось время и желание детально разбираться с процессом чтения), а схему отрисовал siealex (у меня не было работающей/целой игры).
По-поводу игр "Футбол" и "Баскетбол" - это настольные игры с индикацией на светодиодах (в сети много фото и видео), сделанные по мотивам игр Tomy Electronics. У Tomy были похожие игры на TMS1000 (есть советская ИМ-37 на той же базе). Но вот в серии Электроника есть две оригинальные игры на ВЕ1013ВЕ1-2, который "внутри" полностью идентичен Sharp SM-5A/КБ1013. Не очень понятно, сохранили ли на чипе драйвер ЖКИ с знкопеременным мультиплексом или поменяли управление выходами. Если ко мне доедет такая игра - проверю. Удалось купить чипы и ПЗУ прочитал Милан - благодаря ему игры должны появиться в MAME и, надеюсь, появятся в следующей версии его отладчика ( https://www.septimus.sk/) - ИМ-15, в целом повторили gameplay ИМ-37 / "Tomy Electronic World Cup Soccer" - ИМ-55, внешне напоминает "Tomy Tomytronic Basketball” - но внутри это усложненная "ИМ-15". Ничего общего не имеет с Tomy ни по элементой базе, ни по гэймплею. (также отписал Вам в личку) Вложение 3861469 Вложение 3861471 |
Цитата:
|
Цитата:
Когда IgorR76 разбирался с чтением ПЗУ, меня ностальгия ещё не догнала, и я был не совсем в теме - он с Вами обсуждал возможность чтения ПЗУ? Удивила даже не сама возможность тестового режима, сколько то, что, (как я понимаю) всё это удалось раскопать без хоть какого-то внятного описания. Кстати, когда вы в 80-х делали систему тестирования процессора — у вас было какое-то описание от Sharp, или реверс шёл по кристаллу? Или всё методом проб и ошибок? И ещё вопрос вдогонку: не знаете, оставили ли в ВЕ1013 драйвер управления ЖКИ? К сожалению, устройств на этом процессоре у меня нет, так что сигналы «вживую» посмотреть не на чем. |
Цитата:
Цитата:
Я рассказывал Милану про этот процесс, может у него и сохранился мой текст. Цитата:
|
Цитата:
А как было на самом деле? Очень уж она хлипкая получилась - бутерброд "два на общий" (там же общий в центре - контактные слои с обеих сторон) часто коротит внутри |
Цитата:
Про японскую линию ничего не могу сказать, не слышал такого. Эта трехмерная матрица была сделана из-за нехватки выводов на процессоре, Анатолий Подоров очень долго мучался с обработкой дребезга на ней, и вообще с комфортной обработкой нажатий. Выход годных был не очень, судя по тому, что ребята из десятого отделения сделали для нее забавный испытательный стенд, который нажимал все кнопки по очереди резиновыми пальцами на соленоидах (по одному на каждую кнопку). Все экземпляры без исключения проходили через этот тест. Наблюдение за процессом завораживало:) |
Вложений: 1
Цитата:
Цитата:
А вот проблемы с откидной клавиатурой тоже прояснились - в японских прототипах была, скорее всего, матрица - т.е. два слоя и контакты прижимались к основе, а тут появился трехслойный "бутерброд" Я в свое время помучался и переделал на тактовые кнопки с диодными развязками (только нужно ставить low-leakage диоды на высокоомные линии) - по толщине примерно так же. |
Цитата:
Зато тактильный эффект появился. |
Часовой пояс UTC +3, время: 09:30. |