Вход

Просмотр полной версии : Есть 3 кассеты для Специалиста...



Bolt
18.04.2013, 19:50
Есть 3 кассеты для Специалиста, одна с распечаткой с названиями. Лежат уже лет 20, даже не знаю в каком они состоянии - проверить не на чем. Пытаться оцифровывать? ;) или это всё уже давно где-то выложено?

HardWareMan
18.04.2013, 20:45
Оцифровывать без вариантов! А там разберемся.

Bolt
19.04.2013, 02:05
Понял, буду искать магнитофон. Попробовал включить "Весна-305", с которого когда-то и загружались эти игры - работает, но для оцифровки не подойдёт...

Bolt
22.04.2013, 09:31
Пока нет магнитофона вспоминал как работает Специалист и 580ВМ80 :)
Написано на Паскале, скомпилировано FPC, запущено под Ubuntu.

Bolt
28.04.2013, 17:20
Нашёл магнитофон, надо его привести в порядок и погонять на аудиокассетах, а потом возьмусь за оцифровку.

Bolt
29.04.2013, 11:42
У меня тут мысль возникла.
Кто-нибудь пробовал объединять битые файлы из разных источников? Если есть две кассеты с битыми одинаковыми файлами, то вряд ли побьются одни и те же байты. Даже если затёрт кусок файла - его можно взять с другой кассеты.

HardWareMan
29.04.2013, 11:43
Годный вариант. При условии одинаковости версий файлов.

Bolt
30.04.2013, 09:39
http://yadi.sk/d/jHcMfhTb4Sny8
Спрошу очередную глупость: что с этим теперь делать? :) И можно ли что-то сделать? Качество по-моему ужасное.

Titus
30.04.2013, 14:47
http://yadi.sk/d/jHcMfhTb4Sny8
Спрошу очередную глупость: что с этим теперь делать? :) И можно ли что-то сделать? Качество по-моему ужасное.

Информация, в общем-то, вся присусттвует. Хотя искажения капитальные.
Это такой плохой магнитофон?

Bolt
30.04.2013, 15:20
Это такие кассеты. Третья BASF, там вроде получше, а эти... Stylandia порвалась точно посередине, похоже что на заводской склейке, а у Мелодии (это с неё запись) плёнка от ракорда с обеих сторон отклеилась.

А ещё с них магнитный слой осыпается. Хорошо хоть не кусками, как когда-то у меня с хромовых облазил.

Bolt
30.04.2013, 17:44
Информация, в общем-то, вся присусттвует.
То есть оно читается? Можете выложить .RKS?

Titus
30.04.2013, 17:46
То есть оно читается? Можете выложить .RKS?
Я не пробовал, говорю по форме сигнала, что информация в принципе есть, но сигнал искажен.

Считайте все кассеты, и выложите тут. Кто сможет распознать, тот сможет.

Bolt
30.04.2013, 18:01
Я свою распознавалку пишу, хотел посмотреть что там должно быть и сравнить, чтобы понять на чём сбивается.

b2m
30.04.2013, 21:27
что с этим теперь делать?
Неплохую распознавалку писал shoorick: wav2spec.0.2.3.1.zip (http://shoorick.ho.ua/spec/wav2spec.0.2.3.1.zip)

DDp
30.04.2013, 23:50
Качество по-моему ужасное.

Информация, в общем-то, вся присусттвует. Хотя искажения капитальные.
:v2_dizzy_yes: подтверждаю, информация присутствует и качество ужасное.

Bolt
01.05.2013, 01:26
Качество ещё не самое ужасное, вторая сторона этой кассеты получилась ещё хуже, а третий раз в магнитофон я её вставлю только в крайнем случае.

У меня уже тоже получилось преобразовать своей программой, всё совпало :) Завтра постараюсь добавить обработку стереозаписи, ну и может будут какие-то результаты. Могу конечно просто выложить 2 Гб wav'ов, но интересно же самому сделать :)

А есть что-нибудь нераспознающееся в плохом качестве? Можете выложить? Хочу алгоритм обработки проверить.

Bolt
01.05.2013, 18:27
Ух ты, работает! :) Запускать пробовал только "мышей", и с контрольной суммой пока не всё понятно. После праздников продолжу.


