Важная информация

User Tag List

Страница 1 из 12 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 113

Тема: [Поиск 1] Кассетный интерфейс

  1. #1
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию [Поиск 1] Кассетный интерфейс

    Итак, мои ковыряния с форматом записи данных на кассету не прошли даром. Результатом стала программа CAS2WAV, позволяющая создавать WAV файл из кассетных программ для последующего воспроизведения на любом аудио-плеере.

    Самое интересное, что первоначально цель исследований была диаметрально противоположна - научится читать данные из записей WAV файлов, но это труднее. Однако в итоге у меня получилась небольшая заготовка - декодер, которая позволила без ошибок прочитать все три доступные мне WAV записи с программами ISPP, BASIC и ISKATEL.

    Скачать наиболее полный набор кассетных программ для Поиска можно здесь: http://vizersprojects.ru/archive/sannata/apps.zip (за что выражаю благодарность Кравченко М.О. (Vizer), Кравченко С.И. (Profesor_lampochkin), Пелега Е. (DrPass) )
    UPD: Ссылка умерла, перевыложил здесь: https://www.dropbox.com/s/ikr8iafsojjcs20/APPS.rar?dl=0

    Скачать утилиту можно здесь: https://dl.dropboxusercontent.com/u/.../cas_poisk.rar
    UPD: Умерла, прикрепил к сообщению внизу

    Напомню, что на ленте (ну или в WAV) хранятся не только сами данные, но есть еще и небольшой заголовок. Там находится название программы (максимально 8 БОЛЬШИХ латинских букв), тип программы (бейскик текстовый/бейсик бинарный/бинарная программа), размер программы, и, самое главное - адрес сегмента и смещения, куда МОНИТОР будет загружать программу и откуда она стартанет. У тех прог, что я декодировал были такие адреса загрузки и типы:

    ISPP - 0060:081E, тип: 0x80
    BASIC - 0000:0000, тип: 0x02
    ISKATEL - 0060:081E, тип: 0x80

    Например, для создания WAV с ISPP запускать так:
    Код:
    cas2wav ispp.cas ispp.wav -n ISPP
    Для бейсика так:
    Код:
    cas2wav basic.cas basic.wav -n BASIC -t 2 -s 0 -o 0
    Вложения Вложения
    Последний раз редактировалось Tronix; 08.03.2017 в 09:17.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, и как логичное продолжение, программа 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 преобразую в Поисковый формат.
    Вложения Вложения
    Последний раз редактировалось Tronix; 08.03.2017 в 09:22.

  4. #3
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,393
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    57 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    было бы неплохо придумать нечто подобное для МК-88 ранных ревизий (у неё присутствует магнитофонный вход). Пробовал прогружать WAV'ы от поиска (где-то проскакивали) - не кушает ни в какую... После пилота выдаёт ошибку... Наверное надо будет ПЗУшку дизассемблировать и разбираться как там загрузка происходит

    ---------- Post added at 16:46 ---------- Previous post was at 16:45 ----------

    про МК-88 немного есть здесь: http://zxbyte.ru/mk88.htm
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  5. #4
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    было бы неплохо придумать нечто подобное для МК-88 ранных ревизий (у неё присутствует магнитофонный вход).
    Хотя бы одну кассетную запись именно от МК-88 было бы неплохо иметь...

    ---------- Post added at 19:12 ---------- Previous post was at 18:53 ----------

    А может кстати оно хочет формат от МС-1502, то есть перепутаны местами размер и тип файла... Скоро добавлю в CAS2WAV тоже ключ /mc

  6. #5
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,393
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    177
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    57 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Хотя бы одну кассетную запись именно от МК-88 было бы неплохо иметь...
    увы ничего нет
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  7. #6
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    увы ничего нет
    А сделать? Я просто с машиной совсем не знаком, но вроде васик для нее есть, что если ему дать команду SAVE и далее по описалову... Честно говоря прошивку дизасмить и копаться просто влом. Тем более, что реала нет и вряд-ли когда появится, раз я вообще первый раз в жизни о ней слышу..

  8. #7
    Moderator
    Регистрация
    23.01.2011
    Адрес
    Донецк
    Сообщений
    793
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    было бы неплохо придумать нечто подобное для МК-88 ранных ревизий (у неё присутствует магнитофонный вход). Пробовал прогружать WAV'ы от поиска (где-то проскакивали) - не кушает ни в какую... После пилота выдаёт ошибку... Наверное надо будет ПЗУшку дизассемблировать и разбираться как там загрузка происходит
    [/COLOR]про МК-88 немного есть здесь: http://zxbyte.ru/mk88.htm
    По схеме ясно, что все реализовано также программно, т.е. действительно или исходники искать, или дизассемблировать.
    P.S. А компьютер забавный - эти черти всунули в коробочку полноценную ХТшку, с нормальным аппаратным видео, с контроллером DMA... Интересно, сколько ж оно стоило в этом самом 1988 году?
    Поиск-1, Поиск-2, Парус ВИ-201, Олимпик-С, Электроника МК61

  9. #8
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,584
    Спасибо Благодарностей отдано 
    66
    Спасибо Благодарностей получено 
    156
    Поблагодарили
    102 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как самолет?

  10. #9
    Member
    Регистрация
    29.05.2010
    Адрес
    Москва
    Сообщений
    103
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    В то время, как MC-1502 размер сдвинул сразу за именем, а один байт типа - я не знаю юзает или нет. Но по сути он и не важен. Вот его заголовок:
    PHP код:
    1 байт magic 0xA5
    8 байт 
    имя файла
    2 байта 
    размер
    1 байт 
    тип (???)
    2 байта сегмент
    2 байта 
    смещение 
    Может банальная ошибка, когда биос писали. Потому как бейсиковские файлы от MC-1502 придерживаются все-таки стандартного заголовка PCjr (и поэтому для декодирования бейсиковых файлов от MC-1502 не нужно указывать ключ /mc)
    Tronix, у Вас некорректно описан формат заголовка МС1502.
    Кассетный заголовок в МС1502 имеет длину 17 байт, как и в Поиске. Назначения полей те же, что и в Поиске с небольшими отличиями:
    Байт 09 Тип файла: все типы Поиска + 02 - .C (COM с нулевого смещения) - файл, 08 - .E (EXE) - файл;
    Байт 0A-0B Длина: ВНИМАНИЕ!!! ДЛЯ ТИПОВ .C (02) И .E (08) ЭТО ЗНАЧЕНИЕ НУЖНО УМНОЖИТЬ НА 100h = 256!!! ТО ЕСТЬ ДЛИНА УКАЗАНА В БЛОКАХ!!! ДЛЯ ВСЕХ ОСТАЛЬНЫХ ТИПОВ УМНОЖАТЬ НА 100h НЕ НАДО!!!

  11. #10
    Moderator
    Регистрация
    23.01.2011
    Адрес
    Донецк
    Сообщений
    793
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    Как самолет?
    Ну, что-то сравнимое. На самолет может и нет, а на "Жигули" или даже "Ниву" вполне выглядит.
    Поиск-1, Поиск-2, Парус ВИ-201, Олимпик-С, Электроника МК61

Страница 1 из 12 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Новый, более эффективный кассетный формат
    от Barmaley_m в разделе Программирование
    Ответов: 312
    Последнее: 11.08.2018, 18:21
  2. [Поиск 1] Кассетный софт
    от BYTEMAN в разделе Поиск
    Ответов: 12
    Последнее: 21.05.2017, 18:17
  3. Кассетный магнитофон.
    от Николай в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 03.04.2010, 15:49
  4. Куплю Магнитофон кассетный Электроника-302-1
    от hardrice в разделе Барахолка (архив)
    Ответов: 16
    Последнее: 18.02.2010, 12:13
  5. Ответов: 13
    Последнее: 05.11.2007, 22:48

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •