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
+5 -4
View File
@@ -117,11 +117,12 @@ void bank_write(uint8_t phys_page, uint16_t off, const void *src, uint16_t n)
int bank_load_file(uint8_t phys_page, uint16_t off, const char *path,
uint16_t max_size);
/* То же, но из УЖЕ ОТКРЫТОГО файла и с текущей позиции (её ставит вызывающий
* через lseek). Нужна тем, кто читает из одного файла много кусков: `open`
* стоит дороже самого чтения (замер: 51,4 мс против 32,6 мс на 16 КБ), и
* держать fd открытым — единственный способ эту цену не платить. */
/* Обмен с УЖЕ ОТКРЫТЫМ файлом и его текущей позицией (её ставит вызывающий
* через lseek). `open` стоит дороже самого чтения (замер: 51,4 мс против
* 32,6 мс на 16 КБ), а явное владение fd позволяет построить потоковый
* copy-job с собственной политикой create/temp/rename. */
int bank_read_page(int fd, uint8_t phys_page, uint16_t off, uint16_t size);
int bank_write_page(int fd, uint8_t phys_page, uint16_t off, uint16_t size);
int bank_save_file(uint8_t phys_page, uint16_t off, const char *path,
uint16_t size);