PDA

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



HardWareMan
30.05.2013, 21:30
Увидел я как-то вот эту штуку (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/3745018.jpg
http://savepic.net/3750138.jpg
http://savepic.net/3748090.jpg
http://savepic.net/3738874.jpg
http://savepic.net/3742970.jpg
http://savepic.net/3799293.jpg

Плеер может работать как от батареек (крышка батарейного отсека под крышкой кассеты), так и от USB!
http://savepic.net/3795197.jpg

Внутри - стандартный одночиповый плеер. Используется стандартный старый добрый LAG668, который применялся в плеерах еще в середине 90х (у моего с реверсом был LAG668, а без реверса - LAG665). Так же виден сам USB АЦП, правда совсем не видно маркировки.
http://savepic.net/3797245.jpg
http://savepic.net/3784957.jpg

При подключении USB шнура появляется звуковое устройство:
http://savepic.net/3750139.png
http://savepic.net/3735803.png
http://savepic.net/3748091.png

Записывать оно умеет только в одном формате:
http://savepic.net/3749115.png

Подключил плеер через переднее гнездо USB и прилагаемый кабель. Подключил свои наушники в плеер. Включил кассету. Плеер играет вполне адекватно, я помню в 90х играл примерно так же. LAG668 содержит РЧВ, поэтому чуток шумка от моторчика проникает в звуковой тракт. Но все вполне адекватно его классу. Например, вот собственный шум АЦП (плеер в режиме стоп, громкость на максимуме):
http://savepic.net/3750141.png

Вот шум ленты:
http://savepic.net/3747069.png

Сигнал Специалиста удвоенная плотность:
http://savepic.net/3735805.png

Сигнал Специалиста обычная плотность:
http://savepic.net/3742973.png

Желающие могут скачать (http://zalil.ru/34544219) запись с кассет 15ти летней давности (обе кассеты из середины-конца 90х) для примерной оценки.

В итоге, мне понравился девайс. Собираюсь купить второй, а в этот вмонтировать компаратор, чтобы оцифрованный сигнал был уже "цифровым". А может, даже переделаю плату и поставлю сразу AT90USB162 и плеер будет гонять готовые данные сразу.

---------- Post added at 23:30 ---------- Previous post was at 22:56 ----------

Ах да, забыл добавить: плеер ставится как стандартное звуковое устройство. Драйвера не нужны. На диске какая-то старая версия Audacity.

HardWareMan
03.03.2014, 11:50
Проапгрейдил плеер стереофоническим компаратором (платка в батарейном отсеке). Теперь сижу и граблю потихоньку народное достояние кружка станции Дома Пионеров, которые отдал мне бывший руководитель того кружка. Там более 80 кассет, такое не должно потеряться.

Titus
03.03.2014, 14:12
Не забывай выкладывать оцифрованные программы для всех.

HardWareMan
04.03.2014, 06:50
Не забывай выкладывать оцифрованные программы для всех.
Конечно. Первая же кассета несет в себе "BASIC-MAGIC/M" и программки к нему. Оказалось, я был не готов к его формату! Я знаю только формат Бэйсика "Практик" и Micron. Приходится копаться в кишках этого бэйсика...

HardWareMan
04.03.2014, 17:44
Доработал компаратор. Теперь чтение еще стабильнее! Вот например чтение имени бэйсика на разных константах до и после:

[До доработки]
20: D9 19 19 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D -
21: D9 D9 19 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
22: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
23: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
24: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
25: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
26: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
27: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
28: D9 D9 D9 42 41 53 49 43 2D 4D 40 8E 92 86 5E 9A -
29: D9 D9 D9 40 02 9A 44 05 A9 A8 10 24 40 5E 84 00 -
[После доработки]
18: D9 19 19 42 C1 53 49 43 2D 4D 41 47 49 43 2F 4D -
19: D9 19 19 42 C1 53 49 43 2D 4D 41 47 49 43 2F 4D -
20: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
21: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
22: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
23: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
24: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
25: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
26: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
27: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
28: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
29: D9 D9 D9 42 41 53 49 43 2D 4D 41 47 49 43 2F 4D +
30: D9 D9 D9 42 41 53 49 43 2D 4D 40 8E 92 86 5E 9A -
Видно, что фронты скважности стали стабильнее и коридор констант чтения расширился. Сам бэйсик можете взять во вложении, я не знаю, почему он помечен как "М" (модифицирован?), сейчас раскурю его формат и добью эту кассетку. А еще, здесь присутствуют 3 файла, которые были записаны вне кружка и там стоит практически копирайт: "Следующие три файла предназначены для Волынского. Причем, я против того, чтобы у вас остались копии первого из них. Надеюсь, этого предупреждения достаточно." Стало прямо интересно...

Интересный формат у этого бейсика! И даже на слух я думал, что странноват. В итоге, мы имеем следующий список форматов данных на ленте для Специалиста:

{================================================= ==========================}
{Загрузчик файлов с ленты разных форматов Специалиста }
{<ADR_BEG>,<ADR_END>,<CHECK_SUM>,<TEXT_SIZE> - 2 байта, младший первый }
{<ASCII_NAME>, <BIN_CODE> - N байт массив }
{<CHECK_SUM> накрывает только <BIN_CODE>, причем у ТХТ и MICRON она своя }
{---------------------------------------------------------------------------}
{Формат бэйсика с именем: }
{0E6H,0D4H,0D4H,<ASCII_NAME>,00H }
{0E6H,0D3H,0D3H,0D3H,<BIN_CODE>,00H,00H,00H,<CHECK_SUM> }
{---------------------------------------------------------------------------}
{Формат бэйсика MICRON (у блока данных раккорд пониженной частоты): }
{0E6H,0D3H,0D3H,0D3H,0D3H,<ASCII_NAME>,00H,00H,00H }
{0E6H,0D3H,0D3H,0D3H,<BIN_CODE>,00H,00H,00H,<CHECK_SUM> }
{---------------------------------------------------------------------------}
{Формат монитора с именем (и без него): }
{0E6H,0D9H,0D9H,0D9H,<ASCII_NAME>,00H }
{0E6H,<ADR_BEG>,<ADR_END>,<BIN_CODE>,<CHECK_SUM> }
{---------------------------------------------------------------------------}
{Формат текста с именем: }
{0E6H,0E6H,0E6H,0E6H,0E6H,<ASCII_NAME>,00H }
{0E6H,<TEXT_SIZE>,<BIN_CODE>,0FFH,<CHECK_SUM> }
{================================================= ==========================}

Ёлы-палы, у этого бейсика еще и сумма как у текстового редактора... Тем не менее, процесс пошел:

Левый: Монитор: BASIC-MAGIC/M
Левый: 0000..219F = F862 : F862
Левый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА (ЗУБОВ + Я)
Левый: 02A2 = B6F8 : B6F8
Левый: Бейсик "Микрон": КРАТКАЯ ИНСТРУКЦИЯ К БЕЙСИКУ << MAGIC >>
Левый: 032E = F94D : F94D

HardWareMan
04.03.2014, 21:27
Ну вот, неточность в формате текста. Поправил предыдущий пост. Вся сторона за раз распознается:

Запуск
Загружено 70765568 сэмплов (283062272 байт).
Левый: Монитор: BASIC-MAGIC/M
Левый: 0000..219F = F862 : F862
Левый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА (ЗУБОВ + Я)
Левый: 02A2 = B6F8 : B6F8
Левый: Бейсик "Микрон": КРАТКАЯ ИНСТРУКЦИЯ К БЕЙСИКУ << MAGIC >>
Левый: 032E = F94D : F94D
Левый: Бейсик "Микрон": II ДУБЛЬ КРАТКОЙ ИНСТРУКЦИИ К БЕЙСИКУ <<MAGIC>>
Левый: 032E = F94D : F94D
Левый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (RLCI)
Левый: 14C9 = 3ED8 : 3ED8
Левый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (ПРОГРАММА RLCI)
Левый: 14AD = 1E8D : 1E8D
Левый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА V3.0
Левый: 0266 = B131 : B131
Левый: Бейсик "Микрон": АЧХ КОЛЕБ. КОНТУРА (ЗУБОВ + Я, ВЕРСИЯ V3.0)
Левый: 0266 = B131 : B131
Левый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Левый: 044C = 5D6F : 5D6F
Левый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Левый: 044C = 5D6F : 5D6F
Левый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Левый: 024D = A8FA : A8FA
Левый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Левый: 024D = A8FA : A8FA
Левый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕННИЯХ
Левый: 026A = AD02 : AD02
Левый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕНИЯХ
Левый: 026A = AD02 : AD02
Левый: Монитор: JMP_JKCOM
Левый: 0000..603F = 6BAE : ABEE
Левый: Монитор: ARCON COM
Левый: 0000..7FC2 = 0A2D : 0D31
Левый: Монитор: COSMANCOM
Левый: 0000..52DF = 107E : A663
Левый: Монитор: COOKY COM
Левый: 0000..51EF = 49E7 : 49E7
Левый: Монитор: HARIERCOM
Левый: 0000..3CB0 = CF30 : CF30
Левый: Монитор: TDE TXT
Левый: 3000..7001 = 4764 : 87A4
Левый: Монитор: PR96 TXT
Левый: 3000..75DB = CB90 : 4A10
Левый: Монитор: E COM
Левый: D000..DE0F = 1AEE : F8CE
Левый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Левый: 0923 = 5BC7 : 5BC7
Левый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Левый: 0517 = 1A97 : 1A97
Левый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Левый: 0923 = 5BC7 : 5BC7
Левый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Левый: 0517 = 1A97 : 1A97
Левый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ.
Левый: 1C61 = EA09 : EA09
Левый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ*
Левый: 1C61 = EA09 : EA09
Левый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Левый: 0322 = 5DB0 : 5DB0
Левый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Левый: 0573 = 4423 : 4423
Левый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Левый: 0322 = 5DB0 : 5DB0
Левый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Левый: 0573 = 4423 : 4423
Левый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Левый: 0316 = 8436 : 8436
Левый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Левый: 0316 = 8436 : 8436
Левый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Левый: 062B = 6459 : 6459
Левый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Левый: 062B = 6459 : 6459
Левый: Текст: "ЗУМРАД" СТР. 9-10,
Левый: 0D99 = F2DF : F2DF
Левый: Текст: "ЗУМРАД" СТР. 9-10,
Однако, те файлы от загадочного автора, что не хотел чтобы копировали его файлы, считываются с ошибкой, буду кумекать почему. Возможно он выгружал другим способом.

ДжампДжек! Сколько изречений там было сохранено...

39C0 B8 39 16 18 1E 10 06 AF CD 67 39 E1 C1 F1 C9 70 .9.......Г9....П D13B
39D0 6F 6B 6F 72 6E 65 6A 7B 65 20 62 6C 61 67 6F 64 ОКОРНЕЙШЕ БЛАГОД 0261
39E0 61 72 69 6D 2E 00 70 6F 20 75 73 74 61 77 75 2C АРИМ..ПО УСТАВУ, 84AB
39F0 20 70 72 61 77 69 6C 78 6E 6F 20 73 74 72 65 6C ПРАВИЛЬНО СТРЕЛ E74E
Контрольная сумма блока 4295
3A00 71 6C 2E 00 70 72 69 20 77 73 65 6A 20 6B 6F 6D ЯЛ..ПРИ ВСЕЙ КОМ 2E96
3A10 61 6E 64 65 20 77 79 62 72 6F 7B 75 20 7A 61 20 АНДЕ ВЫБРОШУ ЗА DBF6
3A20 62 6F 72 74 2E 00 75 62 69 77 61 74 78 20 6E 61 БОРТ..УБИВАТЬ НА 7CD8
3A30 64 6F 20 74 61 6B 69 68 20 7A 6E 61 74 6F 6B 6F ДО ТАКИХ ЗНАТОКО C02A
3A40 77 21 00 2E 2E 2E 6E 6F 20 73 6E 61 7E 61 6C 61 В!....НО СНАЧАЛА B00D
3A50 20 65 7D 65 20 6F 64 69 6E 20 6B 72 6F 68 6F 74 ЕЩЕ ОДИН КРОХОТ 79E8
3A60 6E 79 6A 20 6E 6F 6D 65 72 6F 6B 3A 00 6D 6E 65 НЫЙ НОМЕРОК:.МНЕ 86E6
3A70 20 6F 73 74 61 6C 61 73 78 20 6F 64 6E 61 20 7A ОСТАЛАСЬ ОДНА З 76EB
3A80 61 62 61 77 61 3A 00 62 72 61 74 63 79 2C 20 71 АБАВА:.БРАТЦЫ, Я 0C78
3A90 20 76 65 20 73 77 6F 6A 21 00 70 6F 72 61 20 6E ЖЕ СВОЙ!.ПОРА Н D53F
3AA0 61 7A 77 61 74 78 20 69 68 20 69 6D 65 6E 61 2E АЗВАТЬ ИХ ИМЕНА. BFE8
3AB0 00 70 6C 61 6E 79 20 70 61 72 74 69 69 20 2D 20 .ПЛАНЫ ПАРТИИ - 1F3A
3AC0 70 6C 61 6E 79 20 6E 61 72 6F 64 61 2E 00 6E 75 ПЛАНЫ НАРОДА..НУ 5ACA
3AD0 20 6B 61 6B 20 77 61 6D 20 6E 61 7B 20 6B 6F 6E КАК ВАМ НАШ КОН 258E
3AE0 63 65 72 74 69 6B 3F 00 6E 6F 20 6E 65 70 72 65 ЦЕРТИК?.НО НЕПРЕ 78D8
3AF0 6D 65 6E 6E 6F 20 73 20 72 61 7A 6F 62 6C 61 7E МЕННО С РАЗОБЛАЧ C039
Контрольная сумма блока 7396
3B00 65 6E 69 65 6D 2E 00 2E 2E 2E 70 6F 6C 75 7E 69 ЕНИЕМ.....ПОЛУЧИ 096D
3B10 6C 20 70 6F 20 6D 6F 72 64 65 20 73 61 6E 71 20 Л ПО МОРДЕ САНЯ 7A95
3B20 73 6F 6B 6F 6C 6F 77 2E 00 77 6F 74 20 74 65 70 СОКОЛОВ..ВОТ ТЕП 94FF
3B30 65 72 78 20 74 65 62 65 20 6B 6F 6E 65 63 2E 00 ЕРЬ ТЕБЕ КОНЕЦ.. 726D
3B40 2E 2E 2E 20 64 6C 71 20 74 6F 67 6F 20 7E 74 6F ... ДЛЯ ТОГО ЧТО DA45
3B50 62 79 20 71 72 7E 65 20 67 6F 72 65 74 78 2E 00 БЫ ЯРЧЕ ГОРЕТЬ.. ADA8
3B60 68 69 74 72 6F 20 70 72 69 64 75 6D 61 6E 6F 2C ХИТРО ПРИДУМАНО, 1B41
3B70 20 70 6F 6C 6B 6F 77 6E 69 6B 2E 00 64 61 2C 20 ПОЛКОВНИК..ДА, 223D
3B80 77 79 62 6F 72 20 6E 65 62 6F 67 61 74 79 6A 20 ВЫБОР НЕБОГАТЫЙ 1C36
3B90 70 65 72 65 64 20 6E 61 6D 69 2E 00 6E 65 20 67 ПЕРЕД НАМИ..НЕ Г FA5D
3BA0 75 62 69 74 65 20 6D 75 76 69 6B 69 2C 20 6E 65 УБИТЕ МУЖИКИ, НЕ 8DED
3BB0 20 67 75 62 69 74 65 21 00 64 61 20 73 79 67 72 ГУБИТЕ!.ДА СЫГР FD6B
3BC0 61 6A 74 65 20 76 65 2C 20 68 77 61 74 69 74 20 АЙТЕ ЖЕ, ХВАТИТ 819C
3BD0 77 61 6D 20 70 69 74 78 2E 00 61 20 6D 6F 76 65 ВАМ ПИТЬ..А МОЖЕ 3090
3BE0 74 20 62 79 74 78 20 71 20 73 75 6D 61 73 7B 65 Т БЫТЬ Я СУМАСШЕ B515
3BF0 64 7B 69 6A 21 00 6D 79 20 65 7D 65 20 73 20 77 ДШИЙ!.МЫ ЕЩЕ С В D74A
Контрольная сумма блока 314F
3C00 61 6D 69 20 77 20 6B 61 72 74 79 20 6E 65 20 69 АМИ В КАРТЫ НЕ И 3195
3C10 67 72 61 6C 69 2E 00 6D 61 74 69 6C 78 64 61 2C ГРАЛИ..МАТИЛЬДА, 96BD
3C20 20 74 79 20 77 69 64 65 6C 61 20 6B 6F 67 64 61 ТЫ ВИДЕЛА КОГДА 6DC9
3C30 2D 6E 69 62 75 64 78 20 7E 74 6F 2D 6C 69 62 6F -НИБУДЬ ЧТО-ЛИБО A10B
3C40 20 70 6F 64 6F 62 6E 6F 65 3F 00 2E 2E 2E 20 6E ПОДОБНОЕ?.... Н 63CD
3C50 69 20 6F 64 6E 61 20 64 65 77 75 7B 6B 61 20 6E И ОДНА ДЕВУШКА Н 6CD5
3C60 61 20 73 77 65 74 65 2E 00 73 70 69 6E 6B 75 20 А СВЕТЕ..СПИНКУ 7691
3C70 73 65 72 75 60 20 77 79 67 6E 69 20 64 75 67 6F СЕРУЮ ВЫГНИ ДУГО D23C
3C80 6A 2E 00 7A 61 20 31 30 30 20 72 20 73 6F 67 6C Й..ЗА 100 Р СОГЛ 238B
3C90 61 73 65 6E 2E 00 6F 73 74 6F 72 6F 76 6E 6F 2C АСЕН..ОСТОРОЖНО, D3FA
3CA0 20 6F 6E 69 20 7E 74 6F 2D 74 6F 20 7A 61 6D 79 ОНИ ЧТО-ТО ЗАМЫ 64D8
3CB0 7B 6C 71 60 74 2E 00 70 6F 7E 65 6D 75 20 77 61 ШЛЯЮТ..ПОЧЕМУ ВА 9AF6
3CC0 6D 20 6E 72 61 77 69 74 73 71 20 76 69 74 78 20 М НРАВИТСЯ ЖИТЬ F611
3CD0 6E 61 20 6B 6C 61 64 62 69 7D 65 3F 00 65 73 6C НА КЛАДБИЩЕ?.ЕСЛ 54BB
3CE0 69 20 62 6F 6C 78 7B 65 20 2D 20 73 20 64 72 75 И БОЛЬШЕ - С ДРУ F869
3CF0 67 6F 6D 20 70 6F 70 6F 6C 61 6D 2E 00 7E 65 72 ГОМ ПОПОЛАМ..ЧЕР 71DE
Контрольная сумма блока E3FB
3D00 74 20 73 20 74 6F 62 6F 6A 2C 20 64 65 6C 61 6A Т С ТОБОЙ, ДЕЛАЙ 2C91
3D10 2E 20 67 6C 61 7A 65 74 6F 77 79 6A 2E 20 43 20 . ГЛАЗЕТОВЫЙ. C 344F
3D20 6B 69 73 74 71 6D 69 2E 00 70 72 6F 73 69 20 7E КИСТЯМИ..ПРОСИ Ч 82FB
3D30 74 6F 20 68 6F 7E 65 7B 78 2E 00 6B 6C 61 6E 71 ТО ХОЧЕШЬ..КЛАНЯ 89F5
3D40 6A 73 71 2C 20 64 75 72 61 6B 21 20 7C 74 6F 20 ЙСЯ, ДУРАК! ЭТО 5671
3D50 76 65 20 63 61 72 78 21 00 77 6F 63 61 72 69 6C ЖЕ ЦАРЬ!.ВОЦАРИЛ 54BB
3D60 61 73 78 20 6D 65 72 74 77 61 71 20 74 69 7B 69 АСЬ МЕРТВАЯ ТИШИ EA4E
3D70 6E 61 2E 00 71 20 74 77 6F 60 20 72 75 62 61 68 НА..Я ТВОЮ РУБАХ 177A
3D80 75 20 72 61 73 74 65 72 7A 61 60 20 77 20 6B 6C У РАСТЕРЗАЮ В КЛ 88EF
3D90 6F 7E 78 71 21 00 7A 61 74 6F 70 7E 69 74 65 20 ОЧЬЯ!.ЗАТОПЧИТЕ EA05
3DA0 65 67 6F 20 73 61 70 6F 67 61 6D 69 2E 00 61 20 ЕГО САПОГАМИ..А 405B
3DB0 74 65 20 6B 74 6F 20 73 7A 61 64 69 20 6E 61 73 ТЕ КТО СЗАДИ НАС 76E4
3DC0 20 75 76 65 20 65 64 71 74 2E 00 77 6F 74 20 69 УЖЕ ЕДЯТ..ВОТ И EA4F
3DD0 20 6F 6E 61 2E 00 6D 79 20 6E 65 20 70 72 6F 64 ОНА..МЫ НЕ ПРОД DA3A
3DE0 61 65 6D 73 71 2C 20 6B 61 6B 20 64 72 75 67 69 АЕМСЯ, КАК ДРУГИ 71D5
3DF0 65 21 00 6D 61 64 61 6D 2C 20 75 76 65 20 70 61 Е!.МАДАМ, УЖЕ ПА B613
Контрольная сумма блока 6168
3E00 64 61 60 74 20 6C 69 73 74 78 71 2E 00 6B 74 6F ДАЮТ ЛИСТЬЯ..КТО 70DA
3E10 20 68 6F 7E 65 74 20 2D 20 74 6F 74 20 64 6F 62 ХОЧЕТ - ТОТ ДОБ 0A67
3E20 78 65 74 73 71 2E 00 61 20 65 73 74 78 20 69 20 ЬЕТСЯ..А ЕСТЬ И 3651
3E30 74 61 6B 69 65 3F 00 71 20 77 61 73 20 70 72 6F ТАКИЕ?.Я ВАС ПРО 309A
3E40 7B 75 3A 20 75 6A 64 69 74 65 2C 20 64 6F 72 6F ШУ: УЙДИТЕ, ДОРО 65CF
3E50 67 69 65 2E 00 74 6F 6C 78 6B 6F 20 64 6C 71 20 ГИЕ..ТОЛЬКО ДЛЯ 6A85

А еще, если запустить ее G70, то оно открывает всю финальную картинку. ;)

HardWareMan
04.03.2014, 21:59
А вот кусочек того "запрещенного" файла:

ПРИВЕТ,ВОЛЫНСКИЙ!
ПЕРЕДАЮ ТЕБЕ 3(ТРИ) ФАЙЛА:
TDE.TXT
PR96.TXT
E.COM

В E.COM Я СДЕЛАЛ РАБОТУ С ДИСКОМ ПО-ДРУГОМУ

TURBO-DEBUG НАМ ПРЕДСТОИТ ДОВЕСТИ ДО УМА.
;
; TURBO-DEBUG
;
JMP BEGIN
INP: EQU 0C803H
PRI: EQU 0C809H
HPRI: EQU 0C815H
PRINT:EQU 0C818H
LIN: EQU 0FFC0H

TD1:DB 'RLCRRCRALRARDAACMASTCCMC'
TD2:DB 'SHLDLHLDSTA LDA '
TD4:DB 'ADDADCSUBSBBANAXRAORACMP'
TD5:DB 'BDHPSW'
TD6:DB 'BCDEHLMA'
TD7:DB 'INR ',0
TD8:DB 'DCR ',0
TD9:DB 'ADIACISUISBIANIXRIORICPI'
TDA:DB 'BDHSP '
TDB:DB 'INX ',0
TDC:DB 'DCX ',0
TDD:DB 'NZZ NCC POPEP M '
TE1:DB 'STAX ',0
TE2:DB 'LDAX ',0

PREG: EQU 09628H
VPREG:EQU 0B51AH
PSTK: EQU 09F90H
VPSTK:EQU 0B782H
PCOM: EQU 01028H
VPCOM:EQU 0921AH
STECK:EQU 1000H
O: EQU 0C800H

_PC:DW 1000H
_SP:DW 8F00H
V5: DW 0,0
FR4:DB 0,7FH,40H,40H,40H,40H,40H,40H,40H,40H
DB 40H,40H,40H,40H,40H,40H,7FH,0
DB 0,0FFH,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0FFH,0
DB 0,0FEH,2,2,2,2,2,2,2,2
DB 2,2,2,2,2,2,0FEH,0
GAL:DB 8,84H,44H,44H,44H,28H,30H,20H
STAT:DB 0E0H
; 80 РЕГИСТРЫ
; 40 КОМАНДА
; 20 СТЕК
; 10
; 8
; 4
; 2
; 1
PAGE:DB 0
; 0 ЭКРАН ОТЛАДЧИКА
; 1 ЭКРАН ПРОГРАММЫ
NSTK:DB 4; В СТЕКЕ
NCOM:DB 14H; В КОМАНДАХ
TOPCOM:DW 1000H; АДРЕС НАЧ. КОМ. ЭКРАНА
BUF:DS 20H

; 0 1 2 3 4 5 6 7 8 9 A B C D E F
TT: DW V, G,V,V,V, V,U,V,O,V,V,V,V,V,U,V; 0
DW O, G,V,V,V, V,U,V,O,V,V,V,V,V,U,V; 1
DW O, G,G,V,V, V,U,V,O,V,G,V,V,V,U,V; 2
DW O, R,G,K,V, V,U,V,O,K,G,K,V,V,U,V; 3
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; 4
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; 5
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; 6
DW V, V,V,V,V, V,O,V,V,V,V,V,V,V,V,V; 7
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; 8
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; 9
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; A
DW V, V,V,V,V, V,V,V,V,V,V,V,V,V,V,V; B
DW F,X6,Z,Z,Y,X1,U,J,F,S,Z,O,Y,I,U,J; C
DW F,X7,Z,U,Y,X2,U,J,F,O,Z,U,Y,O,U,J; D
DW F,X8,Z,K,Y,X3,U,J,F,W,Z,V,Y,O,U,J; E
DW F,X9,Z,V,Y,X4,U,J,F,P,Z,V,Y,O,U,J; F
TLEN:
DB 5EH,65H,55H,65H
DB 5EH,65H,55H,65H
DB 7EH,65H,75H,65H
DB 7EH,65H,75H,65H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 55H,55H,55H,55H
DB 0F5H,67H,0F5H,6FH
DB 0B5H,67H,0B5H,6FH
DB 75H,67H,75H,6FH
DB 75H,67H,75H,6FH
BEGIN:

CALL D_SCRN
CALL SCRCOM

ST: LXI SP, STECK
PUSH PSW
PUSH H
PUSH D
PUSH B
CALL REG
CALL STK
CALL ERPOS
CALL WRPOS
CALL INP
ORA A
JZ 0C800H

LHLD _PC
MOV E,M
XCHG
MVI H,0
DAD H
LXI B,TT
DAD B
MOV C,M
INX H
MOV B,M
PUSH B
XCHG
RET

;_________________
INL:MOV B,L; ИНВЕРСИЯ СТРОКИ
MVI C,8; А - ДЛИНА
MVI M,0FFH; HL - АДРЕС
INR L
DCR C
JNZ $-4
MOV L,B
INR H
DCR A
JNZ INL
RET
;_______________________
EFR:INR B; HL - АДРЕС
INR B; BC - РАЗМЕР
PUSH H; DE - ЦВЕТ
MOV A,C
ADI 8
V5E:MOV M,E
INX H
MOV M,D
INX H
DCR A
JNZ V5E
POP H
INR H
DCR B
JNZ EFR+2
RET
;_______________________
D_SCRN:; ЭКРАН ОТЛАДЧИКА
LDA PAGE
ORA A
LXI B,33CCH
JZ $+6
LXI B,0
PUSH PSW
CALL CLRSCR
POP PSW
JNZ V5F
LXI H,90F8H
MVI A,30H
CALL INL
V5F:LDA STAT
PUSH PSW
ANI 80H
CNZ VREG
POP PSW
PUSH PSW
ANI 40H
CNZ VCOM
POP PSW
PUSH PSW
ANI 20H
CNZ VSTK
POP PSW

RET


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

PS А ему 20 лет! ;)

HardWareMan
05.03.2014, 08:43
Вот лог обоих каналов:

Запуск
Загружено 70765568 сэмплов (283062272 байт).
Левый: Монитор: BASIC-MAGIC/M
Правый: Монитор: BASIC-MAGIC/M
Левый: 0000..219F = F862 : F862
Правый: 0000..219F = F862 : F862
Левый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА (ЗУБОВ + Я)
Правый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА (ЗУБОВ + Я)
Левый: 02A2 = B6F8 : B6F8
Правый: 02A2 = B6F8 : B6F8
Левый: Бейсик "Микрон": КРАТКАЯ ИНСТРУКЦИЯ К БЕЙСИКУ << MAGIC >>
Правый: Бейсик "Микрон": КРАТКАЯ ИНСТРУКЦИЯ К БЕЙСИКУ << MAGIC >>
Левый: 032E = F94D : F94D
Правый: 032E = F94D : F94D
Левый: Бейсик "Микрон": II ДУБЛЬ КРАТКОЙ ИНСТРУКЦИИ К БЕЙСИКУ <<MAGIC>>
Правый: Бейсик "Микрон": II ДУБЛЬ КРАТКОЙ ИНСТРУКЦИИ К БЕЙСИКУ <<MAGIC>>
Левый: 032E = F94D : F94D
Правый: 032E = F94D : F94D
Левый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (RLCI)
Правый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (RLCI)
Левый: 14C9 = 3ED8 : 3ED8
Правый: 14C9 = 3ED8 : 3ED8
Левый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (ПРОГРАММА RLCI)
Правый: Бейсик "Микрон": РАСЧЕТ ЛИНЕЙНЫХ ЭЛЕКТРИЧЕСКИХ ЦЕПЕЙ (ПРОГРАММА RLCI)
Левый: 14AD = 1E8D : 1E8D
Правый: 14AD = 1E8D : 1E8D
Левый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА V3.0
Правый: Бейсик "Микрон": РАСЧЕТ АЧХ КОЛЕБАТЕЛЬНОГО КОНТУРА V3.0
Левый: 0266 = B131 : B131
Правый: 0266 = B131 : B131
Левый: Бейсик "Микрон": АЧХ КОЛЕБ. КОНТУРА (ЗУБОВ + Я, ВЕРСИЯ V3.0)
Правый: Бейсик "Микрон": АЧХ КОЛЕБ. КОНТУРА (ЗУБОВ + Я, ВЕРСИЯ V3.0)
Левый: 0266 = B131 : B131
Правый: 0266 = B131 : B131
Левый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Правый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Левый: 044C = 5D6F : 5D6F
Правый: 044C = 5D6F : 5D6F
Левый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Правый: Бейсик "Микрон": РИСУНОК ППФ С МНОГОПЕТЛЕВОЙ ОС
Левый: 044C = 5D6F : 5D6F
Правый: 044C = 5D6F : 5D6F
Левый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Правый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Левый: 024D = A8FA : A8FA
Правый: 024D = A8FA : A8FA
Левый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Правый: Бейсик "Микрон": РИС.КОНД.С ТОЛСТ.ОБКЛАДКАМИ.
Левый: 024D = A8FA : A8FA
Правый: 024D = A8FA : A8FA
Левый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕННИЯХ
Правый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕННИЯХ
Левый: 026A = AD02 : AD02
Правый: 026A = AD02 : AD02
Левый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕНИЯХ
Правый: Бейсик "Микрон": РИСУНОК КОНДЕНСАТОРА В 4-Х ПОЛОЖЕНИЯХ
Левый: 026A = AD02 : AD02
Правый: 026A = AD02 : AD02
Левый: Монитор: JMP_JKCOM
Правый: Монитор: JMP_JKCOM
Левый: 0000..603F = 6BAE : ABEE
Правый: 0000..603F = 6BAE : ABEE
Левый: Монитор: ARCON COM
Правый: Монитор: ARCON COM
Левый: 0000..7FC2 = 0A2D : 0D31
Правый: 0000..7FC2 = 0A2D : 0D31
Левый: Монитор: COSMANCOM
Правый: Монитор: COSMANCOM
Левый: 0000..52DF = 107E : A663
Правый: 0000..52DF = 107E : A663
Левый: Монитор: COOKY COM
Правый: Монитор: COOKY COM
Левый: 0000..51EF = 49E7 : 49E7
Правый: 0000..51EF = 49E7 : 49E7
Левый: Монитор: HARIERCOM
Правый: Монитор: HARIERCOM
Левый: 0000..3CB0 = CF30 : CF30
Правый: 0000..3CB0 = CF30 : CF30
Левый: Монитор: TDE TXT
Правый: Монитор: TDE TXT
Левый: 3000..7001 = 4764 : 87A4
Правый: 3000..7001 = 4764 : 87A4
Левый: Монитор: PR96 TXT
Правый: Монитор: PR96 TXT
Левый: 3000..75DB = CB90 : 4A10
Правый: 3000..75DB = CB90 : 4A10
Левый: Монитор: E COM
Правый: Монитор: E COM
Левый: D000..DE0F = 1AEE : F8CE
Правый: D000..DE0F = 1AEE : F8CE
Левый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Правый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Левый: 0923 = 5BC7 : 5BC7
Правый: 0923 = 5BC7 : 5BC7
Левый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Правый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Левый: 0517 = 1A97 : 1A97
Правый: 0517 = 1A97 : 1A97
Левый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Правый: Текст: СПИСОК УЧ-СЯ НА 93-94 УЧ.ГОД
Левый: 0923 = 5BC7 : 5BC7
Правый: 0923 = 5BC7 : 5BC7
Левый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Правый: Текст: СПИСОК УЧАЩИХСЯ К.Р.Э. (ПРОДОЛЖЕНИЕ).
Левый: 0517 = 1A97 : 1A97
Правый: 0517 = 1A97 : 1A97
Левый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ.
Правый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ.
Левый: 1C61 = EA09 : EA09
Правый: 1C61 = EA09 : EA09
Левый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ*
Правый: Текст: ЗАЩИТА АД ОТ ВНУТРЕННИХ ПОВРЕЖДЕНИЙ*
Левый: 1C61 = EA09 : EA09
Правый: 1C61 = EA09 : EA09
Левый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Правый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Левый: 0322 = 5DB0 : 5DB0
Правый: 0322 = 5DB0 : 5DB0
Левый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Правый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Левый: 0573 = 4423 : 4423
Правый: 0573 = 4423 : 4423
Левый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Правый: Текст: " 2-Е ГРАЖД. - ВОПРОС БЕЗ ОТВЕТА " #
Левый: 0322 = 5DB0 : 5DB0
Правый: 0322 = 5DB0 : 5DB0
Левый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Правый: Текст: ДВОЙНОЕ ГРАЖДАНСТВО ВОПРОСА БЕЗ ОТВЕТА.
Левый: 0573 = 4423 : 4423
Правый: 0573 = 4423 : 4423
Левый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Правый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Левый: 0316 = 8436 : 8436
Правый: 0316 = 8436 : 8436
Левый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Правый: Текст: РАСЧЕТ ГЕРКОНОВОГО РЕЛЕ.
Левый: 0316 = 8436 : 8436
Правый: 0316 = 8436 : 8436
Левый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Правый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Левый: 062B = 6459 : 6459
Правый: 062B = 6459 : 6459
Левый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Правый: Текст: ОПИСАН "ЕLITE" Л8 ВЕСЬ
Левый: 062B = 6459 : 6459
Правый: 062B = 6459 : 6459
Левый: Текст: "ЗУМРАД" СТР. 9-10,
Правый: Текст: "ЗУМРАД" СТР. 9-10,
Левый: 0D99 = F2DF : F2DF
Правый: 0D99 = F2DF : F2DF
Левый: Текст: "ЗУМРАД" СТР. 9-10,
Правый: Текст: "ЗУМРАД" СТР. 9-10,

Забавно, но 2 игры то без ошибок!

Левый: Монитор: COOKY COM
Правый: Монитор: COOKY COM
Левый: 0000..51EF = 49E7 : 49E7
Правый: 0000..51EF = 49E7 : 49E7
Левый: Монитор: HARIERCOM
Правый: Монитор: HARIERCOM
Левый: 0000..3CB0 = CF30 : CF30
Правый: 0000..3CB0 = CF30 : CF30
На слух косяков в них не было, попробую поиграть с константой загрузки и визуально просмотреть эпюру сигнала в редакторе звука...


В общем, на первой стороне остались только COSMAN.COM и E.COM. У них прям сыпятся биты. Запишу отдельно повторно, а пока займусь второй стороной...

Titus
05.03.2014, 13:42
В общем, на первой стороне остались только COSMAN.COM и E.COM. У них прям сыпятся биты. Запишу отдельно повторно, а пока займусь второй стороной...

Может покажешь в виде WAV'а, каким образом они сыпятся?

tnt23
05.03.2014, 13:55
Списки учащихся было бы интересно посмотреть, вдруг знакомые фамилии обнаружатся :)

HardWareMan
05.03.2014, 15:26
Может покажешь в виде WAV'а, каким образом они сыпятся?
Дома буду, перезапишу. Там видно будет. Длина файла не меняется, а вот биты в байтах некоторых меняются.

Вторую сторону добил, остался только рамфосовский блок с его форматом. По объявлению - монитор, но там следом и в обычном он идет и он считался, теперь думаю: тратить время на рамфос или нет? Там же частота выше, а кассете 20 лет, как никак. Получилось 48 файлов на 297 килобайт (дубли уже выкинул).

Titus
05.03.2014, 17:55
Дома буду, перезапишу. Там видно будет. Длина файла не меняется, а вот биты в байтах некоторых меняются.

По хорошему, все WAV'ы оцифрованные с кассет надо выкладывать в свободный доступ, если они не очень хорошо распознаются. Алгоритмы придумать можно, а вот кассеты со времем испортятся. Так что вавы оцифрованные в стерео 48КГц - это наше все.

HardWareMan
05.03.2014, 21:29
В общем, допилил я плеер еще раз (убрал фильтрующие емкости на входе АЦП) и все заверте... Складывать буду здесь (http://zx.pk.ru/showthread.php?p=684184#post684184), а в этом треде буду вести логи оцифровки.

Titus
05.03.2014, 22:03
В общем, допилил я плеер еще раз (убрал фильтрующие емкости на входе АЦП) и все заверте... Складывать буду здесь (http://zx.pk.ru/showthread.php?p=684184#post684184), а в этом треде буду вести логи оцифровки.

Так где же wav, который сыпется?)

HardWareMan
05.03.2014, 22:06
Так где же wav, который сыпется?)
Удален за ненадобностью. Информация же извлечена. Или вы сторонник хранить их в лосслесе?

Titus
05.03.2014, 23:11
Удален за ненадобностью. Информация же извлечена. Или вы сторонник хранить их в лосслесе?

Нет, если все совсем и правильно считалось, то можно стереть. Но речь там шла о каких-то несовпавших контрольных суммах. И вообще хочется посмотреть, как выглядит сигнал с 'посыпвашимися' данными.

HardWareMan
06.03.2014, 06:35
Нет, если все совсем и правильно считалось, то можно стереть. Но речь там шла о каких-то несовпавших контрольных суммах. И вообще хочется посмотреть, как выглядит сигнал с 'посыпвашимися' данными.
Да, в этой кассете все считалось на ура, а RAMFOSовский блок продублирован обычным форматом, поэтому я его не стал обрабатывать. Может, еще и стенограмму объявлений сделать? Туда же обычно записывают какие-нибудь пометки, например там объявляется на втором дубле "Пещера-10 с редактором, запуск редактора с адреса 1F00". А выглядит обычно: после длинного периода следующий затягивается на неопределенную величину (среднюю между 0 и 1). Т.е., примерно так:

Оригинал:
___---___------___---___
Считалось:
___---___------____---___
Я думаю, там просто смещение постоянки происходит, потому как тон одной частоты выглядит красиво. И смещает он только при появлении отличающегося периода среди длинной последовательности одинаковых, разнобой идет на ура. Тонкая подстройка константы (все же 48к не хватает для 100% распознавания, нужно 96к граббить и тогда подстройка константы становится достаточно тонкой) и компаратора решают.

