Код:.EX TEST/LINK:SY:RSXLIB CLR @#177776 ;PSW=000000 BISB #0,@#177777 ;PSW=000000 BISB #300,@#177777 ;PSW=140000 .Код:.EX TEST/LINK:SY:RSXLIB CLR @#177776 ;PSW=000000 MOVB #0,@#177777 ;PSW=000000 MOVB #1,@#177777 ;PSW=140000 .
Код:.EX TEST/LINK:SY:RSXLIB CLR @#177776 ;PSW=000000 BISB #0,@#177777 ;PSW=000000 BISB #300,@#177777 ;PSW=140000 .Код:.EX TEST/LINK:SY:RSXLIB CLR @#177776 ;PSW=000000 MOVB #0,@#177777 ;PSW=000000 MOVB #1,@#177777 ;PSW=140000 .
Последний раз редактировалось form; 04.02.2016 в 16:52.
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
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Получается, что или 11/83 всегда эмулирует байтовые циклы через словные, или что цикл DATIO используется байтовыми командами только при работе с PSW ( специально - чтобы случайно не повлиять на содержимое соседнего байта ).
- - - Добавлено - - -
Интересно - учтена ли такая особенность 11/83 в SIMH и E11 ..
Последний раз редактировалось Patron; 04.02.2016 в 16:57.
Это врядли очень много железа перестало бы работать без переделки софта.
- - - Добавлено - - -
Код:E11>set cpu 83 E11>a 1000 001000 clr @#177776 001004 movb #0,@#177777 001012 movb #300,@#177777 001020 clr @#177776 001024 bisb #0,@#177777 001032 bisb #300,@#177777 001040 ^C E11>pc=1000 E11>sp=1000 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=K PM=K PRIO=0 R4/000000 R5/000000 SP/001000 PC/001004 N=0 Z=0 V=0 C=0 001004 movb #000000,@#177777 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=K PM=K PRIO=0 R4/000000 R5/000000 SP/001000 PC/001012 N=0 Z=0 V=0 C=0 001012 movb #000300,@#177777 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=U PM=K PRIO=0 R4/000000 R5/000000 SP/000000 PC/001020 N=0 Z=0 V=0 C=0 001020 clr @#177776 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=K PM=K PRIO=0 R4/000000 R5/000000 SP/001000 PC/001024 N=0 Z=0 V=0 C=0 001024 bisb #000000,@#177777 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=K PM=K PRIO=0 R4/000000 R5/000000 SP/001000 PC/001032 N=0 Z=0 V=0 C=0 001032 bisb #000300,@#177777 E11>s R0/000000 R1/000000 R2/000000 R3/000000 CM=U PM=K PRIO=0 R4/000000 R5/000000 SP/000000 PC/001040 N=0 Z=0 V=0 C=0 001040 halt E11>
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
Надеюсь, что реальный ВМ3 так не мудрит, ведь иначе придётся при эмуляции всех циклов с записью байта - вылавливать обращение к физическим адресам PSW и устанавливать флаг запрета модификации признаков.
Попросил выполнить PSW2. Ждем.
- - - Добавлено - - -
ВМ3:Код:RU HX1:PSW2 PSW test #2 vvvfж INC @#177776 177776/000001 ROL @#177776 177776/000003 CLR @#177776 BIS #140000, @#177776 177776/140000 CLR @#177776 BISB #000300, @#177777 177776/140010 CLR @#177776 MOV #000000, @#160000 >>> Trap to 004 <<< 177776/000000 Program completed. .
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
.
Новый тест: PSW3.SAV - проверяет мапинг PSW в команде MTPS и во время сохранения PSW при входе в прерывание.
Запускать на машинах с диспетчером памяти. На эмулируемой ДВК-3 ( где сохранение PSW при входе в прерывание пока не мапится через 177776 ) результат такой :
Код:.RU PSW3 PSW test #3 MOV #177400, @#177656 MOV #140340, @#177776 MTPS #000 >>> Trap to 004 <<< 177776/140351 MOV #000340, @#177776 MOV #140340, @#000022 IOT 177776/140350 Program completed. .
Висит. Останов с пульта.Код:.RU PSW3 PSW test #3 MOV #177400, @#177656 MOV #140340, @#177776 MTPS #000 002036 @
- - - Добавлено - - -
Хинт: когда делаются тесты с включением MMU можно обойтись без сохранения-восстановления векторов
- - - Добавлено - - -
RESET здесь эффективный NOP. Еще не нашел в коде выключения MMU обратно и восстановления маппинга. Хотя нет - про ресет погорячился.Код:Mov @#057776, $PSW Clr @#057776 Reset
- - - Добавлено - - -
Вобщем как раз в RESETе все дело видимо - MSCP контроллер после его выполнения становится неработоспособным до настройки.
UPD: не, видимо до него дело просто не доходит...
Последний раз редактировалось form; 04.02.2016 в 19:28.
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
Обработчик TrapTo_4 вызывает подпрограмму, обращающуюся к странице I/O - и обращение вызывает новый TrapTo_4.
Но в векторе 06 записано 0340 - разве в обработчике страница I/O не должна мапиться куда надо..
- - - Добавлено - - -
Все предыдущие тесты тоже сбрасывают MMU через RESET.
Уже вижу что не в том дело - просто даже не доходит до этого места.
- - - Добавлено - - -
Вобщем работает если там где MTPS #0 возникает трап. У меня он не возникает. Воткнул туда HALT для трапа - все заработало...
- - - Добавлено - - -
Код:MTPS #0 HALT 1$: Mov $PSW, R1- - - Добавлено - - -Код:.RU P3 PSW test #3 MOV #177400, @#177656 MOV #140340, @#177776 MTPS #000 >>> Trap to 004 <<< 177776/140340 MOV #000340, @#177776 MOV #140340, @#000022 IOT 177776/140350 Program completed. .
Попутно, на 11/34 (на всех без CPUERR регистра?) HALT трапается по 10 - интересно будет на ВМ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
Перезалил исправленную версию: PSW3.SAV.
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)