95c22be9bd
Скролл региона video->video (неактивная страница -> активная, банк 0x50: копия = скролл + heal цели): - gfx_scroll_h / _bgi_scroll_rows_raw — горизонтальный, построчно без страйдов (~54Т/строку), DI/EI бандами по 16 строк, h=0=>256; - gfx_scroll_v / _bgi_scroll_cols_raw — верт. И/ИЛИ гориз. за один проход без буфера (колонка = accel-burst LD A,A, STOP между read/write делает промежуточный OUT Port_Y безопасным), банды по 16 колонок; - _gfx_addr_shadow_base (адрес неактивной страницы) + gfx_rect_t. Пример examples/scroll. check_banks.py + sprinter-cc: отчёт раскладки памяти для ЛЮБОЙ модели (W1/W2 код/данные, остаток кучи/стека, W3 при --w3, банки при --bank), не только при --bank. Док docs/memory-management.md §10. --w3 (резидентный код окна W3) + сопутствующее: crt0_banked W3_RESIDENT, mkexe -W, tests/w3probe. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.9 KiB
Makefile
43 lines
1.9 KiB
Makefile
# w3probe — проверка --w3 (резидентный код окна W3, прямой вызов без
|
|
# трамплинов) во ВСЕХ режимах памяти. Все пробы переиспользуют w3res.c
|
|
# (резидентный W3-модуль: w3_show/w3_probe/w3_sig).
|
|
#
|
|
# small : код 0x4100 (W1/W2), W3 резидент. w3probe.exe
|
|
# tiny : код 0x8100 (W2), W1 не исп., W3 резидент. w3tiny.exe
|
|
# big : код 0x8100 (W2), банки в W1, W3 резидент. w3big.exe
|
|
# huge : код 0x4100, W3 ДЕЛЯТ резидент + трамплин-банки. w3huge.exe
|
|
#
|
|
# Проверено в MAME (2026-07-21): все режимы работают, включая huge —
|
|
# резидент↔W3-банк через трамплин в W1, crt0_banked возвращает резидентную
|
|
# страницу дефолтом. Раскладка страниц: tiny W1=FF (не исп.), big/huge W1=F1.
|
|
|
|
PROJ_ROOT := $(abspath $(CURDIR)/../..)
|
|
CC := $(PROJ_ROOT)/bin/sprinter-cc
|
|
MAKE_HDD := $(PROJ_ROOT)/toolchain/make_hdd.sh
|
|
HDD_IMG := $(PROJ_ROOT)/mame/v306/IMG/test_hdd.chd
|
|
|
|
EXES := w3probe.exe w3tiny.exe w3big.exe w3huge.exe
|
|
|
|
all: $(EXES)
|
|
|
|
w3probe.exe: w3probe.c w3res.c
|
|
$(CC) --memory small --w3 w3res.c -o $@ w3probe.c
|
|
|
|
w3tiny.exe: w3tiny.c w3res.c
|
|
$(CC) --memory tiny --w3 w3res.c -o $@ w3tiny.c
|
|
|
|
w3big.exe: w3big.c w3res.c bigbank.c
|
|
$(CC) --memory big --w3 w3res.c --bank 1=bigbank.c -o $@ w3big.c
|
|
|
|
w3huge.exe: w3huge.c w3res.c w3huge_res.c hugebank.c
|
|
$(CC) --memory huge --w3 w3res.c --w3 w3huge_res.c --bank 1=hugebank.c -o $@ w3huge.c
|
|
|
|
# Упаковать все четыре на HDD (D:) для прогона в MAME. После — рестарт MAME.
|
|
hdd: $(EXES)
|
|
$(MAKE_HDD) $(HDD_IMG) $(EXES)
|
|
|
|
clean:
|
|
rm -rf .sprinter-cc-* $(EXES)
|
|
|
|
.PHONY: all hdd clean
|