Это описано в ТО, я это знал. И практические тесты показали, что это так. И это реализовано в эмуляторе UKNCBTL. Единственно, что я не знал, так это что при байтовой записи в РД 0177014, в самом РД меняется только нужный байт, а так видеоконтроллеру передаётся полное слово. Ну в принципе при обмене с видеоконтроллером нет сигнала WTBT.
Это тоже описано в ТО. Соответственно я знал об этом. Единственно я думал, что при чтении регистра октета 0177024 производится реальное чтение памяти. А оказалось, что нет, просто раскидывается из заранее прочитанных РД 0177012 и 0177014. Также не знал, что при записи в регистр октета реально формируются новые значения РД и они потом записываются. В принципе с аппаратной точки зрения разработчики поступили правильно, раз при записи РА в РД читаются данные из ОЗУ, то с ними и надо делать операции при использовании спрайтового механизма. Дешево и сердито.
Кстати по поводу чтения из регистра октета. С ним я впервые столкнулся с фиктивным чтением команды MOVB. Решил я переделать свой редактор шрифтов FNT, чтобы он работал и в монохромном режиме, который устанавливает драйвер виртуального диска VM для УКНЦ. Так как диск использует старшие 64К из 128К памяти ЦП, то рисовать через 0176640/0176642 нельзя. Надо использовать спрайтовый механизм, который учитывает установки регистра маскирования 0177026. Естественно для вывода я сперва использовал команду MOVB, и весьма удивлялся почему у меня новое изображение накладывается по старому. Применил команду MOV, всё стало нормально. Но сперва был уверен, что регистр октета по другому обрабатывает байтовую запись, а в документации этого не описано.
- - - Добавлено - - -
Будем надеятся, что в 1515ХМ2-002 этот косяк подправили.





Ответить с цитированием