docs: TODO — пакетное чтение/запись массива байт через акселератор

Задел для будущих leaf'ов, читающих/пишущих строку или столбец пикселей
одним burst'ом (как _bgi_hspan_raw/_bgi_vspan_raw), чтобы ускорить блит
getimage/putimage (сейчас per-pixel _bgi_read_raw повторяет Port_Y +
addr + bounds-check).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 15:17:04 +03:00
parent 9b1ce71130
commit f0f0ab9276
+11
View File
@@ -84,6 +84,17 @@ Quick wins:
- [ ] кэширование block-size между burst'ами (accel помнит размер)
Новые возможности:
- [ ] **пакетное чтение/запись массива байт через акселератор**
отдельные ф-ии, которые в ОДНОМ вызове читают/пишут строку или
столбец пикселей (гориз./верт.), а не по пикселю через
_bgi_read_raw/_bgi_plot_raw. Аналогично тому, как сейчас рисуются
линии (_bgi_hspan_raw/_bgi_vspan_raw задают Port_Y и адрес один раз,
далее burst). Цель — ускорить блиттинг: getimage/putimage сейчас
зовут _bgi_read_raw/_gfx_getpixel256_raw по-пиксельно, из-за чего на
каждый пиксель повторяются out Port_Y + ld bc,(base) + bounds-check
(см. разбор _bgi_read_raw). Дать `_bgi_hread_raw`/`_bgi_hwrite_raw`
(+ vertical) с ABI как у fill-сегментов (HL=addr, B=len, E=y, буфер
в DE) и перевести getimage/putimage на них.
- [ ] `gfx_blit` / `gfx_blit_transparent` — block copy (LD L,L / LD A,A),
прозрачность через bank 0x58 («FF is transparent»)
- [ ] `gfx_xor_rect` / `gfx_or_rect` / `gfx_and_rect` / `gfx_invert_rect`