STARTREK 0000 6B7F 85E9 Ok
TITAN___ 0000 09BA AC0A (error, AD0A)
menedzher 0000 627F A176 (error, 784E)
kladoiskatelx 02F0 13E4 2762 Ok
PAKMAN_2 1180 2900 DB89 Ok
BOULDER_2 1E00 30FF 85B7 Ok
BUDI_NEW 0000 752F FC46 Ok
XONIX_PLUS 5000 63FF 9632 Ok
STAR_WAR_V2 0000 23FF 8963 Ok
letuchie_myshi 0100 1D9F 039E Ok
podw.lodka__ 0100 0F5F DBE4 (error, DCE4)
MAestro 0000 08C1 5020 Ok
HANOI 0000 0DFF 0385 Ok
MUSIC 0000 0B0F F50A Ok
LODE_RUN 0000 75DF 49ED Ok
BEAT-2 0000 10FF 5EF8 Ok
rezhiser-3 8000 85A1 F880 (error, F980)
BASIC_MARKER 0000 23D5 BC01 (error, BD01)
DIS_MK89.6 0000 11FF 3631 (error, 3731)
MICRON-DIS 0000 28FF BA4F Ok
DIS_ED_F1_ASSM 0000 18AD 32F7 Ok
DEBUG 6400 73FF B27C Ok
RENUM 6000 64AF CDB6 Ok
BAS.MICRON-87 0000 4330 E62C Ok
otladchik-m2 6100 76FF 51ED Ok
BASIC_MSX_V3.0 0000 1FFF 99ED Ok

HardWareMan
01.05.2013, 20:08
Те, что ERROR не работают что-ли?

Bolt
01.05.2013, 20:45
Это полностью вывод моего кассетного декодера, "error" это ошибка контрольной суммы. Запускать не пробовал, но внутри вроде тексты целые и контрольная сумма почти совпала, старший байт на единичку отличается. В декодере подсчёт контрольной суммы писал по памяти, что-то видимо не учёл, надо будет потом почитать. Совсем не сошлась сумма только у одного файла, "menedzher".

А, всё, понял ошибку, потом исправлю. Контрольная сумма у всех файлов верная кроме одного.

HardWareMan
01.05.2013, 23:09
Там в алгоритме контрольной суммы ошибка, из-за которой 1 переход никогда не выполнится. Таким образом, последний байт никогда не суммируется со старшим байтом контрольной суммы. Что у тебя и наблюдаем.

Стало быть, нужно перечитать только менеджер.

fifan
02.05.2013, 11:48
Если автор не против могу разместить архив на своём сайте. Как подписать автора?

Bolt
03.05.2013, 01:25
Не против, но лучше потом, всё сразу, это только одна сторона одной кассеты.

Что значит "как подписать"? "Bolt, Ростов-на-Дону" :)

HardWareMan
03.05.2013, 06:14
Дело, конечно, барское, но на том сайте даны реальные ФИО. Некоторые из них восстановлены буквально по крупицам с разных мест (я говорю за оригинальный софт и оригинальные аппаратные разработки). Страна должна знать своих героев.

Bolt
03.05.2013, 09:35
Ну, это пока не оригинальные разработки, это попытка сохранить то, что есть.
Реальные ФИО указаны в профиле.

HardWareMan
06.05.2013, 07:16
Кстати, в рамках считывания своих кассет от Спеца, прикупил себе эту балалайку (http://www.aliexpress.com/item/Free-Shipping-USB-Cassette-Capture-Recorder-Radio-Player-Tape-to-PC-Super-Portable-USB-Cassette-to/740322573.html).
http://savepic.net/3646956.jpg
Буду таскать на работу, это здорово ускорит процесс.

Bolt
06.05.2013, 12:37
До чего дошёл прогресс :) Но всё равно, сохранять кассеты в MP3 по-моему нехорошо. Что компьютерные, что музыкальные.

Вопрос по RKS. Можно в него записать "как есть", то есть


... 00 00 00 00 E6 D9 D9 D9 41 42 43 00 00 00 ... E6 00 00 FF 00 00 01 02 03 ...

