PDA

Просмотр полной версии : Эмулятор (не симулятор) микрокалькуляторов расширяющегося ряда. Б3-34, МК61 ....



felix
11.02.2011, 21:08
После изучения книги Я.К. Трохименко, возникла идея сделать реальный эмулятор микроконтроллеров серии 145ИК13 и 145ИК18, и на их основе эмулятор МК61. Насколько я знаю все существующие "эмуляторы" -- в своей основе симуляторы, так как микрокод не был до конца описан. В связи с этим был куплен и разобрал МК61. Под микроскопом выяснил что микрокод читаем из пзу оптически (видны диоды). Так как архитектура описана доскональна (хоть и очень тяжелым языком), то можно воссоздать содержимое всех ПЗУ.
В аттаче пример картинок из микроскопа -- во второй и третьей диоды в ПЗУ микрокоманд под разными углами поляризатора.

План работы таков --
1) 145ИК1303 -- не описана большая часть команд и микропоследовательностей, но приведены все микрокоманды -- первая микросхема, которую я фотографирую под микроскопом
2) 145ИК1302 -- бОльшая часть микропоследовательностей описана, как и бОльшая часть команд.
После получения ПЗУ этих двух контроллеров уже можно сделать рабочий эмулятор Б3-34.
3) 145ИК1306 -- не описан вообще.
На этом этапе можно сделать эмулятор МК61
4) 145ИК18 (контроллер ВЗУ) - расписаны микрокоманды и часть синхропоследовательностей
На этом этапе можно сделать эмулятор МК52.
Собственно разыскиваются заинтересованные энтузиасты в команду разработчиков. Особо нужны специалисты по reverse engineering чипов -- те кто могут самостоятельно "вычитать" содержимое ПЗУ микроконтроллеров.

ZEman
12.02.2011, 07:32
интересно, значит у калькуляторов тоже есть биос.
меня давно очень интересует одна приставка, videosport - в ней есть биос или зашитая программа, реально ли сделать эмулятор ?

felix
12.02.2011, 10:33
интересно, значит у калькуляторов тоже есть биос.
меня давно очень интересует одна приставка, videosport - в ней есть биос или зашитая программа, реально ли сделать эмулятор ?
1. Насчет BIOS -- если подразумевается Базовая Система Ввода Вывода (Basic Input Output System), то она есть у ЛЮБОГО компьютера -- в РК-86, например -- это часть монитора, которая обслуживает клавиатуру и дисплей. В ИК1302 какраз есть программы отвечающие за обслуживание клавиатуры и дисплея. Насчет программного обеспечения этих микроконтроллеров --
Программа = последовательность Команд.
Команда = последовательность Синхропрограмм.
Синхропрограмма = последовательность Микрокоманд.
Микрокоманда = набор микроприказов( все они исполняются параллельно). Соответственно есть ПЗУ Микрокоманд, ПЗУ Синхропрограмм, ПЗУ Команд. А команды отдаются либо с клавиатуры, либо из ОЗУ (в режиме исполнения), либо выбираются автоматически после исполнения текущей команды (если для выполнения действия надо более чем одна команда -- в синхропрограмме будет поставлен код следующей команды).
2. Видеоспорт -- это на 145ИК17? -- если да, то это клон понга, насколько я помню совместимый даже по выводам (со cдвигом). Никакого отношения к ИК13хх или ИК18хх внутренне не имеющий. Если интересует внутреннее устройство, фотографии кристалла и прочее -- вот отличный ресурс по разбору чипов. http://siliconpr0n.wikispaces.com/

Kakos_nonos
13.02.2011, 22:59
Надо сделать фотографию высокого качества, а потом написать программку на делфи, которая всё в двоичный код переведёт.
С программой я могу немног помочь :)

felix
15.02.2011, 03:41
Положил сшитую картинку, где голубым помечены местоположения битов, а зеленым пронумерованы микрокоманды.

http://felixl.com/calc/urom-marked1.zip

