Files
Sprinter-SDCC/applications/Volkov/include/sc_app.h
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

50 lines
1.7 KiB
C

/* sc_app.h — состояние и главный цикл Sprinter Commander. */
#ifndef SC_APP_H
#define SC_APP_H
#include <stdint.h>
#include "sc_command.h"
#include "sc_copy.h"
#include "sc_panel.h"
#define SC_PANEL_COUNT 2u
#define SC_PANEL_VISIBLE 27u
#define SC_EMM_PAGE_COUNT 4u
typedef struct ScApp {
ScPanel panels[SC_PANEL_COUNT];
uint8_t active_panel;
uint8_t running;
uint8_t emm_block;
uint8_t screen_page;
uint8_t copy_page;
uint16_t emm_total_before;
uint16_t emm_free_before;
ScCopyJob copy_job;
const char *status;
} ScApp;
int sc_app_init(ScApp *app);
void sc_app_run(ScApp *app);
int sc_app_cleanup(ScApp *app);
void sc_draw_all(const ScApp *app) __banked;
void sc_draw_panel_rows(const ScApp *app, uint8_t panel_index) __banked;
void sc_draw_panel_row(const ScApp *app, uint8_t panel_index,
uint8_t row) __banked;
void sc_draw_info(const ScApp *app) __banked;
void sc_draw_status(const ScApp *app) __banked;
uint8_t sc_dialog_confirm_quit(void) __banked;
uint8_t sc_dialog_confirm(const char *title, const char *message) __banked;
void sc_dialog_message(const char *title, const char *message) __banked;
uint8_t sc_dialog_choice(const char *title, const char *message,
const char *keys, const char *buttons) __banked;
uint8_t sc_dialog_input(const char *title, const char *prompt,
char *buffer, uint8_t capacity) __banked;
/* Возвращает выбранную ASCII-клавишу из keys в верхнем регистре; Esc = 0. */
uint8_t sc_dialog_choice(const char *title, const char *message,
const char *keys, const char *buttons) __banked;
#endif