AY-3-8910/12 ZX Spectrum Sound Chip Emulator

ZXAY

ZXAY файл может быть получен из любого OUT, EPSG, AY или AYM файла и представляет из себя более оптимальный способ хранения вывода на сопроцессор, чем OUT файл. ZXAY файл представляет собой последовательность четырёхбайтных блоков, причём самый первый блок является ASCII строкой, содержащей аббревиатуру "ZXAY". Любой следующий блок является структурой вида

№№ битов        Название
0–19            Time
20–23           Register
24–31           Data

Time – время в тактах процессора в диапазоне 0–0FFFFFh, во время которого осуществлен вывод в регистр сопроцессора, номер которого от 0 до 13 хранится в поле Register. Поле Data содержит данные, записанные в этот регистр. Если при Time = 0 не было вывода на сопроцессор, блок всё равно записывается, при этом поле Register = 15. Если поле Register = 1, 3, 5 или 13, то старшие четыре бита поля Data должны быть равны нулю. Если поле Register = 6, 8, 9 или 10, то старшие три бита поля Data должны быть равны нулю. Если поле Register = 7, то старшие два бита поля Data должны быть равны нулю. При создании ZXAY файла вывод в регистр 0–12 того же числа, что он и содержал до этого вывода, игнорируется. Вывод в регистр 13 записывается всегда. Как можно заметить, организация ZXAY-файла аналогична организации OUT-файла.