или надо всё-таки синхробайты и прочее отбрасывать?

aviator
06.05.2013, 14:07
Кстати, раз уж тема по кассетам. Нашел папины записи на кассетах по специалистам, в том числе по цветному расширению. Там вроде должны быть "цветные" мониторы, бейсик и ещё для организации сети из специалистов (делалось для компьютерного класса). Судя по этикеткам, даже могут быть ассемблерные исходники.
Чтобы не изобретать свой велосипед, какие программы используете для конвертации в RKS или какой-другой формат?

b2m
06.05.2013, 14:51
или надо всё-таки синхробайты и прочее отбрасывать?
В существующих на данный момент RKS файлах сохраняется вся информация после первого синхробайта, в том числе нули и второй синхробайт после них.

Bolt
06.05.2013, 15:29
Нашел папины записи на кассетах по специалистам
...
Чтобы не изобретать свой велосипед, какие программы используете для конвертации в RKS или какой-другой формат?
Я как раз сейчас изобретаю такой велосипед. Что не получится сконвертировать - могу "погрызть" отдельно :)
Записывать обязательно стерео, 44100 или 48000, сохранять в WAV PCM (лучше 16, но 8 бит тоже можно) или ADPCM (4 бита). Только не в MP3, там "грызть" уже сложнее будет.

---------- Post added at 15:29 ---------- Previous post was at 15:10 ----------


В существующих на данный момент RKS файлах сохраняется вся информация после первого синхробайта, в том числе нули и второй синхробайт после них.
Хорошо, тогда и я так буду сохранять.

Кроме "Менеджера" на этой же кассете не получается декодировать ещё одну игру. Попробуете? ;) http://yadi.sk/d/m04uU46-4ag2u

HardWareMan
06.05.2013, 17:11
Я считаю, что *.RKS должен содержать только информацию. Т.е. раккорды не записываем. А вот синхробайт нужен, т.к. по ним идет синхронизация чтения.

Bolt
06.05.2013, 18:01
146 файлов с правильной контрольной суммой. Приблизительно поделил на игры и программы (Бейсики, Паскаль, Форт...). Некоторые игры попробовал запустить в эмуляторе, работают :)

Записал так:


D9 D9 D9 имя 00 00 00 ... 00 00 00 E6 начало(2) конец(2) данные(N) сумма(2)

HardWareMan
06.05.2013, 19:26
О, а ДТЕ у тебя тоже с битыми последними картинками! Все как на кружке в детстве.

PS В миру я скачивал полноценную игру. Но вот такое сходство двух игр из разных (вроде как) источников удивляет.

fifan
06.05.2013, 20:59
Не правильное у Вас rks, батенька. Нужно так:

Сначала идёт дескриптор:
2 байта адрес загрузки программы, он же начальный;
2 байта конечный адрес программы;
Потом идёт сам дамп памяти.
В конце два байта - контрольная сумма дампа памяти.
Ладно, переделаю на работе.
В любом случае большое спасибо!

Bolt
06.05.2013, 21:29
Не знаю, мне с именами больше нравится, и я такие RKS уже видел. Я бы и ракорд с первым синхробайтом писал, чтобы вообще как на кассете. Автоматически распознать все три варианта довольно легко. Или давайте их назовём RKS (начинается сразу с адреса), RKH (header, с заголовком, который после первого синхробайта) и RKT (tape, со всеми ракордами и синхробайтами) :)

В архиве RKS без имён.


начало(2) конец(2) данные(N) сумма(2)


А файл "ordos" какой-то странный, находиться должен с адреса B800 и вызывает подпрограммы по адресам F8xx. Это для чего? Радио-86РК?

