Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Нет. В моем хаке эмулятора Фролова сделал только одну фичу 128го - поддержку AY. Дело как минимум в отсутствии аппаратной поддержки переключения страниц памяти по стандарту спека. Ну и второй экран пришлось бы программно эмулировать. На векторе с 3 МГц это не круто, но на про экран и программно покатит.
Кстати, при любом варианте использования nmi (для экрана или портов) желательно сделать как в эмуляторе спека для энтерпрайза - адрес возврата из nmi сохранять не в озу, а в регистрах, доступных через порты.
Кстати, хорошая мысль - хранить адрес обработчика NMI (тот куда надо перейти с начального 66h ибо там ПЗУ и места нет) во внешнем регистре (в моем случае думаю это можно хранить в той же ОЗУ что и эмулятор матрицы клавиатуры - все ОЗУ обычно более емкие чем 256 байт, там достаточно памяти на что угодно, хоть на целый обработчик NMI). И регистры процессора туда можно сохранить вместо push/pop.
А вот зачем адрес возврата из nmi сохранять там? Он же на стеке и его гарантированно никто не испортит пока не завершится обработчик NMI?
Последний раз редактировалось Error404; 08.06.2016 в 14:34.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)