# Sprinter Commander Функциональный аналог классического двухпанельного Commander для Sprinter Sp2000. Volkov Commander 4.05/4.99 и Dos Navigator используются как поведенческие и архитектурные референсы; проект не является переносом их DOS-кода. Текущее состояние: PoC 0.1 (этапы P1–P5) пройден в MAME / BIOS 3.06 / DSS 1.71.57; аппаратный smoke-тест остаётся внешним контрольным пунктом. Начат этап 0.2: готовы независимые для каждой панели сортировки по имени, расширению, размеру и дате/времени в обоих направлениях, выбор записей через `Insert`, `*` и маски `+`/`-`, создание каталога по `F7` и локальное переименование файла/каталога по `F6` без overwrite, однообъектный F8 и групповой рекурсивный F8 для выбранных файлов и каталогов, а также рекурсивный F5 для выбранных файлов и каталогов. F5 сохраняет FAT date/time и атрибуты `R/H/S/A` обычных файлов и поддерживает conflict-policy `overwrite/skip/rename`, включая `overwrite all`/`skip all`, отдельную защиту readonly и backup/rollback. Обход использует динамическую EMM-очередь. Встроенный профиль имён уже различает белые каталоги, жёлтые `.EXE` и светло-серые остальные файлы; загрузка пользовательских цветовых правил остаётся задачей 1.0. Командер сканирует, хранит и сортирует каталоги, показывает явную виртуальную запись предела DSS 1.71, безопасно копирует один файл через выделенную EMM-страницу W3 и запускает `.EXE` с восстановлением режима, палитры, CWD и обеих панелей. ## Сборка Из этого каталога: ```sh make ``` Результат: `build/sprcmd.exe`, конфигурация `--memory big --safe --max-allocs 3000`. Значение `ALLOCS=3000` принято как исходное для Commander и всех его проб; при диагностике его можно переопределить явно, например `make ALLOCS=4000`. Основные тесты используют быстрый HDD `D:`: ```sh make hdd # только Commander make hdd-stress # большой каталог P3 make hdd-copy # набор успех/overwrite/cancel/zero для P4.1 make hdd-exec # запуск child/restore/error для P4.2 make hdd-p5 # 20 copy, граничные размеры, 100 refresh, lifecycle make hdd-p5-enospc # реальный disk-full и cleanup temp make hdd-p5-panels # точные границы панели 27/28 записей make hdd-p5-copy-faults # детерминированная матрица ошибок copy/EXEC make hdd-p5-viewer # запуск реального mdview2 и восстановление Commander make hdd-p5-media # снятие/возврат hard2 во время F5 make hdd-p6-sort # target-матрица и UI-сценарий сортировок 0.2 make hdd-p7-select # выбор Insert/*, статистика и EMM cleanup make hdd-p8-masks # тот же расширенный образ: редактор и маски +/− make hdd-p9-mkdir # validator DOS 8.3, mkdir/error/CWD и UI F7 make hdd-p10-rename # file/dir rename, no-overwrite, CWD и UI F6 make hdd-p11-delete # confirm/cancel, file/empty-dir, guards и UI F8 make hdd-p12-group-copy # legacy group fixture; current F5 also copies selected dirs make hdd-p13-group-delete # legacy file-only group F8 regression make hdd-p14-default-colors # built-in dir/EXE/file colours и restore палитры make hdd-p15-tree-copy # recursive current directory, depth=16 и repeat guard make hdd-p15-tree-cancel # Esc в 4-МБ файле и cleanup temp/traversal page make hdd-p15-tree-self # target-inside-source guard до mutation make hdd-p16-group-tree-copy # selected files + multiple directory roots make hdd-p17-tree-delete # recursive group F8, depth=12, cancel confirmation make hdd-p17-tree-delete-cancel # Esc после начала recursive group F8 make hdd-p18-metadata # exact FAT date/time + R/H/S/A после F5 make hdd-p19-overwrite # target backup/commit/rollback matrix make hdd-p19-policy # UI overwrite/skip/rename/all/readonly/cancel ``` `make floppy` сохранён для smoke-проверки совместимости с FDD и не запускает эмулятор. Подробнее: [политика тестовых носителей](docs/test-media.md). ## Документы - [требования PoC](docs/commander-requirements.md); - [архитектура](docs/commander-architecture.md); - [roadmap](docs/commander-roadmap.md); - [клавиши и команды](docs/commander-keymap.md); - [результаты платформенных проб P1](docs/p1-platform-probes.md); - [экранный backend и границы BIOS API](docs/p2-screen-backend.md); - [результаты coordinate-screen probe P2.1](docs/p2-screen-probe-results.md); - [результаты системной палитры P2.2](docs/p2-palette-results.md); - [результаты двухпанельного skeleton P2](docs/p2-skeleton-results.md); - [результаты файловых панелей P3](docs/p3-panel-results.md); - [результаты копирования P4.1](docs/p4-copy-results.md); - [результаты запуска EXE P4.2](docs/p4-exec-results.md); - [результаты стабилизации P5](docs/p5-stability-results.md); - [результаты сортировок 0.2/P6](docs/p6-sort-results.md); - [результаты выбора записей 0.2/P7](docs/p7-selection-results.md); - [результаты выбора по маске 0.2/P8](docs/p8-mask-results.md); - [результаты создания каталога 0.2/P9](docs/p9-mkdir-results.md); - [результаты локального rename 0.2/P10](docs/p10-rename-results.md); - [результаты однообъектного delete 0.2/P11](docs/p11-delete-results.md); - [результаты группового F5 0.2/P12](docs/p12-group-copy-results.md); - [результаты группового F8 0.2/P13](docs/p13-group-delete-results.md); - [результаты стандартных цветов P14](docs/p14-default-colors-results.md); - [результаты рекурсивного F5/P15](docs/p15-tree-copy-results.md); - [результаты рекурсивного group F5/P16](docs/p16-group-tree-copy-results.md); - [результаты рекурсивного group F8/P17](docs/p17-tree-delete-results.md); - [результаты сохранения метаданных F5/P18](docs/p18-metadata-results.md); - [результаты conflict-policy F5/P19](docs/p19-copy-policy-results.md); - [направление развития UI по образцу VC](docs/ui-reference.md); - [инструкция и ограничения PoC 0.1](docs/poc-0.1-release.md); - [носители интеграционных тестов](docs/test-media.md); - [предел больших каталогов DSS и стратегия Commander](docs/dss-large-directories.md). Экран выводится системными координатными функциями ESTEX/BIOS без оконных дескрипторов и без прямой адресации VRAM. Системные вызовы палитры разрешены; их save/set/readback/restore и многоцветная сцена подтверждены пробой P2.2.