Re: NMI, IRQ, развёртка и совмещение видеорежимов
Вспомнился бородатый анекдот
:D
продиктовано схемой семерки
было независимо измерено двумя человеками
Аргумент.
1 такт ЦП это 1/14300000/14 = 0,979 мкс
Период IRQ 2048 мкс, это составляет 2048/0,979=2091,93 такта ЦП
Спасибо, не знал. Сейчас прерывания эмулируются исходя из одна строка развертки = 64 такта процессора.
Проблема в том, что эмулятор вызывает обработчик IRQ Рапиры чаще, чем надо. На реальном железе обработчик вызывается N раз (не знаю, сколько конкретно) между срабатыванием NMI и 204 строкой развёртки. В эмуляторе он вызывается эти же N раз уже к 164 строке. Если ускорить процессор относительно частоты IRQ, N вызовов будут происходить ещё быстрее.
Сейчас я эмулирую NMI в начале обратного хода луча. Это действительно так на семёрке? Возможно, если ускорить процессор и перенести NMI на начало кадра, получится ближе к правде.