Надежнее просто не трогать 11 бит.Код:.RU PSW1 PSW test #1 MOV #177777,@#177776 177776/174757 MOV #177777,@#177776 CLRB @#177776 177776/174400 MOV #177777,@#177776 MOVB #000000,@#177777 177776/000357 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
Тесты на ВМ3.
Код:.MFPS UISDR7=077506, PSW=140016, MFPS R0, R0=000016 UISDR7=077400, PSW=140016, MFPS R0, R0=000016, MMU FAULT .MVPS ;PSW=170000, @#177776=123456 MFPS R1 ;R1=000056 MTPS #17 ;PSW=170001, @#177776=123417 .YT4A Yellow Stack Trap test #1 SP/000400 CMP -(SP),-(SP) >>> Trap to 004 <<< SP/000374 SP/000400 CMP @-(SP),@-(SP) >>> Trap to 004 <<< SP/000374 Program completed. .MFPI MFPI SP command test. MOV #140340,@#177776 MOV #44444, SP MOV #000340,@#177776 MOV #22222, SP MFPI SP 022220/022222 MOV #030340,@#177776 MFPI SP 022216/044444 MOV #140340,@#177776 MFPI SP 022214/000000 044442/022216 MOV #170340,@#177776 MFPI SP 022212/000000 044440/044442 Program completed. .PSW1 PSW test #1 MOV #177777,@#177776 177776/170357 MOV #177777,@#177776 CLRB @#177776 177776/170000 MOV #177777,@#177776 MOVB #000000,@#177777 177776/000345 Program completed.
.
Новый тест: PSW2.SAV - проверяет момент изменения PSW в командах с приёмником @#177776.
Запускать на машинах с диспетчером памяти. На эмулируемой ДВК-3 результат такой :
Код:.RU PSW2 PSW test #2 CLR @#177776 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/000004 Program completed. .
Код:.RU PSW2 PSW test #2 CLR @#177776 INC @#177776 177776/000001 ROL @#177776 177776/000003 CLR @#177776 BIS #140000, @#177776 177776/140000 CLR @#177776 BISB #000300, @#177777 177776/140000 CLR @#177776 MOV #000000, @#160000 >>> Trap to 004 <<< 177776/000004 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
Похоже, что хотя MOVB на 11/83 использует цикл DATOB и поэтому при обращении к старшему байту PSW не затирает изменения признаков в младшем байте PSW - модифицирующие байтовые команды ( типа BISB ) используют цикл DATIO и поэтому признаки в младшем байте PSW копируются из "прошлой версии" содержимого PSW.
Последний раз редактировалось Patron; 04.02.2016 в 16:28.
Скрытый текст
Код:.TY TEST.MAC .TITLE TEST .MCALL .EXIT,.PRINT .ASECT .=14 .WORD BESST,0 .PSECT START:: MOV #ARGS,R2 MOV #30000,@#-2 BPT BISB #1,@#-2 BPT MOV @#-2,(R2)+ BPT MOV #BUFF,R0 MOV #FMTS,R1 MOV #ARGS,R2 CALL $EDMSG .PRINT #BUFF .EXIT BESST:: MOV 2(SP),(R2)+ RTI ARGS: .BLKW 4 BUFF: .BLKW 40 FMTS: .ASCII /MOV #030000,@#177776 ;PSW=%P%N/ .ASCII /BISB #1,@#177776 ;PSW=%P%N/ .ASCIZ /MOV @#177776,ARGS+4 ;PSW=%P:%P/ .END START[свернуть]Код:.RU TEST MOV #030000,@#177776 ;PSW=030000 BISB #1,@#177776 ;PSW=030001 MOV @#177776,ARGS+4 ;PSW=030001:030001 .
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
Последний раз редактировалось Patron; 04.02.2016 в 16:45.
Последний раз редактировалось form; 04.02.2016 в 16:37.
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
Интересует - есть ли разница в поведении MOVB и BISB при модификации старшего байта PSW.
Если MOVB использует DATOB - свежие признаки в младшем байте PSW должны "выжить", в то время как команда BISB #xxx,@#177777 - затирает свежие признаки в PSW старыми ( которые были в младшем байте PSW в фазе чтения цикла DATIO ).
Для проверки - можно выполнить на 11/83 что-то типа такого:
Вариант с MOVB :
Код:Clr @#177776 MovB #300, @#177777 Mov @#177776, $PSW Clr @#177776
То же самое с BISB :
Код:Clr @#177776 BiSB #300, @#177777 Mov @#177776, $PSW Clr @#177776
Последний раз редактировалось Patron; 04.02.2016 в 16:47.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)