Volkov: добавить Sprinter Commander

Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места.

Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
2026-09-10 10:45:30 +03:00
parent 05bcd8197e
commit 8e389c03f8
870 changed files with 21310 additions and 25 deletions
@@ -0,0 +1,56 @@
# Артефакты MAME-прогонов P2
Дата: 6 сентября 2026 года.
Окружение: MAME 0.287 (`b0c4527c`), машина `sprinter`, BIOS `v3.06`.
Программа `p2screen.exe` запускалась с дискеты A:.
Каталог `screen/` содержит:
- `full.png` — полный `WINREST` и сверка через `RDCHAR`;
- `partial-offset.png` — прямоугольник из EMM offset `0x2000`;
- `left-scroll-up.png` и `right-scroll-down.png` — оба направления scroll на
разных панелях;
- `stress-running.png` и `stress-final.png` — прогон 1000 операций и итоговая
сверка модели;
- `stable-phase-a.png`, `stable-phase-b.png`, `stable-phase-c.png` — три
идентичных кадра принятого варианта с системным атрибутом `0x30`;
- `flash-before-visible.png`, `flash-before-hidden.png` и
`flash-before-visible-again.png` — исторические диагностические имена.
Повторная RGB-проверка показала, что все три файла полностью идентичны;
прежний вывод о чередовании был ошибкой предпросмотра.
Каталог `skeleton/` содержит именованные кадры первого запускаемого Commander:
- `initial-left-active.png` и `tab-right-active.png` — старт и переключение
панели;
- `navigation-scroll.png` — PgDn+Down, cursor/top `28/2`;
- `quit-dialog.png`, `quit-cancelled-restored.png` — обе ветви первого
подтверждения;
- `reserved-command-dialog.png`, `message-closed-restored.png` — общий
message dialog и восстановление модели;
- `clean-exit-dos.png` — штатный выход;
- `repeat-second-launch.png`, `repeat-second-clean-exit.png` — второй процесс
после cleanup и его завершение.
Это сохранённый одноатрибутный baseline. Каталог `skeleton-color/` повторяет
полный сценарий после подключения `sc_theme` и дополнительно содержит кадры
обоих красных quit-dialog. Актуальным результатом P2 считается
`skeleton-color/`.
Каталог `palette/` содержит P2.2:
- `phase-a.png``phase-e.png` — многоцветная сцена в разных моментах;
- `restored-dos.png` — возврат после восстановления сохранённых записей.
В `phase-a.png` отличается только внешний индикатор Drive A в левой панели
layout MAME. Viewport Sprinter во всех пяти фазах пиксельно идентичен. Левая
служебная панель MAME в сравнение экранных тестов не входит.
P2.1 не открывает BIOS-окна, не обращается к VRAM напрямую и не изменяет
палитру. Интерпретация и точные результаты приведены в
[`docs/p2-screen-probe-results.md`](../../docs/p2-screen-probe-results.md).
P2.2 проверяет разрешённые системные палитровые вызовы; результаты приведены
в [`docs/p2-palette-results.md`](../../docs/p2-palette-results.md).
Результаты приложения-skeleton приведены в
[`docs/p2-skeleton-results.md`](../../docs/p2-skeleton-results.md).
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB