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
+41
View File
@@ -0,0 +1,41 @@
/* sc_panel.h — состояние одной независимой файловой панели. */
#ifndef SC_PANEL_H
#define SC_PANEL_H
#include <stdint.h>
#include "sc_entry.h"
#define SC_SOURCE_REAL_FS 0u
typedef enum {
SC_SORT_NAME = 0,
SC_SORT_EXTENSION,
SC_SORT_SIZE,
SC_SORT_DATE
} ScSortKey;
typedef struct {
char path[256];
uint16_t count;
uint16_t cursor;
uint16_t top;
uint32_t total_size;
uint16_t selected_count;
uint32_t selected_size;
uint8_t source_kind;
uint8_t phys_page;
uint8_t truncated;
uint8_t dirty;
uint8_t sort_key;
uint8_t sort_descending;
} ScPanel;
int sc_panel_init(ScPanel *panel, uint8_t phys_page);
int sc_panel_refresh(ScPanel *panel);
int sc_panel_selected(const ScPanel *panel, ScDirEntry *entry);
int sc_panel_open_selected(ScPanel *panel);
int sc_panel_parent(ScPanel *panel);
void sc_panel_normalize_view(ScPanel *panel);
#endif