DDp
06.05.2013, 23:19
...не получается декодировать ещё одну игру. Попробуете? http://yadi.sk/d/m04uU46-4ag2u
Дырка ж на 39 секунде!
По контексту(явно графика), там ноли. Заполняем, получаем - ок.
Отличается от какого же отсюда (stena2.rks) (http://emu80.org/files/gs_3.zip) наличием заголовка и четырьмя байтами в конце файла.

fifan
07.05.2013, 05:41
Просто мы переходим на загрузку с SD карты и поддерживаемые нами rks файлы не содержат имена в теле программы. Вернее подготавливаться файлы будут на ПС, записываться на SD карту.
1 (http://www.zx.pk.ru/showpost.php?p=581533&postcount=75)
2 (http://s019.radikal.ru/i616/1303/4b/3ff9de5d3624.jpg)

aviator
07.05.2013, 14:16
Я как раз сейчас изобретаю такой велосипед. Что не получится сконвертировать - могу "погрызть" отдельно
Я просто думал, что есть уже готовое решение у кого-либо в загашнике. Ну ничего, тряхну стариной, декодирую. Качество плёнки, конечно, уже фиговое, но и математика шагнула далеко вперёд. :)

Bolt
07.05.2013, 15:02
У меня пока не готовое решение, а черновик, который в конце работы обязательно выполняет недопустимую операцию. А так все пользуются некой утилитой Shoorik'а, которую я, если честно, пока не смотрел. Мне в математике самому интересно поразбираться. Сразу скажу: декодировать чтением через 3/4 бита после очередного перепада, как это делается в самом Специалисте, у меня не получилось, слишком много искажений. А положение головки на декодирование кажется особо не влияет, только на сдвиг каналов, в моих файлах это видно, каналы на несколько сэмплов сдвинуты относительно друг друга. Это же, кстати, при кодировании в MP3 в режиме joint stereo приведёт к сильной потере качества.

Просьба ко всем: выложите пожалуйста записи с кассет, очень хочется посмотреть какие искажения ещё бывают и попробовать это обработать. Результатом в форматах ELF и EXE обязательно поделюсь :)

---------- Post added at 15:02 ---------- Previous post was at 14:58 ----------


Дырка ж на 39 секунде!
Точно, дырка :) Надо как-то их автоматически обрабатывать...

HardWareMan
07.05.2013, 16:02
А я только своими пользуюсь. У меня их 3 штуки, при этом две работают как Спец - измерение 3/4 от периода, а одна на основе анализа полупериодов.
http://savepic.net/3636580.png
Некоторые работают со звукокартой напрямую, остальные просто с WAV файлами. та, что на основе анализа полупериодов (смысл как у Спектрума, измеряем полупериод и смотрим % изменения длительности). Все они иделально работают с сигналом, созданным самим Специалистом ("идеальные условия"), и с переменным успехом с кассетами. Как USB плеер придет, попробую сделать убердевайс, заточенный на данную тему.

fifan
07.05.2013, 17:04
Просмотрел все файлы, несколько переместил из игр в системные. Если ничего не будет меняться, то перемещаю их на сайт.

Bolt
07.05.2013, 17:32
Да, хорошо. Если что найду потом отдельно выложу.

---------- Post added at 17:32 ---------- Previous post was at 17:25 ----------


А я только своими пользуюсь.
...
Некоторые работают со звукокартой напрямую...
"Со звуковой картой напрямую" не все кассеты могут выдержать... Лучше загнать в файл, а потом уже его обрабатывать хоть десятью способами.

HardWareMan
07.05.2013, 18:05
"Со звуковой картой напрямую" не все кассеты могут выдержать... Лучше загнать в файл, а потом уже его обрабатывать хоть десятью способами.

Согласен. Несколько записей я буквально руками восстановил в саунд форже (правил вэйвформу руками).

DDp
07.05.2013, 20:03
выложите пожалуйста записи с кассет, очень хочется посмотреть какие искажения ещё бывают и попробовать это обработать.
Напр. http://zx.pk.ru/showthread.php?t=20292
unknown_8.ogg - хорошие искажения ;) . Половина файлов текстовые.

Bolt
07.05.2013, 20:17
Отлично!
Суть искажений везде кажется одна и та же, что у меня, что в этих .ogg, причём по-моему ogg это даже как-то подчёркивает.

Рассматриваю осциллограммы и сочиняю фильтры :v2_dizzy_coder:

HardWareMan
07.05.2013, 22:12
Да че там думать то? Нужен обычный компаратор с гистерезисом. Это работает в железе, проверено десятилетиями. Его математическая модель не будет слишком сложной.

