PDA

Просмотр полной версии : Эмулятор Электроника ИМ-01 - Back to Life!



nzeemin
27.11.2021, 23:08
Все фото здесь - https://yadi.sk/d/JBYumdXm5dN7LA

https://pic.maxiol.com/thumbs2/1636114410.1559558028.image00051.png (https://pic.maxiol.com/?v=1636114410.1559558028.image00051.png&dp=2)

Если вдруг кто-то из уважаемых эмуляторщиков nzeemin или Titus захочет сделать эмулятор ИМ-01, я всячески буду содействовать! Запишу любые видео работы шахматного компьютера, сниму все фото, какие попросите. Подоткнусь лог. анализатором куда скажете. Могу отрисовать в фотошопе переднюю панель компьютера по своему скану выше.
Я знаю что Никита уже имеет опыт эмуляции шахматного компьютера Интеллект-02, тут наверное даже попроще будет. Архитектура родная и знакомая, процессор - К1801ВМ1. Я недавно читал что у nzeemin осталось мало времени на хобби. Если он захочет написать эмулятор, пусть даст знать как только освободится.

На компьютер к сожалению нигде нет схемы, да и не поставлялась она с ним, кажется. Если что-то будет нужно, я зарисую отдельные участки по плате. Да даже могу её распаять и засунуть в сканер, мне свой экземпляр не жалко, я его специально покупал для снятия дампа ПЗУ.
Есть руководство по эксплуатации, его сканировал Сергей Фролов более 10 лет назад - http://www.leningrad.su/files/elektronika_im_01_im_01t.rar
Кроме того, есть описание на К1809ВВ1 - http://www.155la3.ru/datafiles/k1809vv1.pdf и индикатор ИВЛ2-7/5 - https://radioskot.ru/FILES1/datasheets-ivl-ivl2_7_5.pdf, по нему можно отрисовать сегменты для эмулятора.


Благодаря усилиям Егора Лосева (Radon17) - см. процитированное сообщение - мы имеем возможность эмуляции шахматного компьютера "Электроника ИМ-01".
Помимо прошивки, Егор также помог отрисовкой панели устройства для эмулятора, выяснил устройство клавиатуры, а также тестировал эмулятор на самых ранних стадиях.

https://pic.maxiol.com/thumbs2/1638043412.1845267034.emulatormain.png (https://pic.maxiol.com/?v=1638043412.1845267034.emulatormain.png&dp=2)

Репозиторий кода: https://github.com/nzeemin/elektronika-im01
Релизы: https://github.com/nzeemin/elektronika-im01/releases
Технические подробности: http://www.emuverse.ru/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D 0%B8%D0%BA%D0%B0_%D0%98%D0%9C-01

Текущее состояние: реализованы конфигурации ИМ-01 и ИМ-01T, есть звук.

NEO SPECTRUMAN
28.11.2021, 01:23
лол :v2_lol:
вот это хренотень
это предлагалось?
походить
натыкаать чего находил
сосчитать чего находил девайс
походить за девайс ручками :v2_dizzy_step:

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

и на сколько там используетсо 16К прошивки?

nzeemin
28.11.2021, 01:55
и на сколько там используетсо 16К прошивки?

В смысле есть ли свободное место? С виду нет, всё используется.

- - - Updated - - -

По самому устройству - Электроника ИМ-01:
- Прошивки 148 и 149 - непонятно, почему уровнем игры по умолчанию является уровень 2 - судя по руководству, это должно быть так для ИМ-01Т.
- Память - похоже что используются только нижние 2 КБ ОЗУ из имеющихся 4 КБ
- Индиктор - всё понятно
- Клавиатура - всё понятно
- Звук - пока не нашёл как он выдаётся, какой порт и бит за это отвечает

NEO SPECTRUMAN
28.11.2021, 02:05
В смысле есть ли свободное место? С виду нет, всё используется.
ну как по мне
шахматам надо много рамы а сам код может быть меньше
а тут с точностью на оборот

Radon17
28.11.2021, 09:34
- Прошивки 148 и 149 - непонятно, почему уровнем игры по умолчанию является уровень 2 - судя по руководству, это должно быть так для ИМ-01Т.
Есть некоторые мысли, что в поздние ИМ-01 стали ставить прошивку от 01Т. У С. Фролова на сайте можно увидеть что и в ИМ-01, и в 01Т стоит пара прошивок 148-149. Платы отличаются только объёмом ОЗУ. Почему - непонятно.
Вероятнее всего на заводе остались панели от ИМ-01 и их решили пустить в производство, только с обновлённой прошивкой.
Я нашёл кажется ранний вариант ИМ-01 с другими ПЗУ. Приедет - считаю.

Так что текущая конфигурация эмулятора наверное соответствует ИМ-01Т.

RCgoff
28.11.2021, 12:30
У С. Фролова на сайте можно увидеть что и в ИМ-01, и в 01Т стоит пара прошивок 148-149.
Неверно.

