/* * _pop_sfx.h — внутренний контракт между половинами звука (НЕ публичный, * публичный — pop_sfx.h). Горячая половина живёт в резиденте * (pop_sfx.c), холодная в банке (pop_sfx_cold.c); делят они таблицу * звуков, массив физических страниц и насос. */ #ifndef _POP_SFX_INTERNAL_H #define _POP_SFX_INTERNAL_H #include #include "pop_sound_tbl.h" /* pop_snd_tbl, POP_SND_* — генерит упаковщик */ /* Физические страницы набора, по индексу из pop_snd_tbl[].page. */ extern uint8_t pop_snd_page[POP_SND_PAGES]; /* 1 — набор поднят и CBL открыт; 0 — играем молча. */ extern uint8_t pop_snd_ok; /* Насос: отдать n байт в CBL. Резидентный — его адрес отдаётся в * cbl_open() холодной половиной. */ int pop_sfx_fill(uint16_t n); /* Прочитать файл целиком в ФИЗИЧЕСКУЮ страницу (через W3). Резидентный: * банковый код, переключив W3, вырезал бы сам себя. */ int pop_page_read(const char *path, uint8_t phys, uint16_t want); #endif