Кобзарь
29.05.2011, 15:08
Очень заинтересован, правда, в результатах Вашего труда, т. к. сам вряд ли смогу сейчас Вам чем-нибудь помочь. На днях собираюсь начать досконально изучать использование и программирование Б3-34 и т. д. Нет, я пользуюсь ими уже давно, но теперь хочу плотно ими заняться.

---------- Post added at 14:08 ---------- Previous post was at 14:01 ----------


Положил сшитую картинку, где голубым помечены местоположения битов, а зеленым пронумерованы микрокоманды.

http://felixl.com/calc/urom-marked1.zip

Это фото какого ПЗУ? Ведь там их много. И если это так просто, то почему это еще никто не сделал.

felix
14.06.2011, 14:12
Это фото какого ПЗУ? Ведь там их много. И если это так просто, то почему это еще никто не сделал.
Прошу прощения за задержку. Это фото пзу микрокоманд ИК1303.
Это одна из первых фотографий. Сейчас у меня есть фотографии гораздо лучшего качества, но их к сожалению не могу выложить сюда из-за объема. На каждый чип по 2 фотографии размером 700-800 мб каждая.
В данный момент я векторизирую послойно фотографии. После векторизации можно будет начать перерисовку схемы и симуляцию, используя наработки http://www.visual6502.org

Titus
15.06.2011, 05:04
На каждый чип по 2 фотографии размером 700-800 мб каждая.
В данный момент я векторизирую послойно фотографии. После векторизации можно будет начать перерисовку схемы и симуляцию
А что с кристалом от 1801ВМ2, и нет ли в природе фоток Z80?

BYTEMAN
15.06.2011, 10:47
и нет ли в природе фоток Z80?
На форуме уже пробегали... И Т34 по-моему тоже фотки были...

Titus
15.06.2011, 12:08
На форуме уже пробегали... И Т34 по-моему тоже фотки были...
Не путай фотографию 9x12 с наивной надписью 'На память', и то, что делает Феликс и другие энтузиасты электронного микроскопа)

felix
16.06.2011, 15:52
А что с кристалом от 1801ВМ2, и нет ли в природе фоток Z80?

Вот для затравки две фотки ВМ2. Z80 у меня нет, и как таковой меня не интересует. В Zilog можно обратится...

Titus
16.06.2011, 16:39
Вот для затравки две фотки ВМ2. Z80 у меня нет, и как таковой меня не интересует. В Zilog можно обратится...
Ничего затравочного в них нет при таком разрешении.
Если б можно было обратиться, давно бы обратились)

felix
16.06.2011, 18:44
Ничего затравочного в них нет при таком разрешении.
Если б можно было обратиться, давно бы обратились)
К сожалению форум не дает возможности вложить фотки нормального качества. Послойный архив весит около 2х гиг в PSD формате.

про zilog -- обратиться можно всегда -- +1-408-513-1519 x2701 --инженер в Сан Хозе, который может помочь хобби делу. По крайней мере в 2009м у него можно было взять фотошаблоны и схему оригинального Z80. (В бумажном виде)

svofski
16.06.2011, 18:51
2 гига сразу в торрент, заодно бекап будет =)

Titus
16.06.2011, 19:02
К сожалению форум не дает возможности вложить фотки нормального качества. Послойный архив весит около 2х гиг в PSD формате.

про zilog -- обратиться можно всегда -- +1-408-513-1519 x2701 --инженер в Сан Хозе, который может помочь хобби делу. По крайней мере в 2009м у него можно было взять фотошаблоны и схему оригинального Z80. (В бумажном виде)

Можно попробовать на торрент или narod.yandex.ru.

К сожалению, языками не владею, и не смогу толково обьяснить инженеру из Сан Хозе, чего я от него хочу)

---------- Post added at 19:02 ---------- Previous post was at 18:57 ----------


По крайней мере в 2009м у него можно было взять фотошаблоны и схему оригинального Z80. (В бумажном виде)
И вообще, очень странно, что можно было, а никто не взял.
Есть у него что-то более подходящее для связи, e-mail или типа того?

