Кассетный интерфейс (Принцип работы, реализация кассетного интерфейса на современном пк)
-
- Junior Member
- Сообщения: 111
- Зарегистрирован: 07.01.2012,13:08
Кассетный интерфейс
Принцип работы, реализация кассетного интерфейса на современном пк
Всем привет
Многие из нас помнят те времена, когда пк спектрум или "ПОИСК" были вершиной развития компьютерной техники В те добрые времена программы хранились на магнитофонных кассетах, так как дисководы а тем более жесткие диски были далеко не у каждого
Захотелось реализовать кассетный интерфейс на современном пк.
Думал найти готовую программу позволяющую работать с кассетой- но таких програм оказывается нет. Разве что эмуляторы спектрума, позволяющие конвертировать спек кассеты в tap или tzx файлы.
Некоторая информация есть сдесь
кассетный порт IBM
IBM Cassette tape
http://www.i-assembler.ru/182/9-10.html
http://www.cyberguru.ru/programming/ass ... age24.html
Также удалось найти исходники биоса "ПОИСК-1" в которых есть и исходники кассетных функций, даже с понятными русскими коментариями (Кому нужно, могу выслать).
Хотел переделать исходники, чтобы реализовать кассетный интерфейс на ком или лпт, но...
Есть некоторые аппаратные отличия которые мешают так просто это сделать...
Кто что может посоветовать ? Ни кто не писал драйверов кассетного порта ?
Может все таки есть готовые програмки ?
Кассетный интерфейс более раритетный чем самый старый флопик
Так что давайте попробуем его реализовать
Всем привет
Многие из нас помнят те времена, когда пк спектрум или "ПОИСК" были вершиной развития компьютерной техники В те добрые времена программы хранились на магнитофонных кассетах, так как дисководы а тем более жесткие диски были далеко не у каждого
Захотелось реализовать кассетный интерфейс на современном пк.
Думал найти готовую программу позволяющую работать с кассетой- но таких програм оказывается нет. Разве что эмуляторы спектрума, позволяющие конвертировать спек кассеты в tap или tzx файлы.
Некоторая информация есть сдесь
кассетный порт IBM
IBM Cassette tape
http://www.i-assembler.ru/182/9-10.html
http://www.cyberguru.ru/programming/ass ... age24.html
Также удалось найти исходники биоса "ПОИСК-1" в которых есть и исходники кассетных функций, даже с понятными русскими коментариями (Кому нужно, могу выслать).
Хотел переделать исходники, чтобы реализовать кассетный интерфейс на ком или лпт, но...
Есть некоторые аппаратные отличия которые мешают так просто это сделать...
Кто что может посоветовать ? Ни кто не писал драйверов кассетного порта ?
Может все таки есть готовые програмки ?
Кассетный интерфейс более раритетный чем самый старый флопик
Так что давайте попробуем его реализовать
-
- Advanced Member
- Сообщения: 3696
- Зарегистрирован: 17.04.2005,13:44
- Откуда: Донецк
-
Вклад в сообщество
А какие тебя аппаратные отличия смущают? В Поиске-1 магнитофонный сигнал непосредственно снимался с порта и через инвертор К561ЛН2 шел на магнитофон. В обратную сторону - так же. Прикрути это же к параллельному порту, и будет тебе счастье, по крайней мере, в аппаратной части.
Let the Force be with you
-
- Junior Member
- Сообщения: 111
- Зарегистрирован: 07.01.2012,13:08
Смущает то, что в отличии от ПОИСК выход таймера не подключен к пятому биту порта 62h. Это использовалось при записи на кассету для некой синхронизации. Таймер осчитывал длительность импульса а проц проверял состояние этого процесса именно через 62 порт.
И выход на магнитофон был непосредственно от таймера. А как его вывести скажем на лпт ?
Я пробывал использовать чтение счетчика таймера 0 на лету для этих целей.
Тоесть проц считал значение счетчика 0, сохранил. После этого цикл считывания счетчика и сравнение на допустимую разницу с сохраненным значением.
Но покамисть эта версия нормально не заработала.
И выход на магнитофон был непосредственно от таймера. А как его вывести скажем на лпт ?
Я пробывал использовать чтение счетчика таймера 0 на лету для этих целей.
Тоесть проц считал значение счетчика 0, сохранил. После этого цикл считывания счетчика и сравнение на допустимую разницу с сохраненным значением.
Но покамисть эта версия нормально не заработала.
-
- Advanced Member
- Сообщения: 3696
- Зарегистрирован: 17.04.2005,13:44
- Откуда: Донецк
-
Вклад в сообщество
Ну визуализируй в звуковом редакторе картинку с wav-кой Поисковой программы (они были на том же сайте, где ты исходники bios скачал :-), там наверняка видны синхроимпульсы с таймера. Подозреваю, что схема записи такова: таймер выдает импульс на ленту и в порт. Процессор вычитывает состояние порта, видит логическую 1, и выдает на пятую ногу последовательность бит заданной длины (256 бит, если меня память не подводит). И далее ждет следующего синхроимпульса. Если я неправ, исходники биоса меня поправят
Let the Force be with you
-
- Junior Member
- Сообщения: 111
- Зарегистрирован: 07.01.2012,13:08
Да, информация записывалась 256 байтными блоками
Информация на касете кодируется просто длинной импульса - как азбука Морзе Длительность периода 1 -1000 мкс (2 полупериода по 500 мкс), длительность периода 0 -500 мкс (2 полупериода по 250 мкс). Кассетный порт определяет только полярность сигнала, форма сигнала значения не имеет.
При записи на кассету на пк ПОИСК получалось, что пока таймер отсчитывает и выдает на магнитофон полупериод сигнала, а процессор в это время получает новый бит данных и ждет момента (анализируя 5 бит порта 62 )быстренько перезагрузить таймер в соответствии с новым битом данных.
А если всем занят только процессор, все его "брожения" по програмному коду портят временную х-ку сигнала...
По крайней мере мой боевой 286 почемуто нормально не справляется...
Попробую на современном компе. Еще есть вариант припаять провода к динамику...
В общем процес разработки еще идет
Информация на касете кодируется просто длинной импульса - как азбука Морзе Длительность периода 1 -1000 мкс (2 полупериода по 500 мкс), длительность периода 0 -500 мкс (2 полупериода по 250 мкс). Кассетный порт определяет только полярность сигнала, форма сигнала значения не имеет.
При записи на кассету на пк ПОИСК получалось, что пока таймер отсчитывает и выдает на магнитофон полупериод сигнала, а процессор в это время получает новый бит данных и ждет момента (анализируя 5 бит порта 62 )быстренько перезагрузить таймер в соответствии с новым битом данных.
А если всем занят только процессор, все его "брожения" по програмному коду портят временную х-ку сигнала...
По крайней мере мой боевой 286 почемуто нормально не справляется...
Попробую на современном компе. Еще есть вариант припаять провода к динамику...
В общем процес разработки еще идет
Оффтоп: Интересно, насколько хорошо "программная" кассета будет дублироваться на повышенной скорости, т.е. High Speed Dubbing ?
И заодно, можно-ли восстановить прогу из такого дубля, чтоб вновь записать на ленту, уже в нормальном режиме?
(Достались несколько кассет, либо уже повреждённых, либо "быстродублированных", не различить толком, и содержимое неизвестно, мож вовсе не программа а какой-нть факс...).
И заодно, можно-ли восстановить прогу из такого дубля, чтоб вновь записать на ленту, уже в нормальном режиме?
(Достались несколько кассет, либо уже повреждённых, либо "быстродублированных", не различить толком, и содержимое неизвестно, мож вовсе не программа а какой-нть факс...).
-
- Junior Member
- Сообщения: 111
- Зарегистрирован: 07.01.2012,13:08
Да, через звуковуху наверное проще...
Но я попробую добить намеченный вариант, а потом займусь и звуковухой
Сейчас я пытайсь написать резидентную дос програмку, которая перехватит int 15h и будет обслуживать не сушествующие на современных пк кассетные функции.
Пользоваться этими функциями можно даже в старых версиях бейсика. Но пока получилось запустить функции 0 и 1 - вкл/выкл мотора. Команда бейсика motor по настоящиму стала работать !!
Если получиться, можно будет попробывать даже вписать это все в загрузочный сектор дискеты.
Грузишся с дискеты - на экране старая добрая надпись
F1-работа с кассетой
F2-работа с ПЗУ
А для вин действительно надо на звуковухе сделать
Но я попробую добить намеченный вариант, а потом займусь и звуковухой
Сейчас я пытайсь написать резидентную дос програмку, которая перехватит int 15h и будет обслуживать не сушествующие на современных пк кассетные функции.
Пользоваться этими функциями можно даже в старых версиях бейсика. Но пока получилось запустить функции 0 и 1 - вкл/выкл мотора. Команда бейсика motor по настоящиму стала работать !!
Если получиться, можно будет попробывать даже вписать это все в загрузочный сектор дискеты.
Грузишся с дискеты - на экране старая добрая надпись
F1-работа с кассетой
F2-работа с ПЗУ
А для вин действительно надо на звуковухе сделать
-
- Junior Member
- Сообщения: 111
- Зарегистрирован: 07.01.2012,13:08
Fe-Restorator, а предположительно это кассеты спектрум ?
Спектрумовсие кассеты, помоему, были гораздо более распространены чем IBM.
На сколько я знаю, на некоторых спеках была возможность писать/читать с удвоеной скоростью. Может Вам такие достались ?
А на чем Вы их читали ?
Кстати появилась мысль - нельзя ли для работы с кассетами использовать модем ?
Звуки по крайней мере очень похожи
Хотя наверное пока разберешься с модемовским протоколом, можно 20 раз на лпт сделать
Спектрумовсие кассеты, помоему, были гораздо более распространены чем IBM.
На сколько я знаю, на некоторых спеках была возможность писать/читать с удвоеной скоростью. Может Вам такие достались ?
А на чем Вы их читали ?
Кстати появилась мысль - нельзя ли для работы с кассетами использовать модем ?
Звуки по крайней мере очень похожи
Хотя наверное пока разберешься с модемовским протоколом, можно 20 раз на лпт сделать
Об сём не знает даже их продавец: выдал их бонусом к нетбуку, мол, завалялись. Так-вот!Profesor_lampochkin писал(а): Fe-Restorator, а предположительно это кассеты спектрум ?
Не читал толком, просто "слушал" звуковушкой. Для сравнения послушал "спековскую" кассету - звучит явно медленнее, потому и спрашивал. Пока-что отложу сии ленты, гонять их лишний раз без пользы не хочу.
Мысль неплохая, но как ты обучишь мафон handshake-процедуре? Хотя, если вывести курьер в режим выделенной линии... может и получится. Команду на включение мотора взять, подпаяв релюшку к одному из светодиодов, например, управлять им программно.Profesor_lampochkin писал(а):Кстати появилась мысль - нельзя ли для работы с кассетами использовать модем ?
Не забудь только скопипастить из окна терминала в блокнот и поменять расширение на ехе
Может эта информация пригодится :
http://www.danbigras.ru/RK86/RK_PC/RK2PC.html
http://www.danbigras.ru/RK86/RK_PC/RK2PC.html
Если ума не хватит, то интуиция подскажет !