Да и мой будет циклиться. На входе же вечный 0, сигнала нет.
Да и мой будет циклиться. На входе же вечный 0, сигнала нет.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А у меня эмулятор EMU от b2m нормально читает оба типа RKS-файлов и по директиве I и по директиве R. Естественно также нормально читает и WAV-формат. Вот только не пишет в WAV-формате.
Может быть дело в версии EMU, у меня вообще старая версия 1.01 из 2011 года. Привожу скриншот экрана с эмулятором B2M с указанным конфигом и на дампе видно, что монитор непатченный. И как видите и введённая программа работает.
А нельзя ли сделать версию эмулятора, чтобы звуки выводил на PC Speaker, а магнитофонный ввод/вывод делал через LPT-порт ?
Последний раз редактировалось barsik; 29.12.2017 в 09:26.
barsik, А не мог бы высокоуважаемый (джин) опубликовать схему турбо для Специалиста?
на 2.5 мгц которая, на одной ТМ2
Нет, там вроде не надо было так извращаться. Посмотрел конфиги, нашел такое как минимум в ПК8000. Может ещё где-то было.
- - - Добавлено - - -
Я, конечно, не настаиваю, но пользоваться настолько старой версией не рекомендую. Как минимум из тех соображений, что у большинства пользователей (вероятно) гораздо более поздние версии и сравнивать работу эмулятора было бы не корректно. Возможно в той версии и был косяк с записью в wav, но я что-то не припомню.
Очередная версия 4.0.277 от 30.12.2017:
Windows-сборка:
http://emu80.org/v4beta/Emu80_40277.zip
Исходники:
https://github.com/vpyk/emu80v4
Изменения в версии 4.0.277:
Легенда:
+ Нововведение
* Изменение / улучшение
- Исправлен баг
! Известная проблема
+ Конфигурация для ПК "Лик"
+ Загрузка rks-файлов в формате с именем по Alt-F3 и Alt-L
+ Новая команда U в отдадчике: пропуск текущей команды без выполнения
+ Параметр громкости "emulation.volume" добавлен в конфигурационный файл
+ Два новых параметра "cpu.debugOnHalt = yes" no и "cpu.debugOnIllegalCmd = yes" для выхода в отладчик по команде HALT
и по недопустимому коду команды (для i8080) соотвтетственно (можно добавить при необходимости в конец conf-файла)
* Модифицирован Монитор РК-86 для запуска РК-ДОС по директиве U
* Вместо клавиши Alt в комбинациях клавиш может быть использована клавиша Win (Meta). Может быть полезно в Linux.
* В знакогенераторе РК знак "$" заменен на знак денежной единицы "¤"
* Изменено поведение эмулятора при отказе от выбора файла при обмене с магнитофоном: временная отмена перехвата
+ Ограниченная поддержка записи wav-файлов
+ Чтение либо запись wav при выборе его вместо rk
+ Новый параметр конфигурации "Ускоерние при воспроизведении WAV", позволяющий задать коэффициент ускорения работы
эмулятора при загрузке wav-файлов. В глобальном ini-файле ему соответствует параметр "wavReader.speedUpFactor".
- Исправлена ошибка, возникавшая при выходе из эмулятора с установленными точками останова
- Исправлена работа управляющих клавиш УС, СС и РУС на Микро-80 и ЮТ-88
- Исправлена запись rks-файлов на Специалисте
- Исправлена загрузка некоторых wav-файлов, выдававших ошибку при открытии
- Пропатченый Монитор Специалиста заменен на оригинальный
- Внутренние изменения
Небольшое пояснение по работе с wav-файлами: загрузить wav-файл можно либо, как раньше, через Alt-W, либо выбрав wav-файл в
ответ на запрос имени файла, выдаваемый по директивве ввода с магнитофона. Аналогично, при запросе имени файла, запрашиваемого
по директиве вывода на магнитофон, можно задать имя файла с расширением wav: в таком случае вместо rk* будет записан wav-файл. В
wav-файл попадает только сигнал вывода на магнитофон, другие звуки не записываются.
- - - Добавлено - - -
zx_, для включения периодических прерываний в "Специалисте" добавьте в конец конфигурационного файла следующие строки:
Здесь 7 - это номер вектора прерывания (rst 7), а 50 - частота прерыванийКод:PeriodicInt8080 periodicInt = &cpu, 7, 50 periodicInt.active = yes
Естественно сразу поставил своё ПЗУ. С орловским ПЗУ вообще ничего невозможно вводить в WAV, т.к при WAV ввод долгий и нет никакой индикации, - неясно идёт ввод или завис. Использовал своё ПЗУ с байтом C9 по адресу CEDF.
Есть улучшения по реакции на СБРОС, хотя логика страдает. Эмулятор сам должен понимать, что когда я выбрал файл с расширением WAV, то и вводить надо звуки, а когда с расширением RKS, то готовые коды.
А при вводе по директиве I стало чуть ли не хуже. Обьясните как вводить по I WAV-звуками.
Вот смотрите. Если я нажимаю I, затем <ВК> и на запрос "Имя файла:" снова нажимаю <ВК>, то открывается окно, где я могу выбрать только файл RKS. Если же я на запрос имени файла перед нажатием <ВК> нажму АЛЬТ-W и выберу WAV-файл, то это снова не поможет. Т.к во-первых, я могу просто не успеть нажать на <ВК>, а во-вторых, это не срабатывает, - по нажатию <ВК> второй раз открывается окно на запрос имени файла и не ясно ждёт он RKS или WAV. Надо чтобы после АЛЬТ-W уже никакие окна не открывались и нужна индикация о том, что идёт ввод с WAV-файла (например, хотя-бы значок магнитофона из 2-х кружков на балке, а лучше индикатор "градусник" показываюший ход процесса).
В общем, помыкался по разному, но WAV-файл предназначенный для ввода по I так ввести и не смог. А у меня все МГ-записи в нормальном формате, т.е в формате с именем. В формате без имени файлы никто не хранил на кассетах, т.к это очень неудобно.
И по-прежнему остаются WAV-файлы на которые эмулятор пишет, что у них неправильный формат.
Многоблочные программы уже можно вводить, как в формате RKS (естественно без имени, т.к только формат без имени грузится по сбросу), так и в формате WAV. Вскоре сделаю многоблочную программу RKS, хотя необходимость всё делать через LDBYTE и блоки только с синхробайтом E6, сильно ограничивает.
Проблема в том, что в хитрых подпрограммах ввода во время ввода байта процессор делает полезную работу. Например, имитирует ввод в экран как на Синклере. А в эмуляторе это невозможно, т.к реальной процедуры ввода нет. Потому, что-то делать во время МГ-ввода в эмуляторе процессор может только в паузе между блоками, а не во время самого ввода. Что-то существенное во время пауз не сделать и это тормозит. Потому формат в кодах для многоблочных программ для эмулятора бесполезен. Т.е многоблочные программы могут быть только WAV, что резко снижает ценность, т.к WAV слишком большие по объёму, чтобы их хранить.
Заметил, что создаётся копия Emu80, занимающая ~4 мб памяти, если происходит неудачный старт эмулятора. Например, если удалить каталог какого-либо компьютера, а затем запустить его. Тогда что-то грузит, но не стартует, а в диспетчере процессов остаётся процесс Emu80. Т.е в случае неудачи старта Emu80 себя не удаляет из памяти. Это часто происходит, когда редактируешь конфиги или когда все каталоги ненужных компов поудалять из папки EMU80.
Причём если этот недо-удалённый процесс Emu80 "убить" в диспетчере процессов при второй работающей копии Emu80, то происходит сброс компьютера. Если удалить, когда другая копия Emu80 не работает, то сброса не будет. Наличие недо-убитых копий в памяти вдвое тормозит реакцию на клавиши. На Специалисте это ещё не заметно (точнее надо 2-3 недоубитых Emu80, чтобы так же тормознуть), а вот при РК86 просто пропадают нажатия на клавиши уже при одном недоубитом процессе.
Мне это не особо важно, но для адаптаторов ZX-игр это знать надо.Сообщение от Pyk
По какому сигналу (фронту) срабатывают прерывания: по КСИ, по началу кадрового гашения или "от балды"? В моём эмуляторе для MSDOS это было сделано "от балды", т.е момент прихода импульса запроса прерывания определялся не по реальному времени, а по прогону определённого числа команд (7800 команд). Время прогона 7800 команд при среднем числе тактов в командах это примерно 20 МСЕК, что и даёт 50 ГЦ,
Понятно, что если это 7800 команд NOP (4 такта), то это короткий период между прерываниями, а если это (гипотетически) 7800 команд EX (SP),HL (19 тактов) или тем более LDIR, то период между запросами прерываний будет в тысячи раз больше. Но т.к программы из 7800 команд LDIR стоящих подряд не встречаются, то и проблем не было. Игры с прерываниями прекрасно работали.
- - - Добавлено - - -
И по-прежнему нельзя изменять флаги процессора. Это свойство любого отладчика. Директива X должна сразу переходить на редакцию флагов. Жалко, что шагание только по F7, я привык к T (так во всех отладчиках в мире, зачем нарушать традицию?).
Специально для фанатов мнемоники КР580 (временно, потом удалю) выкладываю отладчик DDT для CP/M работающий с Z80, но в мнемонике INTEL. Это та же мнемоника что выдаёт DISASM, если указать, что есть Z80 команды (и ассемблеры такие есть). По директиве L посмотрите какой-нибудь код для Z80 и увидите какие уродские мнемоники получаются для Z80, если использовать мнемоники Intel.
Если у Вас Win XP, то можно запускать прямо из Win XP под TSR эмулятором 22NICE. Если же Ваша Windows неспособна к программам MSDOS, то придётся пользоваться DOSBOX. Кстати, 22NICE и другие TSR эмуляторы CP/M не всегда помогают. Например, компилятор PLMX приходится использовать только в эмуляторе ОРИОНА, т.к под TSR-эмулятором MSDOS он не работает. Это происходит с программами, которые лезут в Allocation Table CP/M или напрямую работают с байтами FCB.
Последний раз редактировалось barsik; 31.12.2017 в 12:27.
barsik, спасибо за оперативный отзыв.
Во-первых, должен сказать, что я все тестировал с орловским Монитором. Увы, с петербургским, в том числе и патченым, не все работает, и я пока, честно говоря, толком не разбирался почему. Будет время - посмотрю.
Для этого я и сделал ускорение при загрузке wav. К сожалению, на медленных компьютерах ускорение может упереться в быстродействие процессора. А индикация пока в планах.
RKS по умолчанию. Нужно из выпадающего списка фильтров выбрать "Wav Files (*.wav)" или "Все файлы" и выбрать wav.
Логично, поправлю.
Все возможно, хотелось бы образец.
Где-то в одной из соседних тем уже начинали обсуждение возможности использования формата, альтернативного wav - в формате 1 бит на сэмпл и со сжатием. Можно развить эту тему либо использовать один из вариантов спектрумовского формата tap.
Исправлял уже такое поведение, но видимо что-то опять сломалось в одной из версий. Разберусь.
- - - Добавлено - - -
Именно так оно сейчас и работает - анализируется именно расширение (wav или WAV), хотя логичнее было бы смотреть заголовок файла. Почему возник такой вопрос?
С орловским монитором новая версия EMU80 читает и пишет и по I/O, и по R/W, причем как в кодах (т.е в формате RKS), так и в звуках (т.е в формате WAV). С ленинградским монитором 2.7 и 3.3 (в обоих заглушены кодом C9 входы CEDF) читает и пишет только в кодах (т.е в формате RKS). Со звуками работать отказывается. Эмулятор EMU от b2m с тем же, причем оригинальным монитором читал в формате WAV.
Вообще-то это странно, потому что этот монитор делался так, чтобы совместить все входные точки, что было очень непросто, т.к они раскиданы по всему загрузчику, а не сгруппированы в начале кода. С большим трудом удалось совместить все точки и даже недокумментированные. Совмещать выходные точки из подпрограмм, естественно было незачем.
Почему же если точки выхода из подпрограмм не важны, не работает чтение/запись WAV-файла. При этом же вообще не используется никаких точек перехвата. Как тогда программа может влиять на результат. Насколько я понимаю, при этом контролируется сам разряд PB0 ППА, а код программы делающей доступ туда не важен. А может быть Вы контроллируете не тот порт, например F800, а не FF00 ? Также на мысль о "химии" при вводе WAV наводит невозможность загрузить файлы в MSX-кодировке внешним драйвером. Это вопрос ещё нуждается в прояснении. Могу попробовать читать/писать и в кодировке ZX-Spectrum, т.к она тоже есть в мониторе. Но пока это бесполезно, если даже обычная двухфазная кодировка не вводится.
Строки
cpu.debugOnHalt = yes
cpu.debugOnIllegalCmd = yes
надо помещать не в файл EMU80.CONF, а в в конец конфиг файла конкретного компьютера.
Подскажите каким редактором можно отредактировать руские тексты в Ваших конфигах. Обычно конфиг-файлы это чисто текстовые файлы в кодировке MSDOS или Windows, чтобы можно было редактировать самым простым редактором. Обидно, что используется неизвестная кодировка для русских букв. Из-за это не смог изменить титр, т.е заголовок эмулятора при работе. Какая-то левая китайская кодировка и непонятно каким редактором это можно редактировать.
Слышал, что уже изобретён однобитовый формат для МГ-записей 8-ми разрядок. Называется BAV и используется в одной конструкции самодельного цифрового магнитофона. Вроде бы это формат отличается от WAV только тем, что число разрядов не 8, а 1, отчего в несколько раз сокращается объём файла.Сообщение от Pyk
Для записи двухфазной кодировки годится частота дисретизации не ниже 22 КГЦ. Ведь при двухфазной кодировке скорость передачи 1200 бит/сек. Бит кодируется перепадом 0>1 или 1>0. Потому частота с которой следуют фронты равна 2400 ГЦ. Это значит, что между фронтами происходит 9 отсчётов и колебания фронтов равны +-11%. При этом размер файла будет в 18 раз больше объёма кода.
Впрочем для СПЕЦИАЛИСТА это не очень актуально, т.к почти все старые программы есть в виде кодов. И вводить программы с заставками как в Синклере интересно только из спортивного интереса (сделать так, чтобы никто не сумел кракнуть) или с целью распространения новых программ в некопируемом виде.
Последний раз редактировалось barsik; 31.12.2017 в 18:01.
Помню, сделаю, не все сразу. А пока, если очень нужно, можно изменить редактированием половинки "регистра" AF.
Зачем же так категорично? Может быть, так в большинстве отладчиков командной строки, но в визуальных отладчиках все-таки чаще что-то из серии F7, F8, F10, F11... Хотя мне не сложно продублировать команду на клавишу "T". Есть еще пожелания, какие буквы назначить в дополнение к F4, F8, F9?
Что касается меня, то я предпочитаю родные мнемоники для каждого процессора: Intel - для 8080 и Zylog - для Z80, так что такое мне тоже не очень нравится. Но не навязываю никому свое мнение - дело вкуса и привычки.
Да, знаю, есть проблема. Причину пока не знаю. Никакой "химии" там вроде бы нет, возможно просто баг. Разобраться пока не пытался, если поможете найти, буду благодарен.
Обычная кодировка UTF-8. Открыть можно очень много чем, да хотя бы блокнотом, только в диалоге открытия файла выбрать из выпадающего списка эту кодировку. Есть и более продвинутые редакторы вроде Notepad++, а сам я предпочитаю консольный нортоноподобный файловый менеджер Far и его встроенный редактор.
Ну а сейчас уже пора бы о встрече нового года подумать Всех с наступающим!
- - - Добавлено - - -
Похоже, что блокнот - не самый удачный вариант. При сохранении он добавляет байты BOM в начало файла (EF BB BF), из-за чего его перестает понимать эмулятор. Можно, конечно, потом эти три байта убрать, но проще взять более адекватный редактор.
- - - Добавлено - - -
Да, кстати, может быть поддержку CSW добавить?
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)