| Утилита bkread |
|
Утилита bkread - основная программа пакета осуществляет чтение с магнитной ленты файлов, записанных по алгоритмам, принятым в БК. Хотя программа функционирует согласно оригинального алгоритма БК, написана она была без знания оного, на основе анализа осциллограмм. Затем, некоторую ясность внесли чтения смутных мануалов к компьютеру, что дало возможность сделать программу полностью рабочей, а появление материалов Эльтермана - закрепить полученное, исправить мелкие недочеты и довести программу до "публичного" вида. Не могу не отметить, что при помощи bkread удалось перенести на современные носители файлы со всех доступных автору лент. bkread читает информацию с магнитофона через аудиовход. Вызов утилиты производится следующей командой: $ bkread [ключи] [имя] после этого программа приступает к чтению информации с ленты. Если параметр имя отсутствует, то все встречающиеся при воспроизведении файлы сохраняются, в текущей директории, если задано определенное имя, то сохраняются только файлы с совпадающим именем. В случае, если в директории уже имеются файлы с таким именем то к имени прибавляется префикс ".nnn", где nnn - возрастающее число, гарантирующее от записи файла поверх существующих. В командной строке можно задавать следующие ключи: Ключи управления аудиовходом: -r число - число задает коэффициент усиления картой входного сигнала. Значение должно находиться в пределах от 0 до 100 (минимальное и максимальное усиление). Если ключ -r не задан, то коэффициент усиления зависит от особенностей ОС. В случае Solaris коэффициент усиления остается равным последнему, установленному одной из утилит (в т.ч. и bkread). -m число - коэффициент усиления цепи мониторинга входного сигнала. Значение должно находиться в пределах от 0 до 100 (минимальное и максимальное усиление). Если ключ -r не задан, то коэффициент усиления зависит от особенностей ОС. В случае Solaris коэффициент усиления остается равным последнему, установленному одной из утилит (в т.ч. и bkread). -R число - задать альтернативный коэффициент дискретизации аудиоданных, число соответствует количеству снимаемых с карты за секунду значений. Задается либо в виде точного значения (-R 96000), либо в тысячах (-R 44), что оставлено для совместимости с версией 1. Значение по умолчанию - 44100 (т.е. -R 44100, CD quality). -A спец. файл - задать альтернативное аудиоустройство, полезно если у вас установлено более одной аудиокарты или используются нестандартные имена файлов устройств. -M спец. файл - (только под Linux!) задать альтернативное микшерное устройство, полезно если у вас установлено более одной аудиокарты или используются нестандартные имена файлов устройств. Ключи управления анализатором: -a число - задает максимальное количество адаптаций скорости при чтении файла. В bkread используется адаптивный алгоритм анализа сигнала, позволяющий по ходу чтения динамически изменять скоростные коэффициенты, что позволяет компенсировать неравномерность скорости воспроизведения (записи) на магнитофоне. По умолчанию количество таких адаптаций неограничено. -e число - задает уровень нуля. По умолчанию нулевому уровню соответствует среднее значение между максимальным и минимальным значениями амплитуды, выдаваемыми аудиокартой. В некоторых случаях, например при искажениях сигнала или при помехах бывает полезно сместить уровень со среднего значения в одну из сторон. Значение должно лежать в пределах от 0 до 255 так-как bkread использует 8-битный режим ввода. -s число - задает количество единичных импульсов, используемых при определении синхропоследовательности. По умолчанию используется число 31408 (несколько меньше принятого в драйвере МЛ БК - 42008). Впоследствии число разделяется на количество импульсов, необходимых для получения среднего значения длительности единичного импульса по формуле (n/218) и количество импульсов для детектирования настроечной последовательности по формуле (n-n/218) соответвенно. -p 0|1 - задает какую часть полупериода на входе считать единичным импульсом - отрицательную (0) или положительную (1). По умолчанию используется положительная часть. Ключ -v включает режим вывода расширенной диагностики (автор всегда задает этот ключ, поскольку наблюдать за происходящим довольно интересно). Пример сессии чтения приведен ниже. Читается содержимое монитора БК. $ ./bkread -v -r 80 -m 20 -e 132 MONITOR Думаю, вывод утилиты с ключем -v достаточно мнемоничен, чтобы его не комментировать. Работа прерывается по сигналу SIGINT (в терминах Unix), в данном случае этот сигнал вызывался нажатием комбинации Ctrl-C (см. termio(7I)). Программа сохраняет файлы под именами, заданными в заголовках на МЛ. Оконечные пробелы отбрасываются. Если файл с таким именем уже имеется на диске, bkread записывает его под тем-же именем, добавляя ".n" в конец (n последовательно увеличивается до тех пор, пока файла с таким именем не обнаружится на диске). К bkread идет еще небольшой скрипт bk2bin, призванный конвертировать считанные файлы в формат, понимаемый некоторыми эмуляторами БК. Основная цель создания данного скрипта, была несколько иная - показать насколько просто это сделать. Автор приглашает разработчиков эмуляторов и ПО для БК к сотрудничеству для написания других конверторов. |