Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #45, АВГУСТ 2004 г.

Паяльник

Ne01eX (Ne01eX@rambler.ru)

Спецвыпуск Xakep, номер #045, стр. 045-098-4


Ну вот, очередное совокупление с паялом подошло к своему логическому семяизвержению. То, что получилось у меня в результате и что должен получить ты, представлено на рис. 18. Но это не конец! Ведь еще не запрограммирована микросхема, не подготовлены данные для заливки.

Рыба заливная

Данными будет звуковой фрагмент. В принципе, монофоническую звуковую фразу с частотой дискретизации 8 кГц можно получить разными путями. Например, ветераны, сидящие за компом с десяток лет, наверняка помнят видоизмененную схему COVOX'a, позволяющую записывать монофонический 8-битный звуковой сигнал с регулируемой частотой выборки. Кто помладше может воспользоваться CoolEdit Pro на пару с SB Creative Audigy 2. Ну а самым маленьким вполне хватит встроенной звуковухи на чипсете AC'97, микрофона-прищепки "Диалог" и Sound Forge в качестве софта. Об использовании последнего и пойдет далее речь. Выбираем нужную опцию (рис. 19), появляется окно, как на рис. 20. Устанавливаем параметры записи согласно скрину и записываем. Записал? Закрой окно, вырежи нужный фрагмент и обработай. Под обработкой я подразумеваю подгонку под объем и нормализацию звукового сигнала. Можно, конечно, вставить эффект эхо или "вау", но на 4096 байт особо не развернешься, поэтому не рекомендую. Естественно, можно использовать и уже имеющийся музыкальный фрагмент, преобразовав его в требуемый формат (8000 Гц – частота выборки, моно, WAV PCM, это соответствует более-менее перевариваемому битрейту 64kbps). Ну есть у тебя фрагмент. Что дальше? А дальше – удаление служебной информации из файла для уменьшения его объема. Структура WAV-файла представлена в табл. 3.

Нас интересует раздел, помеченный голубым цветом: там, собственно, и находятся данные. Процесс "кастрации" несложен: достаточно найти последовательность 64h 61h 74h 61h (это соответствует слову 'data' в ASCII), пропустить следующие четыре байта и вырезать все, что находится выше (верх – 0000 в HEX-представлении). Остаток и будет звуковыми данными в чистом виде. В [1] для этого даже приведен листинг программы на языке Turbo Pascal, но мы для наглядности будем работать ручками. Кроме ручек нужен ножик. Им будет очень удобный, на мой взгляд, HEX-редактор. Имя сей тулзы незамысловато – HexEdit. Из достоинств проги можно выделить драгендроп, быструю смену кодировок, изменяемый формат представления данных, смещения в нескольких системах счисления, встроенный калькулятор. И все это при 400 Кб веса! На диске, прилагаемом к журналу, ты найдешь версию 1.2.0.6, и, как утверждает автор, это финал ее эволюции как фриварного продукта. На рис. 21 представлен процесс «кастрации» (слабонервным просьба не смотреть :-)). Вот и все, файл для заливки в ПЗУ готов, осталось сохранить его с расширением *.DAT (для удобства).

Процесс заливки в ПЗУ тоже несложен: берешь прогу № 1, вводишь имя *.DAT файла, получаешь *.ASC файл. Затем переключаешь свой бипер в режим программирования, кормишь прогу № 2 *.ASC файлом. После прекращения процесса программирования программа пискляво пропищит :). Далее нажимаешь переключатель SA1 и повторяешь процесс, но с другим фрагментом. Программа заливки специально разбита на две части – для удобства понимания исходного кода. Кроме того, если ты вдруг все-таки надумаешь собирать какой-либо программатор, то столкнешься с проблемой выбора формата корма для сопровождающего его софта. И тогда тебе наверняка придется использовать тот или иной кусок. Но в принципе, куски несложно сшить – достаточно перекодировать массивы на лету, без записи *.ASC файла. Но эту задачу я оставляю тебе для тренинга. На этом все, дерзай!

Назад на стр. 045-098-3  Содержание