В общем, ms.sav это два драйвера в одном: драйвер мыши и процесс рисования графического курсора. Заставить его подхватывает другие драйвера не получилось, нужно его похоже патчить...
Протокол там реализуется точно такой как в MSCR.MAC, но в последнем закомментирован весь код нанокостылей с анализом предыдущих смещений и нелинейности.
Мышь для последовательного использует два раздельных драйвера (брать на диске ms_002.dsk):
GMOUSE.PRC - связь с самой мышкой через i8251 и средний канал левого по схеме таймера i8253.
GMXP.PRC - процесс рисования курсора с учетом того, что его части могу оказаться в четырех окнах с разным разрешением и масштабом.
Замечательно то, что исходники этих файлов доступны...
Если в скрипте asp.com диска с Аспектом вместо одной строки MS.PRC (или просто ms), прописать эти два файла, то на экране курсор появляется, но ес-но не управляется он. Сам симулятор спамит сообщениями "PICMR = 76--3-1-".
Имеет смысл попробовать на реальной машине...
hobot (06.09.2019)
Это обычные PC-шные мышки, которые были до PS/2 мышей. Новых наверняка не купить, но их было очень много выпущено, вряд ли это дефицит.
Протокол - вот первое что попалось:https://courses.cs.washington.edu/co...use/mouse.html
Ну и в драйвере расписаны те три байта, которые ожидаются от мыши при любом передвижении: https://github.com/troosh/pk11-16/bl....MAC.utf8#L257
Из-за скорости 1200 бод, эти пачки из трёх байт не могу приходить чаще 40 раз в секунду.
Корветовская мыша ММ8031 мне почему-то по протоколу напомнила MSX трекбол, возможно вся та магия с нелинейностями это изначальная попытка решить проблемы именно с треболом (пальцем можно придать большое ускорение шару трекбола, а мыши с ускорением не двигают обычно).
Попробовал провести разметку с обновленным ide6v.prc от troosh, результат неудовлетворительный. Кроме того, если дать команду dir st0: с драйвером
ide6v.prc - выдает ошибку ?MON-F-No device 001410
Возрождение БК0011М: pk-fpga.ru, forum.pk-fpga.ru
Продажа электронных компонентов >>тут<<
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вот тут: https://github.com/troosh/pk11-16/tr...Mouses.drv/exp выложил разные варианты хакнутого драйвера мыши, там же описание.
Titus (08.09.2019)
Оба эти файла работают под эмулятором, но отклик на движения мыши становится странным..
Тут бы проверить на реальной машине и мышке ММ8031, на каком драйвере реакция более адекватная будет (попытаться на экране курсором провести круги разного диаметра, линии параллельно сторонам экрана и диагональные, с разной скоростью и резкой сменой направления).
Может это будет субъективное решение, но можно будет понять зачем две варианта драйвера для этого типа мышей на дисках неонов оказалось.
Было озвучено, что MSX мыши доступнее и эстетичнее, да и подключаются они через тот же специально предусмотренный для этого разъём (точно также как и ММ8031). Буквально, пишут что лежит рядом с ррепликой а как проверить непонятно...
Они ближе всего к современным PS/2 и USB мышам, значит эмулировать проще.
Мышки ПиСишные последовательные самые доступные и возможно тпродаются сейчас на барахолках всё ещё на вес, но под них занимается целый последовательный порт, а главное один канал таймера. Возможно из-за этого на приложениях где задействована музыка будет отваливаться мышь. Зато ими можно проверить, что последовательный порт живой (в одну сторону). Мыши эти вещают минимум в двух вариантах посылок данных (на них под это был переключатель), поэтому под них два драйвера есть.
Что есть "Славик моузе" сие тайна велика, но выглядит как турбо вариант MSX протокола, а значит на работу с ней меньше будет отвлекаться процессор (если это вообще заметно).
Под эмулятором, если откинуть вариант с поддержкой все типов мышей, лучше поддержать тот вариант мыши, который будет использоваться с "живыми" машинами. Я за MSX мыши.
Последний раз редактировалось troosh; 08.09.2019 в 21:16.
Titus (08.09.2019)
Попробовал твой драйвер MSCX1. Он почему-то не работает. Вызов инициализации есть (0x532), откуда 2 раза вызывается чтение мыши. И все, больше мышь не читается. Т.е. функция опроса (0x572) не вызывается.
- - - Добавлено - - -
Так же непонятно, что делает драйвер здесь:
Т.е. при инициализации мы опрашиваем мышь, затем складываем r0 (смещение по X) и r1 (смещение по Y), и устанавливаем флаг, если оба этих смещения отрицательные. Зачем, не понятно)Код:call mouse mov (sp)+, PICMR ;restore picmr mov #m.tio, mflg add r0, r1 bcc 10$ clr mflg 10$:
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)