2c414da465
Семантика FSM акселератора вскрыта по драйверу MAME (sprinter.cpp) и подтверждена экспериментами в MAME (tests/accfill): армирование живёт до следующего accel-опкода (мульти-триггер работает); под армированием триггерит ЛЮБОЙ non-M1 доступ к памяти (fetch операнда djnz/out!); вертикальный Fill двигает Port_Y и не возвращает; размер блока переживает LD B,B. Детали: memory/accel_multitrigger_fill. - _bgi_clear_raw: 20 DI-скобок по 16 колонок вместо полного брекета на каждую из 320 колонок; армирование размера один раз на скобку. - _gfx_rectfill256 разделён: диспетчер (проверка ориентации ~160-245Т, break-even |w-h| >= ~4) + leaf'ы _gfx_recthfill256/_gfx_rectvfill256 для прямого вызова, когда форма известна заранее. - Leaf'ы: чанки <=16 линий одной скобкой (~54-56Т/линию против ~250Т у per-line варианта); счётчик чанков precompute'ится в байт-регистр (dec e/jr nz ~46Т/чанк вместо 16-бит арифметики в IX-слотах ~173Т/чанк); хвост — отдельная скобка со своим армированием (CBL-ISR в окне EI армирует акселератор своим размером — не выносить). - getpixel/putpixel/_bgi_read: уборка мёртвого закомментированного кода. - tests/accfill: регресс chunked-заливок (B0 clear, B1 vert 1+3 чанка, B2 horz чанк+хвост, полноширинный bar 320x8 — путь w>=256). Прежние реализации сохранены под #if 0 для отката/сравнения. Проверено в MAME (все PASS); семантика эмуляции — перепроверить на реальном Sprinter. size-baseline: accfill добавлен, gfx_demo +54 Б (обвязка диспетчера), остальные без роста. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
703 B
703 B
| 1 | # Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update | |
|---|---|---|
| 2 | accfill | 3435 |
| 3 | argv | 3431 |
| 4 | assrtest | 3847 |
| 5 | attrprob | 4091 |
| 6 | banked | 1056 |
| 7 | bankedbg | 1067 |
| 8 | banklocl | 4832 |
| 9 | banktest | 3767 |
| 10 | bgi_img | 5931 |
| 11 | bgitest | 3786 |
| 12 | bios_text | 4470 |
| 13 | cat | 915 |
| 14 | cblstream | 6277 |
| 15 | cbltest | 6407 |
| 16 | cblwav | 6486 |
| 17 | conio | 4634 |
| 18 | conio2 | 3946 |
| 19 | dec_test | 860 |
| 20 | errno | 6216 |
| 21 | fbench | 9040 |
| 22 | fdmax | 6337 |
| 23 | filetest | 11624 |
| 24 | gets | 509 |
| 25 | gfx_dbuf | 4770 |
| 26 | gfx_demo | 4261 |
| 27 | hello | 4176 |
| 28 | hello2 | 4251 |
| 29 | irqtest | 5881 |
| 30 | ls | 4919 |
| 31 | malloc | 4462 |
| 32 | mdview | 19122 |
| 33 | mdview2 | 27029 |
| 34 | mem_test | 4558 |
| 35 | mouse | 4394 |
| 36 | openenv | 6127 |
| 37 | ptime | 5896 |
| 38 | rt_test | 4906 |
| 39 | seek | 4177 |
| 40 | simple | 963 |
| 41 | solidt | 12381 |
| 42 | stattest | 7700 |
| 43 | stdlib | 6643 |
| 44 | stest2 | 3644 |
| 45 | strtest | 1340 |
| 46 | text_palette | 5039 |
| 47 | timedir | 5471 |
| 48 | winrest | 4481 |