В общем, 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)