![]() |
Уже поднимался вопрос с CSW, но ничем не закончился, может все же его реализовать?
---------- Post added at 14:43 ---------- Previous post was at 14:42 ---------- Проблему размера WAVов это в значительной степени решит. ---------- Post added at 14:44 ---------- Previous post was at 14:43 ---------- Или, как вариант, добавить прозрачную для пользователя распаковку wavов из zip или rar. |
Я делал, как-то, эмуляцию битиков, но для РК86, Юниора и Спекки. Именно поэтому кроме .wav в диалоге открытия файла для эмуляции кассеты есть *.rk, *.bt и *.tzx Однако нужно учитывать скорость записи битов, формат кодирования байта и формат синхро-последовательности с синхробайтом. В принципе, нет ничего невозможного.
|
Quote:
|
Quote:
К слову, ранее выложенный файл testtp.cas я сделал в твоем же конвертере, записывая байт передаваемый процедуре OutByte в отдельный файл. |
Неупакованный CSW (первой версии) можно добавить, а распаковщик (для второй версии) мне показался уж очень объёмным, не хочется добавлять к эмулятору лишние пару десятков килобайт... Хотя упакованный CSW, как правило, раз в 7-8 компактнее.
|
Можно сконвертировать wav в формат где каждое состояние компаратора будет описыватся одним битом, тогда удастся уменьшить размер образов касет как минимум в 8 раз, это я могу в будущем реализовать, но это ничего общего с существующим cas форматом иметь не будет.
|
Quote:
http://pic.ipicture.ru/uploads/091117/OhK9MP23a2.gif |
Quote:
|
Ramiros, ну а почему бы и нет, необязательно ведь следовать строго старому формату cas, главное чтоб это работало, грузилось как положенно и весило мало.
|
Quote:
Например для Вектора описан таким образом -- ФОРМАТ MON --------------------------------------------------------------- Формат записи на магнитную ленту директивой Монитора W следующий: 1. Вначале записывается заголовок MON и имя файла: - header 256*0h байт; - синхробайт 0E6h; - 4*0D2h байт; - имя (до 11 байт); - 3*0h байт. 2. Далее пишется сам файл: - header 256*0h байт; - синхробайт 0E6h; - ст., мл. байт адреса начала; - ст., мл. байт адреса конца; - байты файла; - 1 байт контр. суммы всех байтов без переноса. Вроде бы всё просто. В чём проблема реализовать это? По-моему формат где каждое состояние компаратора будет описыватся одним битом не сильно отличается от того, что я предлагаю сделать, а практически то же самое. |
а чем этот CSW можно получить?
|
наверно пока ничем.
конвертер нужен |
Да был вроде конвертор гдето, Wav2rom там помоему такое было, но где его взять? у себя я его чето ненахожу, походу затер :(
|
1 Attachment(s)
вот утилита wav2rom у меня сохранилась.
|
CSW 1.30, там формат описан (все просто). Это первая версия csw (я и не знал, что вторая есть). Хотелось бы вторую, со сжатием, надеюсь b2m подскажет, где найти описание, утилиты и исходники.
Пробовал прогу на бейсике в csw, потом обратно в wav (csw преобразует .csw в .voc, но это не проблема) - читается. |
|
1 Attachment(s)
Блин, чёто не гуглится, выложу тут.
|
b2m, дай рекомендации по настройке секции "cas : tape-recorder" в конфигурационном файле.
Например, для монитора-отладчика (который зашит в загрузчик, вызов F4+ВВОД+БЛК) я сделал следующее: biproc[F840-F889]=rk biproc[F840-F889].check="C5D50E0057DB01E610" boproc[F89B-F8C4]=sp boproc[F89B-F8C4].check="C5D5F5573E0232FCFF" Если использовать в конфиге перехват только для записи или только для чтения, то все ОК. Но если одновременно оба, то запись командой W работает, но вот при чтении файлов командой R монитор вызывает также процедуру по адресу F89B, что вызывает сначала диалог "Сохранить как...", а уже после него появляется диалог "Открыть", но в итоге файл грузится с ошибкой. Как настроить конфиг в этом случае? Также есть ряд вопросов для уточнения: 1. Что означает rk (формат рк86?), ag (Агат?), sp ? Какие еще есть? 2. Почему для Вектор-бейсика при чтении "rk", а при записи "sp"? А в Радио-86РК "rk" в обоих случаях - и на чтение и на запись. 3. biproc, boproc - input/output бинарных файлов? 4. tiproc, toproc - input/output токенизированных файлов? 5. iproc,oproc -? 6. tproc - ? |
Есть ещё одна фича: просто перепрыгнуть код - это tproc, при помощи её можно обойти этот ненужный CALL.
По поводу вопросов: Я сам путаюсь, и постоянно лезу в код, чтобы найти подходящий вариант :) Для biproc и boproc это способ передачи параметров, т.е. в каком регистре будет байт, нужен ли поиск синхробайта. Обычно это весьма специфично для каждого компьютера и формата файла, поэтому есть уже такие варианты: rk, sp, mx, zx, bk, bkm, ag. Догадаться, какой для какого компьютера - не сложно :) tproc - пропуск кода (обычно запись/чтение синхро-тона, которого в файле обычно нет) iproc,oproc - чтение/запись блока (HL-начало, DE-конец, BC-контрольная сумма) biproc, boproc - чтение/запись байта (параметры определяются типом, указанным после "=" ) tiproc, toproc - поиск-пропуск/запись синхробайтов, т.е. если формат файла предусматривает "магические" байты для обозначения синхро-тона. |
Quote:
|
biproc[]=rk
на входе: А - максимальное количество считываемых бит, либо 8 для нормального чтения, либо 255 для поиска 0xE6 на выходе: А - считанный байт boproc[]=rk на входе: C - записываемый байт запись в файл производится только после получения 0xE6 biproc[]=sp на выходе: А - считанный байт boproc[]=sp на входе: A - записываемый байт запись в файл производится только после получения 0xE6 biproc[]=mx на выходе: А - считанный байт boproc[]=mx на входе: C - записываемый байт запись в файл производится сразу ---------- Post added at 17:00 ---------- Previous post was at 16:57 ---------- Quote:
|
Quote:
---------- Post added at 17:08 ---------- Previous post was at 17:07 ---------- время уфимское :) |
Для монитора-отладчика получилось сделать таким образом:
Code:
cas : tape-recorder { |
ivagor, да где?!!
На сайте архив от 04.11.2009, ни в одном из конфигов строчка "rkb" не встречается! З.Ы. Мы тут не про расширение файлов, а про настройки конфигов беседуем :) |
Сделал поддержку формата CSW версии 1.х
У меня такой вопрос - сделать чтобы при открытии файла ленточного образа плейер стартовал автоматически, или оставить как есть - в ручном режиме по Alt+F6 ? |
Версия 04.11.2009 (как и более ранние) поддерживает rk?, а здесь есть rkb. Ты же не будешь отрицать, что:
1. Файлы rkb существуют (причем на твоем сайте) 2. Их можно загрузить и запустить в твоем эмуляторе, т.е. он их поддерживает :) |
Quote:
Кстати, использовать точку с запятой в качестве обозначения комментария - это не моя идея, но придётся наверное добавить :) ---------- Post added at 17:32 ---------- Previous post was at 17:31 ---------- Quote:
|
Quote:
Здорово бы еще добавить опцию для автоматического ускорения на время воспроизведения csw. ---------- Post added at 17:39 ---------- Previous post was at 17:34 ---------- b2m, тогда такой вопрос (я его и хотел сразу спросить, но не туда уехал :) ) - может для Старта-1200 отдельное расширение ввести? |
Эмуляторов Старта-1200 не много, предлагай :)
|
Quote:
str ves vst :) v12 и т.п. ---------- Post added at 17:54 ---------- Previous post was at 17:50 ---------- или .vs, тогда еще место для b остается. |
А много ли файлов для Старт-1200 существует?
|
Quote:
Code:
cas : tape-recorder { |
Quote:
Quote:
Кстати, любая строчка, в которой нет символов {}= считается комментарием, так что точку-с-запятой даже не обязательно ставить :rolleyes: |
Quote:
---------- Post added at 17:45 ---------- Previous post was at 17:05 ---------- b2m, а как насчет варианта boproc[]=??? на входе: A - записываемый байт запись в файл производится сразу есть такой? |
ivagor, полностью с тобой согласен, лучше добавить в эмулятор опцию загружать файлы автоматически или же стартовать потом, ускоренная загрузка тоже не помешает.
Tim0xA, так какой формат будет поддерживаться, cas или csw ? или другой сделаете, например какойнибудь vcs |
Quote:
|
Quote:
|
Quote:
|
Сделай себе "преамбулу" и копируй её и записанный файл в третий файл "с преамбулой" командой copy /b :)
|
Готова новая версия. Сделана поддержка формата CSW версии 1.х, введена опция автопроигрывания при открытии, а также форсирования CPU Speed на время загрузки.
Если включить Auto Run, и отключить эмуляцию FDD (поставить галку Without FDD Controller) то образы ленты достаточно только открыть, а все остальное эмулятор сделает автоматически. Много полезного написал в мануале, советую почитать. Кстати в конверторе CSW13.EXE обнаружился один глюк (в данном случае безобидный) - если длинна одной полярности более 255 точек, то в образе она представлена последовательностью $00+4 байта(само значение), так вот эта последовательность зачем то дублируется 3 раза, что увеличивает паузы соответственно тоже в 3 раза. ---------- Post added at 11:49 ---------- Previous post was at 11:47 ---------- Tim0xA, Обнови эмуль |
| All times are GMT +4. The time now is 23:41. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.