Files
Sprinter-SDCC/applications/Volkov/docs/p8-mask-results.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

3.8 KiB
Raw Blame History

Sprinter Commander: выбор по маске 0.2/P8

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

Статус: PASS в MAME 0.288 / BIOS 3.06 / DSS 1.71.57 на HDD D:.

Реализация

Обычный + открывает Select by mask, обычный -Unselect by mask. Начальное значение *.*; Enter применяет действие, Esc отменяет его без изменения панели. Доступны wildcard * и ?, сравнение ASCII-букв не зависит от регистра. Как в DOS, *.* означает все имена файлов, включая имена без точки. Все групповые операции +, -, * игнорируют каталоги; синтетический .. и виртуальный маркер DSS также не участвуют. Выбор, поставленный на каталог отдельным Insert, не меняется.

Модальный редактор не использует консольные окна или прямой VRAM. Диалог и поле находятся в общей EMM-модели Commander и выводятся координатными функциями. Реализованы insertion в позиции cursor, Backspace, Delete, Left/Right, Home/End, Enter и Esc. Для текущих DSS 8.3-масок ввод ограничен 12 символами; тот же editor будет переиспользован командами F7/F6 и командной строкой.

Существующий sc_dialog.c вместе с новым editor перенесён из HOME в BANK2. Mask matcher находится в BANK1 рядом с выбором; приложение передаёт ему резидентный scratch-буфер copy job, пока файловая job не активна.

Проверка

Target-часть проверяет:

  • *.bin в нижнем регистре против имён верхнего регистра;
  • ?.b?n;
  • *.* для файла без точки и неизменность каталога;
  • последовательное set/clear с точными count/size;
  • неизменность .. и DSS-маркера.

UI-сценарий редактирует *.* в *.bin, получает три выбранных файла и sel 60/003, затем снимает b.bin, получая sel 40/002. Следующий диалог закрывается Esc, состояние не меняется.

Размер

Область После P7 После P8 Изменение
_CODE W2 9434 9416 -18
данные W2 3256 3256 0
свободная куча W2 2158 2176 +18
BANK1 6033 6451 +418
BANK2 6213 7268 +1055
SPRCMD.EXE 43011 42993 -18

Несмотря на новую функцию, HOME стал меньше благодаря переносу диалогов. Оба банка имеют более 9 КБ резерва; межбанковый аудит чистый.

Воспроизведение

make hdd-p8-masks ALLOCS=3000
tests/run_mame_hdd.sh build/hdd/p7_select.chd \
  tests/mame_p7_select.lua artifacts/mame-p8/local 80
tests/check_p7_select_hdd.sh build/hdd/p7_select.chd