felix
17.06.2011, 05:24
Про ВМ2 -- всё в порядке очереди - не железный я :). Разберусь со 145й серией -- она мне наиболее интересна сейчас, тогда займусь ВМ1-м (загадка природы), потом ВМ2ым а затем и до ВМ3его дойду.
Про Zilog -- у меня и телефона не должно было быть -- просто в своё время пролетало мимо и я записал. Ни имени ни email к сожалению у меня нет. Сегодня позвонил -- попал на автоответчик (не было на месте) - с именем Eugen. Как время появится - попробую ещё раз постучаться только в более калифорнийское время.(У нас 3 часа разницы). А если нужно больше -- есть альтернатива судя по статусу у группы ребят из visual6502 http://visual6502.org/wiki/index.php?title=Chips_in_our_collection у Z80 статус 7 -- тоесть картинки уже сняли, сейчас полигонят... ещё чуть и будет транзисторный симулятор

Titus
17.06.2011, 10:48
Про ВМ2 -- всё в порядке очереди - не железный я :). Разберусь со 145й серией -- она мне наиболее интересна сейчас, тогда займусь ВМ1-м (загадка природы), потом ВМ2ым а затем и до ВМ3его дойду.
А чем это таким ВМ1 загадочней ВМ2?


Как время появится - попробую ещё раз постучаться только в более калифорнийское время.(У нас 3 часа разницы).
Буду очень признателен.

felix
17.06.2011, 15:48
А чем это таким ВМ1 загадочней ВМ2?

Своим происхождением -- из ВЕ1 он произошел или как... да и пару моментов с микрокодом не ясно.

Titus
17.06.2011, 19:38
Своим происхождением -- из ВЕ1 он произошел или как... да и пару моментов с микрокодом не ясно.
Зато, он гораздо лучше документирован, на сколько я знаю.

felix
06.01.2012, 08:21
Собственно обновление:
Эмулятор начал обретать реальные очертания. Наконец стало известно достаточно о процессоре для написания эмулятора. Эмулятор к145ик13 уже функционален. Могут быть недописки, но все программы он пробегает как требуется. Параллельно занимаемся документацией ИК13. Проект и документация, как и обещалось -- открытая.

страница проекта http://code.google.com/p/emu145/

Самая загадочная информация -- о входах/выходах процессора --

http://code.google.com/p/emu145/wiki/IK13IO

По мере появления качественных фотографий -- будем набивать ПЗУ и доводить эмулятор до стадии использывания. На данный момент в эмуляторе есть почти полный отладчик процессора ИК13.

skyther
06.01.2012, 10:21
хорошо, когда у человека совпадают желания и возможности :)

felix
28.08.2012, 20:11
Поднимая старую тему -- хочу пригласить на сайт нашего проекта. http://code.google.com/p/emu145/
Прогресс колосален -- мы уже восстановили ПЗУ микрокомманд, ПЗУ синхропрограмм и ПЗУ комманд ИК1302 - и процессор уже бежит и исполняет то что ему положено. Правильно отрабатывается ввод програм и их исполнение (без комманд для ИК1303! -- нельзя считать и оперировать со стеком). На странице проекта так-же выложены микрофотографии ПЗУ и всего процессора - для публики. Сейчас обрабатываем ПЗУ комманд ИК1303 -- после чего минимальная конфигурация эмулятора -- Б3-34 будет полностью рабочей! Со всеми глюками (тьма и монстры)!
Параллельно я занимаюсь созданием эвристического дизассемблера для полного понимания алгоритмов этих ПМК.
Так-же будет написан ассемблер для возможностей расширения и изменения алгоритмов.
Еще пытаюсь написать оптическую распознавалку для ПЗУ на основе OpenCV.

felix
29.08.2012, 14:24
В целом Б3-34 работает как надо. Кто не может дождаться релиза красивой версии -- качаем Qt SDK и компилируем для своей платформы. Если кто не может компилировать -- идем в Эмуляторы 3000 и качаем красивую версию ЭМУЛЯТОРА Б3-34. Евгений Троицкий, который помог нам перевести картинки ПЗУ в массивы, успел добавить эмулятор (на сей раз не симулятор!!!) в свой комплект! Молодец!
О том что не хватает --- переключатель Р-ГРД-Г еще не разобран. Я смотрю в микроскоп для опознания его принципа.

