diff --git a/docs/TODO.md b/docs/TODO.md index 6cd89e9..7f94f1b 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -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`