Files
Sprinter-SDCC/applications/Volkov/tests/p1_platform/p1_platform.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

44 lines
1.3 KiB
C

/*
* 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