Версия 2021.2
Добавлен звук.
https://github.com/nzeemin/elektroni...m01-2021-2.zip
Версия 2021.2
Добавлен звук.
https://github.com/nzeemin/elektroni...m01-2021-2.zip
AndyFox (08.05.2024), Oleg N. Cher (05.12.2021), Radon17 (05.12.2021), Titus (05.12.2021), [bETA]mEN (05.12.2021)
Версия 2021.3.
Частота процессора поднята с 3 до 4.5 МГц.
Добавлены прошивки 106/107 - ИМ-01, прошивки 148/149 теперь в конфигурации ИМ-01Т.
https://github.com/nzeemin/elektroni...m01-2021-3.zip
С этими ПЗУшками 106/107 есть одна странность.
См. https://github.com/nzeemin/elektroni...cs/106-107.lst
Действия после запуска выглядят так:
* Проверить контрольную сумму с адреса 020000 длиной 8К
* Проверить контрольную сумму с адреса 040000 длиной 8К
* Проверка блока памяти с адреса 000200 длиной 896. байт
* Проверка блока памяти с адреса 002000 длиной 1К
Дальше самое интересное:
Предполагаю, что дополнительные 1К памяти и 2К ПЗУ - это какая-то отладочная плата, которая может быть подключена, а может и нет.Код:020164 TSTB 000076 ; Было прерывание RPLY? 020170 BNE 020176 ; да => пропускаем 020172 CALL 057244 ; Проверить память 060000..061777 и ПЗУ 064000..067777
Ячейка 000076 перед тестами очищается, а по прерыванию RPLY (нет ответа по данному адресу) происходит вот что:
-- то есть, ставим флаг в ячейке 000076 и переходим на адрес R0 - следующий за тем где была проблема. Вот этого я как раз и не понимаю, зачем вообще такой переход.Код:; Прерывание по вектору 4 - RPLY 020444 MOVB #000077, 000076 ; Ставим флаг что было прерывание 020452 MOV R0, (SP) 020454 RTI
Для того чтобы программа всё же заработала как надо, я объявил ячейку 000076 портом, и всегда отдаю там 077 - признак того что дополнительной памяти/ПЗУ нет.
Возможно, есть более "правильная" реализация, но я пока её не вижу.
меня тут попросили подсказать что, оно заранее кладет в R0 адрес куда выпрыгиватьтак что достаточно генерировать прерывания при обращении к незамапленой области адресного пространства и всё будет работать как надоКод:020040 MOV #020060, R0 ; set return destination 020044 MOV #063000, 177750 ; bus error happens here
Проблема была в неточной эмуляции процессора - перетряхнул код, исправил, и убрал свой хак с ячейкой 000076.
UPDATE: Обнаружил, что тут я сломал конфигурацию ИМ-01, так что эта версия бесполезна.
Последний раз редактировалось nzeemin; 27.12.2021 в 05:39.
Oleg N. Cher (26.12.2021), Radon17 (26.12.2021), ZEman (26.12.2021)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Считаны прошивки шахматного компьютера ИМ-05.
Выложены здесь:
https://github.com/nzeemin/elektroni...ee/master/roms
файлы
000205.rom - адрес 20000
000206.rom - адрес 40000
000207.rom - адрес 60000
Добавил конфигурацию ИМ-05, пока сделано на скорую руку: процессор ВМ1 вместо ВМ2, частоты необум. До начальной позиции доходит, ходы делает.
Также в этой версии вернул хак с адресом 000076 для конфигурации ИМ-01 - оказалось что я так и не победил проблему, плохо тестировал в прошлый раз.
Скачать: https://github.com/nzeemin/elektroni...m01-2021-5.zip
nzeemin, доброе утро. Большое спасибо и за этот эмулятор. Потестил на днях. Всё отлично работает. На ИМ-05 есть небольшая ошибка с отображением позиции после хода. Решается нажатием знака вопроса после хода компьютера. Все фигуры встают на нужные места.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)