то, что сохранять такое состояние может оказаться бесполезным - с одной стороны возможно и так, но с другой стороны вполне можно придумать ситуации, когда машина со всей памятью забитой префиксом может способна выходить из такого состояния. Тут важно, чтобы была возможность сохранить состояние и отлаживать код даже в такой ситуации.
Обдумав варианты, решил остановиться на компромисном варианте. При остановке эмулятор пытается завершить префиксную инструкцию, если это не получается в течении большого количества тактов, то останавливает как есть. Таким образом минимизируется вероятность префиксного состояния, которое невозможно корректно сохранить SZX, в то-же время во время загрузки при наличии взведенного флага LAST_EI (который по документации взводится также и для префиксов), производится проверка предыдущего опкода в памяти, если это префикс, то восстанавливается префиксное состояние. Таким образом эмулятор по возможности сохраняет снэпшоты, которые однозначно будут загружены другими эмуляторами, но также при необходимости позволяет сохранить/восстановить и префиксное состояние. Правда такие снэпшоты не будут корректно работать на эмуляторах которые не поддерживают остановку в префиксном состоянии.
Хотя может кому-то ситуация со всей памятью забитой префиксом покажется нереальной, но вот например тест, который переводит ZX Spectrum +2/3 в такой режим:





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
