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

39 lines
1.2 KiB
C

/* sc_screen.h — экранная EMM-модель Commander 80x32. */
#ifndef SC_SCREEN_API_H
#define SC_SCREEN_API_H
#include <stdint.h>
#define SC_SCREEN_W 80u
#define SC_SCREEN_H 32u
#define SC_ROW_BYTES 160u
#define SC_SCREEN_BYTES 5120u
#define SC_SCROLL_UP 1u
#define SC_SCROLL_DOWN 2u
typedef struct {
uint8_t ch;
uint8_t attr;
} ScCell;
typedef char ScCell_must_be_2_bytes[(sizeof(ScCell) == 2) ? 1 : -1];
void sc_screen_attach(uint8_t page);
void sc_screen_detach(void);
void sc_screen_clear(uint8_t attr);
void sc_screen_cell(uint8_t x, uint8_t y, uint8_t ch, uint8_t attr);
void sc_screen_fill(uint8_t x, uint8_t y, uint8_t width,
uint8_t ch, uint8_t attr);
void sc_screen_text(uint8_t x, uint8_t y, const char *text,
uint8_t attr, uint8_t max_width);
int sc_screen_present_full(void);
int sc_screen_present_row(uint8_t x, uint8_t y, uint8_t width);
int sc_screen_present_rows(uint8_t first, uint8_t count);
int sc_screen_scroll_rows(uint8_t x, uint8_t y,
uint8_t width, uint8_t height,
uint8_t direction, uint8_t fill_attr);
#endif