dk_spb, "Ириша" в планах есть, но не в ближайших, к сожалению...
dk_spb, "Ириша" в планах есть, но не в ближайших, к сожалению...
Oleg N. Cher (29.10.2022)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Здравствуйте, под Linux планируете сборку сделать?
Орион-512, Вектор Старт-1200
Прошу протестировать:
Emu80qt_40429_linux64_test.tar.gz
Текущая версия из репозитория, со всеми библиотеками - распаковать и запустить.
Ориентировочно должен работать в 64-разрядных дистрибутивах 2018 года и позже (например, Ubuntu 18.04 LTS).
Работоспособность в более старых дистрибутивах нужно тестировать. Есть ли смысл делать 32-разрядную сборку - не уверен.
Можно попробовать сделать пакет AppImage, а также пакеты deb и rpm, если будет такая потребность.
P.S. Заодно исправил баг, появившийся в последних версиях и проявлявшийся под Linux в падении эмулятора при переключении платформ.
Последний раз редактировалось Pyk; 09.11.2022 в 22:50.
Oleg N. Cher (17.11.2022), shapipovo (13.11.2022)
Погонял несколько дней, пока проблем нет. Спасибо!
Орион-512, Вектор Старт-1200
Pyk (15.11.2022)
Обсуждение текстового редактора ChiWorker и конвертера из его формата в текст перенесены в раздел "Корвета".
Krautsov (21.11.2022)
Обычно я не копаюсь в чужих исходниках. Долгое время отгонял от себя мысль посмотреть на Emu80, так сказать, изнутри. Но тут чёрт меня дёрнул и я залез на гитхаб, просто хотелось собрать проект из исходников. Однако посмотрев на код, несколько удивился, насколько они простые и понятные. Тут же возникла мысль, а что если добавить туда Башкирию-2М? Кто, если не я? Вряд-ли Виктор станет разбираться с таким мало распространённым компом.
На первый взгляд это была работа на пару часов. На деле оказалось несколько сложнее, к примеру, чтобы реализовать прерывания от таймера, пришлось изобретать костыль. В остальном, просто надёргал куски кода их разных подходящих компьютеров и переделал для Башкирии. Дольше всего кодил клавиатуру Точнее её раскладку.
Несмотря на то, что делал всё по аналогии, Башкирия не завелась. Пришлось искать причину. Оказалось, есть неточности в эмуляции контроллера прерываний, в частности регистра запросов. А ещё есть ошибка, из-за которой после окончания прерываний выполнялся переход несуществующему вектору 8 (хотя он может быть только от 0 до 7). Видимо, сначала уровень, соответствующий отсутствию прерываний был -1, а потом Виктор переделал на 8, а в одном месте забыл исправить. Ну и так, по мелочи, например при загрузке счётчика таймера еденицей нужно устанавливать out в еденицу (на самом деле не сразу, а в следующем такте, но это не принципиально, и я сделал сразу).
Проблема с прерываниями от таймера всё ещё имеется, особенно если работает в паре с прерываниями от vrtc (например, реверси виснет). В остальном вроде всё работает.
Залил на гитхаб https://github.com/bashkiria-2m/emu80v4, если надо, могу отправить pull request.
здорово!
Pyk, добавляй.
чем больше компов будет эмулироваться тем лучше.
Что ж, я только рад, что проект востребован и достаточно понятен даже без документации для того, чтобы добавить в него новый комп К сожалению, далеко не везде код прост и понятен, но сложности в основном все-таки в GUI, а не в ядре...
Про проблему с прерываниями от таймера знаю, у самого пока не реализованы прерывания в КР-04 (благо они ни в одной известной программе не используются). Планировал в ближайшее время сделать поддержку похожим способом - также с помощью отдельного класса. Когда сделаю, можно будет поменять. А насчет клавиатуры - может быть, оно кажется излишне сложным, но в итоге мне так проще.
Я догадывался, что там возможны проблемы. ВН59 до этого у меня использовался только для Корвета, так что не было возможности хорошенько протестировать его реализацию, на Корвете эти ошибки не всплыли. А уровень я действительно менял с -1 на 8. Спасибо за фикс!
Упс, упустил этот момент, спасибо! Вообще, конечно, реализация таймера - это не сильная сторона emu80 Была мысль переписать все немного по-другому, в том числе учесть и эти задержки в 1-2 такта в разных местах, но в итоге добавил костылей и наверное пока все так и останется, добавлю только поддержку прерываний от таймера, недостающие режимы и BCD...
Думаю, однозначно нужно добавлять в основной репозиторий, если ты не против. Естественно, с упоминанием авторства реализации "Башкирии". Можно PR, могу сам залить изменения - как удобнее. Единственное - посмотрю сначала, может быть, надо будет что-то изменить по мелочи (например, директория ".vscode" думаю, не нужна).
Ну и нужно будет потом довести реализацию Башкирии до ума - дописать справку, нарисовать раскладку клавиатуры, убрать не актуальные для этого компа кнопки и настройки... В этом плане помогу, конечно. Не совсем понял, нужна ли работа с магнитофоном, образов лент для нее не видел. Также не знаю, тормозится ли процессор при работе видеоадаптером и как, но мне показалось, что игры работают как-то слишком быстро. У тебя реал сохранился, кстати?
Последний раз редактировалось Pyk; 06.12.2022 в 21:33. Причина: typo
Хорошо, уберу, и отправлю PR.
Да, надо бы доделать.
К сожалению ничего не сохранилось, тестировать нечем. Это более актуально для варианта без дисковода. Может быть позже сделаю.
Мы в своё время этим не заморачивались, так что я не знаю.
У меня нет, но есть люди, у которых есть. Например в музее у Фролова.
- - - Добавлено - - -
По поводу прерываний. Я планировал при записи в порты таймера рассчитывать время, через которое out изменится. Но нужны функции, выдающие значения инициализации счётчика и количество тактов до изменения out. Последнее зависит ещё и от режима таймера, например в режиме меандра значения будут другие. Вобщем пока не получилось, и там костыль на 13 тактов (значение делителя по-умолчанию).
Олично, остальное вроде бы ок.
Неплохо бы, конечно, добраться до железа и потестировать как минимум скорость работы. Торможение надо бы сделать, хотя бы примерно. Может быть, по схеме получится разобраться?
Да, примерно так я и хотел сделать. Но пока есть только наброски интерфейса нового класса Pit8253IntHelper, не дошли еще руки до реализации...
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)