Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* p1_platform.h — общий контракт платформенных проб Commander P1.
|
||||
*
|
||||
* Это диагностический код приложения, не публичный заголовок libc. После
|
||||
* подтверждения в MAME стабильные wrappers либо останутся в Commander,
|
||||
* либо будут перенесены в libc отдельными модулями и тестами.
|
||||
*/
|
||||
|
||||
#ifndef P1_PLATFORM_H
|
||||
#define P1_PLATFORM_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t sectors_per_cluster;
|
||||
uint16_t total_clusters;
|
||||
uint16_t free_clusters;
|
||||
uint16_t bytes_per_sector;
|
||||
} P1DiskInfo;
|
||||
|
||||
typedef char P1DiskInfo_must_be_7_bytes[(sizeof(P1DiskInfo) == 7) ? 1 : -1];
|
||||
|
||||
/* Последний код завершения, возвращённый EXEC при CF=0. */
|
||||
extern uint8_t p1_exec_exit_code;
|
||||
|
||||
int p1_disk_info(uint8_t disk, P1DiskInfo *out);
|
||||
int p1_exec(uint8_t path_mode, const char *path);
|
||||
uint8_t p1_wait_code(void);
|
||||
|
||||
void p1_winrest(uint8_t row, uint8_t col, uint8_t height, uint8_t width,
|
||||
uint8_t page, uint16_t offset);
|
||||
|
||||
int p1_test_emm(void);
|
||||
int p1_test_directory(void);
|
||||
int p1_test_screen(void);
|
||||
int p1_test_keyboard(void);
|
||||
int p1_test_exec(void);
|
||||
int p1_test_disk_info(void);
|
||||
|
||||
void p1_heading(const char *title);
|
||||
void p1_pause(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user