Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/* 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
|
||||
Reference in New Issue
Block a user