Или оно еще не успевает выставиться.
Есть еще такое понятие - passive release.
---------- Post added at 21:55 ---------- Previous post was at 21:55 ----------
Сейчас в описании посмотрим есть ли что-нибудь на эту тему.
Хитрость тут (насколько понимаю) в том, что когда у устройства обнуляют бит РП - оно сразу теряет способность ответить на запрос передачи вектора, тогда как на то, чтобы снять IRQ, и чтобы этот обратный фронт успел дойти по шине до процессора - требуется время, поэтому при последовательном выполнении команд установки и сброса бита РП - процессор успевает запросить у устройства вектор, но устройство к тому моменту уже "забывает о чём речь".
PDPT4A на УКНЦ.
Вот еще пример где УКНЦа наверное свалится, а KDJ11 нет.
Код:.E 0-2
040000 104350
.RU RED
?MON-F-Trap to 4 001004
.E 0-2
001004 000004
.TY RED.MAC
START: CLR SP
WAIT
.END START
.
---------- Post added at 22:33 ---------- Previous post was at 22:28 ----------
Кстати по этой причине мой любимый способ зачистки нижней памяти с чистым остановом не работает - останутся недочистки в 0-2 :)
А как это так? Каким образом стек так перемещается? Или это особенность KDJ-11?
А УКНЦ будет так.
На KDJ11 двойная защита стека. Первый уровень - yellow trap - если SP упал ниже 400 происходит прерывание по 4 (причина берется из cpuerr регистра). Второй уровень red stack abort - когда вызов прерывыния не позволяет в кернелный стек записать - тогда KSP принудительно ставится на 4 и делается трап по 4.
У ВМ1 точно так же.
Есть ещё один момент, про который не мешает знать - как поведёт себя пара BIS-BIC, если BIC идёт сразу после BIS, но не по ходу программы, а как первая команда обработчика прерывания, выполняющегося с разрешёнными прерываниями.
Ответ даёт следующий тест: PDP-11 Interrupts Test #4b.
В любом варианте.
При включенном MMU только для kernel mode, при выключенном - оно и есть kernel mode.
---------- Post added at 22:44 ---------- Previous post was at 22:41 ----------
Код:.RU PDPT4B
PDP-11 Interrupts Test #4b
060 Handler:
001364: BIC #100,@#TTPS
001372: NOP
...Press Key...
BIS #100,@#TTKS
BIS #100,@#TTPS
060 Handler:
>>> Interrupt <<< 064 ; 001364
NOP
NOP
Program completed.
.D 10000=5037,177546,137,1000
.ST 10000
PDP-11 Interrupts Test #4b
060 Handler:
001364: BIC #100,@#TTPS
001372: NOP
...Press Key...
BIS #100,@#TTKS
BIS #100,@#TTPS
060 Handler:
>>> Interrupt <<< 064 ; 001364
NOP
NOP
Program completed.
.