Но это не самый кайф.
Самый кайф - запрещать прерывания в регистре статуса терминала, когда RT-11 ещё передаёт байты - тогда при одном запуске из ~ 1000 программа поймает ЗПВП ( так делают многие неопытные программисты, хотя по-правильному надо просто ждать, пока RT-11 сама сбросит бит 0100 в регистре статуса после вывода строки на экран ).
Пример момента я привел выше.
А так при запрете прерываний по 7 биту PSW они все равно фиксируются процессором после обработки команды, только если стоит 7-й бит в PSW, то прерывания не происходит.
А если при разрешении прерываний еще и какое-нибудь устройство сбрасывает запрос, то это сложно представить.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Последний раз редактировалось form; 24.01.2013 в 23:44.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
И эта чисто эстетическая (с виду) проблема один раз на ~ 1000 попыток сопровождается потерей вектора.
---------- Post added at 22:46 ---------- Previous post was at 22:44 ----------
Причём, если "затирается" именно последнее прерывание после вывода последнего байта в строке - "на вид" это никак определить нельзя.
Нет вообще никакого смысла отключать прерывания экрана в RT-11. В принципе. Это сделает система, а программе надо просто дождаться этого и ничего не сбрасывать.
---------- Post added at 02:49 ---------- Previous post was at 02:48 ----------
Но, возвращаясь к исходному вопросу, есть же у нас тут народ с ВМ3 - интересно было бы там попробовать. Подозреваю, что там ситуация с запуском прерывания и недоведением его до конца - нормальное явление.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Titus, как я понял, имел ввиду другое - если прерывания разрешили (по MTPS #0, или после RTI), а во время исполнения этой команды устройство сняло запрос на прерывание.
Такое на УКНЦ в принципе можно представить - есть каналы обмена К0, К1, К2. Если мы пишем в регистр канала 0 177566 что нибудь, а потом исполняем RESET, то по идее с той стороны прерывание сбрасывается. Теоретически со стороны ПП может возникнуть ошибка приема АВП.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)