# Build mdview2.exe — Markdown viewer for Sprinter (render-cache version). # # Фаза 0: скаффолдинг — копия mdview.c как baseline, без изменений # логики. План — docs/mdview2-plan.md. # # small memory mode: code in W1, data/stack/heap in W2 (32 KB total). # W3 stays free for the file buffer (EMM-mapped). PROJ_ROOT := $(abspath $(CURDIR)/../..) EXAMPLE := mdview2 EXTRA_SRCS := mdview2_raw.c mdview2_help.c mdview2_table.c mdview2_enc.c mdview2_md.c mdview2_status.c mdview2_index.c MEMORY := small include $(PROJ_ROOT)/app.mk # ------------------------------------------------------------------ # Образ дискеты: только mdview2.exe + README.MD (перекодированный # из UTF-8 в CP866 — рабочую кодировку Sprinter). # # README.MD хранится в репозитории в UTF-8; iconv -c конвертирует # его в CP866, отбрасывая символы без аналога в целевой кодировке. # Результат кладётся в .disk_tmp/README.MD, чтобы make_disk.py # использовал правильное имя файла на диске. # # iconv -c возвращает ненулевой код, если хоть один символ отброшен # (даже с -c) — это ОЖИДАЕМО при потере символов без аналога в CP866, # не ошибка конвертации; вывод при этом всё равно корректно записан. # Поэтому код возврата iconv игнорируется (|| true). # ------------------------------------------------------------------ DISK_TMP := .disk_tmp README_DISK := $(DISK_TMP)/README.MD $(DISK_TMP): mkdir -p $@ $(README_DISK): README.MD | $(DISK_TMP) iconv -c -f UTF-8 -t CP866 README.MD > $@ || true # ВРЕМЕННО (проверка лимита 256 КБ): на диск кладём целевые тестовые файлы # путей обрыва из testfiles/ (генерятся testfiles/gen_testfiles.py, ASCII — # iconv не нужен, make_disk берёт имя по basename): # TABLES.MD — пробивает кап контент-кэша (сообщение Content cache exhausted) # LINES.MD — пробивает лимит строк 18432 (сообщение Line limit reached) # HUGE.MD — >256 КБ, кламп (сообщение File too large - truncated at 256 KB) # Убрать вместе с возвратом к обычному README-диску. TESTDIR := testfiles # UTF8TEST.MD кладётся на диск КАК ЕСТЬ (в UTF-8, без перекодировки) — # это тестовый вход для проверки UTF-8 рендеринга (Фаза 2 кодировок). floppy: $(EXAMPLE).exe $(README_DISK) $(TESTDIR)/TABLES.MD $(TESTDIR)/LINES.MD $(TESTDIR)/HUGE.MD python3 $(MAKE_DISK) $(FLOPPY_IMG) $(EXAMPLE).exe $(README_DISK) $(TESTDIR)/TABLES.MD $(TESTDIR)/LINES.MD $(TESTDIR)/HUGE.MD UTF8TEST.MD @echo @echo "Floppy ready: $(FLOPPY_IMG) (mdview2.exe + README.MD + TABLES.MD + LINES.MD + HUGE.MD + UTF8TEST.MD)" @echo "Run: cd $(MAME_DIR) && ./run_mame.sh" clean: rm -rf .sprinter-cc-* $(EXAMPLE).exe $(DISK_TMP) .PHONY: all clean floppy run