Titus
29.08.2012, 14:36
Не забыл про кристалл 1801ВМ2?

felix
29.08.2012, 15:57
Не забыл про кристалл 1801ВМ2?
Лежит и ждет своей очереди. Уже вытравил М1.

Titus
29.08.2012, 18:07
Лежит и ждет своей очереди. Уже вытравил М1.
Что значит вытравил M1?

felix
29.08.2012, 18:12
М1 == метал 1 == вернхий слой проводников в алюминии. -- что-бы можно было видеть транзисторы.
вытравил -- растворил. И того есть 2 распакованных ВМ2 -- один не тронут. Второй со снятой маской М1.

Titus
29.08.2012, 18:22
Монстр... Еще бы Z80 наконец-то срисовать, а то так нигде и не всплывает.

felix
29.08.2012, 18:27
чей z80? zilog? или гдр/советский? -- если zilog -- то забудь то что срисовано работать не будет -- я не смогу колодцы сфотографировать -- мне их нечЕм подкрасить. А вообще -- если кто хочет какой чип сфотографировать -- давайте список в отдельной ветке -- по мере свободного времении займусь. Пока очередь такова -- ИК1306, ИК1801, 1801ВМ2.

Titus
29.08.2012, 18:34
чей z80? zilog? или гдр/советский? -- если zilog -- то забудь то что срисовано работать не будет -- я не смогу колодцы сфотографировать -- мне их нечЕм подкрасить.
Да любой. Хорошо бы и тот, и тот. И что такое колодцы?
Впрочем, даже если не весь кристалл будет расшифрован, все равно хорошо, т.к. нерасшифрованные участки могут в практическом плане не содержать ничего интересного.

felix
29.08.2012, 18:37
Впрочем, даже если не весь кристалл будет расшифрован, все равно хорошо, т.к. нерасшифрованные участки могут в практическом плане не содержать ничего интересного.

А кто его "расшифровывать" будет?

Andrey_Korabelev
29.08.2012, 20:06
Кому-нибудь встречались аналогичные исследования над КБ1013ВК1-2, который внутри электронной игры "Ну, погоди", или его оригинала - Nintendo EG-26 Egg?

Tim0xA
29.08.2012, 21:19
Вот если бы К145ИК17 или AY-3-8500 сфоткать и расшифровать, то можно было бы сделать эмулятор игр типа "Pong"...

Titus
29.08.2012, 22:48
А кто его "расшифровывать" будет?
Это уж кто захочет)

felix
31.08.2012, 14:08
Сделал мерцание =). К сожалению записать его оказалось трудно -- но что-то все-таки получилось.
смотрим тут -- http://emu145.googlecode.com/files/pmk.mov
Или качаем код и компилируем для своей платформы.
Или ждем пока Евгений Троицкий сделает у себя. =)

svofski
31.08.2012, 14:53
Хинт для тех, кто боится компилировать сам:

Ставим qt4:

sudo port install qt4-mac
на Маке, или что-то типа

sudo apt-get install libqt4-core libqt4-debug libqt4-debug-dev libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf
на Линуксе.

Берем сорцы:

svn checkout http://emu145.googlecode.com/svn/trunk/ emu145-read-only

идем в


cd emu145-read-only/pmkemu


говорим


qmake && make


Все готово, запускаем:


$(find . -type f -perm +rwx)


Как это делать на винде, ума не приложу :)

felix
31.08.2012, 16:01
на винде:
1. качаем MinGW - http://sourceforge.net/projects/mingw/files/latest/download?source=files
В установщике ставим только компиляторы С и С++
2. качаем QT - http://www.developer.nokia.com/dp?uri=http%3A%2F%2Fsw.nokia.com%2Fid%2F23f71960-21d3-4b7a-9329-4d5484c49c68%2FQt_SDK_Win_online
3. открываем новоустоновившийся QtCreator
4. через любой svn клиент забираем исходники (гугл вам в помощь)
5. File->Open project
6. жмем большой зеленый треугольник
7. ...
8. PROFIT

