Просмотр полной версии : Эмулятор УКНЦ - UKNCBTL
Не переделать, а доработать. Два черных цвета в палитре, это роскошь которую мы не можем себе позволить.
Это же не перекраивание палитры на свой лад.
Доработка хороша тогда, когда она не плодит несовместимых между собой стандартов.
У нас и так, одни УКНЦ с перепутанным RGB, другие нет. Одни с перепутанными яркостями, другие нет. Но это все можно привести к условному уже устоявшемуся стандарту. А вот городить еще какие-то цвета нет смысла.
Доработка хороша тогда, когда она не плодит несовместимых между собой стандартов.
У нас и так, одни УКНЦ с перепутанным RGB, другие нет. Одни с перепутанными яркостями, другие нет. Но это все можно привести к условному уже устоявшемуся стандарту. А вот городить еще какие-то цвета нет смысла.
за похожую реплику некий рандомайзЁр назвал меня троллем (причём жирным! или что то в этом роде)и добавил, что я отбиваю охоту у людей вообще что либо делать для УК-НЦ. Подразумевалось, что тех кому я отбил (мечты,мечты) легион несчётный, а я - разбойник и злодей )
По поводу реальных машин, плата которую я на данный момент использую как рабочую основную в РГБ через скарт выдаёт только зелёный и чёрный, и беленький вроде ещё (не помню), зато в градациях всё ОК! Ну и я счастлив вполне, ещё две платы пока в РГБ не проверял, но в градациях с картинкой проблем не было.
Поскольку модераторы в этом разделе отсутствуют - почистил свои сообщения ниже (ненавижу срачи в родных пенатах.
Реакция товарища ниже всем ясно показала, как он раздосадован, что практически все его начинания не находят поддержки и понимания, но вместо правильных выводов - он вымещает своё "горе" избрав почему то меня. А я...а я ...
https://youtu.be/ZR7pwy4xp08?t=57
randomizer
02.07.2020, 19:49
У нас и так, одни УКНЦ с перепутанным RGB, другие нет. Одни с перепутанными яркостями, другие нет.
Еще раз напомню: конкретно эти разхождения компенсируются програмно, предоставив пользователю возможность выбрать.
А вот городить еще какие-то цвета нет смысла.
Ох уж эти ваши поиски смысла)))
- - - Добавлено - - -
за похожую реплику некий рандомайзЁр назвал меня троллем (причём жирным! или что то в этом роде)и добавил, что я отбиваю охоту у людей вообще что либо делать для УК-НЦ. Подразумевалось, что тех кому я отбил (мечты,мечты) легион несчётный, а я - разбойник и злодей )
Ничего не понял, но написать обязательно что то нужно :v2_lol:
randomizer
03.07.2020, 18:53
Кому и что вы там компенсируете и каким выбором это вам решать и , если что, с вами я диалог не веду - я Титусу написал пример вашей реакции на вполне справедливые возражения по похожей "бессмыслице". Больше предлагаю тему эмулятора не засорять, о перемудривший непонятый случанайзЭр
Список компетенций Хобота включают в себя ещё и психоанализ. Поистине, человет множества талантов)))
Ты публичный диалог ведёшь, чудик.
- - - Добавлено - - -
Просьба к модераторам, почистить сообщения начиная с https://zx-pk.ru/threads/6257-emulyator-uknts.html?p=1070911&viewfull=1#post1070911
Или еще раньше, на усмотрение. Спасибо!
randomizer
04.07.2020, 00:58
я не чудик - я Хобот, и диалог я веду хоть и публичный, но НЕ С ТОБОЙ!!! Гуманоид ты или где?
Хобот, скажи что ты прикалываешься.
А то ведь иначе выходит что я юродивого дразню, нехорошо это.
randomizer
05.07.2020, 14:41
нехорошо вообще "дразнить" любого участника форума, не зависимо не от чего, и поскольку ты сам признал за собой это действие
я просто озвучил что ты юродивый (в зашифрованном послании (c) Hobot)
кто из нас тролль? я тебя не оскорблял кстати ни разу - ты из раза в раз оскорбительные прозвища-ярлыки и диагнозы мне лепишь
как обычно прикидываешся невиновным, молодец, никто ведь не понял твои зашифрованные сообщения :v2_lol:
О чём и сообщил Титусу в зашифрованном послании за номером #1002.
тебе прямо было предложено взаимно игнорировать сообщения, тебя что не устроло, клоун?
- - - Добавлено - - -
@nzeemin (https://zx-pk.ru/members/935-nzeemin.html) Искренне сожалею о присходящем.
Не скрою что расчитывал на то что модераторы почистят тему.
nzeemin, у меня чистое любопытство, как постоянного "подписчика" на оконную версию UKNCBTL,
вопрос: вот все эти технические уточнения добытые Vslav и Titus будут со временем учтены в очередном релизе эмулятора или уже вносятся корректировки \ правки на основании этих "новых" данных ?
пожелание - по прежнему (по возможности) сохранять в будущих релизах поддержку процессоров SSE (Pentium III).
Спасибо.
:redface:
вопрос: вот все эти технические уточнения добытые Vslav и Titus будут со временем учтены в очередном релизе эмулятора или уже вносятся корректировки \ правки на основании этих "новых" данных ?
Пока в ближайших планах у меня этого нет.
Причины - там надо садиться и изучать "железячные" языки, осваивать эмуляторы железной модели, затем смотреть как её сконвертировать в C/C++, и пытаться использовать результат. Я не уверен что меня на это хватит.
Есть ещё задумки по интерфейсу эмулятора и по отладчику - вот их очень хотелось бы реализовать.
пожелание - по прежнему (по возможности) сохранять в будущих релизах поддержку процессоров SSE (Pentium III).
Это никуда не убираю.
shattered
13.07.2020, 17:57
Есть ещё задумки по интерфейсу эмулятора и по отладчику - вот их очень хотелось бы реализовать.
было бы круто. например, break/watchpoints :) одного gNNNNN маловато будет.
вопрос: вот все эти технические уточнения добытые @Vslav и @Titus будут со временем учтены в очередном релизе эмулятора или уже вносятся корректировки \ правки на основании этих "новых" данных ?
Для учета всего этого эмуляторы надо переписывать почти с нуля, что мой, что Никитин.
shattered
13.07.2020, 21:24
а есть какое-то описание этих находок для ленивых эмуляторописателей?
randomizer
13.07.2020, 21:31
Если бы эмулятор мог просто загрузить список адресов останова из файла, уже было бы круто.
а есть какое-то описание этих находок для ленивых эмуляторописателей?
Пока что только частично в теме реверса 1515ХМ1/2.
Версия 654.
В основном здесь вещи касающиеся отладчика, плюс немного по интерфейсу.
* В окне дизасма поправлены подсказки для режима адресации 6; улучшены подсказки для JSR/JMP.
* Окно просмотра спрайтов: добавлены два режима для GRB.
* Окно выбора адреса теперь кроме 8-ричного числа позволяет ввести 16-ричное число.
* Отладочный тулбар в верхнем окне: добавлена кнопка закрытия отладчика.
* На тулбаре показывается индикатор "Sound" когда машина издаёт звуки, даже если звук выключен.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.654/ukncbtl-654-exe.zip
По интерфейсу есть ещё вот такая задумка - сделать On-Screen Display (OSD) - набор индикаторов прямо поверх экрана.
Это больше для тех кто использует эмулятор в обычном (не-отладочном) режиме, для запуска программ.
Посмотрите в аттаче ukncbtl-654-osd-exe.zip - временно тут выложу.
Пока там три индикатора - прогон/пауза, мотор дисковода, звук.
По интерфейсу есть ещё вот такая задумка - сделать On-Screen Display (OSD)
когда у меня привычный полноэкранный режим и соотв. рендеринг всё норм. , но вот я свернул всё "обратно" и наползло,
а это ИМХО уже мешает-раздражает, в полноэкранном же режиме очень даже ничего смотрится, звук на каждую трык трык кнопочку
мигает (с опозданием небольшим?), в общем, если не придираться и удачнее расположить идентификаторы, норм.
во время работы харда мигает треугольник, кстати его может и поменьше просто сделать размером и другие значки из 1-й группы?
https://pic.maxiol.com/thumbs2/1594721417.787615277.osderrr.png (https://pic.maxiol.com/?v=1594721417.787615277.osderrr.png&dp=2)
@nzeemin, Никита!!! У меня тут гениальное решение для OSD (возможно), что если расположить индекаторы горизонтально и сделать их размером (высоту) = верхней раб. строке УК-НЦ (11 точек допустим)? Тогда при любом раскладе - они будут не мешать )
Нужен дебаггер, с несколькими бряками.. в идеале в интерфейсе.. перешел в окне дасма на адрес.. ткнул слева.
В ПП я так и не понял как можно отлавливать :(
Я не настаиваю :) Но было бы круто :)
shattered
21.07.2020, 15:30
+ редактирование памяти
randomizer
21.07.2020, 20:36
Думаю самое простое в реализации - это загрузка списка адресов останова из файла.
(Как бонус, удаление/добавление адресов в этот список из интерфеса эмулятора)
А на этапе сборки своего проекта, сборочный скрипт будет формировать этот список на основе каких нибудь тэгов в исходниках.
В итоге поставил тег в исходниках, запустил скрипт, и ты в отладчике эмулятора, который уже остановился на одном из брек-поинтов :v2_smile:
- - - Добавлено - - -
А если ещё эмулятор сможет отображать символы(тоже загруженные из файла) вместо адресов, будет вообще огонь :v2_dizzy_punk:
По нескольким точкам останова - тут больше сложность вкрячить это в SystemFrame, и так чтобы не просесть совсем по производительности.
А если ещё эмулятор сможет отображать символы(тоже загруженные из файла) вместо адресов, будет вообще огонь :v2_dizzy_punk:
Для этого хоть сейчас можно использовать "субтитры". Кликнуть в окно дизасма, нажать "S", выбрать файл субтитров.
В файле субтитров в каждой строке первыми символами должен идти 8-ричный адрес.
При совпадении адреса со строкой в окне дизасма - справа выводится текст из субтитра.
В аттаче тут прицепил примеры файлов субтитров.
Субтитры в эмуляторе появились в конце 2009 года - спустя каких-то десять лет пригодились. https://zx-pk.ru/threads/6257-emulyator-uknts.html?p=234146&viewfull=1#post234146
shattered
22.07.2020, 18:43
значит, народ таки начал программировать :)
randomizer
22.07.2020, 19:43
Субтитры в эмуляторе появились в конце 2009 года - спустя каких-то десять лет пригодились. https://zx-pk.ru/threads/6257-emulya...l=1#post234146
Наличие субтитров совсем не очевидно.
Обычно вызов каких либо функций с клавитуры, дублирует то что можно сделать через меню или экранной кнопкой.
Стоило конечно инструкцию к эмулятору прочитать :v2_smile:
- - - Добавлено - - -
QT версия и здесь отстаёт :v2_frown:
https://i.ibb.co/tpt5w42/UKNC-Back-to-Life-stop-2020-07-22-19-10-22.png (https://ibb.co/gZpCb3W)
https://i.ibb.co/CMLxNrZ/Screenshot-20200722-191241.png (https://ibb.co/fnJmBc5)
- - - Добавлено - - -
Интересно, есть в планах поддерживать QT версию?
QT дает мультиплатформенность, потенциально может быть единственной поддерживаемой версией.
- - - Добавлено - - -
По нескольким точкам останова - тут больше сложность вкрячить это в SystemFrame, и так чтобы не просесть совсем по производительности.
Насколько может просесть?
Win32 версия, под WINE, на стареньком ноуте работающем от батареи - показывает 300% при максимальной скорости эмуляции
Запас есть. Да и не важна скорость при отладке.
https://i.ibb.co/tpt5w42/UKNC-Back-to-Life-stop-2020-07-22-19-10-22.png (https://ibb.co/gZpCb3W)
https://i.ibb.co/CMLxNrZ/Screenshot-20200722-191241.png (https://ibb.co/fnJmBc5)
Закоммитил фикс. Оказалось что недотащил это до Qt-версии.
- - - Updated - - -
Интересно, есть в планах поддерживать QT версию?
QT дает мультиплатформенность, потенциально может быть единственной поддерживаемой версией.
Так вроде бы поддерживаю насколько хватает моих сил. Да, не всё ещё реализовано что есть в Win32-версии.
Зато в Qt-версии есть возможность исполнять JavaScript: https://github.com/nzeemin/ukncbtl-doc/wiki/Qt-Scripting-ru
randomizer
23.07.2020, 01:11
Так вроде бы поддерживаю насколько хватает моих сил. Да, не всё ещё реализовано что есть в Win32-версии.
Спасибо! Просто была обеспокоенность, что эта версия может оказаться заброшенной.
Зато в Qt-версии есть возможность исполнять JavaScript: https://github.com/nzeemin/ukncbtl-d...t-Scripting-ru
Мощная штука. Было бы полезно иметь возможность загружать скрипт из коммандной строки.
Версия 659:
- On-Screen Display драфтовая версия, выключатель в меню View.
- Попытка ускорить эмуляцию, выиграл немного, 2-3%.
- File > Settings Fonts and Colors - добавлено окошко настройки цветов для отладчика, цвета сохраняются в .ini-файле в таком виде:
ColorDebugText=000000
ColorDebugBackCurrent=FFFFE0
ColorDebugValueChanged=FF0000
ColorDebugPrevious=0000FF
ColorDebugMemoryROM=0000FF
ColorDebugMemoryIO=80C080
ColorDebugMemoryNA=808080
ColorDebugValue=808080
ColorDebugValueRom=8080C0
ColorDebugSubtitles=008000
ColorDebugJump=50C0E0
ColorDebugJumpYes=50F050
ColorDebugJumpNo=B4B4B4
ColorDebugJumpHint=2880A0
ColorDebugHint=2828A0
Чтобы вернуться к дефолтным цветам, просто удалите их из файла настроек.
Можно и редактировать цвета прямо в .ini-файле, формат RRGGBB.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.659/ukncbtl-659-exe.zip
Версия 664:
- Добавлен диалог настроек File > Settings On-Screen Display
- Небольшие улучшения в диалоге настроек Settings Fonts and Colors - теперь названия цветов более читаемые, и можно сбросить цвет в значение по умолчанию
- Точки останова в отладчике
- Settings Fonts and Colors - добавлен цвет для точек останова
В общем это первая версия с полноценными точками останова в отладчике, до 15 точек на каждый процессор.
Управление точками останова пока только из окна консоли отладчика, но они показываются как красные точки справа в отне дизасма (логику окна дизасма нужно переписывать чтобы там можно было ставить точки по клику).
Команды консоли:
* b Показать список всех точек останова для текущего процессора
* bXXXXXX Установить точку останова на адрес XXXXXX
* bcXXXXXX Удалить точку останова с адреса XXXXXX
Пришлось повозиться с командами gXXXXXX и so - для них я ввёл понятие "временная точка останова". Логика такая: ставим временную точку и запускаем эмулятор. При останове эмулятора сразу удаляем временную точку из списка точек останова.
По падению производительности из-за точек останова.
На максимальной скорости: без точек останова у меня выдаёт ~1000%, с четырьмя точками останова ~740%, с 15-ю точками останова ~540%.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.664/ukncbtl-664-exe.zip
randomizer, я также добавил точки останова в Qt-версию - пробуйте.
Помимо перечисленных выше команд отладочной консоли добавлена ещё одна:
* bc Убрать все точки останова для текущего процессора
В этой версии я переработал окно Disasseble - разделил собственно дизасм в массив строк и отрисовку этих строк - это позволило легко получать координаты строки с адресом по клику мыши. И на этом уже сделал установку/сброс точек останова по клику слева в окне дизасма. Так конечно гораздо удобнее ставить точки останова, если конечно адрес в пределах видимости. Также в отладочной консоли добавилась команда "bc" для удаления всех точек останова.
Напомню, что эмулятор позволяет поставить до 15 точек останова для каждого процессора.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.668/ukncbtl-668-exe.zip
https://github.com/nzeemin/ukncbtl-doc/raw/master/screenshot/UKNCBTL-Debugger-bps.png
nzeemin, у меня обнаружился вылет любой версии UKNCBTL под WIN7SP1 во время выполнения
пункта меню Create Disk, при этом образ дискеты успешно создаётся, но система одновременно
"закрывает" эмулятор. (???)
https://s8.hostingkartinok.com/uploads/thumbs/2020/09/2f4f8149de831a1ed19591e40be49eb3.png (https://hostingkartinok.com/show-image.php?id=2f4f8149de831a1ed19591e40be49eb3)
nzeemin, у меня обнаружился вылет любой версии UKNCBTL под WIN7SP1 во время выполнения
пункта меню Create Disk, при этом образ дискеты успешно создаётся, но система одновременно
"закрывает" эмулятор. (???)
Попробовал, посмотрел код. Пока ничего криминального не нашёл, будет время ещё покопаю.
Попробовал, посмотрел код. Пока ничего криминального не нашёл, будет время ещё покопаю.
главное, что функционал не страдает - образ эмулятор успевает создать, следовательно проблема не с отказом в доступе к диску и запрету внесения на него изменений, поэтому запуск от имени администратора проблему не решает - проверено.
nzeemin, у меня обнаружился вылет любой версии UKNCBTL под WIN7SP1 во время выполнения
пункта меню Create Disk, при этом образ дискеты успешно создаётся, но система одновременно
"закрывает" эмулятор. (???)
https://s8.hostingkartinok.com/uploads/thumbs/2020/09/2f4f8149de831a1ed19591e40be49eb3.png (https://hostingkartinok.com/show-image.php?id=2f4f8149de831a1ed19591e40be49eb3)
Ошибку не подтверждаю. Win 7 SP1 x64
Ошибку не подтверждаю. Win 7 SP1 x64
значит это у меня, система такая же, странный конечно момент, не очень приятный, но жить можно.
nzeemin, похоже дело не в эмуляторе, отбой - какой то местный глюк у меня с местной .dll
Приветствую. Скажите пожалуйста, версия эмулятора в первом сообщении актуальная или надо по теме искать ссылку?
Приветствую. Скажите пожалуйста, версия эмулятора в первом сообщении актуальная или надо по теме искать ссылку?
Не знаю даже какое сообщение имеется в виду, тему начал не я.
Либо искать последнее сообщение с релизом в этой теме, либо сразу смотреть релизы тут: https://github.com/nzeemin/ukncbtl/releases
UKNCBTL версии 1.0.677
Что нового:
- Отладчик: показываем список точек останова вверху справа.
- Окно просмотра спрайтов: улучшения в навигации.
- Больше команд в меню Debug.
- Исправление в реализации дисковода: два места, баги найдены ZPilot, спасибо!
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.677/ukncbtl-677-exe.zip
- Исправление в реализации дисковода: два места, баги найдены @ZPilot, спасибо!
Надо ещё исправить баг с выбором номера привода. Номер привода выбирается только при установленном 10-м бите REZ. А то когда выключается мотор и чистится регистр состояния, то автоматически выбирается привод MZ3. Такой эффект наблюдался, если выводить огромный текст на плавном рулоне, и если вставлен образ в MZ3. При выводе текста останавливался мотор по сетевому таймеру и чтение следующего куска уже происходило с привода MZ3.
- - - Добавлено - - -
Да, ещё. По поводу кассеты ПЗУ. Если кассета не вставлена или не выбрана и отключается системное ПЗУ в диапазоне 0100000-0117777, то при обращении к заданным адресам должен быть TRAP4. А этого не происходит, потому для того, чтобы подцепить новое ПЗУ к эмулятору, то приходится вставлять обе кассеты ПЗУ.
Надо ещё исправить баг с выбором номера привода. Номер привода выбирается только при установленном 10-м бите REZ. А то когда выключается мотор и чистится регистр состояния, то автоматически выбирается привод MZ3. Такой эффект наблюдался, если выводить огромный текст на плавном рулоне, и если вставлен образ в MZ3. При выводе текста останавливался мотор по сетевому таймеру и чтение следующего куска уже происходило с привода MZ3.
Вроде как исправил, версия тут в аттаче, просьба проверить.
Вроде как исправил, версия тут в аттаче, просьба проверить.
Посмотрел на github, не совсем так. Номер текущего устройства должен быть, если стоит бит REZ. А если он не стоит, то ни одно устройство не выбрано. Может быть для невыбора установить значение -1, а от 0 до 3 уже выбранное устройство. Перелопатить придется уже больше в коде, но зато будет правильно.
Да, ещё. По поводу кассеты ПЗУ. Если кассета не вставлена или не выбрана и отключается системное ПЗУ в диапазоне 0100000-0117777, то при обращении к заданным адресам должен быть TRAP4. А этого не происходит, потому для того, чтобы подцепить новое ПЗУ к эмулятору, то приходится вставлять обе кассеты ПЗУ.
Поправил - TranslateAddress вычислял всё правильно, но там где он использовался не было вызовов MemoryError(), поставил.
В аттаче версия 679.
- - - Updated - - -
Посмотрел на github, не совсем так. Номер текущего устройства должен быть, если стоит бит REZ. А если он не стоит, то ни одно устройство не выбрано. Может быть для невыбора установить значение -1, а от 0 до 3 уже выбранное устройство. Перелопатить придется уже больше в коде, но зато будет правильно.
Сегодня не готов это изменение сделать, отложу.
Поправил - TranslateAddress вычислял всё правильно, но там где он использовался не было вызовов MemoryError(), поставил.
В аттаче версия 679.
Работает. С отсутствующими кассетами ПЗУ новое системное ПЗУ запускается, автозагрузка срабатывает.
Работает. С отсутствующими кассетами ПЗУ новое системное ПЗУ запускается, автозагрузка срабатывает.
Имеет ли смысл поддержка нового ПЗУ в эмуляторе?
То есть, я могу положить его в ресурсы и сделать выбор в менюшке, с сохранением в настройках - но нужно ли это реально?
Работает ли старый софт с новой ПЗУ?
Какая ещё поддержка в виде изменений в эмуляции "железной" части нужна для новой ПЗУ?
Имеет ли смысл поддержка нового ПЗУ в эмуляторе?
То есть, я могу положить его в ресурсы и сделать выбор в менюшке, с сохранением в настройках - но нужно ли это реально?
Работает ли старый софт с новой ПЗУ?
Какая ещё поддержка в виде изменений в эмуляции "железной" части нужна для новой ПЗУ?
Новые ПЗУ бывают разные. То, которое состоит из пяти микросхем, естественно не работает, там надо допиливать эмулятор. А есть его обрезанная версия из четырёх микросхем. Вот эта версия работает на стандартном УКНЦ. Я просто подкладываю образ этого ПЗУ в каталог с эмулятором, теперь всё нормально работает. Старый софт с новой ПЗУ работает не весь, другое распределение памяти в ОЗУ ПП, соответственно другие адреса подпрограмм в ПЗУ, в эмуляторе терминала убрали некоторые нестандартные Esc-последовательности, ну и другое по мелочи.
А для работы с ПЗУ на пяти микросхемах нужно изменение в эмуляции "железа", сейчас сказать не могу, но вроде одна из микросхем выбирается установкой какого-то бита в регистре 0177716. Ещё там по слухам, как-то по другому сделана работа с дисководом, но как, я не знаю.
А есть его обрезанная версия из четырёх микросхем. Вот эта версия работает на стандартном УКНЦ. выкладывали скрины с этой версией из UKNCBTL, в том числе и я.
https://zx-pk.ru/threads/30767-redkij-ekzemplyar-uk-nts.html?p=1088133&viewfull=1#post1088133
В аттаче версия 679.Failed to load render library "RenderVfw.dll" (0x0000007e).
Где скачать полную версию?
Failed to load render library "RenderVfw.dll" (0x0000007e).
Где скачать полную версию?
Возьмите с гитхаба, рендереры давно не менялись: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.677/ukncbtl-677-exe.zip
Возьмите с гитхаба, рендереры давно не менялись: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.677/ukncbtl-677-exe.zipСпасибо. Было бы круто в первом сообщении темы разместить ссылку на скачивание
Размещено.
В Qt-версии добавил опции командной строки.
В Windows-версии для опций используется символ '/', на Linux/Mac используйте '-'.
Command line options:
/h /help Show command line options
/boot Auto-start the emulation, select boot from disk
/bootN Auto-start the emulation, select boot menu item N=1..7
/autostart /autostarton Start emulation on window open
/noautostart /autostartoff Do not start emulation on window open
/sound /soundon Turn sound on
/nosound /soundoff Turn sound off
Ещё добавил пункт меню Emulator > Autostart.
Поправил линейку вверху окна Memory - числа оффсетов по вертикали не совсем совпадали с тем где рисуются значения.
Релиз 1.0.686 эмулятора, версия для Windows.
* Настройка для положения OSD на экране.
* Контекстное меню в Disasm - копирование текущего адреса и значения по этому адресу в буфер обмера - это больше для будущего расширения.
* Memory: текущий адрес, контекстное меню, копирование адреса и значения в буфер обмера.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-1.0.686/ukncbtl-686-exe.zip
https://pic.maxiol.com/images2/1615109652.1845273483.ukncbtlmemoryconte.png
Релиз 2021.2 эмулятора, версия для Windows.
Нумерация релизов изменена, теперь номер релиза содержит год и порядковый номер релиза в этом году. Порядковый номер ревизии можно увидеть в окне About.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-2021.2/ukncbtl-2021-2.zip
Что нового:
- Контекстное меню в ScreenView - команды для скриншотов.
- Контекстное меню в окнах отладчика.
- DisasmView: немного поправил подсказки - добавил выравнивание для случая когда вторая строка подсказки относится ко второму операнду:
https://pic.maxiol.com/images2/1621280519.1845257515.untitled.png
- Disasm: инструкции FIS.
- ConsoleView: команда fc с двумя операндами через пробел - преобразование двух слов в читаемую форму вещественного числа, использовал код Alex_K - спасибо, Алексей!
> fc40000 0
exp: 0, mant: 0x800000
0.5
> fc037114 146315
exp: -4, mant: 0xcccccd
0.05
> fc040146 063146
exp: 0, mant: 0xe66666
0.9
Релиз 2021.2 эмулятора, версия для Windows.
А есть ли возможность вынести ссылки на текущие релизы в первый пост? Так делают довольно часто - это очень удобно. Мне хотелось бы ещё скачать образы дисков/кассет, которые идут в комплекте с эмулятором, но найти их в такой длинной теме очень непросто. :(
А есть ли возможность вставить текст в окно эмулятора? Например, загрузили вильнюсский бейсик и вставили из хостового редактора туда текст программки.
А есть ли возможность вынести ссылки на текущие релизы в первый пост? Так делают довольно часто - это очень удобно.
Посмотрите на первый пост, и кем он написан. я не могу его изменять, а каждый раз бегать к автору и/или саппорт форума - много мороки.
А есть ли возможность вставить текст в окно эмулятора? Например, загрузили вильнюсский бейсик и вставили из хостового редактора туда текст программки.
К сожалению, нет, и не планирую.
В Qt-версии есть возможность запуска JS-скрипта, через который можно скармливать эмулятору строки вводимого текста.
Можно взять первый СОБСТВЕННЫЙ пост в этой теме, один раз попросить автора первого поста выложить ссылку на него и всё пихать туда.
Заметил тут одну мелочь практически ни на что не влияющую...
Подключил реальную машину к видеозахвату:
https://pic.maxiol.com/thumbs2/1634158364.1559558028.211013213543885.jpg (https://pic.maxiol.com/?v=1634158364.1559558028.211013213543885.jpg&dp=2)
Индикатор ЛАТ показывается сразу после загрузки машины и его видно в менюшке (правда не переключается)
А на эмуляторе он включается только при переходе в отладчик, ну или на загрузке системы. В меню его нет.
https://pic.maxiol.com/thumbs2/1634158483.1559558028.20211013204955502.png (https://pic.maxiol.com/?v=1634158483.1559558028.20211013204955502.png&dp=2)
Прощу прощения если указал на уже давно известную особенность :)
BlaireCas
27.10.2021, 15:09
Подключил реальную машину к видеозахвату:
Подтверждаю. На моей СЭМЗовой УКНЦ также появляется ЛАТ сразу-же в загрузочном меню.
Во втором эмуляторе (emustudio) кстати тоже отсутствует ЛАТ в меню. Прям синхронное поведение в обоих эмуляторах. Может быть ребята взяли какой-то "другой" ROM? Как-то других предположений даже нету.
UPD: ROM может и не причем (вряд-ли у нас кучи разновидностей прошивок). Возможно дело в какой-то эмуляции хардвари навроде сетевого адаптера которая скажем отсутствует/не особо верно сделано. Просто заметил что при нажатии Reset на реальной машине без сетевого адаптера - она на микроскопическую долю секунды показывает *** ЗАГРУЗКА ИЗ СЕТИ *** (с подключенной "сетевухой" она так и остается в этой загрузке из сети). При этом возможно обновляется верхняя служебная строка и там начинает показываться ЛАТ.
На самой УКНЦ впрочем и так "баг" есть - например если нажать 1-й раз УСТ - то в меню установок не будет сверху служебной надписи УСТ. А если (выйти из установок) нажать еще раз - надпись появится. Возможно программеры накосячили с этими надписями в служебную строку точно также и с ЛАТ.
И тогда уж еще добавление по эмулятору: Reset неверно работает в UKNCBTL. Мои творения он не "осиливает". Не может ресетнуть эмулятор после запуска моего быдлокода :) Я там конечно очень нагло себя веду - хватаю всю память в обоих процах + маплю планы RAM на ROM командой mov #161, @#177054 (в ПП).
Эмулятор после ресета так и остается с замапленным ОЗУ. И поскольку в нем наличствует еще и второй баг по этому поводу - больше не стартует.
Второй баг это то что при таком ремапе памяти - чтение периферийным процессором по адресам с 100000 должно читать из ПЗУ, а не из ОЗУ. А вот запись должна записывать в ОЗУ. Alex_K пояснял что ПЗУ быстрее и несмотря на ремап - читается первым из него. Соответственно команды типа movb, bis при таком ремапе ведут себя по этим адресам соответственно (читают с ПЗУ, пишут в ОЗУ)
shattered
27.10.2021, 22:35
Во втором эмуляторе (emustudio) кстати тоже отсутствует ЛАТ в меню.
любопытно. в третьем (незаконченном mame) тоже нету ЛАТ на старте.
А есть ли возможность вынести ссылки на текущие релизы в первый пост? Так делают довольно часто - это очень удобно. Мне хотелось бы ещё скачать образы дисков/кассет, которые идут в комплекте с эмулятором, но найти их в такой длинной теме очень непросто. :(
Модераторы помогли - первый пост переведён на меня, и я поместил туда все ссылки.
BlaireCas
07.11.2021, 12:09
Э.. еще баг отыскал или мне так кажется? (у нас и процессор с багом по адресации (PC), вот теперь и эмулятор :), все как у людей)
Проще картинкой показать (команды выделены, слева UKNCBTL, справа листинг MACRO-11... они не совпадают):
https://i.imgur.com/B8QJb9G.png
Версия 2021.2 rev 698
UPD: команду НЕ с адресацией (PC), например mov (R1)+, @#177010 дизассемблирует (и выполняет) нормально
Для варианта MOV (PC)+, @#177010 MACRO-11 странслировал так, как ОН понял, а не как ДУМАЛ автор. Если хотите достичь правильного результата, должно быть так:
GetB00: MOV #0, @#177010
UnSrc0 =: GetB00 + 2
- - - Добавлено - - -
Для философских размышлений изучающих язык ассемблера MACRO-11
TST (PC)+
10$:
SEC
RETURN
BlaireCas
07.11.2021, 14:51
MACRO-11 странслировал так, как ОН понял
А.. Заглянул в доки дековские, и то верно, для R7 у них особый случай.
12737
01 - mov
27 - автоинкремент R7 и оно-же "операнд идет за инструкцией" что тоже логично
Просто тут конструкция (вся) длинней слова вот я и вляпался. А вообще привык-же к (PC)+, нагляднее что-ли
Тогда Никите отбой, это не бага, это видимо фича макро-11
На самом деле, (PC)+ никакой не особоый, а вполне рядовой - такой же, как и, скажем, (R0)+. Это скорей #0, @#0, 0 и @0 (вместо 0 - любое 16-ти битное число или метка) особые случаи.
Как раз #0 наглядней.
Нет, не фича - вполне себе стандартное поведение.
BlaireCas
07.11.2021, 15:13
вполне себе стандартное поведение
Ну спс ты поспособствовал в доки посмотреть.
https://i.imgur.com/stY1R4v.png
Почему-то всегда представлял что PC указывает на сл. команду, а не на сл. слово (вот как-то вбилось в голову и все тут). Для инструкций в одно слово все нормально, а когда инструкции не в одно слово, получилось наступить в свои-же собственные грабли.
Кстати, ещё варианты, которые сработают
GetB00: MOV #0, @(PC)+
UnSrc0 =: GetB00 + 2
.WORD 177010
GetB00: MOV (PC)+, @(PC)+
UnSrc0: .WORD 0
.WORD 177010
Oleg N. Cher
12.11.2021, 04:50
Никита, а где можно посмотреть какие опции командной строки есть у UKNCBTL и BKBTL?
Нужны опции:
1. UKNCBTL: подключить образ дискеты FileName.dsk как диск N
2. BKBTL: автостартовать заданный файл FileName.bin
Про опции /autostart и /boot знаю.
Нужно для запуска из батника сгенеренной GCC программы в эмуляторах.
Никита, а где можно посмотреть какие опции командной строки есть у UKNCBTL и BKBTL?
Нужны опции:
1. UKNCBTL: подключить образ дискеты FileName.dsk как диск N
2. BKBTL: автостартовать заданный файл FileName.bin
Пока ничего из этого нет. Когда будет - не знаю.
Опции UKNCBTL:
/boot — Автозапуск эмуляции, и затем в загрузочном меню выбоор загрузки с диска
/bootN — Автозапуск эмуляции, и затем в загрузочном меню выбоор пункта N=1..7
/autostart /autostarton — Включение автозапуска эмуляции
/debug /debugon /debugger - Включение отладчика
/debugoff /nodebug - Выключение отладчика
/noautostart /autostartoff — Выключение автозапуска эмуляции
/sound /soundon — Включение звука
/nosound /soundoff — Выключение звука
/fullscreen /fullscreenon
/windowed /fullscreenoff
По поводу подключения диска - во-первых, можно сделать это один раз, и после этого подключение сохранится в .ini-файле. Во-вторых, можно вносить изменения прямо в .ini-файл.
Кстати офигенно выручает твой эмулятор. Особенно когда звуки опробывать надо. Иначе железную технику постоянно по стык С2 грузить...
Но вот бы еще пару вещей:
1) вводишь адрес памяти - курсор ну совсем не виден там, нельзя инвертированным сделать его? Чтобы сразу в глаза бросался :) Ну или передвигать окно с памятью под первую позицию, раньше так было сделано и было удобнее да!
2) ну и чтобы можно бы было поменять ячейки памяти (понимаю что это атас ведь окно дизассемблирования попортится если прям под него подпадет.. но клевая-бы была фича)
Пополнил список TODO.
Чего ещё нехватает для эффективной отладки?
randomizer
25.08.2022, 11:31
Чего ещё нехватает для эффективной отладки?
Здорово было бы иметь возможность как то пробросить breakpoints в эмулятор.
Например загрузить файл со списком адресов, передав имя в командной строке.
Или передать адреса через командную строку.
Как вариант, использовать код несуществующей инструкции, как указание эмулятору остановится, и через меню включать/выклачать останов по этой команде.
Например код 000030.
Релиз 2022.1 эмулятора, версия для Windows.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-2022.1/ukncbtl-2022-1.zip
Что нового:
- Опции командной строки для подключения образов дисков/картриджей/жёстких дисков:
- Поддержка образов жёстких дисков для другого варианта контроллера
- DebugView: изменённые значения в стеке показываем красным цветом
- ConsoleView: рефакторинг, с переходом на парсинг через scanf
- ConsoleView: команда для изменения значений ячеек памяти
Про жёсткий диск "нового" формата обсуждалось тут: https://zx-pk.ru/threads/33712-zhestkij-disk-dlya-uknts-i-kartridzh-uds.html
В слот картрижда подставляется ROM ide_doublert5.bin
При подключении образа жёсткого диска, эмулятор сам определит его формат - ID / WD / HD.
Новые опции командной строки -- Oleg N. Cher спрашивал:
/diskN:filePath где N=0..3
/cartN:filePath где N=1..2
/hardN:filePath где N=1..2
Новая команда в окне консоли - изменение ячейки памяти - BlaireCas просил:
m123456 654321 либо
m123456=654321
Также, благодаря использованию scanf, формат команд в окне консоли стал несколько свободнее. Например:
r1=177777 можно записать как:
r1=-1
BlaireCas
03.09.2022, 13:27
Круто про изменение памяти! Супер!
Но вот еще нельзя-ли вот эту ячейку выделенную как-то выделять повиднее и не снимать выделение если я ткну потом в консоль? Потому-что глаза разбегаются если найти свою переменную в памяти и следить за ней. Тык в другое место и выделение снимается в этом окне и .. неудобства
https://i.imgur.com/UqK68dZ.png
что-то уже наглею :) ага
Но вот еще нельзя-ли вот эту ячейку выделенную как-то выделять повиднее и не снимать выделение если я ткну потом в консоль? Потому-что глаза разбегаются если найти свою переменную в памяти и следить за ней. Тык в другое место и выделение снимается в этом окне и .. неудобства
Да, я помню про эту проблему. Думал как её решить.
Попробуйте вот эту версию - попытался изобразить подсветку.
Если цвет не устраивает - в настройках цветов, последний в списке.
BlaireCas
04.09.2022, 00:46
Попробуйте вот эту версию
Супер! То что надо. Сейчас видно где помечена память и не исчезает при кликах в другие места.
(ну и можно кстати на ты)
Еще просто вопрос, менять не прошу - а почему отрисовывает только каждый второй кадр если 50фпс? Какие-то траблы со скоростью прорисовки?
Еще просто вопрос, менять не прошу - а почему отрисовывает только каждый второй кадр если 50фпс? Какие-то траблы со скоростью прорисовки?
Да как-то так с самого начала сложилось, что все частоты рассчитали от "фрейма" равного 1/25 секунды, а потом так и оставили.
Недавно мне ilynxy кинул пулл-реквест с переделкой на 50 Гц фреймы, но я ещё не добрался - https://github.com/nzeemin/ukncbtl/pull/7
randomizer
23.09.2022, 09:28
В эмуляторе какое-то время была поддержка AY-3-8910.
Но потом её убрали.
Интересно почему? Сложно вновь её вернуть?
Возможно просто использовать код, который был убран?
В эмуляторе какое-то время была поддержка AY-3-8910.
Но потом её убрали.
Интересно почему? Сложно вновь её вернуть?
Возможно просто использовать код, который был убран?
Убрал, потому что участники не смогли договориться о том, на каих портах он будет.
Мне хотелось зафиксировать один набор портов.
Да, в принципе, можно вернуть, но порт видимо конфигурируемым придётся делать.
randomizer
24.09.2022, 00:07
Разговоры разговорами, но практически реализованным оказалось только одно устройство)
Конфигурирование можно будет добавить, если возникнет в этом необходимость.
Разговоры разговорами, но практически реализованным оказалось только одно устройство)
Конфигурирование можно будет добавить, если возникнет в этом необходимость.
Удивлён что хотя бы одно реальное устройство сделано и работает.
Давайте номер портов - поставлю себе в план.
randomizer
24.09.2022, 01:15
Давайте номер портов - поставлю себе в план.
Диапазон адресов на которые откликается устройство 0177360-0177377
Но только адреса 0177360, 0177362 и 0177364 используются AY-3-8912
Диапазон 0177366-0177377 пока не задействован, но для обнаружения платы я сканирую все адреса.
Обмен с звукогенераторами реализован так же как на компьютерах серии БК
- записью слова передаем адрес регистра AY
- записью байта, пишем в регистр звукогенератора
Только в отличии от БК, устройство инвертирует сигналы.
- - - Добавлено - - -
Подключено к шине ПП
BlaireCas
24.09.2022, 12:16
Очень поддерживаю идею про AY пусть хотя-бы в эмуляторе будет. Главное начать :)
А там авось кто еще себе сделает в железках. Вроде вон девайс-то неплохой у randomizer-а - на вид очень неплохо, вставляется в слот для q-bus периферийного проца как я понял. Схема есть, всё выложено.
Ну и неплохо бы было на УКНЦ услышать какие-нибудь шедевры типа кастлевании и пр. да хотя бы в эмуляторе.
Но только адреса 0177360, 0177362 и 0177364 используются AY-3-8912
Непонятно, зачем целых 3 AY?
Ведь это достаточно много каналов для такой медленной машинки, как УКНЦ.
Например, классические плейеры на Спектруме с одним AY и то занимали немало тактов. Например, SoundTracker где-то около 7000 тактов из 70000. А ASM - вообще от 14000 тактов и выше.
randomizer
24.09.2022, 14:14
Непонятно, зачем целых 3 AY?
На вырост) Чтобы не ограничивать себя. Для простоты. Места на плате есть, а сколько чипов устанавливать, это уже на выбор.
В ChibiAkumas например музыка выводится на один чип, эффекты на другой. Эффекты не перекрывают ни музыку, ни друг-друга.
Для БК и Спектрума пишут же 6-ти канальную музыку. Добавить вывод звуковых эффектов на отдельный чип, вот и получается, 9 каналов.
Для Apple II, есть игры поддерживающие две Mockingboard, а это 12 каналов в сумме. Тоже не быстрый компьютер.
Например, классические плейеры на Спектруме с одним AY и то занимали немало тактов. Например, SoundTracker где-то около 7000 тактов из 70000. А ASM - вообще от 14000 тактов и выше.
Но там на всё про всё один процессор)
На УКНЦ же всё зависит от того насколько загружен ПП.
Но там на всё про всё один процессор)
На УКНЦ же всё зависит от того насколько загружен ПП.
Если выводить 8-цветную графику, то, я думаю, оба процессора надо дрючить по полной. Если игра динамичная.
По мне, достаточно максимум двух AY. Но три это уже перебор)
BlaireCas
24.09.2022, 16:37
Да пусть будет, много мол не мало :) Если все работает то суперско. А то что проц зажирается так ничего страшного, пусть хоть весь зажрется, мало-ли игр с дизерингом и 4-мя цветами. На УКНЦ и так шаром мол покати ничего нет. (думается если Марио сделать в 4-х цветах то тоже будет очень супер если кто-т сможет)
(думается если Марио сделать в 4-х цветах то тоже будет очень супер если кто-т сможет)
Марио в 4 цветах - это бедно. Я кидал скриншоты Марио 8 цветах с расширенной палитрой. Это шикарно смотрится.
Есть вопрос про rt11dsk.exe
Есть образы с 8" дискет, у которых первая дорожка пустая (содержит надпись "Bad block in system area ЂReplacement table overflow ЂVolume not RT-11 format")
Плагин к TC их нормально открывает, а rt11dsk l даже не показывает содержимое.
Это так и должно быть?
примеры образов в теме https://zx-pk.ru/threads/34704-obrazy-disket.html
Есть вопрос про rt11dsk.exe
Есть образы с 8" дискет, у которых первая дорожка пустая (содержит надпись "Bad block in system area ЂReplacement table overflow ЂVolume not RT-11 format")
Плагин к TC их нормально открывает, а rt11dsk l даже не показывает содержимое.
Это так и должно быть?
примеры образов в теме https://zx-pk.ru/threads/34704-obrazy-disket.html
rt11dsk работает с образами дискет как с томами RT-11.
Единственное что есть из настройки под нестандартные форматы - можно пропустить с начала файла N байт (десятичное) опцией -oN.
что есть из настройки под нестандартные форматы
В том-то и дело что формат-то стандартный.
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-2022.2/ukncbtl-2022-2.zip
Что нового:
- Справка об опциях командной строки в меню Help > Command Line Help, а также по опции /h либо /help
- MemoryView: подсветка текущего значения
- DebugView: всегда показываем список точек останова
- ConsoleView: для команд JMP и BR используем логику Step Into, а не Step Over, чтобы избежать возможных ошибок при отладке
- ConsoleView: ряд мелких изменений
- DisasmView: показываем зону точек останова
- DisasmView: хинты для команд режима HALT и для команды MARK
- Реализация устройства AY в том виде как предложил randomizer - см. https://zx-pk.ru/threads/6257-emulyator-uknts-ukncbtl.html?p=1163635&viewfull=1#post1163635, включается командой Emulator > AY Device on PPU
Порты 0177360, 0177362 и 0177364 на шине ПП это три чипа AY,
- записью слова передаем адрес регистра AY
- записью байта, пишем в регистр звукогенератора
Устройство уже инвертирует сигналы, поэтому НЕ нужна инверсия значений при отправке их в AY.
randomizer, подключение AY я толком не тестировал, от вас нужен какой-то тест.
randomizer
25.10.2022, 13:40
@randomizer, подключение AY я толком не тестировал, от вас нужен какой-то тест.
Здесь, на образе (https://disk.yandex.ru/d/OSYeVWhi_m26fw), есть три запускаемых файла: ASMT.SAV, JAC.SAV, и AHG.SAV.
(образ не загрузочный)
Каждый из них просто проигрывает мелодию отправляя данные на адрес 0177360.
Первая прога проигрывает мелодию и завершается, а две другие играют по кругу, до перезагрузки.
Пробовал запускать в эмуляторе, звука нет.
Пробовал запускать в эмуляторе, звука нет.
А, ну так вы там пробуете читать по этим адресам. Надо тогда оговорить - что на чтение должно отдаваться?
UPDATE: Пока отдаю 0, вроде бы этого достаточно.
Приложил версию с исправлением здесь.
randomizer
25.10.2022, 20:27
А, ну так вы там пробуете читать по этим адресам.
Чтения в коде нет. И я даже не проверял что там отдаётся при чтении.
Но при записи байта, процессор делает цикл чтение-модификация-запись, наверное в этом дело.
- - - Добавлено - - -
Нужно схему и даташит на АY глянуть, уже не помню что там да как.
Чтения в коде нет. И я даже не проверял что там отдаётся при чтении.
Но при записи байта, процессор делает цикл чтение-модификация-запись, наверное в этом дело.
Нужно схему и даташит на АY глянуть, уже не помню что там да как.
А можно пожалуйста тут сразу ещё ссылку на вашу схему, плюс пример кода обращения к девайсу?
randomizer
25.10.2022, 21:37
плюс пример кода обращения к девайсу?
Участок кода проигрывателя (https://github.com/aberranthacker/akg_player/blob/332ccccef634755d710ab30a590d6beeb05ac2d7/akg_player.s#L1111), где отправляются данные в регистры AY.
Схема в формате Altium Designer в репозитории (https://github.com/aberranthacker/aberrant_sound_module).
И картинками, здесь (https://zx-pk.ru/threads/31953-aberrant-sound-module-dlya-uknts.html?p=1163732&viewfull=1#post1163732) на форуме.
- - - Добавлено - - -
В эмуляторе звучит как то по другому.
Записал (https://disk.yandex.com/d/MqjTZP0ZutHKfw) с реального модуля как звучит Just Add Cream - JAC.SAV
И по тональности есть отличие, видимо частота AY в эмуляторе отличается.
Забыл сказать, что на модуле, частота AY 1.7897725MHz.
Совпадает с частотой на MSX.
- - - Добавлено - - -
Изменил ещё в ChibiAkumas (https://zx-pk.ru/threads/31548-chibiakumas.html) диапазон сканируемых адресов, для автообнаружения звуковухи.
Теперь игра сканирует только адреса, на которых сидят AY, и в эмуляторе тоже, она запускается со звуком.
- - - Добавлено - - -
В эмуляторе, звуковые эффекты почему-то звучат с посторонними шумами.
Игра выводит их на второй чип, по адресу 0177362
- - - Добавлено - - -
Вообще, мега-круто, что в эмуляторе появился AY :v2_dizzy_punk:
Осталось дождаться, когда новые фичи добредут до QT версии эмулятора ;)
- - - Добавлено - - -
Ещё заметил, что в виндовой версии, в режиме отладки, не изменить рендерер экрана УКНЦ.
На 14" ноутбуке, с 4K+ разрешением, уж как то совсем мелко выглядит.
А QT версии использую рендерер с разрешением 1920x1440.
https://i.ibb.co/gwxkNSw/Screenshot-20221025-212915.png (https://ibb.co/gwxkNSw)
Пока всё плохо.
Текущая реализация AY в эмуляторе - это что-то что я делал для эмулятора Vectrex несколько лет назад. Посмотрел по коду - не могу понять как переделать под другую частоту.
Надо либо углубляться и исправлять эту реализацию, либо притащить другую реализацию AY.
Дотащил эти изменения до Qt-версии, но там всё ещё хуже, потому что там тактирование эмулятора висит не на event loop, а повешено на таймер, соответственно, неровностей гораздо больше. Всё это выражается в очень плохом звуке на AY.
Нужно переделывать с таймера на работу эмулятора на главном цикле.
Пока оставляю текущую реализацию - это то что я мог сделать быстро но грязно. Потом постепенно буду улучшать.
randomizer, вам наверное будет интересно.
За выходные поработал над Qt версией эмулятора:
- Верхнее отладочное окно (Debug) внутри разделено на отдельные контролы - вид немного поменялся
- Для тёмной темы инвертирую рисунок клавиатуры, чтобы он не слепил огромным ярким пятном
- Верхнее отладочное окно (Debug) - в блоке процессора сделал контекстное меню для копирования значений регистров в буфер обмена
Подскажите пожалуйста, пытаюсь залить dsk образ на винт wd0: командой "rt11dsk.exe hpa 128.img 0 NC_UKNC2.dsk" а в ответ First catalog block is 249, out of range.
Образ в живого диска CF на реале и эмуле работает. Партишины 0-3. Общий размер 128М. Хочу закинуть dsk чтобы потом их мантить на LD0.
Подскажите пожалуйста, пытаюсь залить dsk образ на винт wd0: командой "rt11dsk.exe hpa 128.img 0 NC_UKNC2.dsk" а в ответ First catalog block is 249, out of range.
Образ в живого диска CF на реале и эмуле работает. Партишины 0-3. Общий размер 128М. Хочу закинуть dsk чтобы потом их мантить на LD0.
Команда правильная. Можете выложить куда-нибудь образ? я посмотрю.
Команда правильная. Можете выложить куда-нибудь образ? я посмотрю.
Конечно, вот образ (https://dropmefiles.com/NGsXF).
Конечно, вот образ (https://dropmefiles.com/NGsXF).
Кажется я понял, rt11dsk плохо работает с инвертированными дисками.
Инвертируйте образ:
rt11dsk.exe hi 128.img
Затем можно работать работать с партициями - например, добавить файл как вы хотели.
Эмулятору можно давать хот инвертированный, хоть не-инвертированный образ, он должен понять.
А для записи на CF или винчестер нужно опять инвертировать, чтобы реал понял.
По баге - запишу себе, разберусь как-нибудь.
Сделал, но теперь пишет ошибку другую.
Скриншот. (https://dropmefiles.com/Xwqav)
Сделал, но теперь пишет ошибку другую.
Скриншот. (https://dropmefiles.com/Xwqav)
Приложил версию, которую только что собрал из исходников.
Если не поможет - то выложите пожалуйста ещё файл, который добавляете - буду искать ошибку и чинить.
Не помогло, файлы из этого архива (https://dropmefiles.com/5kad6), только имя сократить нужно.
Не помогло, файлы из этого архива (https://dropmefiles.com/5kad6), только имя сократить нужно.
Нашёл и исправил ошибку с кешем.
Обновлённый rt11dsk -- во вложении.
Помимо этого:
- Добавил проверку на недопустимые имена файлов -- такие как NUL или COM1
- Добавил опцию /hd32 для поддержки винчестеров, состоящих из партиций по 32 МБ
Версия эмулятора 2023.1
Что нового:
- Некоторое изменение вида отладочных окон
- MemoryView: подсветка и значения и символов
- Disasm: PUSH/POP; улучшения отладчика
- MemoryView: режимы octal/hex
- DebugView: показывать PC и SP на карте памяти
- Поддержка мыши на ПП 177400 (экспериментально)
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-2023.1/ukncbtl-2023-1.zip
Описание протокола мыши (было составлено совместными усилиями в чате):
https://pic.maxiol.com/thumbs2/1691288857.1595409207.ukncmouse.png (https://pic.maxiol.com/?v=1691288857.1595409207.ukncmouse.png&dp=2)
Мышь включается из меню Configuration > Mouse on PPU
Реализованы дельты и три кнопки, дельты отдаются в диапазоне -31..31, накапливаются до -256..256; колесо пока НЕ реализовано
(Понял что среднюю кнопку отдаю неправильно, только 7-й бит, ну ладно, потом поправлю.)
Как проверять мышку:
запускаем эмулятор, включаем мышь в меню.
УСТ — появляется меню установки
<УПР>+@ или <ГРАФ>+<ИСП> — выход в отладчик ПП (ГРАФ это правый Ctrl)
Набираем "177400" и стрелка вправо -- появляется адрес и значение по адресу.
Держим стрелку вправо не отпуская (срабатывает автоповтор), двигаем мышкой -- видим как меняются значения.
Описание протокола мыши (было составлено совместными усилиями в чате):
Мышь в реальности когда-нибудь была на УКНЦ, или же это новодел?
Мышь в реальности когда-нибудь была на УКНЦ, или же это новодел?
Так Марсианка же. И в инструкции Lintech'а, по настройке Dosline, есть настройка COM мышей, т.к. она нужна была для Windows 3.1.
Мышь в реальности когда-нибудь была на УКНЦ, или же это новодел?
Это новодел.
В реальности был контроллер мышь + джойстик, фотки платы выкладывали. Схемы нет. Драйверов нет. Софта нет.
В реальности был контроллер мышь + джойстик, фотки платы выкладывали.
А по плате схему восстановить?
BlaireCas
07.08.2023, 17:22
А по плате схему восстановить?
Там в оригинале мышь марсианка, подключается через 1515XM1-031. Восстановить может и можно тем кто соображает в этом. Есть фотки платы с обеих сторон. Часть дорожек правда закрыта.
- - - Добавлено - - -
Кажется если поставить галочку Fixed Aspect Ratio 4:3 - то мышка "бесится" и куда-то неправильно ездить начинает.
Лечится переключением на Free Scale Mode и перезапуском эмулятора.
Из каких-то старых файлов нарыл тест мыши MOUPZY.MAC, там есть описание.
Похоже, это именно про Марсианку.
;*********DRAJWER MANIPULATORA "MISH"****************
;
; REGISTOR DANNIH MISHI: 177552
;+-----+-----+-----+-----+-----+-----+-----+-----+
;I 7 I 6 I 5 I 4 I 3 I 2 I 1 I 0 I
;+-----+-----+-----+-----+-----+-----+-----+-----+
; | | | | | |-----> \
; | | | | | >Sosotoanie chet 'X'
; | | | | |-----------> / ----------->|
; | | | |-----------------> \ |
; | | | >Sosotoanie chet 'Y' |
; | | |-----------------------> / ----------->|
; | | |
; | | <------------|
; | | 11 - net peremeshenia
; | |Sostoanie klawishi 1 10 - '+' peremeshenie
; | |-------------------- 01 - ne icpolzuetsa
; | Sostoanie klawishi 2 00 - '-' peremeshenie
; |-------------|------------
; |
; 0 - klawisha otgata
; 1 - klawisha nagata
;
;************************************************* *************************
UKNCBTL Qt версия для Linux в виде AppImage — экспериментальный релиз:
https://github.com/nzeemin/ukncbtl-qt/releases/download/preview-468/UKNCBTL_Qt-a808c28-x86_64.AppImage
Проверил под Kubuntu 22.04, работает
Небольшое обновление rt11dsk, бинарник для Windows во вложении.
- Если не задано смещение начала дискового образа (опиция /oXXX) то пытаемся определить его автоматически, поиском свова 000240 по смещениям 0, 128, 256. Соответсвенно, убрал проверку на расширение .rtd (там 256 байт заголовка).
- Для команд извлечения файла с диска (e, x) добавлена опция /trimz, позволяющая обрезать завершающие нули в последнем блоке файла -- полезно для извлечения текстовых файлов.
Изменения с версии 2023.1 rev.739:
- Протокол мыши был изменён
- Показ всех нажатий на виртуальной клавиатуре
- Covox на PPU I/O Port A
- Окно списка строк, см. Debug > Display List
- Полностью убрал "On-Screen Display", оказалось не нужно
- Консоль отладчика: команда uXXXXXX YYYYYY для сохранения фрагмента памяти
- Перешёл от 25 фреймов в секунду на 50 фреймов в секунду, но нормально это работает пока только при выключенном звуке
- Точки останова отладчика сохраняются между запусками эмулятора
- Исправил, что при отключенных картриджах окно памяти отдавало данные, теперь делает TRAP 4
- Стабилизирована скорость эмуляции (при отключенном звуке), добавлены скорости 10% и 400%
Скачать: https://github.com/nzeemin/ukncbtl/releases/download/release-2025.1/UKNCBTL-exe-761.zip
На ОС Windows x64 не запускается эмулятор УКНЦ:
83447
- - - Добавлено - - -
Вопрос благополучно разрешился — https://zx-pk.ru/threads/6257-emulyator-uknts-ukncbtl.html?p=1097639&viewfull=1#post1097639
83450 83451
Возникло несколько вопросов:
1. Есть ли средство для добавления и извлечения файлов на образы дискет для УКНЦ?
2. Где можно прочесть список команд Turbo Basic для УКНЦ?
3. Клавиши и комбинации F10 (меню) и Alt + F9 (компиляция) не срабатывают в эмуляторе.
83450 83451
Возникло несколько вопросов:
1. Есть ли средство для добавления и извлечения файлов на образы дискет для УКНЦ?
2. Где можно прочесть список команд Turbo Basic для УКНЦ?
3. Клавиши и комбинации F10 (меню) и Alt + F9 (компиляция) не срабатывают в эмуляторе.
1 - rt11dsk брать отсюда https://github.com/nzeemin/ukncbtl-utils/
1 - либо плагин к Total Comander от Patron -- искать тему на этом форуме
2 - кажется у него встроенная справка была
3 - навскидку не помню, кажется, F9 и F10 нажимались как F4 и F5 с каким-то шифтом.
3 - навскидку не помню, кажется, F9 и F10 нажимались как F4 и F5 с каким-то шифтом.
К сожалению, не срабатывает ни с одним Shift, ни даже с обоими. =)
Пробовал F4, F5, F9, F10.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot