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

User Tag List

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

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

  1. #1
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,459
    Благодарностей: 770
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

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

    Итак, мои ковыряния с форматом записи данных на кассету не прошли даром. Результатом стала программа 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.
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  2. Эти 10 пользователя(ей) поблагодарили Tronix за это полезное сообщение:
    anasana (04.05.2013), BYTEMAN (08.05.2013), Doronetty (08.05.2013), DrPass (02.05.2013), Rus (08.03.2017), shattered (01.05.2013), SoftCat (08.05.2013), Sonic_Blast (17.08.2013), svofski (21.07.2017), Vadimda (09.02.2015)

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

  4. #2
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,459
    Благодарностей: 770
    Mentioned
    2 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.
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  5. Эти 7 пользователя(ей) поблагодарили Tronix за это полезное сообщение:
    Doronetty (08.05.2013), Mad Killer/PG (11.05.2013), Rus (08.03.2017), shattered (08.05.2013), SoftCat (08.05.2013), svofski (21.07.2017), tnt23 (11.05.2013)

  6. #3
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    7,570
    Благодарностей: 1675
    Записей в дневнике
    4
    Mentioned
    0 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+
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  7. #4
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,459
    Благодарностей: 770
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    А может кстати оно хочет формат от МС-1502, то есть перепутаны местами размер и тип файла... Скоро добавлю в CAS2WAV тоже ключ /mc
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

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

    По умолчанию

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

  9. #6
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,459
    Благодарностей: 770
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    увы ничего нет
    А сделать? Я просто с машиной совсем не знаком, но вроде васик для нее есть, что если ему дать команду SAVE и далее по описалову... Честно говоря прошивку дизасмить и копаться просто влом. Тем более, что реала нет и вряд-ли когда появится, раз я вообще первый раз в жизни о ней слышу..
    Работают:
    1) ПЭВМ Поиск-1 512Kb RAM, FDD controller + TEAC 5"25 800Kb, HDD MFM controller + ST-225, Joystick controller + Joystick
    2) XT Super Turbo V, Siemens 8088/NEC V20, 640Kb RAM, MFM Robotron K5504.20, FDD 5,25" MC-5311/MITSUMI D509V3, COM, LPT
    3) ПЭВМ "ДУЭТ" проц: КР1858ВМ1; память 48K РУ5 (клон Spectrum 48K)
    Пока не работают:
    1) ПЭВМ Поиск-1 128Kb RAM (не работает большая часть кнопок на клавиатуре).

  10. #7
    Moderator
    Регистрация
    23.01.2011
    Адрес
    Донецк
    Сообщений
    792
    Благодарностей: 904
    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

  11. #8
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,115
    Благодарностей: 399
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как самолет?

  12. #9
    Member
    Регистрация
    29.05.2010
    Адрес
    Москва
    Сообщений
    102
    Благодарностей: 27
    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 НЕ НАДО!!!

  13. #10
    Moderator
    Регистрация
    23.01.2011
    Адрес
    Донецк
    Сообщений
    792
    Благодарностей: 904
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

Похожие темы

  1. ST IDE-интерфейс
    от megabyte в разделе Atari
    Ответов: 5
    Последнее: 17.04.2011, 11:02
  2. Ищу схему на интерфейс И12
    от AlecV в разделе ДВК, УКНЦ
    Ответов: 5
    Последнее: 16.11.2010, 20:28
  3. Кассетный магнитофон.
    от Николай в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 03.04.2010, 14:49
  4. Куплю Магнитофон кассетный Электроника-302-1
    от hardrice в разделе Барахолка (архив)
    Ответов: 16
    Последнее: 18.02.2010, 12:13
  5. Ответов: 13
    Последнее: 05.11.2007, 22:48

Ваши права

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