В описании КМД прямо говорится, что бит требования в регистре статуса КМД очищается при любом обращении к регистру данных - и при чтении, и при записи.
Если это так - КМД не может отличить чтение и запись регистра данных, что должно проявляться при "ручной" загрузке с MY.
После ввода команды 37 ( Load ) в регистр статуса - КМД выполняет такой код:
Код: Выделить всё
003006 [000004] BIT #32., (R2) ; 003010:000040 -> 177100:000037
003012 [000004] BEQ 003076
003076 [000004] MOV (R2), R5 ; 177100:000037 -> R5 :000000
003100 [000000] BIT #16384., R5 ; 003102:040000 -> R5 :000037
003104 [000004] BEQ 003112
003112 [000004] BICB #224., R5 ; 003114: 340 -> R5 : 037
003116 [000000] CMPB #21., R5 ; 003120: 025 -> R5 : 037
003122 [000011] BNE 003130
003130 [000011] CMPB #19., R5 ; 003132: 023 -> R5 : 037
003134 [000011] BNE 003152
003152 [000011] MOV #128., (R2) ; 003154:000200 -> 177100:000037
Но как пульт ДВК может успеть, если даже при нажатии <ПС> - перед тем, как прочитать и вывести на терминал содержимое регистра данных КМД - пульт ДВК выводит на терминал его адрес ( на скорости 9600 это занимает 7 мс, значит процессор КМД за это время выполнит 28000 тактов ).
Следовательно - одно из двух:
1. Или бит требования в регистре статуса КМД сбрасывается только при записи в регистр данных.
2. Или при чтении пультом ДВК старого содержимого регистра данных КМД - именно это старое содержимое ( точнее - два его младших бита ) будет немедленно использовано в качестве номера загружаемого привода.
...
А как с этим на самом деле - может кто-нибудь подсказать ?
...
Для проверки можно ввести в регистр 172140 команду 37, потом убедиться, что содержимое регистра изменилось на 000200, а затем нажать <ПС> и <^>.
@172140/000040 37 ВК
@/000200 ПС
172142/000004 ^
172140/??????
Если после этого по адресу 172140 уже не будет 000200 - значит чтение регистра данных действительно работает в КМД точно так же, как и запись в регистр данных.
...