Почему бы не retn? Из за ее двухбайтовости? Если возвращаться по ret, тогда придется немного усложнить обработчик, чтобы корректно вернуть состояние iff1 (но это программная часть, т.ч. не так сложно).
Насчет сохранения адреса возврата nmi в регистрах. Это, конечно, не единственный вариант, но действенный и вместе с тем сравнительно простой. В принципе можно и конфиг памяти переключать по nmi, но тогда в идеале под сохранение адреса нужно подключить свободное озу на 64 Кб (т.к. стек может оказаться где угодно) а потом переключиться на страницу с обработчиком nmi - но все это как то слишком заморочено. Хотя можно и так - подменить адреса при сохранении адреса возврата из nmi, чтобы запулить их в заведомо безопасное место. Надо смотреть, что проще, мне на вскидку кажется, что вариант с регистрами.
Хотя можно вобще не заморачиваться и как в эмуляторе Фролова для вектора оставить естественный ход вещей с сохранением на стеке.
Еще один момент, который желательно предусмотреть (есть в адаптере Фролова) - возможность включения/выключения защиты от записи в область 0000-3FFF.





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