Ну, и как логичное продолжение, программа WAV2CAS. С ее помощью я оцифровал из доступных мне магнитофонных записей ISPP, BASIC и ISKATEL без ошибок. Конечно, я так же проверял декодирование файлов созданных утилитой CAS2WAV. В этом случае все тоже проходит без ошибок.
Еще утилита имеет режим совместимости с компьютером MC-1502 (ключ /mc), поэтому может обрабатывать магнитофонные записи и от него. По сути разница не большая - Поиск придерживается оригинального формата заголовка от PCjr:
PHP код:
1 байт magic = 0xA5
8 байт = имя файла
1 байт = тип
2 байта = размер
2 байта = сегмент
2 байта = смещение
и хранит размер файла в байтах и для бинарных программ и для бейсиковых файлов, в то время как MC1502 для бинарных файлов (типы 02h и 08h) размер файла хранит в блоках по 256 байт.
Так как все записи разные по уровню звука, качеству и даже длительности единиц и нулей (у MC-1502 она несколько выше за счет разогнанного таймера) программа пытается перебором подобрать оптимальные значения порога перепада импульса и полярности.
Исхода может быть три:
1) декодирование происходит без ошибок CRC.
2) декодирование происходит с ошибками CRC, в этом случае выбираются такие значения, при которых количество ошибок CRC минимально.
3) программа не обнаруживает пилот-тона или заголовка или в заголовке есть ошибка CRC. В этом случае декодирования не производится.
Еще в программе есть "интеллектуальный" (c) алгоритм, который может помочь считать записи сделанные на "плавающем" магнитофоне. Суть вот в чем: если у 256 байтного блока оказывается неверная CRC, то программа начинает как-бы двигать его назад-вперед по аудио-потоку до разумных границ. То есть если мы сейчас читаем данные с позиции 1000 и у них неверная CRC, то давайте попробуем прочитать с позиции 999. А с позиции 1001? А с позиции 998? А с позиции 1002? И тд. Включается данный режим ключем /fixcrc . По умолчанию отключен, стоит попробовать включить когда данные декодируются с ошибками CRC.
Я думаю (на реале пока нет возможности протестить), что с помощью двух этих утилит возможно совершенно безболезненно запустить кассетные программы и игры от MC-1502 на Поиске. Сначала декодируя файлы из WAV в CAS, а затем с помощью CAS2WAV преобразую в Поисковый формат.