Если команда RTI/RTT очищает бит T - никакого Т-трапа не будет.
А тест сейчас запустим...
Код:.RU PDPT3
PDP-11 Interrupts Test #3
BIS #100,@#TTPS x6
>>> Interrupt <<< 064 ; 001114
>>> Interrupt <<< 064 ; 001130
>>> Interrupt <<< 064 ; 001144
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTI | RTI | NOP | NOP
>>> Trap to 014 <<< ; 001346
>>> Interrupt <<< 100 ; 001346
>>> Trap to 014 <<< ; 001346
>>> Interrupt <<< 060 ; 001346
>>> Trap to 014 <<< ; 001346
>>> Interrupt <<< 064 ; 001346
NOP
NOP
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTT | RTT | NOP | NOP
>>> Interrupt <<< 100 ; 001562
>>> Trap to 014 <<< ; 001562
>>> Interrupt <<< 060 ; 001562
>>> Trap to 014 <<< ; 001562
>>> Interrupt <<< 064 ; 001562
>>> Trap to 014 <<< ; 001562
NOP
NOP
Program completed.
.D 10000=5037,177546,137,1000
.ST 10000
PDP-11 Interrupts Test #3
BIS #100,@#TTPS x6
>>> Interrupt <<< 064 ; 001114
>>> Interrupt <<< 064 ; 001130
>>> Interrupt <<< 064 ; 001144
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTI | RTI | NOP | NOP
>>> Trap to 014 <<< ; 001346
>>> Interrupt <<< 060 ; 001346
>>> Trap to 014 <<< ; 001346
>>> Interrupt <<< 064 ; 001346
>>> Trap to 014 <<< ; 001346
NOP
NOP
MTPS #340
...Press Key...
BIS #100,@#TTPS
Set T x3
RTT | RTT | NOP | NOP
>>> Interrupt <<< 060 ; 001562
>>> Trap to 014 <<< ; 001562
>>> Interrupt <<< 064 ; 001562
>>> Trap to 014 <<< ; 001562
NOP
NOP
Program completed.
.
---------- Post added at 19:46 ---------- Previous post was at 19:46 ----------
И как же там непатченные отладчики работают?
Так и так все ясно: T бит для того и предназначен чтобы генерить прерывание когда он установлен и не генерить когда сброшен :)
---------- Post added at 19:58 ---------- Previous post was at 19:52 ----------
Или ты имеешь в виду когда RTI/RTT - команда которой дали шанс выполниться перед T-бит трапом?
Результаты на реальной УКНЦ PDPT3.
Немного об особенностях :)
Код:.RU TEST
000024
.RU TEST
000025
.RU TEST
000026
.RU TEST
000027
.DIR/OUT:NL: SY:
.COP/SY/NOLOG SY: NL:
(можно пол дня поработать)
.RU TEST
000030
.RU TEST
000031
.TY TEST.MAC
.MCALL .PRINT,.EXIT
START: MOV #10$,@#14
MOV #4000,@#16
BPT
MOV #123456,R5
.PRINT #TEXT
.EXIT
10$: MOV R5,R1
INC R5
MOV #TEXT,R0
MOV PC,R2
CALL $CBOMG
RTI
TEXT: .ASCIZ /XXXXXX/
.END START
.
Любопытно, что хотя после "крайнего" RTT бит Т уже сброшен - запросы IRQ всё равно не могут "пролезть" вперёд Т-трапа.
Ситуция с точки зрения бита Т и команды RTT - та же, что и когда все IRQ выполнялись сразу после команды RTT, сбросившей бит Т и до любой другой команды, следующей за командой RTT, а поведение процессора другое.
...
Вот модификация теста специально для 11/80: PDP-11 Interrupts Test #3a
Код:.RU PDPT3A
PDP-11 Interrupts Test #3a
MTPS #340
BIS #100,@#TTPS
Set T x5
RTI | RTI | NOP | NOP
>>> Trap to 014 <<< ; 001214
>>> Interrupt <<< 100 ; 001214
>>> Trap to 014 <<< ; 001214
>>> Interrupt <<< 064 ; 001214
>>> Trap to 014 <<< ; 001214
>>> Trap to 014 <<< ; 001214
NOP
NOP
MTPS #340
BIS #100,@#TTPS
Set T x5
RTT | RTT | NOP | NOP
>>> Interrupt <<< 100 ; 001372
>>> Trap to 014 <<< ; 001372
>>> Interrupt <<< 064 ; 001372
>>> Trap to 014 <<< ; 001372
NOP
NOP
Program completed.
.D 10000=5037,177546,137,1000
.ST 10000
PDP-11 Interrupts Test #3a
MTPS #340
BIS #100,@#TTPS
Set T x5
RTI | RTI | NOP | NOP
>>> Trap to 014 <<< ; 001214
>>> Interrupt <<< 064 ; 001214
>>> Trap to 014 <<< ; 001214
NOP
NOP
MTPS #340
BIS #100,@#TTPS
Set T x5
RTT | RTT | NOP | NOP
>>> Interrupt <<< 064 ; 001372
>>> Trap to 014 <<< ; 001372
NOP
NOP
Program completed.
.
Вот здесь видно, что когда вторая команда RTT очищает бит Т - Т-трап после неё всё равно происходит ( но в отличие от процессоров ВМ - вперёд него успевает пролезть обычное прерывание ).Код:MTPS #340
BIS #100,@#TTPS
Set T x5
RTT | RTT | NOP | NOP
>>> Interrupt <<< 064 ; 001372
>>> Trap to 014 <<< ; 001372
NOP
NOP
Или нет..
Щас глянем в листинг..
Нифига!Код:102 000350 012746 000000 Mov #0, -(SP)
103 000354 012746 000374' Mov #LLL2a,-(SP)
104
105 000360 012746 000020 Mov #20, -(SP)
106 000364 012746 000372' Mov #LLL2, -(SP)
107 000370 000006 RTT
108 000372 LLL2:
109 000372 000006 RTT
110 000374 LLL2a:
111 000374 Nop
112 000376 Nop
У 11/80 Т-трап после второго RTT не возникает.