С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В курсе, в курсе, доки по мышке читал. И могу сказать, что прерывания от мыши - ещё более убогая затея, нежели программно опрашивать порт. Чем быстрее "везут" мышу - тем больше прерываний обрабатывать, а каждая обработка это, во-первых, затраты процессорного времени, коего на ВМ1 и так не вагон, а во-вторых, прерывание портит стек, и прога не сможет его использовать как регистр, что делается не так уж и редко. Если же забить на прерывание от мыши (запретить) - имеем все шансы пропустить часть сдвигов, и чем больше "пауза", тем хуже. Ну и зачем такое убожество нужно? Поэтому блок КМ - лишь довесок навроде пятого колеса, в реальности бесполезный.Сообщение от gid
Угу, в результате и получаем имитацию джойстика, тоже опрашиваемого 50 раз в секунду. Без учёта скорости движения мыши. Либо был сдвиг на единицу, либо нет. Смысл дублировать джойстик?Сообщение от gid
Да вроде не дурак, в рассыпухе, в отличие от ПЛИСов, разбираюсь =) Специально выше писал про переделку софта, а также контроллер. Схемка простая, несколько корпусов рассыпухи - по сути, аналогична спектрумовской за вычетом обработки сигналов процессора, поскольку УП уже готовый порт ввода-вывода, и схема даже проще, чем для Спектрума. Но если кому-то нравится пользоватьсяСообщение от Sandro
резиновой бабойимитацией джойстика вместо полноценного девайса - я не против. Их право.
В новый же софт вставить драйвер и выбор типа мыши вообще не проблема, и чем раньше это начнётся, тем лучше.
Для electroscat под Агат, между прочим, есть вменяемый "родной" олдскул контроллер под Марсианку, если интересует работа на нём. Почитать про него и мышу можно на сайте по Агатам: http://agatcomp.ru/agat/Hardware/Key_Joy/MouseUVK.shtml там и схемы, и все техническо-софтовые подробности. Другое дело, что сейчас и мышка, и сам этот контроллер перешли в разряд музейных эспонатов. Но контроллер можно спаять самому из той же рассыпухи, что и исходный, а вот где взять пассивную мышку... довольно легко переделываются шариковые PS/2, если у кого завалялись. А главное - под этот контроллер на Агате есть софт. В отличие от БК. Для него либо работа через прерывания и блок КМ, либо имитация джойстика. И то, и другое напоминает приём душа в водолазном костюме.
Можно же опрашивать нормально, а не раз в кадр. Весь опрос -- BIT+BNE, это около полусотни тактов. Примерно четверть экранной строки. Мелочи. Можно хоть каждую десятую строку опрос делать, отъест страшные 2,5% процессорного времени.
И, кстати, что значит -- "прерывания портят стек", с чего бы это? И что значит "использовать стек, как регистр"? Если речь идёт о ячейке на вершине стека, @sp, то ничего ей не делается.
- - - Добавлено - - -
И ещё: к Марсианке можно приделать переходник на реверсивных счётках с сохранением совместимости с оригинальным интерфейсом. Который будет снимать проблему с потерей импульсов.
Про Агат я в курсе, там идея шире, реализовать на одной плате контроллер мыши от Nippel и часы реального времени, и чтобы не отходить от стандартного решения, тоже желательно получить эмуляцию "марсианки"... Работать это правда будет только на Агате 9, т.к. за основу возьмется контроллер от Nippel, и часы от них же, а все это только на А9 работает. Да и в целом, я на Агате 7 не видел ни одного приложения с использованием мыши, а для Агат 9 много.
Меня все таки пока устроит варант с эмуляцией марсианки из PS/2 мыши, это гораздо быстрее реализовать, и полезно будет и для БК и для Агата.
Последний раз редактировалось electroscat; 08.01.2022 в 21:06.
Сейчас в коллекции:
Вектор 06Ц.01(Минск, Волжский, Астрахань, Киров) x4, Вектор 06Ц.02(Кишенев), Электроника 0511 УКНЦ (СЭМЗ) X2, Электроника 0511 УКНЦ (КВАНТ), Агат 7, Агат 9, Поиск-1.03 (VGA), Поиск-1.03 (CGA сток), Электроника БК-0011(10,11M) [3IN1], Электроника БК-0010-01, Львов ПЛ-01, Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста ИК-30, Веста ИК-31, БПК Дельта-Микро, Компакт 256(новодел),
и ... AMD K6-300, Pentium 200 mmx, 386SX-16 ...
Можно, вот только в реальной программе, загружающей проц, скажем, игра с кучей графики либо прога с активными расчетами, проблематично вырывать проц из середины таких вычислений/процедур. Это не вывод курсора мышки раз в кадре и последующий "афк" с циклическим опросом, пока проц ничем другим не занят. Прерывания от мыши решают эту проблему, но возникает другая, со стеком:
Вот это и значит. На БК можно юзать SP не по прямому назначению, а в качестве обычного регистра, если стандартных R0-R5 не хватает. Да, это требует запрета прерываний или, как минимум, кусок кода должен успеть восстановить SP до их прихода. Что вполне реально между 50Гц кадровыми, но в случае непредсказуемых мышиных прерываний невозможно. А применяется такой приём не так уж и редко. В основном, конечно, в демках, но что мешает задействовать SP в играх, если это ускорит работу? В таком случае опрос мыши допустим только по КС, что в случае Марсианки фактически лишено смысла.Сообщение от Sandro
Так это и планируется, чтоб имеющие оригинальную мышь могли её превратить в "кемпстон-мышь", пусть и с некоторыми потерями (нет колеса скролла и лишь две кнопки вместо трёх). Собственно, моя схема и есть набор счётчиков плюс кой-какая логика, обычная пассивная мышь от Амиги/Спектрума работает в ней напрямую. Для Марсианки же придётся добавить формирователь сброса после "двига" мышой, в остальном схемы идентичны. Если бы для БК сразу сделали такой контроллер, наподобие Nippel Card для Агата, сейчас не пришлось бы изобретать велосипеды по даунгрейду PS/2 мышей в убогое поделие под названием УВК.И ещё: к Марсианке можно приделать переходник на реверсивных счётках с сохранением совместимости с оригинальным интерфейсом. Который будет снимать проблему с потерей импульсов.
Как вариант закоса под оригинал - да, имеет право на жизнь. Но по функционалу я уже прошелся =)Сообщение от electroscat
Народ просто не понимает всей выгоды, что объяснимо, т. к. пользовались лишь тем, что было. Это как у Жванецкого: "для советского гражданина, не носившего импортные ботинки, и наши ботинки - вот такие! " (большой палец вверх)
Цена копии "марсианки" и скорость ее изготовления на несколько порядков ниже новой версии мыши как для БК так и для Агата. Не заю как на БК, а на агат точно никто софт править не будет, в сообществе фанатов Агата все очень архаично и консервативно, по этому там лучше просто повторить реальные девайсы, максимум используя для них мышь PS/2. На счет БК судить не берусь, но вроде у БК программеров и без того заделы на будущее необьятные, вряд ли они горят желанием вставлять новые драйвера в софт из прошлого. Ну и по Жванецкому, если "наши" ботинки можно купить с зарплаты несколько пар, а на "импортные" копить десять месяцев,.... При всем при том, что и в "наших" и в "импортных" в целом ходить реально, примерно с такой же скоростью и с такими же усилиями... то возникает вопрос, зачем нужны импортные ?!?
- - - Добавлено - - -
Попробовал скомпилить скетч из первого сообщения под NodeMcu V3 - другого ничего нет... И не завелось. Не знаю в чем проблема, есть подозление что ардуино подпорченное, ибо 6,7,8 и 11 пинами не смог управлять при проверке (запускал на каждый из пинов меандр, типа помигать диодом, перебором пинов при компиляции, когда компилил на 6,7,8 и 11 пины такой же эффект как при запуске "перепининного" скетча для эмуляции Марсианки, раз в секунду в ком порт выводится информация и все.., когда меандр выводится, то есть программа работает - в COM информация не выводится.), програмки которые должны были выводить на эти пины меандр, не завелись. В целом, я вообще не специалист по ардуино, это вторая поделка на платформе, и первая не завелась, точнее не заработала как следует,. По этому таки подозреваю, что моя платка не исправна.
Из этого возникает вопрос, предже всего наверное к автору темы, под какую ардуину писался скетч ? То есть, какой наиболее подходящий девайс заказывать под опубликованный скетч ?
Прошу прощения за оффтоп, наверное нужно к ардуинщикам обратиться )))
Сейчас в коллекции:
Вектор 06Ц.01(Минск, Волжский, Астрахань, Киров) x4, Вектор 06Ц.02(Кишенев), Электроника 0511 УКНЦ (СЭМЗ) X2, Электроника 0511 УКНЦ (КВАНТ), Агат 7, Агат 9, Поиск-1.03 (VGA), Поиск-1.03 (CGA сток), Электроника БК-0011(10,11M) [3IN1], Электроника БК-0010-01, Львов ПЛ-01, Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста ИК-30, Веста ИК-31, БПК Дельта-Микро, Компакт 256(новодел),
и ... AMD K6-300, Pentium 200 mmx, 386SX-16 ...
Не мешают. Кстати, я посчитал. Проверка на движение мыши занимает 64 такта и ноль регистров.
Можно. Но редко нужно. Хотя я совсем недавно так делал. Кстати, без запрета прерываний и гонки с лучом. А потом переписал так, что остались свободные регистры и стало быстрее. Так что этот частный случай не являетсся серьёзным аргументом.
Что вполне реально между 50Гц кадровыми, но в случае непредсказуемых мышиных прерываний невозможно. А применяется такой приём не так уж и редко. В основном, конечно, в демках, но что мешает задействовать SP в играх, если это ускорит работу? В таком случае опрос мыши допустим только по КС, что в случае Марсианки фактически лишено смысла.
Не это. Кемпстон не нужен. Можно отложить чтение мыши на попозже, совсем нехитрым способом. И не изменяя ни строчки в софте.
Всё это замечательно, но каким образом вставлять сей опрос внутрь некоего куска кода, работающего значительный период времени, причём со всякими ветвлениями и прочим, что не позволяет уповать на более-менее частую и равномерную проверку? Смысл схемы со счётчиками именно в уходе от проверки, как таковой. 50 раз в секунду (или даже реже, зависит от выдаваемого программой fps) из порта читаются значения - и всё, зачем эти проверки?Сообщение от Sandro
Только за тридцать лет почему-то никто это не осуществил.Сообщение от Sandro
Имею в виду полноценную мышь, а не УВК.
Ну и где же они, дешёвые мыши для БК, наводнившие рынок? Кто-то ведь сам писал, что цена на оригинал кусается, а альтернативных предложений нету. Отчего и приходится изобретать адаптеры писишных мышей.Сообщение от electroscat
Если бы было дёшево и быстро - оригиналы бы не стоили по 2 тыщи![]()
Сейчас в коллекции:
Вектор 06Ц.01(Минск, Волжский, Астрахань, Киров) x4, Вектор 06Ц.02(Кишенев), Электроника 0511 УКНЦ (СЭМЗ) X2, Электроника 0511 УКНЦ (КВАНТ), Агат 7, Агат 9, Поиск-1.03 (VGA), Поиск-1.03 (CGA сток), Электроника БК-0011(10,11M) [3IN1], Электроника БК-0010-01, Львов ПЛ-01, Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста ИК-30, Веста ИК-31, БПК Дельта-Микро, Компакт 256(новодел),
и ... AMD K6-300, Pentium 200 mmx, 386SX-16 ...
Плюс цена разъёма СНП, не в воздухе ж оно будет висеть возле компа =)) вполне вариант, почему б нет.
Внизу страницы, где предложения схожих тем, есть топик об адаптере PS/2 мыши для Коммодора. Тема аж 2009 года, устройство уже тогда было. Неужели Коммодор, который ни я, ни кто-либо ещё из друзей-знакомых в моём городке в глаза не видел, популярнее БК?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)