PS OGG номер 8. Тексты Микрона/Практика. Ах, кружок. Вроде как окунулся в детство... Запомни, у текста другая контрольная сумма. Вот тебе легенда в помощь:

1. Блок кодов:
0E6H,<ADR_BEG>,<ADR_END>,<BIN_CODE><CHECK_SUM>
При загрузке по сбросу имеет свойство автозапуска. Раккорд - 512 байт 00H.

2. Блок кодов с именем (монитор):
0E6H,0D9H,0D9H,0D9H,<ASCII_NAME>,00H
0E6H,<ADR_BEG>,<ADR_END>,<BIN_CODE>,<CHECK_SUM>
Раккорд перед именем - 512 байт 00Н, между именем и блоком кодов - 256 байт 00Н.

3. Бейсик "Практик":
0E6H,0D4H,0D4H,<ASCII_NAME>,00H
0E6H,0D3H,0D3H,0D3H,<BIN_CODE>,00H,00H,00H,<CHECK_SUM>
Да, при линейной загрузке интерпретатор ждет трёх нулей подряд (первый ноль - конец строки, второй и третий - номер строки #0, что нонсенс). Раккорд - 256 байт ААН и 256 байт 00Н. Между именем и листингом - 256 байт 00Н.

4. Редактор текстов "Практик" (и "Микрон" тоже, ЕМНИП):
0E6H,0E6H,0E6H,0E6H,0E6H,<ASCII_NAME>,00H
0E6H,<BIN_CODE>,0FFH,<CHECK_SUM>
Текст грузится от начала (задано редактором, обычно 1200H) и до байта FFh (маркер конца текста в памяти). Раккорд - 128 байт ААН, 128 байт 00Н, 128 байт ААН, 128 байт 00Н. Между именем и текстом - 256 байт 00Н.

Легенда:
<ADR_BEG>,<ADR_END>,<CHECK_SUM> - 2 байта, младший первый
<ASCII_NAME>, <BIN_CODE> - N байт массив
<CHECK_SUM> накрывает только <BIN_CODE>, причем у ТХТ она своя (тупое прибавление к слову байта без учета переноса, от 0).

Titus
07.05.2013, 22:49
Да че там думать то? Нужен обычный компаратор с гистерезисом. Это работает в железе, проверено десятилетиями. Его математическая модель не будет слишком сложной.
Но и годится только для относительно годных записей.

Я в свое время, когда собирался сделать читалку спектрумовских кассет, тоже сначала хотел сделать по-простому. В итоге понял, что мои старые и заезженные кассеты так не считать, и пришлось придумывать более сложные математические модели типа вейвлет-анализа специфического. Как итог - теперь читалка в автоматическом режиме кушает почти все, что не читают никакие другие читалки.

Bolt
07.05.2013, 23:14
Но и годится только для относительно годных записей.

Вот-вот. На картинке пример из этого unknown_8.ogg. Некоторые волны только слегка цепляют нулевой уровень, а на моих кассетах иногда вообще не пересекают. Компаратор скажет "ой" и пропустит как минимум один бит.


Я в свое время, когда собирался сделать читалку спектрумовских кассет, тоже сначала хотел сделать по-простому. В итоге понял, что мои старые и заезженные кассеты так не считать, и пришлось придумывать более сложные математические модели типа вейвлет-анализа специфического. Как итог - теперь читалка в автоматическом режиме кушает почти все, что не читают никакие другие читалки.
Не знаю, вейвлет у меня или нет, но получил достаточно чистый промежуточный результат, завтра из него буду байты и файлы вытаскивать, а на сегодня хватит думать.

Bolt
07.05.2013, 23:16
Вот тебе легенда в помощь:
Не уверен, декодировал на бумажке из промежуточных данных, но по-моему в unknown_8.ogg файлы редактора текстов "Практик".

Ой, это в сообщении и написано


PS OGG номер 8. Тексты Микрона/Практика.

Раз не могу уже даже внимательно сообщение прочитать - пора на сегодня завязывать с программированием :)

