Я так и делал, короче отослал прошивку - будем ждать результат
Вид для печати
Mick,XobbiMan
Итоговый вариант
bsave"rom",0,&H3FFF,0
Набрав на железяке после выгрузки bload?"rom" и подав на ее вход записанный сигнал можно самому проверить правильность записи.
Насчет выгрузки ПЗУ
bsave"rom",0,&H3FFF,0
bload?"rom"
Mick,XobbiMan
Вопрос из чистого любопытства.
Если я правильно понял (но может я понял неправильно :)), вы оцифровываете в PC через микрофон. Почему бы не спаять шнурок?
Сам искал нормальную документацию, не нашел (может b2m знает где есть).
Кое что можно посмотреть здесь
http://ru.msx.org/forumtopic8168.html
Там же есть ссылка на исходники castools, но это для сильных духом :) (я, например, не смотрел).
Но применительно к ПК8000 все несколько проще, здесь нет многофайловых cas, и cas файл для ПК8000 состоит (упрощенно) из 2х частей (в общем случае не совсем корректно объединять заголовок cas и заголовок файла внутри cas, но для простоты можно не обращать на это внимания)
1. Заголовок (если выгружали из эмулятора b2m или blueMSX, то длина заголовка 38 байт, если cas получен с помощью castools, то длина заголовка 46 байт).
В заголовке наиболее интересны (для бинарных файлов) последние 6 байт - это начальный адрес, конечный адрес+1 (это для ПК8000, для msx без +1), стартовый адрес. Немного раньше в заголовке еще есть имя файла.
2. Остальная часть cas (c бинарным файлом!) - это копия участка памяти.
Еще раз подчеркну, сказанное справедливо для cas содержащих 1 файл.
Mick,XobbiMan
Понял, насчет использования вами микрофона я ошибался :v2_blush:, вы оба использовали микрофонный вход. Просто я бы однозначно сразу воткнул в линейный (или сигнал слабоват?), микрофонный все-таки шумнее.
Я недавно занимался оцифровкой кассет от Вектора и выяснилось, что намного лучше записывать звук в режиме СТЕРЕО, т.к. на этапе захвата звука запись в режиме МОНО вносит свои искажения из-за смешения информации из разных каналов. К тому же не всегда известно, на каком магнитофоне была осуществлена запись, в стерео или моно режиме, как был установлен уровень записи? В итоге одна из дорожек может быть реально лучше, но этого мы не узнаем при захвате в МОНО! При записи в режиме СТЕРЕО реально видно в редакторе каждый канал, можно оценить уровень записи и даже провалы из-за помех! К тому же за один рип получается сразу два варианта загрузки, если один канал не пошел - берем второй без повторного прогона кассеты. Я именно таким образом оцифровал недавно все кассеты с играми на BASIC при помощи утилиты Виктора Пыхонина. Захват делал в Sound Forge. Изначально брал канал с более высоким уровнем записи, если не получалось, брал второй, если и тогда не получалось, делал нормализацию сигнала до -6дБ или вообще заваливал уровень "выше крыши". В итоге с двух 90минутных кассет не оцифровалась только одна игра, но там пленка пожевана была. И кассеты были TDK, время подтвердило их качество.
Эта рекомендация конечно же бессмысленна, если делать захват при помощи моно-микрофона :-(
На этой неделе
(на выходных все что смог оцифровал каждую сторону кассеты в wav, теперь надо резать и каждый файл заводить в эмулятор, записывать из него в wav, натравливать wav2cas, Бейсик-программы буду записывать с командой CSAVE - так быстрее)
Добавлено через 5 минут
Tim0xA,
Спасибо за рекомендацию (вдруг на стерео-плеере надо будет считывать).
Но в моем случае, магнитофон чистейшей воды моно - Легенда 404М.
Все, главным образом, зависит от кассеты (а они все советские), заметил, что Тасма кассета на 90 минут считалась без проблем, и уровень шума был гораздо меньше, чем в той же Тасма 60 минут - скорей все в 90 минут была импорная пленка.
Короче сделал я так, железка мне ответила OK. Castools - ни в какую не хочет понимать.
Дословно привожу мой диалог с Сурой:
Я -> out &H80,204
Сура -> OK
Я -> bsave"SURA",32768,&HBFFF,0
Сура -> немножко подумав(162секунды) OK
Я -> bload?"SURA"
Сура -> Found:SURA
Сура -> немного подумав(теже 162 секунды) OK
Это говорит что файл то нормальный.
Mick, тогда этот wav шли b2m - он его точно преобразует
Mick
castool более привередливый, более вероятно считать в эмулятор. Если считается, то записать (как с реала, только без out) и уже сохраненный из эмулятора подсунуть castools.
Ага, блин, включает, только это не то ПЗУ, которое по адресам 0000h-3FFFh. Короче, файл, присланный Mick-ом содержит лишь одни FFh. Странно, что у него не возникло подозрений: при прослушивании звук уж слишком монотонный :)
Короче, Mick, запиши как раньше, 0000h-3FFFh, тем более, что после обработки этот файл прекрасно конвертируется при помощи wav2cas.
Короче еще раз попытался считать. Один фиг пишет Verify error.
Вял тупо набрал программку
10 for i=0 to 16384
20 x=peek(i)
30 poke(32768+i),x
40 next
Записал из этой области - один фиг Verify error.
Я уж и Gold Wave попробовал - результат тот же.
Короче наверное через кассету наверное придется - хотя фик его знает. Отослал b2m на всякий случай - может прочтет.
Вобщем, как и в первый раз, не больше полкилобайта. Но эти первые полкила в точности повторяют xobbi.rom. Такое предложение: сделать наоборот. Вот файл, который нужно сконвертить в wav и загрузить на реальной Суре, а затем при помощи басика сравнить области 0000-3FFF и 8000-BFFF, и выдать на экран адреса и несовпадающие байты.
XobbiMan, отличий не найдено :)
Наверное, я что-то пропустил. Был rom Хобби, Mick при сравнении нашел ошибку по адресу 3d14 (было 90 должно быть 80), после исправления проходит бейсиковский тест. Почему исправленный rom Хобби должен называться sura.rom?
Снимаю предыдущий вопрос, похоже правильный ответ - потому что они одинаковые и все равно как их называть.
В связи с тем, что обозвали мои wavы нехорошоми словами :) собрал для эксперимента входной формирователь(компаратор) магнитофона от Суры. Для начала я пропустил готовый cas файл для контроля правильности сборки. Действительно на осцилографе четко прослеживаются уровни. Еще раз вечером подготовлю ПЗУху с Суры. И буду сравнивать.
Пустил wavик от Апогея - такой пушистый сигнальчик, но компаратор четко срабатывает. Думаю приблуду на AVR соорудить - декодер так сказать. Посмотреть что будет :)
А на ноуте у меня только вход микрофона и усё.
Mick, может действительно GoldWave попробуешь? Виндовый sndrec32 с точки зрения записи, имхо, не лучший выбор...
Я пробовал и тем, и тем. Одна фигня. Сегодня запишу еще раз, и попробую поисследовать сигнал. Может он еще куда нибудь сгодиться :)
Кстати как сказано было здесь есть косячок при загрузке на реале файлов после преобразовании castoolsом, когда грузишь командой load.
Реал ждет те самые конечные нули, а их нема - приходится повторно запускать воспроизведение, чтобы начальных нулей хватило для завершения загрузки. Это отчетливо прослеживалось на программе Test.cas.
b2m, А можно сделать плугин или примочку к эмулятору? чтобы в нем самом перегонять wav2cas и cas2wav, или кнопка переключания, во время работы эмулятора - либо cas либо wav - тогда например, загружаем как cas, а выгружаем как wav и наоборот. Потому что формат созданный Вашим эмулятором самый верный.
Mick
Т.е. это касается только бейсиковских программ загружаемых по load, преобразованных castoolом? Выгруженные эмулятором b2m такие программы загружаются на реал нормально?
То, что загружается по cload и bload всегда загружается нормально (независимо от создания в b2m или castools)?
Добавлено через 2 минуты
XobbiMan
Есть долгий и неудобный вариант, но он не требует доработки эмулятора (это его единственное достоинство :)).
Берешь cas, преобразуешь castoolом в wav, загружаешь wav в b2m, выгружаешь wav из b2m.
Есть вариант побыстрее: сделать конфигурацию, в которой считывается cas, а записывается wav. Я, например, аналогичную конфигурацию (считывается wav, а записывается cas) использовал для конвертации присланных мне wav, да и ivagor, по-моему, тоже. :) Это нечто среднее, между двумя существующими. Если их сравнить, то несложно догадаться, как это сделать. Просто в такой конфигурации будут оба "устройства", а перехват либо чтения, либо записи - удаляется из конфигурации.