Как я ранее писал, ОЗУ на ПП восьмибитное. Там слово читается контроллером в два приёма, потому RPLY приходит значительно позже. Но ещё до выставления RPLY контроллер ОЗУ выставляет на шину буферный регистр, сначала в нём появляется младший байт, потом старший.
Кстати можно очистить начало ОЗУ (записать нули) до ячейки 0300, теоретически экран должен погаснуть.
Ну логика там (после подтверждения захвата шины) примерно такая
- Выставили адрес
- Адрес устаканился
- Выставили SYNC
- Подождали энное время
- Выставили данные
- Данные устаканились
- Выставили DOUT
- Запустили таймер (сколько он по времени - надо смотреть спецификацию QBus)
- Ждем или ответа RPLY или истечения таймера
-- если прилетел RPLY
--- снимаем данные, снимаем DOUT
--- снимает SYNС
-- если таймер истек - на шине такого адреса нет
- если цикл на шине закончился - снимаем SACK
Нет, не очистился, стал вот таким: https://cloud.mail.ru/public/4wEN/2zoJbUFGh
Блин, почему-то мейл фото вертикально воткнул.
- - - Добавлено - - -
Пока не делаю, вечно жду ответа (когда буду вылизывать программу сделаю таймер)
Что то мне память царапает, что если перед числом ноль - оно считается записанным в восьмеричной нотации, если 0x (ну это уж точно) - то в шестнадцатиричной.
В MACRO-11 (по умолчанию) - восьмеричное, если после числа точка, то десятичное. Но есть такая директива .RADIX, которая позволяет поменять основание счисления.
Ну стал однородным, так как ещё считываются данные с ОЗУ ЦП при выводе изображения, по идее и его чистить надо. Да и грузить регистры отображения и цвета в видеоконтроллер.
Можно сделать более сложную задачу - записать в ОЗУ ЦП и ПП, но делается это через регистры адреса и данных.
Цикл от адрес 0 до 0277
Записать адрес в регистр 177010
Записать 0 в 177012
Записать 0 в 177014
Конец цикла.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)