Files
Sprinter-SDCC/applications/Volkov/docs/p11-delete-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.7 KiB

Sprinter Commander: однообъектный delete 0.2/P11

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

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

Реализованный срез F8

F8 удаляет одну текущую обычную запись только после модального подтверждения:

  • обычный файл удаляется через unlink();
  • пустой каталог — через rmdir();
  • непустой каталог сохраняется и даёт управляемую ошибку;
  • N/Esc отменяют команду без изменения носителя;
  • .. и маркер предела DSS не передаются файловой системе;
  • в срезе P11 неоднозначная выбранная группа отклонялась; начиная с P13 выбранные файлы удаляются группой, а выбранные каталоги пропускаются. Это исторический контракт P11/P13; начиная с P17 каталоги выбранной группы удаляются рекурсивно.

Рекурсивное и групповое удаление намеренно не имитируются циклом вокруг текущего cursor. Они будут реализованы общей файловой job с определённой политикой частичного успеха и cancel.

Проверка

Target-проба DELRT.EXE проверяет удаление обычного файла и пустого каталога по полным путям, отказ для непустого каталога, сохранность соседнего файла и неизменность CWD. UI-сценарий затем проверяет обе стороны подтверждения и защитные ветки. После выхода дерево извлекается из CHD и проверяется побайтно:

PASS: file/empty-dir delete, cancel, guards, nonempty и CWD.

Контрольные состояния:

Размер

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

Область После P10 После P11 Изменение
_CODE W2 9463 9496 +33
данные W2 3256 3256 0
свободная куча W2 2129 2096 -33
BANK1 6477 6477 0
BANK2 10008 10942 +934
SPRCMD.EXE 43040 43073 +33

В BANK2 остаётся 5442 байта, в BANK1 — 9907 байт. Межбанковый аудит чист.

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

make hdd-p11-delete ALLOCS=3000
tests/run_mame_hdd.sh build/hdd/p11_delete.chd \
  tests/mame_p11_delete.lua artifacts/mame-p11/local 67
tests/check_p11_delete_hdd.sh build/hdd/p11_delete.chd