/* * bank_load_byte_w1 — прочитать байт из чужой физической страницы через * окно 1 (порт 0xA2, база 0x4000) со свопом-возвратом страницы W1. * * ТОЛЬКО для `--memory tiny`: там весь код/данные в W2, и W1 свободно. * small/huge: в W1 живёт код (HOME) → своп размапит функцию на лету; * big: в W1 живёт banked-код → своп его затирает. * Зеркало W3-семейства; см. sprinter_mem.h (матрица безопасности). */ #include #include #include uint8_t bank_load_byte_w1(uint8_t phys_page, uint16_t off_in_window) { uint8_t saved = _io_page_w1; sprinter_page_w1(phys_page); uint8_t v = *((volatile uint8_t *)(0x4000u + off_in_window)); sprinter_page_w1(saved); return v; }