Цитата Сообщение от vlad Посмотреть сообщение
Сделал 8-ми разрядный порт #xx00, записываю в него сразу смещение по X и Y командой OUT (C),A, где A=позиция X(0..255), B=позиция Y(0..191), C=0(порт смещения)
Если в порт записать значение #0000 то выводимое изображение соответствует стандартному SCR 6912,
Хорошо, это правильно.
если к примеру записать #0101, то изображение выводится сдвинутым на один пиксел по диагонали вниз вместе с атрибутами. В верхней стороке и левом столбце теперь отображается уже выдвинутая нижняя строка и правый крайний столбец изображения. Так?
Изображение должно смещаться влево и вверх, так как первые точки пропускаются. Чтобы при сдвиге влево не появлялся сдвинутый столбик справа надо счетчик сделать на 9 бит. Поэтому для сдвига по-горизонатали надо 2 регистра. Это пригодится также, если мы захотим увеличить окно до 320х240.
При сдвиге вниз итак не должен появляться. Появляется новый фрагмент, который надо было записать в экранную область.

Еще надо сделать линейную адресацию. Увеличение младшего байта адреса в экранной области должно переходить к байту снизу. Тогда проще добавлять фрагменты, которые появляются при скроллинге. Для начала заполни 16 К экранной области с адреса 0000 кодом 0. Тогда при сдвиге будет появляться пустота. Ну и ждем видео циклического плавного сдвига какой-нибудь картнинки.