/* * p1_platform.h — общий контракт платформенных проб Commander P1. * * Это диагностический код приложения, не публичный заголовок libc. После * подтверждения в MAME стабильные wrappers либо останутся в Commander, * либо будут перенесены в libc отдельными модулями и тестами. */ #ifndef P1_PLATFORM_H #define P1_PLATFORM_H #include 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