# w3bankgfx — пробник модели «huge + резидент W3 + банк W3 + графика».
#
# Проверяем ровно то, на чём стоит план раскладки PoP (docs/layout_plan_v2.md):
#   R2  из __banked-кода резидентная страница W3 недостижима (НЕ зовём);
#   R3  резидент -> банк работает через трамплин;
#   R4  примитивы libbgi можно звать ИЗ БАНКА: _bgi_begin запоминает текущую
#       страницу W3 (порт 0xE2) и _bgi_end её возвращает — значит банк
#       переживает рисование и продолжает исполняться.
#
# Раскладка huge: CODE 0x4100 (W1), DATA 0x8000 (W2), банк 0x1C000 (W3),
# резидент --w3 делит W3 с банком (crt0 запоминает резидентную страницу).
PROJ_ROOT := $(abspath $(CURDIR)/../..)
EXAMPLE   := w3bgfx
MEMORY    := huge
EXTRA_FLAGS := --gfx 256 --w3 res.c --bank 1=bank1.c
include $(PROJ_ROOT)/app.mk

# Ожидаемый результат (проверено 2026-07-29, MAME dev):
#   пять полос сверху вниз: синяя (резидент), бирюзовая (банк рисует сам),
#   жёлтая (W1/W2-функция, вызванная из банка), ЗЕЛЁНАЯ (все проверки ок),
#   синяя (резидент жив после возврата).  Красная вместо зелёной = модель
#   не подтвердилась.  Диагностика в переменных bank_page_*/home_page_seen/
#   res_page_seen: банк 0xF0, резидент 0xF3, страница W3 внутри банка не
#   менялась вокруг рисования.
