Без этого вообще невозможно сделать точную эмуляцию. И кстати, условные команды CALL и RET выполняются за разное количество тактов, в зависимости от условия, тоже надо учитывать.
Например, мы запускаем эмуляцию 50 раз в секунду по таймеру (или сигналу КСИ). Эмуляция команд процессора происходит в цикле. В нём же мы учитываем, сколько тактов выполнил наш процессор. Как только это число перевалило за 40000, завершаем цикл и ждём следующего срабатывания таймера. Таким образом в секунду мы эмулируем 50*40000=2000000 тактов процессора, что соответствует тактовой частоте 2МГц. В том-же цикле эмуляции нужно эмулировать и другие устройства: экран, звук, в/в магнитофона, последовательный интерфейс и т.д. и т.п.





Ответить с цитированием