/* * bank_load_file — прочитать файл целиком в физическую EMM-страницу. * * Тонкая обёртка над bank_read_page: открыть, перенести, закрыть. Вся * работа с W3 (ESTEX принимает файловый буфер только в W1..W3) живёт там, * в одном месте — дублировать её здесь незачем, а резидент W1 у * приложений тесный. * * Кто читает из одного файла НЕСКОЛЬКО кусков (архив ресурсов, поток * музыки), обязан звать bank_read_page напрямую, держа fd открытым: * `open` дороже самого чтения — 51,4 мс против 32,6 мс на 16 КБ (замер в * MAME, PoP, 2026-08-25). * * Возврат: фактически прочитанный размер либо -1 + errno. */ #include #include #include int bank_load_file(uint8_t phys_page, uint16_t off, const char *path, uint16_t max_size) { int fd, n; fd = open(path, O_RDONLY); if (fd < 0) return -1; n = bank_read_page(fd, phys_page, off, max_size); close(fd); return n; }