Чтобы забить в ленинградском мониторе автонастройку на скорость надо поставить в начале подпрограммы настройки на скорость (это метка @KNSRD в исходнике C800) код команды RET. Это подпрограмма вызывается из многих мест, поэтому лучше забить именно здесь. Кстати, напоминаю ленинградские ПЗУ С000 и C800 это единая программа, а не отдельно загрузчик и монитор, нельзя подменить ПЗУ C000 на загрузчик Зверкова или Волкова или ПЗУ C800 на монитор Орлова, - там это отдельно загрузчик и монитор, здесь же это одна единая программа с перекрёстными вызовами.
Итак, чтобы забить автоопределение константы ввода, чтобы не было зависа на ожидании фронтов на МГ-входе, надо в ROM-BIOS версии 3.3 (но не 3.4) заменить байт E5
по адресу CEDF: E5 на байт C9 (т.е команду PUSH HL на RET). После этого зависа в эмуляторе при директивах R и I не будет.
После такой переделки ПЗУ эмулятор EMU80 стал работать с ленинградским монитором, исчез завис при запуске магнитофоных команд и стало наконец открываться окно выбора файла после нажатия <ВК> в МГ-директивах R и I. Т.о эмулятор стал наконец грузить с магнитофона файлы в формате RKS (хотя что считать форматом RKS не ясно), точнее идёт загрузка как по директиве I, так и по директиве R. Расширение у файлов одинаковое, а вот формат заголовка разный, из-за чего постоянно приходится смотреть дампы файлов, чтобы узнать в каком они формате.
Надо вводить новое расширение для файлов, чтобы не было путаницы или вводить возможность загрузки в эмулятор файла с любым расширением, тогда уж каждый сам переименует, как ему нравится. Пока приходится выкручиваться маркируя файлы регистром букв в имени.
Но вот, что совершенно непонятно, так это почему у эмулятора EMU от b2m не было никаких проблем с ленинградским монитором из-за процедуры настройки на скорость. Из-за этого я и решил, что EMU работает в реальном времени, а не "химическим" способом и при вводе готовых кодов из файлов RKS (т.е не звуков из WAV-файлов, там поятно, что ввод в реальном времени). Теперь уже и не знаю чего думать.
Значит у Вас тоже обычная химия, а не химия более высокого порядка. Это успокаивает.Сообщение от Pyk
Читается не сразу весь блок, а по каждому CALL LDBYTE читается один байт из дискового файла. Но вот куда Вы дели байт Е6 ? Это и вводит в заблуждение. Ведь только по его прочтению, начинается собственно ввод файла. А раз программа его не получает, значит и ввод программой 8-ми разрядки не происходит. И ещё вводит в заблуждение, что у Вас нет критерия для определния выхода из п/п-мм LDBYTE/SVBYTE. Как Вы тогда узнаёте конец ввода/вывода байта?
Если у кого проблемы с редакцией кодов (нет ни UltraEdit, ни HEX-Edit) и для тех кто не разбирается в конфиг-файле эмулятора, вкладываю изменённый монитор и конфиг-файл для EMU80. Скопируйте их в папку \EMU80\SPEC\ (это папка Специалиста, а не спека ZX-Spectrum).




Ответить с цитированием