Кассетный интерфейс (Принцип работы, реализация кассетного интерфейса на современном пк)

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
Profesor_lampochkin
Junior Member
Сообщения: 111
Зарегистрирован: 07.01.2012,13:08

Кассетный интерфейс

Сообщение Profesor_lampochkin » 10.01.2012,22:57

Принцип работы, реализация кассетного интерфейса на современном пк

Всем привет :)
Многие из нас помнят те времена, когда пк спектрум или "ПОИСК" были вершиной развития компьютерной техники :) В те добрые времена программы хранились на магнитофонных кассетах, так как дисководы а тем более жесткие диски были далеко не у каждого :)
Захотелось реализовать кассетный интерфейс на современном пк.
Думал найти готовую программу позволяющую работать с кассетой- но таких програм оказывается нет. Разве что эмуляторы спектрума, позволяющие конвертировать спек кассеты в tap или tzx файлы.
Некоторая информация есть сдесь
кассетный порт IBM
IBM Cassette tape
http://www.i-assembler.ru/182/9-10.html
http://www.cyberguru.ru/programming/ass ... age24.html

Также удалось найти исходники биоса "ПОИСК-1" в которых есть и исходники кассетных функций, даже с понятными русскими коментариями :) (Кому нужно, могу выслать).
Хотел переделать исходники, чтобы реализовать кассетный интерфейс на ком или лпт, но...
Есть некоторые аппаратные отличия которые мешают так просто это сделать...

Кто что может посоветовать ? Ни кто не писал драйверов кассетного порта ?
Может все таки есть готовые програмки ?

Кассетный интерфейс более раритетный чем самый старый флопик :)
Так что давайте попробуем его реализовать :)

DrPass
Advanced Member
Сообщения: 3696
Зарегистрирован: 17.04.2005,13:44
Откуда: Донецк

Вклад в сообщество

Сообщение DrPass » 10.01.2012,23:51

А какие тебя аппаратные отличия смущают? В Поиске-1 магнитофонный сигнал непосредственно снимался с порта и через инвертор К561ЛН2 шел на магнитофон. В обратную сторону - так же. Прикрути это же к параллельному порту, и будет тебе счастье, по крайней мере, в аппаратной части.
Let the Force be with you

Profesor_lampochkin
Junior Member
Сообщения: 111
Зарегистрирован: 07.01.2012,13:08

Сообщение Profesor_lampochkin » 11.01.2012,00:20

Смущает то, что в отличии от ПОИСК выход таймера не подключен к пятому биту порта 62h. Это использовалось при записи на кассету для некой синхронизации. Таймер осчитывал длительность импульса а проц проверял состояние этого процесса именно через 62 порт.
И выход на магнитофон был непосредственно от таймера. А как его вывести скажем на лпт ?
Я пробывал использовать чтение счетчика таймера 0 на лету для этих целей.
Тоесть проц считал значение счетчика 0, сохранил. После этого цикл считывания счетчика и сравнение на допустимую разницу с сохраненным значением.
Но покамисть эта версия нормально не заработала.

DrPass
Advanced Member
Сообщения: 3696
Зарегистрирован: 17.04.2005,13:44
Откуда: Донецк

Вклад в сообщество

Сообщение DrPass » 11.01.2012,00:47

Ну визуализируй в звуковом редакторе картинку с wav-кой Поисковой программы (они были на том же сайте, где ты исходники bios скачал :-), там наверняка видны синхроимпульсы с таймера. Подозреваю, что схема записи такова: таймер выдает импульс на ленту и в порт. Процессор вычитывает состояние порта, видит логическую 1, и выдает на пятую ногу последовательность бит заданной длины (256 бит, если меня память не подводит). И далее ждет следующего синхроимпульса. Если я неправ, исходники биоса меня поправят :)
Let the Force be with you

Profesor_lampochkin
Junior Member
Сообщения: 111
Зарегистрирован: 07.01.2012,13:08

Сообщение Profesor_lampochkin » 11.01.2012,01:20

Да, информация записывалась 256 байтными блоками :)
Информация на касете кодируется просто длинной импульса - как азбука Морзе :) Длительность периода 1 -1000 мкс (2 полупериода по 500 мкс), длительность периода 0 -500 мкс (2 полупериода по 250 мкс). Кассетный порт определяет только полярность сигнала, форма сигнала значения не имеет.