Titus
06.03.2014, 07:30
Оригинал:
___---___------___---___
Считалось:
___---___------____---___
Я думаю, там просто смещение постоянки происходит, потому как тон одной частоты выглядит красиво. И смещает он только при появлении отличающегося периода среди длинной последовательности одинаковых, разнобой идет на ура. Тонкая подстройка константы (все же 48к не хватает для 100% распознавания, нужно 96к граббить и тогда подстройка константы становится достаточно тонкой) и компаратора решают.

Это не оригинал, а выход компаратора) А меня интересует оригинальный сигнал, оцифрованный аналоговый)

Я занимался написаниями распознавалками плохих записей для разных форматов (Спектрум, Львов, БК), и поэтому меня заинтересовывают такие темы, когда дело касается битых записей.

HardWareMan
06.03.2014, 15:19
Это не оригинал, а выход компаратора) А меня интересует оригинальный сигнал, оцифрованный аналоговый)
Ну ясен пень. Сигнал похож на эпюру из стартового поста. Смещение уровня относительно нуля из-за емкостей и, возможно, перемагничивания.

Я занимался написаниями распознавалками плохих записей для разных форматов (Спектрум, Львов, БК), и поэтому меня заинтересовывают такие темы, когда дело касается битых записей.
Понятно. Если будет еще особо плохой вариант - поделюсь исходным. ;)

HardWareMan
06.03.2014, 18:45
Новая кассета и новые давно забытые ощущения... На этой кассете присутствует мой голос, записанный более 20 лет назад! А так же, голос моего друга, который меня затащил в кружок. А еще, на ней программа-каталогизатор (раних версий), с помощью которой мы потом делали оглавления для кассет (в автоматическом режиме). Эту программу писали с другом на пару. А вот драйвер ROM диска писал я сам. И еще, я решил вкладывать сканы обложек кассет.
http://savepic.net/4822395m.jpg (http://savepic.net/4822395.jpg)
В предыдущую кассету вложу сразу, как только закончу эту.

Первая сторона кассеты влетела с пол пинка!

HardWareMan
07.03.2014, 08:29
Хьюстон, у нас проблемы... Файл "МИКРОПРОЦEССОР КР580ВМ80A, ЧУТЬ-ЧУТЬ #" убит и я не знаю, получится ли его восстановить.
http://savepic.net/4816062.png
http://savepic.net/4816053.png
Скопипастил сигналы слева и справа, чтобы уменьшить размеры потерь, и стал добавлять по одному перепадику слева. Добавив 1,5 периода получил следующее:
http://savepic.net/4802741.png
Стало понятно, что токен "+" там не в кассу и не хватает еще 2х байт. Заменил бит токена, стал добавлять байты. Причем по аналогии с соседями добавил сначала 32H "2" а затем 31H "1", т.к. прирост координат был по 10:
http://savepic.net/4806837.png
Взлетело с первого раза!

Правый 000: Бейсик "Практик": МИКРОПРОЦ_EССОР КР580ВМ80A, ЧУТЬ-ЧУТЬ #
Левый 000: Бейсик "Практик": МИКРОПРОЦ_EССОР КР580ВМ80A, ЧУТЬ-ЧУТЬ #
Левый 000: 08A8 = 9405 : 9405
Правый 000: 08A8 = EB32 : 290B
И проверка текста прошла на ура:
http://savepic.net/4787381.png
Вот такие вот сейчас ручные технологии восстановления данных. ;)

Titus
07.03.2014, 14:39
То, что на картинках можно восстановить скорее только ручками.

Почему такой странный сигнал вообще? Дисторшенный и ближе к меандру? На кассете такое быть не должно.

HardWareMan
07.03.2014, 15:37
То, что на картинках можно восстановить скорее только ручками.

Почему такой странный сигнал вообще? Дисторшенный и ближе к меандру? На кассете такое быть не должно.
потому, что стоят компараторы в батарейном отсеке. ;) Кассету распознал, правда в одной копии ПЗУ не стыковка а я уже удалил ВАВку. Домой доберусь и по новой считаю и выложу. Первую кассету я обновил кавером.

Titus
07.03.2014, 15:58
потому, что стоят компараторы в батарейном отсеке. ;) Кассету распознал, правда в одной копии ПЗУ не стыковка а я уже удалил ВАВку. Домой доберусь и по новой считаю и выложу. Первую кассету я обновил кавером.

Не надо делать компараторов, это все портит. Оригинальный аналоговый сигнал содержит всегда больше информации, особенно при помехах, которые, будь сигнал оригинальным, возможно, были бы отделимы от сигнала, и восстанавливать бы ручками ничего бы не пришлось.

Мое мнение - компаририровать сигнал - это терять большинство возможностей по восстановлению. Только оригинал.

HardWareMan
07.03.2014, 19:05
Возможно, но я не настолько крут в DSP, тобы анализировать. Да и 20 лет назад я помню много случаев, когда кассету на слух "жевало" жестко, а Спец хавал на ура. А что не хавал - мы пропускали через внешний компаратор с несколькими крутилками. ;) Так что у меня стойкое убеждение - компаратор все наше. А вот ежели будет безнадежный случай, тогда перезапишу другим магнитофоном классом повыше и в аналоге. И, конечно, обращусь за помощью.

Выложил вторую кассету.

Titus
07.03.2014, 19:16
Так что у меня стойкое убеждение - компаратор все наше.

Компаратор - это самый грубый уровень обработки.

Оки, выкладывай)

