Попробую научить :)
1. Загрузить образ ПЗУ в память.
2. Проверить ( с помощью эмулятора пульта ) содержимое буфера по адресу 0140000 ( там все нули ).
3. Выполнить команду GET/IST:TP ( или SHW/IST:TP )
4. Проверить, изменилось ли содержимое буфера ( похоже, что ПЗУ читает именно туда ).
...
5. Добавить к коду ПЗУ в памяти парочку "наших" подпрограмм по адресам 0110 и 0130
6. Заполнить числом 0111111 адреса с 0100000 по 0160000 ( R0/111111 ; R1/100000 ; R2/0 )
7. Выполнить описанную выше последовательность подачи кодов команды GET/IST:TP
8. Сравнить содержимое слов в диапазоне с 0100000 по 0160000 со значением 0111111 ( R0/111111 ; R1/100000 ).
9. Доложить результат :)
---------- Post added at 23:33 ---------- Previous post was at 23:26 ----------
Только если по прерываниям.
Циклического опроса регистров ПЗУ не производит, а логика эмуляции прерываний этого контроллера мне пока не известна.
Кстати, бит 010 в регистре 176730 означает "есть новые данные". Контроллер устанавливает этот бит каждый раз, когда в регистре 176732 появляется что-то "новенькое" и сбрасывает его после каждого чтения регистра 176732 процессором.





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