На реальной БК0010-01 ввел FOR-NEXT цикл, заблокировал СТОП
Код:
POKE2,&He3ce
POKE4,2
и запустил программу цикла, потом жал на СТОП в течении нескольких минут. Блокировка работала абсолютно. У dim33 аналогичные результаты. Похоже, что инструкция прерывается всегда после захвата первого слова и увеличения R7, но до каких-то других изменений в регистрах или памяти. Нужно бы проверить кодом на ассемблере с длинными и сложными адресациями, но пока не получилось.
Цитата Сообщение от Alex_K Посмотреть сообщение
Премудрости состоят в том, что в БК нет ячеек 176674 и 176676, в которых сохраняются PC и PSW при исключениях. При попытке сохранить PSW в 176676 срабатывает TRAP4 и процессор не успевает скорректировать PC. Смотрите алгоритм прерывания при исключениях.
Вопрос скорее в том, чему может быть равно PC при прерывании команды? Верно ли, что это всегда адрес прерываемой инструкции + 2? Зальцман этого не знал.