Files
Sprinter-SDCC/applications/Volkov/docs/poc-0.1-release.md
T
snark13 8e389c03f8 Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
2026-09-10 10:45:30 +03:00

5.4 KiB

Sprinter Commander PoC 0.1

Дата: 8 сентября 2026 года.

Статус: техническая архитектура подтверждена в MAME 0.288 / BIOS 3.06 / DSS 1.71.57. SPRCMD.EXE является proof of concept, а не готовым файловым менеджером для повседневной работы. Аппаратный smoke-тест на Sprinter Sp2000 ещё требуется.

Что уже работает

  • полноэкранный двухпанельный интерфейс 80x32 через безоконные координатные функции BIOS/ESTEX, без прямой записи в VRAM;
  • независимые пути и навигация обеих панелей, синтетический .., Home/End, PgUp/PgDn, Tab и refresh;
  • одна EMM-страница на панель, максимум 640 записей без заполнения страницы целиком, красный >>> MORE... при известном ограничении DSS;
  • каталоги перед файлами и сортировка по имени;
  • безопасное копирование одного файла по F5 через отдельную EMM-страницу W3, 4-КБ блоками и temp/rename commit;
  • отмена по Esc между блоками и в отдельной точке перед commit;
  • запрет перезаписи уже существующего target;
  • запуск .EXE по Enter с временным CWD активной панели и восстановлением экрана, палитры, CWD и панелей;
  • штатное освобождение EMM, закрытие fd и восстановление системного экрана при выходе.

Сборка и запуск

Из каталога приложения:

make ALLOCS=3000
make hdd

Результат — build/sprcmd.exe; образ для быстрого интеграционного запуска — build/hdd/sprcmd.chd. Для MAME штатно используются системный HDD как C: и отдельный тестовый hard2 как D:. Одновременно разрешён только один процесс MAME Sprinter.

Полный перечень автоматизированных образов и команд находится в test-media.md, доказательства P5 — в p5-stability-results.md.

Финальная конфигурация PoC: --memory big --safe --max-allocs 3000; SPRCMD.EXE — 42447 байт, _CODE W2 — 8870 байт, свободная куча W2 — 2738 байт, BANK1 — 4242 байта, BANK2 — 5973 байта.

Клавиши PoC

Клавиша Действие
стрелки, Home/End, PgUp/PgDn перемещение по активной панели
Tab сменить активную панель
Enter войти в каталог/.. или запустить .EXE
Ctrl+R перечитать активную панель
F5 скопировать текущий обычный файл в пассивную панель
Esc отменить активное копирование
F10 подтверждение выхода

Надписи F6/F7/F8 и меню пока являются зарезервированными командами следующих этапов, а не обещанием выполненной операции.

Известные ограничения

  • в панели показывается не более 640 записей; многостраничный режим относится только к 2.0+;
  • стабильный DSS 1.71 может остановить физическое перечисление около 512-й FAT-записи с ошибкой 35 — показывается информирующий красный маркер;
  • сортировка PoC только по имени; ext/size/date и обратный порядок входят в следующую функциональную фазу;
  • нет выбора нескольких файлов, масок, очереди и рекурсивных операций;
  • F6 move/rename, F7 mkdir, F8 delete и overwrite policy ещё не реализованы;
  • нет командной строки, Ctrl+O, истории, associations и передачи аргументов внешней программе;
  • нет конфигурационного файла цветов, viewer/editor вызываются только как обычные внешние .EXE;
  • нет длинных имён: DSS-контракт текущего слоя — 8.3;
  • floppy поддерживается лишь как медленный smoke-носитель; основная матрица выполнялась на HDD D:;
  • проверка на реальном Sprinter пока не выполнена.

Эти ограничения намеренно отделяют доказанную платформенную основу PoC от безопасного файлового ядра 0.2 и полного набора функций версии 1.0.