Да, это я видел... Но по поступлении первого NMI-прерывания, процессор-обработчик потратит около 20 тактов (довыполнение команды, CALL #66 :PUSH AF...) прежде чем успеет изменить состояние "бита 4 регистра ZXPoly R1". Так что, на мой взгляд - толку от отключения NMI нету, все равно не успеть...Сообщение от Raydac
Пример: эмуляция HDD. Понадобится перехват записи в регистр данных. Запись выполняется весьма быстрыми цепочками OUT-ов. Каким образом сделать так, чтобы ни байтика не потерялось?
Можно ввести отключаемую карту маппинга. Отъест она в памяти 16 Кб (64 К портов, на запись и на чтение = 128к, на каждый по битику). Хотя, безусловно, это тоже усложнит систему. Но без подобной карты (да хоть фиксированной или в быстром флеше) смысла в перенаправлении портов я всё таки я не вижу.Сообщение от Raydac
Ведь чтобы проэмулировать даже самую простую перифирию процессор обработчик должен "служить прослойкой между портами и CPU0." для всех осталных портов, а это очень тяжело, а часто и невозможно. Как минимум, все бордюрные эффекты сразу умрут, beeper-овский звук тоже, и т.д.
BTW, каким образом узнать адрес порта в случае возникновения в процессоре-обработчике NMI или INT?





