С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Воспроизводить RKR - без проблем. Записывать - может в формате BAW. Запись в RKR пока не сделал, т.к. не смог пока понять, как распознавать сигнал, выдаваемый 86РК.
Сделал сохранение с компьютера в BAW файл, отконвертил его в WAV, открыл в Audacity
В начале идут стартовые импульсы, потом должен идти байт 0xE6, следующего вида
И я пока не могу разгадать, как этот байт найти в записанном сигнале?
Ясно.
Я тут не помощник, может это как то поможет, хотя, наверное это Вы все читали PK + PC
Там пишут, что в “Радио-86РК” каждый бит данных в процессе записи заменяется двумя битами, причем логическая 1 заменяется на 01, а логический 0 — на 10. Для записи одного байта требуется передать через интерфейс 16 бит.
Вот как это делает ЮТ-88, у них с РК одинаковый формат, только период у РК 0,9мс, а у ЮТ - 0,666мс
Код:TYPE_READ_ADDR1: push b push d push h push psw rst 6 ;ввод смещения в DE (адрес сохранения программы = ADDR+DE) mvi a,0FFH call TYPE_RD_BIT ;читаем синхро и старший байт адреса загрузки ADDR mov h,a call TYPE_RD_BYTE ;читаем младший байт адреса загрузки ADDR mov l,a dad d ;адрес сохранения программы = ADDR+DE mov b,h mov c,l push b call TYPE_RD_BYTE ;старший байт адреса конца программы mov h,a call TYPE_RD_BYTE ;младший байт адреса конца программы mov l,a dad d xchg L01DF: call TYPE_RD_BYTE stax b call CMP_BC_DE ;сравниваем текущий адрес с рассчитанным адресом конца программы inx b jnz L01DF pop b jmp CRC_BC_DE ; TYPE_RD_BYTE: mvi a,008H call TYPE_RD_BIT ret ;Чтение битовой последовательности в А с магнитофона ;вх. А=0xFF - поиск байта синхронизации и ;чтение старшего байта адреса загрузки, А=0x08 - чтение байта TYPE_RD_BIT: push b push d mvi c,000H mov d,a in 0A1H mov e,a L0130: mov a,c ani 07FH rlc mov c,a L0135: in 0A1H cmp e jz L0135 ani 001H ora c mov c,a call WAIT_TYPE_RD_BIT in 0A1H mov e,a mov a,d ora a jp L0163 mov a,c cpi 0E6H ;ловим синхробайт 0xE6 jnz L0157 xra a sta RAM_0xC3FC jmp L0161 ; L0157: cpi 019H jnz L0130 mvi a,0FFH sta RAM_0xC3FC L0161: mvi d,009H L0163: dcr d jnz L0130 lda RAM_0xC3FC xra c pop d pop b ret WAIT_TYPE_RD_BIT: mvi b,02DH ;константа, зависит от скорости процессора L0170: dcr b jnz L0170 ret
Как кодируются и декодируются байты - понятно. К тому же, сейчас это уже реализовано - RKR-файлы магнитофон успешно воспроизводит.
Но как его расшифровывать сигнал на конкретном приведённом примере - не понятно. Первым байтом должен идти 0xE6, именно он изображен на картинке внизу. И блок данных на диаграмме выше должен начинаться именно с этого байта - два коротких положительных импульса, длинный положительный, короткий положительный, длинный отрицательный и т.д.
Но я не вижу этой последовательности в начале реального записанного сигнала. Я там вообще длинных горизонтальных "полок" (между битами D3 и D2) внизу диаграммы не вижу, хотя, они должны быть в сигнале..
Для начала попробую ещё раз загрузить полученный WAV-файл, может, данные побились при конвертировании..
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)