Мышь в Орионе, выверено адреса, коды драйвер, как подключить к Орион-128

Mouse and Orion-128, сборка платы на 04/04/2026.

Куплю приобрету платы и наборы микросхем, куплю микросхемы      Запчасти для ПК Орион-128

Дата обновления информации: 04.04.2026

Предыстория мышки

На 04/04/2026 инфа мышь работает, платки Сергея из Питера (https://dzen.ru/a/aZHnOQsrKFbpWl9g)

Отдельная платка контроллера мыши, через Х2 Отдельная платка контроллера мыши, через Х2

Собран контроллер мыши для Ориона-128

Скачать демо

Схема подключения мышки к Ориону128 ps/2 Скачать схему в *.pdf

Скачать прошивку

 Ссылаться я буду на исходный текст драйвера, который мне предоставил его автор Алексей Михайлов, которого я упоминал в первой статье. Рекомендую статью к прочтению, а также скачать по приведённой в ней ссылке исходные тексты.

Условно драйвер делится на три составляющих: опрос микроконтроллера и получение координат и состояние кнопок мыши, стирание изображения под указателем и сохранение его во временный буфер и рисование самого указателя, изображение которого, кстати говоря, уже из своей программы можно менять на лету. Для этого предусмотрен буфер CIMG.

Для работы драйвера необходимо последовательно вызывать процедуры MOUSE, CURCR и CURSET. Может это было сделано для гибкости, может ещё для чего-то, но попытка запихнуть все три процедуры в одну успехом не увенчалась, так как там всё переплетено и ссылается друг на друга крест накрест.

Прежде всего я упорядочил список переменных, которых оказалось аж целых 17 штук!

Отдельная платка контроллера мыши, через Х2

И, конечно же, они привязаны к конкретному участку памяти.

Одна переменная в исходном тексте и вовсе не используется. Это MOYES. Её я пока трогать не стал. Возможно, она ранее использовалась для определения наличия мыши как устройства, а потом автор решил её исключить, но имя осталось.

Изначально драйвер представлял из себя сборку драйвер+демо. Демонстрационную часть я вырезал и оставил только сам драйвер, дописал четыре переменные с удобочитаемыми именами для доступа к координатам XY, кнопкам и колесу.

Также заменил команды вида MVI A,000H на XRA A, которые не намного, но сократили размер драйвера. Немного структурировал текст, он стал нормально читаем. В результате получилась одна точка входа из основной программы: CALL MOUSE.
Внутри этого вызова содержится очистка места под указателем и рисование самого указателя.

Также в драйвер добавил определение наличия мышки. Если мышь отсутствует, то происходит возврат в основную программу и указатель на экране не отображается. Для этого служит переменна MO_OK. Содержимое 0FFH говорит об отсутствии контроллера мыши.

Отдельная платка контроллера мыши, через Х2

Переписанный и дополненный драйвер может подключаться к головному исходному тексту как вставленный текст, либо как библиотека. Это на усмотрение программиста. Предпочтительно второе. При этом никаких дополнительных правок вносить в текст драйвера не нужно.

Написал простую программу, в которой будет работать мышь.

ORG 0
START:
CALL MOUSE
JMP START
INCL MODRV.AS

Но работа этого варианта драйвера мне не понравилась. После запуска на экране появилась стрелочка и можно было двигать мышку. Но код настолько расписан "лапшой" (да простит меня автор за критику), что всё работало очень нестабильно и пытаться отладить что-то было весьма сложно. В итоге вся часть, касающаяся отображения указателя, была выброшена и заменена кодом Дениса Соловьёва (автор ОС DSDOS). В свою очередь я добавил в драйвер небольшое улучшение, ограничивающее указатель в пределах экрана, а также точки входа для получения текущих координат по осям XY, состояний кнопок и направления вращения колеса. В результате от прежнего драйвера осталось только чтение состояния контроллера и определение типа процессора (Z80 и КР580ВМ80А читают данные по-разному). В результате после применения нового варианта драйвера, мне всё понравилось. Вот так выглядит старт демо-программы с новым драйвером, написанной выше:

Отдельная платка контроллера мыши, через Х2

После старта драйвера в центре появляется указатель (все вспомнили Windows??) и можно двигать мышку. Указатель иногда появляется не в центре экрана (виноваты инопланетяне ??). Но ведь нужно ещё нажимать кнопки и крутить колесо!
Для этого добавим ещё несколько строк. И помогут нам в этом переменные MO_K и MO_W. А также добавим переменные MO_X и MO_Y, которые будут отображать текущие координаты на экране.

Координату X считываем командой LHLD MO_X, а координата Y командой LDA MO_Y. Состояния кнопок и колеса соответственно LDA MO_K и LDA MO_W.

Отдельная платка контроллера мыши, через Х2

Теперь основной цикл программы выглядит так:

И запускаем!

Отдельная платка контроллера мыши, через Х2

Перемещая мышь видим показания. Первые 3 байта это положение по оси X и Y, начало координат от левого верхнего угла. Четвёртый и пятый байты состояния нажатия кнопок и направление вращения колеса. Выход из программы - ESC. Если контроллер мыши не установлен, то экран будет пуст, но выход через клавиатуру будет доступен.

Итак, резюмируем.
Вызов - CALL MOUSE.
MO_OK - переменная наличия контроллера мыши. Значение 0FFH - мыши нет.
Буфер CIMG - можно грузить свой спрайт указателя (рисунок сверху вниз).
MO_X и MO_Y - переменные с координатами XY в HEX-виде.
MO_K и MO_W - переменные состояний кнопок и колеса в HEX-виде.

16/03/2026 Приехали платки

Отдельная платка контроллера мыши, через Х2

Контроллер мышки

28/02/2026 заказали платы и вперед

Эскиз контроллера Мышки Схема подключения мышки к Ориону128 ps/2

Эскиз контроллера Мышки

Предыстория мышки

Сергей из Питера, развел платку, сделал драйвер и поддержку ПО, разобрал все по байтикам, пришли к единому адресному пространству

Схема подключения мышки к Ориону128 ps/2 Скачать схему в *.pdf

Схема подключения мышки к Ориону128 ps/2

Скачать прошивку

Теперь только остается не лениться и писать программы

 

 

 

Мультимедиа клавиатура РК86+IBM на кнопках "Черри"

Клавиатура РК86

Как подключить мышь по журналу "Радиолюбитель"

 

 

 

 

 

Интересуют микросхемы на Орион-125, КР565РУ5В, КР565ру7В, к565ру5г AU, к565ру7г Au в позолоте и вникеле, также серия к580

 

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу