Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Прошивка микрокода Д3-28 |
<<Назад Вперед>> | Страницы: 1 * 2 | Печать |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Как пользоваться файликом с дампом прошивки. Пояснения к формату файла и пр. 1. Модуль ПЗУ имеет объём памяти: - (М) микросхемный = 48 кбайт ровно - (ДТ) диодно-трансформаторный = 22528 байт 2. Организация памяти: - М — 8 кслов, каждое шириной 48 бит - ДТ — 4 кслов, каждое шириной 44 бит 3. Шина адреса представлена двумя наборами линий — "ПX.." и "ПY..". Ну, такая несовременная нотация, очевидно, происходит из того, что линии ПX.. приходят на X-дешифратор адреса, а ПY — сотвесна на Y-дешифратор, которые выбирают в XY-матрице требуемый проводок (это в смысле в диодно-трансформаторном ПЗУ). В микросхемном модуле ПЗУ все эти линии приходят на адресные входы микросхем масочного ПЗУ, но нотацию менять не стали. Короче, можно рассматривать этот набор линий просто как монолитную шину адреса вот с такими хитрыми обозначениями отдельных линий - М — шина адреса имеет ширину 13 бит и представлена линиями ПY64, ПY32, ПY16 ... ПY1, ПX32, ПX16 ... ПX1 - ДТ — шина адреса имеет ширину 12 бит и представлена линиями ПY32, ПY16 ... ПY1, ПX32, ПX16 ... ПX1 3++. Для очень внимательных инженеров сообщу, что на самом деле в ДТ ПЗУ Y-дешифратор принимает только линии ПY16 ... ПY1 — таким образом получается, что "проводков" и "диодиков" в матрице всего (2^5)*(2^6)=2048, а не 4096, как должно было бы быть для получения заявленных "4 кслов". Фишка в том, что каждый проводок проходит через 88 считывающих трансформаторов, а не через 44 (по ширине слова = 44 бит). Ну а суть линия ПY32 — она просто выбирает, какой набор из 88 трансформаторов - "первые 44" или "вторые 44" - выбрать для формирования отклика модуля. Получается, что "вторые 44 трансформатора" в те времена были дешевле, чем ещё "вторые 2048 диодиков"... Ну, на самом деле, думаю, лимитирующим фактором было место на плате, т.к. трансформаторы такого места занимают существенно меньше, чем поляна диодиков 4. Отмечу, что я условно принял линии "ПY" как старшие разряды адреса, а линии "ПX" - как младшие. Это в общем не так суть важно, но просто строки в файле с дампом прошивки упорядочены имеено исходя из такой схемы "упаковки" адреных линий. 4++. Для внимательных инженеров сообщу, что такая схема упаковки "почти" соответствует той схеме, которая принята в модуле микросхемного ПЗУ. Здесь "почти" означает, что преимущественно ПX приходят на младшие линии шины адреса A0..A12 микросхем ПЗУ, а ПY - преимущественно на старшие. Но на самом деле там почему-то вот именно линия ПY32 приходит на линию A0 — это как непонятное для меня исключение... Наверное с целью нас с вами - потомков - запутать К чему я это уточнение сделал — ну, к тому, что если кто-то вдруг зачем-то захочет соотнести "мою" прошивку с прошивкой конкретной микросхемы из состава модуля ПЗУ, то надо иметь в виду, что там вот есть такие нюансы в принципиальной схеме. A0 = ПY32, A1 = ПX1, A2 = ПX2, ну и т.д. 5. Шина данных представлена набором линий "E.." - М — шина данных имеет ширину 48 бит и представлена линиями E1..E48 (обратите внимание, что нумерация с "1", а не с "0") - ДТ — шина данных имеет ширину 44 бит и представлена линиями E1..E44 6. !! очень важное обстоятельство !! На самом деле все линии адреса и данных в модуле ПЗУ (как М, так и ДТ) — инверсные. То есть на разъёмы выведены сигналы "~ПX..", "~ПY..", "~Е..". Как я не люблю вот эти инверсные сигналы! Это всегда так запутывает дело и заставляет писАть много-много лишних буковок, чтобы два-три раза разными словами объяснить читателю одну и ту же весчь — лишь бы тебя 300% поняли правильно. Так вот, в моём файле данные представлены для ПРЯМЫХ (т.е. НЕинвертированных) линий ---- т.е. для линий "ПX..", "ПY..", "Е..". Если в моём файле указано, что скажем линия ПX1 принимает вот здесь значение 0 — то это означает, что на контакт разъёма платы "~ПX1" нужно подать +5 В (т.е. инвертированное значение). То же - с "ПY" и с "Е". 6++. А вот сигналы управления "СТРОБ" и пр. у этих модулей ... вроде бы ... не инвертированные — но это к файлу прошивки отношения уже не имеет Вот. Ну, теперь, особенно если посмотреть схему модуля, полагаю, должно быть понятно, как работать с файлом, который я тут расшарил. |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Интересные моменты. 1. Я понятия не имею, зачем в микросхемном модуле ПЗУ ширина слова микрокода была увеличена до 48 бит, при том, что в диодно-трансформаторном ПЗУ она составляет 44 бита. 2. Если кто-то думает, что в верхних 24 кбайтах микросхемного модуля ПЗУ записаны супер-секретные алгоритмы, которых нет в машинах с диодно-трансформаторным ПЗУ, ну или хотя бы порнушка... ... расслабьтесь! там записана КОПИЯ нижних 24 кбайт — не больше и не меньше. Но я бы не спешил сказать "увы" по поводу пункта 2. Наличие второй копии прошивки: - во-первых, позволяет сравнить её с первой копией — и, если они равны, то утверждать, что обе они сдампились правильно (ну, наверное, так можно утверждать) - и во-вторых, если вам не повезло, и конкретно в вашем модуле ПЗУ побился один-два битика в "нижнем" банке, то вы можете перевести ваш модуль ПЗУ на работу по "верхнему" банку (в надежде, что в нём нет битых битиков) |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 мая 2018 2:13 Сообщение отредактировано: 7 мая 2018 2:14
Если кто-то захочет повторить опыт, то пишите сюда — я дам комментарии по запросу. Схему я собрал предельно примитивную: - шлейфы для подключения к модулю --- вот это было, пожалуй, самым трудоёмким моментом - микроконтроллер ATmega32, четыре керамических кондюшка и один электролит в цепи питания... кварц тут не понадобился... ну, ещё я добавил светодиод, чтобы по его "условному подмигиванию" как-то видеть, что там контроллер сейчас делает - плата для быстрого прототипирования и пучок проводков к ней - блок питания... Нюанс! Модуль микросхемного ПЗУ хавает аккурат 1 ампер постоянного тока при напряжении питания 5 вольт - ну и самый задрипищенский программатор AVR ISP MKII (даже не JTAG) Вот фоточки: Внимательные инженеры, наверное, обратили внимание, что в перечне совершенно отсутствуют детали для организации канала передачи прошивки из микроконтроллера в компутер... ... да, такого канала там суть и не было. Мне было нереально в лом заморачиваться с чем-то типа COM-порта (RS-232). Поэтому я реализовал сохранение считанной прошивки в Flash память ATmega, а потом просто вычитывал всю его память через программатор. Контроллер ATmega32 имеет четыре 8-битных порта. Два из них я использовал для линий адреса и управления - ПY, ПX, СТРОБ, tПЗУ, свето-диод. Другие два - для чтения части линий шины данных "E..". // понятно, что мне пришлось дампить прошивку в три итерации, т.к. 48/16 = 3. |
Sergei Frolov
Advanced Member
Коллекционер Откуда: Питер Всего сообщений: 2719 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июля 2003 |
Вот спасибо! |
Kinder5912 |
Могу в дополнение выложить перерисованную схему микросхемного модуля ПЗУ (чтобы не ломать глаза на оригинальной схеме). http://www.portal.kinderland.r...T1JUQUw%3D. |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 8 мая 2018 4:26 Сообщение отредактировано: 8 мая 2018 5:03
Похоже, удалось проссечь, для чего таки нужны четыре дополнительных битика E45..E48 в микросхемном ПЗУ. В общем, если из разрядов E45..E48 составить 4-битное двоичное число (разряд E48 - самый младший), то... ... дополнение этого числа до 16 и число единиц в разрядах E1...E44 должны быть равны по модулю 16. То есть, эти четыре бита - это просто контрольные биты. Например, строка: PY..... PX.... E...................................................E 64....1 32...1 48....41 40....33 32....25 24....17 16.....9 8......1 0000000 101010 : 10110000 10011000 00000000 00001011 11111100 11111011 разряды E44..E1: 0000 10011000 00000000 00001011 11111100 11111011 число "единиц" равно 19 по модулу 16 получим 3 в разрядах E48..E45: 1011 составим число >E45.E48> — получим 0b1101 = десятичное 13 дополнение до 16 будет равно 3 Вот. Это выполняется по всему файлу. // скриптик для python 2.7: f = open("rom.txt", "r") |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Друзья, всем привет! Перезалил прошивку — так что, кто уже успел качнуть файл, обновитесь! Что поменялось — только форматирование: 1) упорядочил столбцы E1 .. E48 в порядке от 1 до 48 изначально я их выстроил в обратном порядке - от 48 до 1 почему их так необходимо перевернуть? ну, выяснилось, что на самом деле "старший" бит имеет меньший номер линии, чем "младший" например, в блоке ветвлений микрокода адрес следующей инструкции принимается по такой схеме: E29 => ПY16 E30 => ПY8 E31 => ПY4 E32 => ПY2 E33 => ПY1 E34 => ПX32 E35 => ПX16 E36 => ПX8 E37 => ПX4 например, микрокоманда 8W0..7 выбирается по коду с весами: E18 => 4 E19 => 2 E20 => 1 ну и ещё там полно таких же примеров Короче, бит E1 - самый старший — поэтому удобней будет, если его показывать первым слева. 2) отделил биты E45..48, т.к. они лишь кодируют проверочный код и не являются частью микрокоманды 3) отделил бит адреса ПY64, т.к. он выбирает один из двух (идентичных) банков ПЗУ больше ничего не менял |
shattered
Advanced Member
Всего сообщений: 953 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 фев. 2008 |
Круто Формат микрокода похож на Wang? |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
да кто же его знает! вот здесь — единственная, известная мне, фотография блока ПЗУ от Wang 720: http://www.oldcalculatormuseum.com/wang720.html // ищите "Compare to the ROM in the Wang 720C (right)" рискну предположить, что у wang 720, по крайней мере, такая же ширина слова микрокода — 44 бита кстати, по фото видно, что у wang 720 поляна диодиков в два раза больше, чем у Д3-28 надо думать это потому, что наши инженеры догадались поставить 22 трансформаторных блока вместо 11, как было в оригинале, и тем самым сократить число прооводочков и число диодиков с 4096 до 2048 // а инхние инженеры — не догадались!! |
xoiss
Advanced Member
Всего сообщений: 711 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 окт. 2013 |
Сегодня с коллегой по интересам Kinder5912 сличали прошивки микрокода Д3-28 - с моей стороны был опубликованный здесь файлик - со стороны Kinder5912 были помикросхемные дампы — снятые отдельно с каждой К596РЕ1 0082..0087 О результатах, думаю, Kinder5912 сам в скором времени подготовит детальный отчёт — ждите! Но, в процессе сличения была обнаружена ошибка в схеме принципиальной блока "микросхемного" ПЗУ ПЕЛ3.065.001. Ошибка именно в схеме (т.е. в документе). Сама суть плата, конечно же, сделана правильно. Ошибка выявлена путём сравнительного сравнения одного с другим, другого с третьим и т.д. Исправленный участок схемы: Если вдруг картиночка не грузится, то словами: - ошибочно указано: выводы D20:10 и D20:11 обозначены как цепи ~E42 и ~E43 и показаны подключенными к контактам X2:Б3 и X1:А3 соответственно - должно быть: выводы D20:10 и D20:11 обозначены как цепи ~E43 и ~E42 и показаны подключенными к контактам X1:А3 и X1:Б3 соответственно То есть там сразу две ошибки: - указан номер разъёма X2 (неправильно) вместо X1 (правильно) - взаимно перепутаны цепи ~E42 и ~43, а также контакты А3 и Б3 разъёма X1 Большое спасибо Kinder5912 за предоставленные для сличения помикросхемные файлы-дампы. Без них ошибка в схеме осталась бы невыявленной. P.S. Да, если, что то файл с прошивкой, опубликованный здесь выше, — он правильный. То есть ошибка в принципиальной схеме, вскрывшаяся сегодня, на этот файл влияния не оказывала. |
<<Назад Вперед>> | Страницы: 1 * 2 | Печать |
Полигон-2 » Калькуляторы, арифмометры, PDA, HPC » Прошивка микрокода Д3-28 |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |