Files
Sprinter-SDCC/applications/Volkov/docs/p9-mkdir-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.9 KiB

Sprinter Commander: создание каталога 0.2/P9

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

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

Контракт

  • F7 открывает общий координатный редактор и принимает один компонент DOS 8.3 длиной до 12 символов;
  • разрешены база до 8 и расширение до 3 символов, одна необязательная точка, ASCII-буквы/цифры, допустимая DOS-пунктуация и CP866-байты 80h..FFh;
  • пустое имя, ./.., разделители пути, пробелы, wildcard, лишние точки и превышение 8.3 отвергаются до вызова DSS;
  • полный путь строится в уже принадлежащем ScApp scratch-буфере;
  • mkdir() получает полный путь и не меняет глобальный CWD DSS;
  • после успеха перечитывается только активная панель;
  • существующий каталог и невалидное имя дают управляемое сообщение, Esc закрывает редактор без файловой операции.

Валидатор вынесен в отдельный банковый модуль sc_name.c. Сам Commander размещает редактор, оркестрацию F7 и валидатор в BANK2; HOME/W2 содержит только dispatch и банковые трамплины.

Проверка

Target-проба MKRT.EXE проверяет допустимые и запрещённые имена, построение полного пути, реальный цикл mkdir/duplicate/rmdir и неизменность CWD. После MAME дерево извлекается из CHD: внешний checker подтверждает созданный MKTEST/NEWDIR, неизменный KEEP.TXT и отсутствие пробных каталогов.

PASS: validator, mkdir/error/rmdir/CWD и F7 NEWDIR.

UI-сценарий отдельно подтверждает:

Размер

Конфигурация --memory big --safe --max-allocs 3000:

Область После P8 После P9 и уточнения group select Изменение
_CODE W2 9416 9449 +33
данные W2 3256 3256 0
свободная куча W2 2176 2143 -33
BANK1 6451 6477 +26
BANK2 7268 8156 +888
SPRCMD.EXE 42993 43026 +33

Оба банка сохраняют более 8 КБ резерва. Межбанковый аудит чист.

Общий size-check по всему C-Compiler пока ожидаемо отмечает посторонний новый hello3 и намеренный рост openenv после постоянной проверки O_RDONLY; эталон размеров из Commander не обновлялся.

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

make hdd-p9-mkdir ALLOCS=3000
tests/run_mame_hdd.sh build/hdd/p9_mkdir.chd \
  tests/mame_p9_mkdir.lua artifacts/mame-p9/local 70
tests/check_p9_mkdir_hdd.sh build/hdd/p9_mkdir.chd