runtime: фикс banked-режимов — _bank_pages переезжает из _DATA в _CODE

Регрессия от 961cfb7 (gsinit зануляет _DATA, 2026-07-04): crt0_banked
заполняет таблицу физических страниц _bank_pages ДО gsinit, а тот её
стирал — трамплины banked-вызовов читали нули и прыгали в незамапленную
страницу.  Висли ВСЕ banked-программы (banked/bankedbg/banklocl/
banktest); найдено MAME-смоуком.  Тот коммит перенёс crt0-приватные
_estex_* в _CODE, но _bank_pages в runtime/bank.s пропустил.

- runtime/bank.s: _bank_pages → .area _CODE (RAM, всегда замаплен —
  это же условие нужно и трамплину); +16 Б _CODE у программ с bank.s
- app.mk: exe теперь зависит от runtime/*.s — правка crt0/bank.s
  перелинковывает тесты без make clean (фикс иначе не подхватывался)
- эталон размеров обновлён (+16 Б у banked/bankedbg/banklocl/
  banktest/openenv — size-check поймал ровно их)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 21:06:20 +03:00
parent 7187752b29
commit 8531b25e75
3 changed files with 17 additions and 8 deletions
+5 -5
View File
@@ -2,10 +2,10 @@
argv 3431
assrtest 3847
attrprob 4091
banked 1040
bankedbg 1051
banklocl 4816
banktest 3751
banked 1056
bankedbg 1067
banklocl 4832
banktest 3767
bios_text 4470
cat 915
conio 4634
@@ -29,7 +29,7 @@ mdview 19122
mdview2 27029
mem_test 4558
mouse 4394
openenv 6111
openenv 6127
ptime 5896
rt_test 4103
seek 4177
1 # Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
2 argv
3 assrtest
4 attrprob
5 banked
6 bankedbg
7 banklocl
8 banktest
9 bios_text
10 cat
11 conio
29 mdview2
30 mem_test
31 mouse
32 openenv
33 ptime
34 rt_test
35 seek