HardWareMan
08.03.2014, 23:18
Оки, выкладывай)
Вот тебе вызов. Очередная кассета и там есть проблемный файл.
http://savepic.net/4796344m.jpg (http://savepic.net/4796344.jpg)
Это игра Adventure. Один дубль вообще запорот, о чем сообщается в объявлении и на обложке. Второй вроде нормальный, но биты выпадают полностью, со сдвигом данных. Осилишь? Файлы. (http://hwm.mine.nu/adventures.rar)
А я пока вторую сторону обработаю.

PS Забавно, но в конце, где у Adventures идет чередование битов 1 и 0 (характерный тон для 55 или АА) в запорченном дубле идут непрерывно, а в более нормальном прерываются на какие-то данные. Т.е., дубли чем-то отличаются, возможно второй дубль выгружали после запуска игры и она себе что-то там нагадила.

Titus
09.03.2014, 06:07
Это игра Adventure. Один дубль вообще запорот, о чем сообщается в объявлении и на обложке. Второй вроде нормальный, но биты выпадают полностью, со сдвигом данных. Осилишь? Файлы. (http://hwm.mine.nu/adventures.rar)
А я пока вторую сторону обработаю.

Хм... Adventures_Bad.wav выглядит совершенно хорошим, за исключением пары мест, где, возможно, или какая-то склейка, или разовые импульсные помехи. Adventures_Very_Bad.wav - ужасен, одни высокие.

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

---------- Post added at 06:07 ---------- Previous post was at 06:04 ----------

Кстати, кинь описание формата кодирования данных для Специалиста.

HardWareMan
09.03.2014, 06:43
Вот те раз. У Специалиста, так же как и у РКшки и Ориона Манчестерский код (https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BE% D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1 %8F_%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D1%8B%D1% 85_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%BE%D0%B 2#.D0.9C.D0.B0.D0.BD.D1.87.D0.B5.D1.81.D1.82.D0.B5 .D1.80.D1.81.D0.BA.D0.BE.D0.B5_.D0.BA.D0.BE.D0.B4. D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5).

Titus
09.03.2014, 07:12
Вот те раз. У Специалиста, так же как и у РКшки и Ориона Манчестерский код (https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BE% D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1 %8F_%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D1%8B%D1% 85_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%BE%D0%B 2#.D0.9C.D0.B0.D0.BD.D1.87.D0.B5.D1.81.D1.82.D0.B5 .D1.80.D1.81.D0.BA.D0.BE.D0.B5_.D0.BA.D0.BE.D0.B4. D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5).

Манчестер в данном случае это не совсем айс, т.к. не ложится на те вейвлеты, которыми я пользовался для спектрумовских записей.
Я имею в виду подробности. Какой пилоттон, чего и как?

---------- Post added at 07:12 ---------- Previous post was at 07:08 ----------

Хотя, если подумать, может манчестер даже и лучше, но требует изрядной переделки алгоритма)

HardWareMan
09.03.2014, 09:58
Физика там простая - обычный манчестер. А логика еще проще: серия 0, потом все как описано тут (http://zx.pk.ru/showpost.php?p=683434&postcount=5). Так как свойство манчестера с самосинхронизацией позволяет получить как прямой так и инверсный код, то при приеме синхробайта если он был 0E6H, то все байты принимаются как есть, если он был 19H, то все байты перед сохранением инвертируются. Способ приема (подпрограмма загрузки вышеуказанных компов) следующий: ждем перепада, ждем константу загрузки, считываем бит. Повторяем. отличие режима поиска синхробайта от загрузки байта в следующем: при поиске синхробайта (счетчик бит 0FFH) подпрограмма после каждого принятого бита сравнивает с синхробайтом, а при загрузке байта (счетчик бит 08H) просто загружает 8 бит подряд. Из-за того, что при загрузке блока кодов между вызовами выгрузки байта есть несколько команд (увеличение указателей, сравнение на конец) то второй полупериод последнего бита в байте несколько удлинен. Поэтому звук раккорда (серия байтов 00H) слышится "рванной". Однако, при правильной синхронизации эти задержки попадают на аналогичные при загрузке файла и не влияют в реальном железе.

---------- Post added at 11:23 ---------- Previous post was at 09:25 ----------

Отрезал чисто игру Adventures и собрал статистику по длительностям полупериодов:

Загружено 8639781 сэмплов (34559124 байт).
Value: 9 Position: 26,895 Count: 1
Value: 10 Position: 26,519 Count: 2
Value: 11 Position: 41,316 Count: 2
Value: 12 Position: 26,819 Count: 3
Value: 13 Position: 5,684 Count: 519
Value: 14 Position: 0,000 Count: 17059
Value: 15 Position: 0,001 Count: 154455
Value: 16 Position: 0,001 Count: 144395
Value: 17 Position: 0,478 Count: 20661
Value: 18 Position: 0,026 Count: 9768
Value: 19 Position: 0,004 Count: 10190
Value: 20 Position: 1,373 Count: 4492
Value: 21 Position: 5,716 Count: 1798
Value: 22 Position: 5,789 Count: 518
Value: 23 Position: 29,255 Count: 3
Value: 28 Position: 56,909 Count: 1
Value: 29 Position: 1,399 Count: 243
Value: 30 Position: 1,375 Count: 11584
Value: 31 Position: 1,359 Count: 15509
Value: 32 Position: 1,360 Count: 24446
Value: 33 Position: 1,357 Count: 8902
Value: 34 Position: 1,362 Count: 1651
Value: 35 Position: 1,401 Count: 2915
Value: 36 Position: 1,379 Count: 5813
Value: 37 Position: 5,896 Count: 5037
Value: 38 Position: 59,742 Count: 51
Отчетливо видно, что граница между коротким и длинным у нас 23<LoadConst<28. Т.е., надежное число будет 25 или 26. Так же видны выпадающие из общей картины единичные полупериоды, попробую их проанализировать.

---------- Post added at 11:58 ---------- Previous post was at 11:23 ----------

Подправил и вот что получил:

Загружено 8639781 сэмплов (34559124 байт).
Value: 12 Position: 41,326 Count: 2
Value: 13 Position: 5,684 Count: 520
Value: 14 Position: 0,000 Count: 17061
Value: 15 Position: 0,001 Count: 154457
Value: 16 Position: 0,001 Count: 144398
Value: 17 Position: 0,478 Count: 20663
Value: 18 Position: 0,026 Count: 9770
Value: 19 Position: 0,004 Count: 10189
Value: 20 Position: 1,373 Count: 4490
Value: 21 Position: 5,716 Count: 1797
Value: 22 Position: 5,789 Count: 518
Value: 23 Position: 21,480 Count: 1
Value: 29 Position: 1,399 Count: 243
Value: 30 Position: 1,375 Count: 11584
Value: 31 Position: 1,359 Count: 15510
Value: 32 Position: 1,360 Count: 24448
Value: 33 Position: 1,357 Count: 8901
Value: 34 Position: 1,362 Count: 1650
Value: 35 Position: 1,401 Count: 2915
Value: 36 Position: 1,379 Count: 5813
Value: 37 Position: 5,896 Count: 5037
Value: 38 Position: 59,742 Count: 51

19L: 0000..79FF = 7712 : 766C
19R: FFFF..79FF = 0000 : 79FF

20L: 0000..79FF = 9BC1 : 766C
20R: 0000..79FF = 6FD2 : 766C

21L: 0000..79FF = C9AF : 766C
21R: 0000..79FF = C8D7 : EDD8

22L: 0000..79FF = 7E74 : 766C
22R: 0000..79FF = 4A58 : EDD8

23L: 0000..79FF = 4A58 : EDD8
23R: 0000..79FF = 4A58 : EDD8

24L: 0000..79FF = 4A58 : EDD8
24R: 0000..79FF = 4A58 : EDD8

25L: 0000..79FF = 4A58 : EDD8
25R: 0000..79FF = 4A58 : EDD8

26L: 0000..79FF = 4A58 : EDD8
26R: 0000..79FF = 4A58 : EDD8

27L: 0000..79FF = 4A58 : EDD8
27R: 0000..79FF = 4A58 : EDD8

Поведение на константах от 23 до 27 вполне предсказуемо. Ниже 19 и выше 27 файл не распознаваем.

HardWareMan
09.03.2014, 12:08
В общем, продолжу я кассету, а эту игру помечу как невосстановимая. Если на другой кассете она мне встретится - я ее сюда вставлю.

HardWareMan
09.03.2014, 14:21
Итак, третью кассету выложил, и тут же на следующей нашел ADVENTURE. Попробуем из нее вытянуть!
http://savepic.net/4830182m.jpg (http://savepic.net/4830182.jpg)

DDp
09.03.2014, 15:36
...в конце, где у Adventures идет чередование битов 1 и 0 (характерный тон для 55 или АА) в запорченном дубле идут непрерывно, а в более нормальном прерываются на какие-то данные. Т.е., дубли чем-то отличаются, возможно второй дубль выгружали после запуска игры и она себе что-то там нагадила.
Скорее всего так и есть - "мониторная" сумма совпала, но сама прога ругается. Если пропустить проверку суммы внутри программы, то запускается.


...на следующей нашел ADVENTURE. Попробуем из нее вытянуть!
Сравним...

HardWareMan
09.03.2014, 15:48
Сравним...
По звуку похоже на испорченный дубль, так что возможно даже оригинал. А чем "считал"?

Titus
09.03.2014, 15:57
По звуку похоже на испорченный дубль, так что возможно даже оригинал. А чем "считал"?

У него свои какие-то хитрые программы или способы, он не рассказывает)

HardWareMan
09.03.2014, 18:29
Обнаружена программа на бэйсике Service. Для понимания его формата я загрузил этот самый Сервис с другой кассеты вне очереди, прогнал ИДой, но так и не вкурил. Если у бэйсика Магика и практика тупо груз-им до 3х нулей подряд (первый 0 - конец строки и 2 следующих 0 это номер следующей строки, если он равен 0 то конец программы), а затем контролька, то у Сервиса контролек нет. Несколько раз распознал, что получилось то и воткнул в кассету.

Опять этот RAMFOS. Кто-нибудь может внятно объяснить его принцип кодирования?

Обманул я вас. Это не РАМФОС а Лэйаут. Библиотечка. У него походу свой формат, вот сижу и ковыряю.

Судя по коду, кодировка полным периодом, как у Спектрума. Однако, каждый байт имеет старт-бит (длинный период), затем 8 бит данных, причем 1 кодируется длинным периодом, а 0 двумя короткими а в конце два стоп-бита 0 (т.е. 4 коротких периода). Таким образом, у каждого байта своя синхра. Попробую получить сырец.

DDp
09.03.2014, 22:05
Лэйаут. Библиотечка. У него походу свой формат, вот сижу и ковыряю.
Судя по коду, кодировка полным периодом, как у Спектрума. Однако, каждый байт имеет старт-бит (длинный период), затем 8 бит данных, причем 1 кодируется длинным периодом, а 0 двумя короткими а в конце два стоп-бита 0 (т.е. 4 коротких периода). Таким образом, у каждого байта своя синхра. Попробую получить сырец.
Может не стоит так мучаться, а выложить wav?! :v2_dizzy_ironic:
Наверное, наоборот, длиный период - "0", два коротких - "1" (hint: "msx")

HardWareMan
09.03.2014, 22:12
Может не стоит так мучаться, а выложить wav?! :v2_dizzy_ironic:
Наверное, наоборот, длиный период - "0", два коротких - "1" (hint: "msx")
Может. Я не знаю, откуда они Лэйаут вытянули. Держи ВАВку, сделай мне коды и я еще одну кассету положу. Кстати, Адвенчура считалась на ура, скорректирую предыдущую вместе с добавлением новой. http://hwm.mine.nu/LAYOUT.RAR
И таки ты прав: 0 - длинный, 1 два коротких.
http://savepic.net/4821808.png

DDp
09.03.2014, 22:59
Держи ВАВку, сделай мне коды и я еще одну кассету положу.
Да, формат MSX.
Возможно, "свой" формат заголовка: 0A 03 [10 символов имени] 00 00 00 00
Скорость в тут 1450, у MSX - 1200.
Во вложении бинарник в MSXном формате CAS
и синтезированый из него WAV (скорость 1200).

HardWareMan
09.03.2014, 23:30
Все, положил в тему. Исправил Адвенчуру в 3й кассете.

HardWareMan
10.03.2014, 16:44
Следующие 2 кассеты насыщены работой. Первая это самый практичный бэйсик для "Специалиста" бэйсик "Практик" и уроки для него.
http://savepic.net/4823710m.jpg (http://savepic.net/4823710.jpg)
А вторая - текучая работа кружка 93/94 годов. Работы на бэйсике, тексты и коды.
http://savepic.net/4824734m.jpg (http://savepic.net/4824734.jpg)
Если на первой всего пара моих работ, то вторая просто кишит моими работами и работами на пару с кентом. Слушаю свой голос 20ти летней давности в объявлениях и плачу... Да и на вкладыше мой почерк все еще узнаваем...

HardWareMan
13.03.2014, 18:18
Присутствуют записи из РАМФОСа. Логический формат я нашел, а вот по физике пока нифига не понял из ПДФки. Кто-нить может дать внятное описание? Понятно что разные биты разным периодом, но попонятнее и точнее бы.

HardWareMan
14.03.2014, 07:00
В общем, решил расчехлить свой МХ2 и попробовать на железе.


Дизассемблировал выгрузку байта РАМФОСа. Физика оказалась простой. Если не брать в расчет тот момент, что есть компенсация задержки на выполненные команды (чего нет в обычном и я об этом говорил), то физика следующая.
1. Длинный период означает лог.0, а короткий - лог.1.
2. Раккорд это серия коротких периодов.
3. Каждый байт начинается со стартового бита, длинный период (лог.0?).
4. Затем идут 8 бит данных, причем "ногами вперед" (младший бит первый).
5. Следующим идет бит четности (по логике АЛУ ВМ80), причем если она лог.0, то просто выдается 1 длинный период, а если лог.1 то 2 коротких периода.
6. Завершает его стоповый бит, короткий период (лог.1?).
7. Каждый блок кодов начинается с раккорда, затем 2 байта длины (младший вперед) и потом сам код.

При этом никаких контрольных сумм не вычисляется, т.к. каждый байт содержит четность. В случае ошибки, сам рамфос прерывает чтение, а мы можем попробовать продолжить анализировать входящий поток, уменьшая потери вплоть до 1 байта. Это все крайне не очевидно в дизассемблировании от Винксру. Надо теперь написать анализатор.
Вот руками раскидал заголовок и все сошлось:

0 1 1 1 1 0 0 0 0 1 1 1 X 0F 15
0 0 0 0 0 0 0 0 0 1 1 1 X 00 0
0 1 1 0 0 1 0 1 1 0 1 1 D3 .
0 1 1 0 0 1 0 1 1 0 1 2 D3 .
0 1 1 0 0 1 0 1 1 0 1 3 D3 .
0 0 0 1 1 0 0 1 0 0 1 4 4C L
0 1 1 1 1 0 1 1 0 1 1 1 5 6F o
0 1 0 0 0 0 1 1 0 0 1 6 61 а
0 0 0 1 0 0 1 1 0 0 1 7 64 d
0 0 0 1 0 0 0 1 0 1 1 1 8 46 F
0 1 1 0 0 1 1 1 0 0 1 9 73 s
0 1 1 0 1 0 1 1 0 0 1 A 6B k
0 0 1 1 0 1 1 0 0 1 1 1 B 36 6
0 0 0 0 0 0 1 0 0 0 1 C 20
0 1 0 1 0 0 0 1 0 0 1 D 45 E
0 0 0 0 1 1 0 1 0 0 1 E 58 X
0 1 0 1 0 0 0 1 0 0 1 F 45 E

HardWareMan
14.03.2014, 13:48
Так, успешно распознан первый файл (вместе с проверкой четности байтов!). Едем дальше.

В общем, формат RAMFOSа побежден и кассета №5 распознана полностью. Формат оказался настолько примитивен, что программка взлетела с полпинка. Так же, в виду того, что тут работа с целыми периодами, я применил свои старые наработки, которые использовал лет 13 назад для записей Спектрума. Например, работает автоматическое определение константы. В этой кассете присутствуют записи из RAMFOS. Т.к. формат отличается, я вместо RKS решил обозвать RFS. Внутри так же, как и у RKS побайтная копия ленты. Приступаю к 6й.

HardWareMan
14.03.2014, 21:08
Добавлена 6ая кассета. Программа считывания эволюционирует. И кассета №6 уже была распознана из сырца без какой-либо обработки в звуковом редакторе. Несмотря на "выпадания" блоков в одном канале, программы нормально считывались в другом (там даже на слух были "потертости" в одном из каналов). Так что все файлы данной кассеты распознаны за один проход! Качаем, наслаждаемся.

HardWareMan
15.03.2014, 16:56
Очередные три кассеты на подходе.
Рабочая 4: Много прикладных программ
http://savepic.net/4881509m.jpg (http://savepic.net/4881509.jpg)
Кассета Бейсик №5: Снова бейсик, но есть вкрапления софта для Ориона
http://savepic.net/4868197m.jpg (http://savepic.net/4868197.jpg)
Кассета Long Save 6: игрушки с автозапуском и заставкой (по сбросу)! И прикладной софт.
http://savepic.net/4873317m.jpg (http://savepic.net/4873317.jpg)

Вообще, я помню мы на занятиях частенько набирали какие-то коды, тексты и потом сохраняли на ленту. Лично я помню что набирал такие вещи как "Монитор открывает окна" и "Penx". Всякие описания в редакторе текстов "Практик" страницами. Занятие длилось 3-4 часа, если заданием было набрать некий отрезок кодов или текста, то чем быстрее его наберешь, тем больше времени останется поиграть. Денег за посещение кружка не брали. Вскоре, мы с другом приловчились набирать коды в паре так быстро, что у нас уходило не более 40 минут. Остальное время - свободное. По началу, конечно, резались в Lode Runner, Down To Earth, Алмаз (аналог Boulder Dash), КОРТ (аналог Арканоида) и пр. Потом надоело и начался процесс созидания. Препод это запалил и в какой-то момент освободил нас от набора. Так что под конец, мы просто приходили и занимались любимым делом. И результатами этих занятий были разные полезные программы, например программа-лупа, которая увеличивала картинку на целое число непосредственно перед печатью на принтер и не занимала много памяти. Или расчет трансформаторного блока питания на бейсике (было в предыдущих кассетах), который много раз меня выручал, так как рассчитан на намотку "внавал". Надеюсь, я все это найду на этих кассетах.

Pyk
12.01.2019, 17:15
HardWareMan, можешь заново выложить архив кассет?
В частности образцы файлов *.rfs интересуют...

HardWareMan
12.01.2019, 19:46
Pyk, для этого есть профильная тема (https://zx-pk.ru/threads/22900-arkhiv-kasset-dlya-lk-quot-spetsialist-quot-kruzhka-radioelektroniki-doma-pionerov-g-pavlodar.html).