Хотел уже продолжить серию статей про ZX Evolution (первая часть про сборку тут), но тут внезапно (!) разобрался с двумя «железными» проблемами: устранил доставший меня баг с зависанием в моём ZX Spectrum +2 и смог заставить заработать «аудиокарту» на чипе AY-3-8910, которая читала данные из LPT-порта ПК. Про ZX Spectrum +2 я, наверное, расскажу в следующей статье, а вот тему устройств AY-LPT раскрою сегодня.
Предыстория — зачем это понадобилось мне сейчас
Вообще, сама по себе тема вывода звука при эмуляции ZX Spectrum на ПК через отдельную плату с чипом AY-3-8910 или Yamaha YM2149 настолько стара, что уже умерла и похоронена. А всё потому, что актуально это было в конце 90-х и начале 2000-х, когда мощности ПК не позволяли качественно эмулировать звуковую систему типа AY даже с 3 каналами. С тех пор прошло много времени и ПК сейчас может сделать звук AY, пожалуй, даже лучше чем он был когда-то. Но мне таки пришлось немного «понекрофильствовать» из-за того, что когда я ровно год назад начал свой «поход за дискетами» (раз, два, три) для ZX Spectrum, то оказалось, что один из вариантов получить доступ к дискетам TR-DOS — это эмуляторы Спектрума под DOS. Чего я только тогда не перебрал, но найти нормальную звуковую карту (убил кучу времени, перебрал 3 штуки, включая Creative), которая бы работала под DOS, как нормальный Sound Blaster у меня не получилось. В итоге пришлось остановиться на аудиокарте, которая хотя бы нормально эмулировала Adlib и с этим уже вполне можно было жить в играх под DOS и в некоторых эмуляторах ZX Spectrum, но, к сожалению, единственный эмулятор (RealSpectrum), который прилично эмулировал прямой доступ к дисководу намертво вешался при попытке запустить его со звуком. Да, нашелся, конечно, обходной вариант с Windows XP, для которой есть драйвер прямого доступа к дисководу (fdrawcmd.sys), и которая отлично поддерживает любые аудиокарты, но грузить Windows для эмуляции ZX Spectrum?! Поэтому осадочек-то остался, а я обещал в итогах этой серии статей таки уйти от Windows и даже наметил каким образом: а конкретно с помощью отдельной платы AY-LPT, поскольку RealSpectrum такой вариант вполне поддерживал:
