gfx_scroll_v: колоночный accel-проход без буфера-посредника + тест scroll

Вертикальный скролл перестал ходить через строку-буфер на стеке: колонку
читаем с Port_Y=ys, пишем с Port_Y=yd, а STOP между read- и write-триггером
делает промежуточный OUT Port_Y безопасным.  Один проход вместо
grab→blit-через-буфер.

Справочник libc приведён в соответствие (там же строка про новую точку
входа cbl_open_silence).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 21:59:28 +03:00
parent 3ea4546656
commit e2730f78e0
5 changed files with 287 additions and 27 deletions
+3 -3
View File
@@ -262,9 +262,9 @@ tests/bgi_img.
Скролл региона из НЕактивной страницы в активную (<sprite.h>):
`gfx_scroll_h(area, dx, dirty)` — горизонтальный (dx>0 = вправо; быстрый
построчный accel-скролл без страйдов, DI-банды по 16 строк),
`gfx_scroll_v(area, dy, dirty)` — вертикальный (dy>0 = вниз; через
строку-буфер на стеке, ПОКА не оптимален — Port_Y один на burst, разный
read/write Y невозможен без ломающего accel OUT). Копия = скролл + heal
`gfx_scroll_v(area, dy, dirty)` — вертикальный (dy>0 = вниз; прямой
колоночный accel-проход: STOP между чтением и записью позволяет безопасно
сменить Port_Y, промежуточный RAM-буфер не нужен). Копия = скролл + heal
цели (банк 0x50). Открывшуюся полосу |d| не заполняют — возвращают в
*dirty (NULL = не нужно). Пример: examples/scroll.
Стиль линий (Ф2d): `setlinestyle(style,upattern,thick)`/`getlinesettings`