Посмотрел на реальных машинах. Каждой имею по 2 шт.
ИМ-01 имеет прошивки 106 и 107. И между прочим, у С.Фролова тоже. 106 можно разглядеть. (http://www.leningrad.su/museum/show_big.php?n=1293) Вторая слева м/с в нижнем ряду.
ИМ-01Т имеет прошивки 148 и 149.
У ИМ-01Т плата отличается от ИМ-01: иначе расположены "гребенки", нет конденсатора под логикой, порядок расположения м/с ОЗУ и ПЗУ на плате также другой.
ИМ-05 имеет прошивки 205, 206, 207.

Sergei Frolov
28.11.2021, 12:59
Интересно, есть ли там тест памяти, и в случае чего перейдёт на другую половину ОЗУ?

https://i.ibb.co/k5hYYCx/2021-11-28-125933.png

nzeemin
28.11.2021, 13:10
Интересно, есть ли там тест памяти, и в случае чего перейдёт на другую половину ОЗУ?

148 / 149 - тест памяти есть, проверяет нижние 2К ОЗУ, если там проблемы, то зависнет до появления начальной надписи. Если нет вторых 2К ОЗУ или там проблемы - всё равно будет работать.

Radon17
28.11.2021, 13:53
ИМ-01 имеет прошивки 106 и 107.
Интересно, что же мне за такая ИМ-01 попалась? Без Т и со 148-149. На моих фото видно. Могу предполижить только что корпус заменяли, но это маловероятно.
Впрочем мне уже едет ИМ-01 со 106-107 (я на фото первоначально прочитал как 101).

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


ИМ-05 имеет прошивки 205, 206, 207.
А у вас есть ИМ-05?

RCgoff
28.11.2021, 16:28
А у вас есть ИМ-05?
Две штуки. Как раз собирал с целью посклёвывать прошивки. А вот и повод появился. Имею стерх 007 и 011. Выпаяю. Доложу.

nzeemin
05.12.2021, 05:06
Версия 2021.2
Добавлен звук.
https://github.com/nzeemin/elektronika-im01/releases/download/release-2021.2/elektronika-im01-2021-2.zip

nzeemin
08.12.2021, 18:46
Версия 2021.3.
Частота процессора поднята с 3 до 4.5 МГц.
Добавлены прошивки 106/107 - ИМ-01, прошивки 148/149 теперь в конфигурации ИМ-01Т.
https://github.com/nzeemin/elektronika-im01/releases/download/release-2021.3/elektronika-im01-2021-3.zip

nzeemin
11.12.2021, 13:37
С этими ПЗУшками 106/107 есть одна странность.
См. https://github.com/nzeemin/elektronika-im01/blob/master/docs/106-107.lst

Действия после запуска выглядят так:
* Проверить контрольную сумму с адреса 020000 длиной 8К
* Проверить контрольную сумму с адреса 040000 длиной 8К
* Проверка блока памяти с адреса 000200 длиной 896. байт
* Проверка блока памяти с адреса 002000 длиной 1К

Дальше самое интересное:


020164 TSTB 000076 ; Было прерывание RPLY?
020170 BNE 020176 ; да => пропускаем
020172 CALL 057244 ; Проверить память 060000..061777 и ПЗУ 064000..067777

Предполагаю, что дополнительные 1К памяти и 2К ПЗУ - это какая-то отладочная плата, которая может быть подключена, а может и нет.
Ячейка 000076 перед тестами очищается, а по прерыванию RPLY (нет ответа по данному адресу) происходит вот что:


; Прерывание по вектору 4 - RPLY
020444 MOVB #000077, 000076 ; Ставим флаг что было прерывание
020452 MOV R0, (SP)
020454 RTI

-- то есть, ставим флаг в ячейке 000076 и переходим на адрес R0 - следующий за тем где была проблема. Вот этого я как раз и не понимаю, зачем вообще такой переход.

Для того чтобы программа всё же заработала как надо, я объявил ячейку 000076 портом, и всегда отдаю там 077 - признак того что дополнительной памяти/ПЗУ нет.
Возможно, есть более "правильная" реализация, но я пока её не вижу.

MetalliC
18.12.2021, 15:09
то есть, ставим флаг в ячейке 000076 и переходим на адрес R0 - следующий за тем где была проблема. Вот этого я как раз и не понимаю, зачем вообще такой переход.
меня тут попросили подсказать что, оно заранее кладет в R0 адрес куда выпрыгивать
020040 MOV #020060, R0 ; set return destination
020044 MOV #063000, 177750 ; bus error happens here
так что достаточно генерировать прерывания при обращении к незамапленой области адресного пространства и всё будет работать как надо

nzeemin
26.12.2021, 00:22
Проблема была в неточной эмуляции процессора - перетряхнул код, исправил, и убрал свой хак с ячейкой 000076.

UPDATE: Обнаружил, что тут я сломал конфигурацию ИМ-01, так что эта версия бесполезна.

NEO SPECTRUMAN
26.12.2021, 00:35
Обновлённая версия эмулятора:
теперь добавить возможность запустить один мумулятор против другого :v2_lol:

RCgoff
26.12.2021, 18:34
Выпаяю. Доложу.
Считаны прошивки шахматного компьютера ИМ-05.
Выложены здесь:
https://github.com/nzeemin/elektronika-im01/tree/master/roms
файлы
000205.rom - адрес 20000
000206.rom - адрес 40000
000207.rom - адрес 60000

nzeemin
27.12.2021, 05:39
Добавил конфигурацию ИМ-05, пока сделано на скорую руку: процессор ВМ1 вместо ВМ2, частоты необум. До начальной позиции доходит, ходы делает.
Также в этой версии вернул хак с адресом 000076 для конфигурации ИМ-01 - оказалось что я так и не победил проблему, плохо тестировал в прошлый раз.

Скачать: https://github.com/nzeemin/elektronika-im01/releases/download/release-2021.5/elektronika-im01-2021-5.zip

Андрей777
19.05.2023, 05:55
nzeemin, доброе утро. Большое спасибо и за этот эмулятор. Потестил на днях. Всё отлично работает. На ИМ-05 есть небольшая ошибка с отображением позиции после хода. Решается нажатием знака вопроса после хода компьютера. Все фигуры встают на нужные места.