/*
 * bank_read — скопировать n байт из чужой физической страницы (окно 3,
 * порт 0xE2, база 0xC000) в dst через memcpy со свопом-возвратом W3.
 * Безопасность по режимам — как у bank_load_byte (см. sprinter_mem.h).
 */

#include <stdint.h>
#include <string.h>
#include <sprinter.h>
#include <sprinter_mem.h>

void bank_read(uint8_t phys_page, uint16_t off, void *dst, uint16_t n)
{
    uint8_t saved = _io_page_w3;
    sprinter_page_w3(phys_page);
    memcpy(dst, (const void *)(0xC000u + off), n);
    sprinter_page_w3(saved);
}