Собраному exe, для запуска отдельно от qtcreator, нужно накидать dll-ок от QT и MinGW. Dependancy walker (http://www.dependencywalker.com/) вам в помощь.

Может быть, когда оторвусь от микроскопа, соберу установщик под винды. А пока наслаждаемся как есть.

---------- Post added at 08:01 ---------- Previous post was at 07:59 ----------

Кстати -- теперь есть ответ на многолетнюю загадку -- почему кнопка "К" именно "К" называлась =) "F" -- понятно - для функций. А "К" -- это от названия байта в памяти ПМК -- Канал связи. Все коды комбинаций, которые начинаются с нопки К отправлялись в Канал связи для обработки другими контроллерами. Так что теперь можно добавить свой процессор и свои новые функции даже в реальный Б3-34 -- и, скажем, ловить "К" + "-" =) и выдавать текущее время в регистр X
или например по "К" "+" складывать 2 комплексных числа -- с реальными и мнимыми частями в стеке (x,y,z,t) и выдавать ответ с реальной частью в X и мнимой в Y
=)

skyther
01.09.2012, 17:25
или сделать работу с "файлами" как в мк-52

svofski
01.09.2012, 20:09
Подарок к дню знаний — билды для винды.
Текущий снепшот:
http://code.google.com/p/emu145/downloads/detail?name=pmkemu_snapshot_20120901_1948.zip

