Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# 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 и восстановление системного экрана
|
||||
при выходе.
|
||||
|
||||
## Сборка и запуск
|
||||
|
||||
Из каталога приложения:
|
||||
|
||||
```sh
|
||||
make ALLOCS=3000
|
||||
make hdd
|
||||
```
|
||||
|
||||
Результат — `build/sprcmd.exe`; образ для быстрого интеграционного запуска —
|
||||
`build/hdd/sprcmd.chd`. Для MAME штатно используются системный HDD как `C:` и
|
||||
отдельный тестовый `hard2` как `D:`. Одновременно разрешён только один процесс
|
||||
MAME Sprinter.
|
||||
|
||||
Полный перечень автоматизированных образов и команд находится в
|
||||
[test-media.md](test-media.md), доказательства P5 — в
|
||||
[p5-stability-results.md](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.
|
||||
Reference in New Issue
Block a user