c4a512200f
Схема: атлас в EMM-странице, на время sprite_update страница
подключается в W0. Все прерывания исполняют 0x38 текущей страницы W0
(IM1 напрямую, IM2-трамплин чейнит jp 0x0038) — защита: стаб в первых
0x100 байтах страницы (0x38: JP на W2-хелпер: свап на страницу DSS →
честный 0x38 → restore спрайт-страницы; 0x66: RETN).
Проверено в dev-MAME (tests/w0page, все PASS):
P1 ESTEX READ в W3-замапленную страницу;
P3 IM1: ~5 c busy-цикла с EI при странице в W0 — жив, сентинел цел;
P4 IM2: 100 кадровых прерываний посчитаны при подключенной странице
(тракт трамплин→чейн→стаб→DSS→restore);
P5 accel-блит src=0x0100 (W0) — пиксели верны по ОЗУ-копии.
Формат .atl в §3.1 дополнен: атлас ≤ 16К−0x100 (одна страница, один
файл), вариант II — 0x100-заголовок, файл-офсет == офсет страницы ==
W0-адрес, загрузка = read() целиком + патч стаба. На железе
перепроверить.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
56 lines
794 B
Plaintext
56 lines
794 B
Plaintext
# Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
|
|
accfill 3772
|
|
argv 3431
|
|
assrtest 3847
|
|
attrprob 4087
|
|
balls 6156
|
|
banked 1056
|
|
bankedbg 1067
|
|
banklocl 4683
|
|
banktest 3767
|
|
bgi_img 7060
|
|
bgitest 3737
|
|
bios_text 4461
|
|
blitperf 5860
|
|
blitw 4939
|
|
cat 913
|
|
cblstream 6217
|
|
cbltest 6366
|
|
cblwav 6434
|
|
conio 4605
|
|
conio2 3929
|
|
dec_test 860
|
|
errno 5966
|
|
fbench 8085
|
|
fdmax 6023
|
|
filetest 10547
|
|
gets 509
|
|
gfx_dbuf 5032
|
|
gfx_demo 4103
|
|
gfxbanks 6044
|
|
hello 4167
|
|
hello2 4244
|
|
irqtest 5850
|
|
ls 4835
|
|
malloc 4461
|
|
mdview 18878
|
|
mdview2 27031
|
|
mem_test 4555
|
|
mouse 4382
|
|
openenv 6124
|
|
ptime 5744
|
|
rt_test 4892
|
|
seek 4188
|
|
simple 955
|
|
solidt 11531
|
|
spriteclip 4187
|
|
sprites 6791
|
|
stattest 7549
|
|
stdlib 6643
|
|
stest2 3644
|
|
strtest 1340
|
|
text_palette 5024
|
|
timedir 5454
|
|
w0page 8831
|
|
winrest 4459
|