PDPT4B на УКНЦ.
PDPT4B на УКНЦ.
Перечень причин входа в ступор...
А вот и случай с невыставлением вектора описан.
Мы забыли проверить, как процессоры ВМ1 и ВМ2 осуществляют байтовую запись в стек при нечётных значениях SP.
Чтобы закрыть этот пробел - здесь три новых теста. Все тесты используют команду MOVB #xx, (SP)+, но в одном случае SP дополнительно декрементируется, а в другом - инкрементируется.
Запись осуществляется в массив по адресу 03700, заполненный 0177777
Вот содержательные части тестов и результаты прогонов на моей модели ВМ1:
PDPT5.SAV
Код:Mov #FTst1, SP
MovB #60001, (SP)+
MovB #50002, (SP)+
Nop
Mov SP, R1
MovB #6003, (SP)+
MovB #7004, (SP)+
Mov SP, R2
Nop
Mov SP, R3
MovB #20005, (SP)+
MovB #10006, (SP)+
Mov SP, R4
...Код:.RU PDPT5
PDP-11 Interrupts Test #5
R1/003704
R2/003710
R3/003710
R4/003714
003700/177401
003702/177402
003704/177403
003706/177404
003710/177405
003712/177406
003714/177777
003716/177777
Program completed.
PDPT5A.SAV
Код:Mov #FTst1, SP
MovB #60001, (SP)+
MovB #50002, (SP)+
Dec SP
Mov SP, R1
MovB #6003, (SP)+
MovB #7004, (SP)+
Mov SP, R2
Dec SP
Mov SP, R3
MovB #20005, (SP)+
MovB #10006, (SP)+
Mov SP, R4
...Код:.RU PDPT5A
PDP-11 Interrupts Test #5a
R1/003703
R2/003707
R3/003706
R4/003712
003700/177401
003702/001402
003704/002377
003706/177405
003710/177406
003712/177777
003714/177777
003716/177777
Program completed.
PDPT5B.SAV
Код:Mov #FTst1, SP
MovB #60001, (SP)+
MovB #50002, (SP)+
Inc SP
Mov SP, R1
MovB #6003, (SP)+
MovB #7004, (SP)+
Mov SP, R2
Inc SP
Mov SP, R3
MovB #20005, (SP)+
MovB #10006, (SP)+
Mov SP, R4
А как поведут себя в этих тестах реальные процессоры ?Код:.RU PDPT5B
PDP-11 Interrupts Test #5b
R1/003705
R2/003711
R3/003712
R4/003716
003700/177401
003702/177402
003704/001777
003706/002377
003710/177777
003712/177405
003714/177406
003716/177777
Program completed.
Сейчас проверим.
Выполняется надеюсь на SLP7? :)
А то
Может дать вообще левый результат :)Код:MovB #60001, (SP)+
MovB #50002, (SP)+
---------- Post added at 16:52 ---------- Previous post was at 16:50 ----------
Код:.RU PDPT5
PDP-11 Interrupts Test #5
R1/003704
R2/003710
R3/003710
R4/003714
003700/177401
003702/177402
003704/177403
003706/177404
003710/177405
003712/177406
003714/177777
003716/177777
Program completed.
.RU PDPT5A
PDP-11 Interrupts Test #5a
R1/003703
R2/003707
R3/003706
R4/003712
003700/177401
003702/001402
003704/002377
003706/177405
003710/177406
003712/177777
003714/177777
003716/177777
Program completed.
.RU PDPT5B
PDP-11 Interrupts Test #5b
R1/003705
R2/003711
R3/003712
R4/003716
003700/177401
003702/177402
003704/001777
003706/002377
003710/177777
003712/177405
003714/177406
003716/177777
Program completed.
.
YES!
Даже удивительно, что моя модель ВМ1 ведёт себя в этом случае правильно..
У меня на ВМ2 в EmuStudio такие же результаты.