При записи на кассету на пк ПОИСК получалось, что пока таймер отсчитывает и выдает на магнитофон полупериод сигнала, а процессор в это время получает новый бит данных и ждет момента (анализируя 5 бит порта 62 )быстренько перезагрузить таймер в соответствии с новым битом данных.

А если всем занят только процессор, все его "брожения" по програмному коду портят временную х-ку сигнала...
По крайней мере мой боевой 286 почемуто нормально не справляется...

Попробую на современном компе. Еще есть вариант припаять провода к динамику...
В общем процес разработки еще идет :)

DrPass
Advanced Member
Сообщения: 3696
Зарегистрирован: 17.04.2005,13:44
Откуда: Донецк

Вклад в сообщество

Сообщение DrPass » 11.01.2012,11:32

Profesor_lampochkin писал(а):Попробую на современном компе. Еще есть вариант припаять провода к динамику...
ИМХО, вариант формирования вавки и вывод ее через звуковую карту намного проще и с аппаратной, и с программной точки зрения :)
Let the Force be with you

Гость

Сообщение Гость » 11.01.2012,17:53

Оффтоп: Интересно, насколько хорошо "программная" кассета будет дублироваться на повышенной скорости, т.е. High Speed Dubbing ?
И заодно, можно-ли восстановить прогу из такого дубля, чтоб вновь записать на ленту, уже в нормальном режиме?
(Достались несколько кассет, либо уже повреждённых, либо "быстродублированных", не различить толком, и содержимое неизвестно, мож вовсе не программа а какой-нть факс...).

Profesor_lampochkin
Junior Member
Сообщения: 111
Зарегистрирован: 07.01.2012,13:08

Сообщение Profesor_lampochkin » 11.01.2012,18:38

Да, через звуковуху наверное проще...
Но я попробую добить намеченный вариант, а потом займусь и звуковухой :)
Сейчас я пытайсь написать резидентную дос програмку, которая перехватит int 15h и будет обслуживать не сушествующие на современных пк кассетные функции.
Пользоваться этими функциями можно даже в старых версиях бейсика. Но пока получилось запустить функции 0 и 1 - вкл/выкл мотора. Команда бейсика motor по настоящиму стала работать !! :)
Если получиться, можно будет попробывать даже вписать это все в загрузочный сектор дискеты.
Грузишся с дискеты - на экране старая добрая надпись
F1-работа с кассетой
F2-работа с ПЗУ :)

А для вин действительно надо на звуковухе сделать :)

Profesor_lampochkin
Junior Member
Сообщения: 111
Зарегистрирован: 07.01.2012,13:08

Сообщение Profesor_lampochkin » 11.01.2012,18:50

Fe-Restorator, а предположительно это кассеты спектрум ?
Спектрумовсие кассеты, помоему, были гораздо более распространены чем IBM.
На сколько я знаю, на некоторых спеках была возможность писать/читать с удвоеной скоростью. Может Вам такие достались ?
А на чем Вы их читали ?

Кстати появилась мысль - нельзя ли для работы с кассетами использовать модем ?
Звуки по крайней мере очень похожи :)
Хотя наверное пока разберешься с модемовским протоколом, можно 20 раз на лпт сделать :)

Гость

Сообщение Гость » 11.01.2012,20:06

Profesor_lampochkin писал(а): Fe-Restorator, а предположительно это кассеты спектрум ?
Об сём не знает даже их продавец: выдал их бонусом к нетбуку, мол, завалялись. Так-вот!
Не читал толком, просто "слушал" звуковушкой. Для сравнения послушал "спековскую" кассету - звучит явно медленнее, потому и спрашивал. Пока-что отложу сии ленты, гонять их лишний раз без пользы не хочу.
Profesor_lampochkin писал(а):Кстати появилась мысль - нельзя ли для работы с кассетами использовать модем ?
Мысль неплохая, но как ты обучишь мафон handshake-процедуре? :) Хотя, если вывести курьер в режим выделенной линии... может и получится. Команду на включение мотора взять, подпаяв релюшку к одному из светодиодов, например, управлять им программно.
Не забудь только скопипастить из окна терминала в блокнот и поменять расширение на ехе :biggrin:

Alex-M
Junior Member
Сообщения: 137
Зарегистрирован: 06.05.2008,10:20

Сообщение Alex-M » 11.01.2012,20:48

Может эта информация пригодится :
http://www.danbigras.ru/RK86/RK_PC/RK2PC.html
Если ума не хватит, то интуиция подскажет !

Ответить