ZXAY

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

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

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

Time – время в тактах процессора Z80 в диапазоне 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-файла.