HardWareMan
08.05.2013, 06:48
Вот-вот. На картинке пример из этого unknown_8.ogg. Некоторые волны только слегка цепляют нулевой уровень, а на моих кассетах иногда вообще не пересекают. Компаратор скажет "ой" и пропустит как минимум один бит.
Вы видимо никогда не использовали аппаратный компаратор с гистерезисом. Он измеряет не относительно 0 а относительно текущего уровня, в который вносится фидбэк с выхода. Вот глубина гистрезеиса согласен, величина подстраиваемая должна быть, я себе прямо переменник и ставил. И в 90х считывал все, даже стереозапись с плохим азимутом на моноголовке (примерно то же самое, что и джоинт стерео МР3 для ваших записей).

Bolt
08.05.2013, 11:08
Вы видимо никогда не использовали аппаратный компаратор с гистерезисом.
Использовал. Но это не наш метод :)

О полученном вчера полуфабрикате.
Во вложении файл, в котором записаны... полубиты, что ли.
0 - повтор полубита
1 - инверсия полубита
2 - нет сигнала

Примеры:
0000000000000 - невозможно (но может и встречается, не проверял)
0101010101010 - серия байтов 55 или AA
1111111111111 - серия байтов 00 или FF
2222222222222 - нет сигнала

"Дырка" в сигнале:
0101111101011122220111010111010111110101

Более сложный пример, ракорд и синхробайт.
Биты, полубиты, содержимое файла log_tris:


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0
0101010101010101 0101010101010101 1010100101101001
1111111111111111 1111111111111111 0111110111011101


Ну и совсем сложный пример, на первый взгляд вроде всё правильно, но в сигнале какой-то дефект:
010101111111110101010110110101111101

Синхробайты уже вылавливаются, тексты тоже частично читаются. Буду думать дальше. От помощи в обдумывании не откажусь :)

Bolt
09.05.2013, 17:41
Ещё один промежуточный результат.

Эти .ogg ещё никто полностью не разобрал что ли?

sergey2b
24.05.2013, 21:46
HardWareMan поделитесь пожалуйста впечатлениями о плеере которым вы пользовались
скажите пожалуйста он чем то лучше обычного плеира выход наушников которого подлюченн к входу звуковой платы

HardWareMan
24.05.2013, 22:21
Я же писал, что я его только заказал. Он еще не пришел, как придет - сделаю подробный фотоотчет.

HardWareMan
30.05.2013, 20:58
http://zx.pk.ru/showthread.php?p=605732#post605732

aviator
02.06.2013, 21:27
Раздобыл майфун и поцифровал 6 кассет. Теперь надо разобрать и распознать.
Чтобы не делать глупую работу, где можно посмотреть какое ПО уже преобразовано?

Байкал
13.10.2013, 14:50
Всем,привет!Нашел кассету с программами 1990 г. для "Специалиста",оцифровал.
Все игры считаны на ПК "Специалист" и записаны с ПК на новую кассету с именами
и контрольными суммами,оцифрованы.Файлы Wav можно найти по ссылке:
http://files.mail.ru/F27CF889A31F4C2A8B4C0B81F603D0BE
С уважением Алевтин.

fifan
14.10.2013, 16:13
где можно посмотреть какое ПО уже преобразовано?
Игры (http://www.spetsialist-mx.ru/index7.html) и программы (http://www.spetsialist-mx.ru/index6.html).

DDp
17.10.2013, 00:47
Нашел кассету с программами 1990 г. для "Специалиста",оцифровал.
Проходил мимо (я не Специалистовладелец;)
конвертнул по-быстрому-не-глядя.

...записаны с ПК на новую кассету...
Видимо, она не очень новая (см. err1..png)
И компьютер оцифровывающий иногда занимался посторонними делами (см. err2..png)
В любом случае, спасибо.

Байкал
18.10.2013, 17:17
И компьютер оцифровывающий иногда занимался посторонними делами (см. err2..png)
Спасибо за подсказку,я попробую исправить ошибки.

Байкал
25.10.2013, 14:40
http://files.mail.ru/6A476108BFEE40DA86636BFA3E50E6DC
Исправил программы,сообщите как получили.

DDp
27.10.2013, 14:24
Исправил программы,сообщите как получили.К.суммы совпали у всех файлов.