Titus имеет в виду "потактово-точную эмуляцию", и донимает меня этим с момента моего появления на этом форуме.
Сейчас, в частности, эмулятор UKNCBTL написан так, что каждая инструкция выполняется за определённое число тактов, зависит от инструкции, типа адресации, и иногда от операндов - это неточное приближение. Длительность для каждой операции выставлена "ну где-то получается так".
В реальности всё намного сложнее, потому что:
1. Аппаратная реализация процессора гораздо сложнее, в частности, там есть предвыборка операций.
2. На длительность операций влияют другие устройства - они подтормаживают выполнение операции на шине МПИ - мешают процессору выбирать команды и выполнять их, возникают дополнительные задержки.
Плюс ко всему этому, есть несколько вариантов схемотехники УКНЦ и несколько вариантов управляющих микросхем.
hobot (08.12.2019)
hobot, не надо так. Titus много сделал и продолжает делать для этой платформы, и я лично ему очень благодарен за его вклад.
hobot (09.12.2019)
А такой эмулятор в принципе то можно создать? Ведь получается, что для потактовой эмуляции фактически нужно знать точные временные диаграммы работы устройств на МПИ и даже, быть может, внутреннюю структуру СБИС, используемых в них. И не факт, что всю необходимую информацию можно получить из описания микросхем в справочнике и принципиальных электрических схем.
Отдельные кусочки паззла уже есть, см. темы https://zx-pk.ru/threads/23978-tsifr...e-vse-vse.html и https://zx-pk.ru/threads/30964-rever...515khm1-2.html
Но, как правильно замечает Titus, фактически ядро эмулятора надо будет переписывать. Кто когда этим будет заниматься - неизвестно.
- - - Updated - - -
Кстати, есть ещё один эмулятор УКНЦ который вполне можно довести до ума не особенно большими усилиями - драйвер uknc в составе MAME/MESS.
Может @shattered до него доберётся.
https://github.com/mamedev/mame/blob...ivers/uknc.cpp
nzeemin (09.12.2019)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)