Кобзарь
02.09.2012, 19:42
или сделать работу с "файлами" как в мк-52
Как раз, как в МК 52, не надо. В МК 52 нет команд доступа к "внешней" памяти из программы. Это есть в МС 1104 (http://www.leningrad.su/museum/show_calc.php?n=133&lang=1).

felix
17.09.2012, 03:56
Добавлен ИК1306 -- теперь МК61 эмулируется. Сейчас работаю над загрузкой/выгрузкой памяти.

Steven Steel
30.11.2012, 00:38
Феликс, как идут дела с изготовлением версии для iPhon-а?
http://sfrolov.livejournal.com/124581.html?thread=2812581#t2812581

felix
30.11.2012, 01:04
Только вчера отправил в appstore . ждем реакции apple.

Steven Steel
30.11.2012, 01:07
Отличная новость! Спасибо.

Steven Steel
05.12.2012, 17:19
Прошу прощения, приложение попало в appstore?

Пока смог найти там две программы я так понимаю других авторов:
https://itunes.apple.com/ru/app/id448164171?mt=8
https://itunes.apple.com/ru/app/id535423946?mt=8

Не хочется тратить время на симуляторы, получить сразу полный эмулятор.

felix
10.12.2012, 21:01
ждем еще. они обычно загружены перед праздниками. если до 19го не попадет, то только после 2го января

Steven Steel
12.12.2012, 08:53
Как приложение будет называться?

profAleks
17.02.2013, 12:37
Скажите пожалуйста, а МК-54 ориентировочно когда будет ?

shattered
17.02.2013, 14:24
Вот если бы К145ИК17 или AY-3-8500 сфоткать и расшифровать, то можно было бы сделать эмулятор игр типа "Pong"...

Он есть -- DICE (http://sourceforge.net/projects/dice/)

---------- Post added at 14:24 ---------- Previous post was at 14:13 ----------


Еще пытаюсь написать оптическую распознавалку для ПЗУ на основе OpenCV.

Коллеги из MAME/MESS пошли другим путем (mechanical turk):

http://www.mameworld.info/ubbthreads/showthreaded.php?Number=249247

и результат:

http://ajg.mameworld.info/

Titus
17.02.2013, 19:03
Коллеги из MAME/MESS пошли другим путем (mechanical turk):

http://www.mameworld.info/ubbthreads/showthreaded.php?Number=249247

Лучше сразу по русски в двух словах, чтобы не напрягаться с вниканием и переводом.

shattered
17.02.2013, 19:05
Посадили людей набивать прошивку, глядя на фотографии

andreyu
16.02.2017, 22:34
Что-то тема заглохла. Прикинусь некромантом и попробую воскресить тему.
Есть версия для iOS?

Sergei Frolov
03.03.2019, 15:03
Кто-нибудь может распознать ПЗУ от К145ИК1305 (он же ВХ205) калькулятора МК-44?
http://radiopicture.listbb.ru/viewtopic.php?p=8057#p8057

Там такой же процессор стоит, можно было бы сделать эмулятор.

shattered
03.03.2019, 15:57
и я даже знаю, как этот эмулятор будет называться :)

Sergei Frolov
03.03.2019, 17:56
Там с МК-44 хитрость в том, что его можно заапгрейдить, добавив микросхему-регистр памяти.

felix
03.03.2019, 19:17
Кто-нибудь может распознать ПЗУ от К145ИК1305
По тому линку слишком малое разрешение. Есди ПЗУ микрокоманд еще можно распознать - то синхропоследовательности - уже сложнее -- много мусора.
Я попробую на следующих выходных набить.

Sergei Frolov
03.03.2019, 19:27
Там еще такая есть
http://radiopicture.listbb.ru/viewtopic.php?p=7844#p7844

felix
03.03.2019, 19:34
Да, я на нее уже наткнулся поиском -- вот этот вариант отлично http://ipic.su/img/img7/fs/K145VH205842_M.1511592714.jpg

Sergei Frolov
10.03.2019, 12:14
Я попробую на следующих выходных набить.

Получается?

Sergei Frolov
21.03.2019, 08:54
Чтобы считать код К145ИК1305 хочу найти соответствия между фотографией кристалла известного кода другого чипа К145ИК1302
http://radiopicture.listbb.ru/viewtopic.php?f=3&t=65&p=7816&hilit=к145ик1302#p7816

и готового исходного текста прошивки https://pmk.arbinada.com/mk61emuweb.html
Там есть коды


ИК1302: {
команды: [
0x00204E4E, 0x00117360, 0x00114840, 0x01040240,
0x00164040, 0x001B3240, 0x00064640, 0x015B4013,
0x00D93130, 0x00001040, 0x01A52014, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00C12040,


Пока не могу найти, от чего оттолкнуться, где это соответствие на картинке.

Bolt
21.03.2019, 18:19
Верхнее большое поле - 64 горизонтальных адресных линии по 23x4=92 бита, итого 256 23-битных слов. А прошивка по ссылке 25-битная. Или я не туда смотрю, или мне не то показывают :)

- - - Добавлено - - -

https://code.google.com/archive/p/emu145/wikis/IK13xxCommandROM.wiki
Понятней стало? Мне - нет.

Sergei Frolov
21.03.2019, 18:23
Там весь калькулятор - сгусток интеллекта.

Bolt
21.03.2019, 20:01
В коде из 32 бит используются только 23, вот так:
0000000x xxxxxxxx 0xxxxxxx 0xxxxxxx

- - - Добавлено - - -

смотрим на картинку http://ipic.su/img/img7/fs/K145IK1302901_m.1511275207.jpg
большой прямоугольный блок чуть выше центра (не у самого края)
справа декодер адреса, 6 младших бит
в строке 92 бита
внизу мультиплексор данных 4 в 1, управление - два старших бита адреса
64 строки по 92 столбца
столбцы делим по 4 штуки = 23 группы
в группе 4 столбца это адреса 0...63, 64...127, 128...191, 192...255.
группы слева направо: сначала нулевые биты байтов АСП1 АСП2 АСП3, потом первые, вторые... шестые, бит 7 АСП3, потом бит МОД
байты в команде: МОД АСП3 АСП2 АСП1

Строки не знаю как расположены, но самая верхняя строка это адреса 1, 65, 129, 193.

- - - Добавлено - - -

Адреса построчно с самой верхней строки: 1, 33, 17, 49, 9...
То есть младший бит декодера адреса это А5, потом А4, А3, дальше не проверял.
А0=1 - верхняя половина.
А0=0 - нижняя половина.
Нижняя половина блока отражена зеркально.
Адреса построчно с самой нижней строки: 0, 32, 16, 48, 8...