«Мышь» к «Специалисту»

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

«Мышь» к «Специалисту»

Post by Lavr »

Кто бы мог подумать, но я лично не знал, что к «Специалисту» прицепляли «Мышь»...


«Мышь» к «Специалисту»

И. ИВАНОВ
«Моделист-конструктор», 1994 г., «М-К» 2'94, с. 30.

Среди известных средств ввода графической информации в ЭВМ наиболее простым и удобным, на мой взгляд, является устройство типа «Мышь», или «Координатный шар». И если таковое у вас имеется, рекомендую, не мешкая, подключить его к своему компьютеру «Специалист» — через БИС КР580ВВ55. Убедитесь, что сделать это (см. рис.) вполне по силам даже начинающему пользователю. А результат — уверен! — превысит самые смелые ожидании.

Image

Схема подключения УВК типа «Мышь» к персональному компьютеру «Специалист».

Работа устройства координатного ввода информации (УВК) типа «Мышь», подключенного к ПК «Специалист» по приведенной схеме, протекает следующим образом. Сигнал от УВК поступает на порт «В» (адрес 0FEFDH). Микропроцессор считывает их и выдает сигнал сброса УВК (вывод B7 порта), тем самым, приводя триггеры устройства в исходное состояние. Затем в соответствии с полученной информацией компьютер выполняет действия по перемещению курсора или другого графического объекта. Ну а для проверки работоспособности подключенного к «Специалисту» УВК служит приводимая ниже специальная программа.

Программа проверки работоспособности устройства координатного ввода информации.

Code: Select all

21 D9 00 CD 18 C8 3E 80
32 FF FE 3E FF 32 FD FE
2F 32 FD FE 3E 82 32 FF
FE 00 00 3A FD FE 4F 3E
80 32 FF FE 3E FF 32 FD
FE 2F 32 FD FE 79 E6 1B
FE 00 CA 70 88 79 E6 20
FE 00 CC 10 C0 79 E6 01
FE 00 C2 4C 00 3A DF 00
3D 32 DF 00 79 E6 04 FE
00 C2 5B 00 3A DF 00 3C
32 DF 00 79 E6 02 FE 00
C2 6A 00 3A E9 00 3C 32
E0 00 79 E6 08 FE 00 C2
79 00 3A E0 00 3D 32 E0
00 3A E0 00 21 CC 00 CD
18 C8 CD 15 C8 3A DF 08
21 8F 00 CD 18 C8 CD 15
C8 3A E0 00 E6 FC 1F 1F
C6 90 32 85 6F 3A DF 00
17 17 17 32 84 8F 0E 2B
CD 09 C8 06 FF CD 90 C1
CD 90 C1 CD 90 C1 CD 90
C1 CD 90 C1 C3 14 00 1B
5A 64 0A 4D 4F 56 45 20
01 12 20 00 1B 5A 6E 0A
4D 4F 56 45 20 01 1D 20
00 1B 4C 1B 50 1F 00 0C
42 90 39 00 39 00 39 00
PS. Коды не проверял - всё как распознал Файнридер. Исходник был плоховат.
У мыши весьма странный интерфейс. я таких мышей не встречал в своей жизни... но автор, видимо, встречал.
Схема подключения - также оставляет желать лучшего... но, по-моему, специалистам достаточно... :wink:
User avatar
Error404
Maniac
Posts: 269
Joined: 05 Oct 2006 04:45
Location: Moscow

Post by Error404 »

Какая же это мышь? Это джойстик какой-то.
Всем добра!
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

SP_MOUSE

Post by Lavr »

Исходный скан делал не я, и он был плоховат - *.TIFF в два цвета, поэтому Файнридер разбирал его плоховато,
хотя там и на глаз не всё было столь очевидно.
Если кому-то кажется, что я что-то упустил - выкладываю сам скан.

http://www.nedopc.org/nedopc/upload/MK199430.jpg

Никаких контрольных сумм не было, поскольку дамп был напечатан в виде картинки. Некоторые непонятные переходы видны, как назло, очень отчётливо - как, например, адрес 8870Н - это переход в никуда. Но если бы были полутона, это могло бы быть, к примеру, 0079Н - приемлемый переход.
Программа написана под МОНИТОР Доможирова, о чем подсказывала строка перед дампом:
CLI> D0,E1

В итоге у меня получился следующий текст.

Code: Select all

;---------------;
;   SP_MOUSE    ;
;---------------;

    ORG  0000H

    LXI  H,MS3
    CALL LIN

    MVI  A,80H; 1000.0000b
    STA  PYC;   все - на вывод
    MVI  A,0FFH
    STA  PRF;   PRB
    CMA
    STA  PRF;   PRB
K00:
    MVI  A,82H; 1000.0010b
    STA  PYC;   все - на вывод, B - на ввод
    NOP
    NOP
    LDA  PRB
    MOV  C,A

    MVI  A,80H; 1000.0000b
    STA  PYC;   все - на вывод
    MVI  A,0FFH
    STA  PRF;   PRB
    CMA
    STA  PRF;   PRB
;             _321.DLRU
    MOV  A,C
    ANI  10H; 0001.0000b
    CPI  00H;    1
    JZ   K0F; 8870H ???

    MOV  A,C
    ANI  20H; 0010.0000b
    CPI  00H;   2
    CZ   CLS

    MOV  A,C
    ANI  01H; 0000.0001b
    CPI  00H;         U
    JNZ  K01

    LDA  K08; Up
    DCR  A
    STA  K08
K01:
    MOV  A,C
    ANI  04H; 0000.0100b
    CPI  00H;       L
    JNZ  K02

    LDA  K08; Left
    INR  A
    STA  K08
K02:
    MOV  A,C
    ANI  02H; 0000.0010b
    CPI  00H;        R
    JNZ  K03

    LDA  K09; Right
    INR  A
    STA  K09
K03:
    MOV  A,C
    ANI  08H; 0000.1000b
    CPI  00H;      D
    JNZ  K04

    LDA  K09; Down
    DCR  A
    STA  K09
K04:
    LDA  K09
    LXI  H,MS2;
    CALL LIN
    CALL HEX

    LDA  K08
    LXI  H,MS1;
    CALL LIN
    CALL HEX

    LDA  K09
    ANI  0FCH; 1111.1100b
    RAR;
    RAR;
    ADI  90H;
    STA  CHI

    LDA  K08
    RAL;
    RAL;
    RAL;
    STA  CLO

    MVI  C,2BH; +
    CALL SCR
    MVI  B,0FFH
    CALL DEL
    CALL DEL
    CALL DEL
    CALL DEL
    CALL DEL
    JMP  K00

MS1:
    DB   1BH, 5AH, 64H, 0AH, 4DH, 4FH, 56H, 45H
    DB   20H, 01H, 12H, 20H, 00H
;   MOVE ↕

MS2:
    DB   1BH, 5AH, 6EH, 0AH, 4DH, 4FH, 56H, 45H
    DB   20H, 01H, 1DH, 20H, 00H
;   MOVE ↔
MS3:
    DB   1BH, 4CH, 1BH, 50H, 1FH, 00H
;
K08:
    DB   0CH; U↕D
K09:
    DB   42H; L↔R
PRF:
    DB   00H

K0F:EQU  0C800H; 8870H ???

CLO:EQU  8F84H; адpес куpсоpа
CHI:EQU  8F85H; 9000H-0BFFFH

CLS:EQU  0C010H; очистка экрана
DEL:EQU  0C190H; задержка [B]
SCR:EQU  0C809H
HEX:EQU  0C815H
LIN:EQU  0C818H

PRB:EQU  0FFE1H;<-0FEFDH
PYC:EQU  0FFE3H;<-0FEFFH
    END
Чтобы посмотреть, что получается, при отсутствии странной мыши от Иванова, я переназначил её порты на клавиатуру и внёс ещё некоторые изменения, чтобы могло работать. Что получилось - видно на картинке.

Image

Согласно движению мыши, по эрану движется символ "+" и отображаются относительные координаты. Нажатие одной из кнопок - чистит экран. Нажатие другой уводит на 8870Н (я заменил на 0С800Н). Третью кнопку не обслуживают, хоть она и есть на схеме.
Кому интересно - выкладываю МОНИТОР Доможирова и саму программу в формате *.ALL эмулятора Шевцова.

http://www.nedopc.org/nedopc/upload/MONITORS.ALL

Вначале сажаем прогу SPMOUSE по 0000Н через Дебаггер. Затем запускаем МОНИТОР> даём команду G0 и пробуем понажимать клавиши. Некоторые сработают за Мышь.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Начинаю понимать логику работы мышки: триггеры, которые устанавливаются когда "трещетка" давит на микрик (этакий механический аналог оптического датчика шариковой мышки). Каждая "трещетка" срабатывает только в свою сторону (диагонали работают или нет - хз).
Наверное мышь ИВАНОВА была клоном вот этого девайса... :lol:
Dug_mouse.png
История создания компьютерной мышки (копия, ибо "домен продаётся)
https://it-master.biz/istoriya-sozdaniy ... noj-myshki
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Адаптер мыши к ПК "ПОИСК"

Post by Lavr »

Адаптер мыши к ПК "ПОИСК"

И если предыдущий пост содержал некоторые оффтоп-размышления, то здесь
я хочу привести схему адаптера мыши к ПК "ПОИСК", полученную методом
реверсивной разработки с платы, выпускавшейся каким-то кооперативом...


http://sgu-wap.narod.ru/SP_MX/Port_8251.gif

Микросхемы были покрыты непрозрачным лаком, так что я зело помучался
тогда, а целью мучений было прицепить это к своей "Искре 1030", последовательный
интерфейс которой был сделан по советскому стандарту - "токовая петля"
и как цеплять к нему мышь было непонятно.

Софт и описание у меня тоже есть, причем драйвер я декомпильнул, чтобы
проверить правильность схемы. Впервые столкнулся тогда со стековой защитой,
так что процесс реверс-разработки был весьма интересен.

К "Искре 1030" я это не приделал, т.к. уже приобрёл 286-ю машину и с мышью
у неё всё было без проблем.

Адаптер работает без аппаратного прерывания - по опросу, т.к. RxReady и
TxReady - никуда не подключены.
Распиновки системного разъёма ПК "ПОИСК" у меня не было - так что контакты
шин не маркированы, впрочем, там и так всё понятно.

Без аппаратного прерывания схема весьма просто может быть адаптирована как
к ПК "Специалист", так и к любому другому.

Если кому интересно оригинальное описание и драйвер с исходниками - могу
поискать и выложить.
Last edited by Lavr on 11 Jun 2011 07:56, edited 2 times in total.
User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Lavr, давай по теме. Мне как-то Ewgeny7 дал готовые исходники прошивки драйвера PS/2 мыши, взятой им с Ориона. Я в своём клоне Спеца на Циклоне хотел бы применить его. На выходе драйвера имеем: сигналы включения трёх кнопок, координаты x и y по 8 бит. Lavr, можно ли это как-то приспособить к реальному Специалисту?
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

fifan wrote:Lavr, давай по теме. Мне как-то Ewgeny7 дал готовые исходники прошивки драйвера PS/2 мыши, взятой им с Ориона. Я в своём клоне Спеца на Циклоне хотел бы применить его. На выходе драйвера имеем: сигналы включения трёх кнопок, координаты x и y по 8 бит. Lavr, можно ли это как-то приспособить к реальному Специалисту?
В лобовую с имеющимся софтом - никак нельзя. Как нам кто-то советовал - пишите новый софт. :wink:

Существует возможность применить мышь в "Специалист МХ". Там легче перехватить вектор драйвера клавиатуры в ОЗУ и есть одна ячейка буфера клавиатуры.
Можно осуществлять подстановку: движение мыши - в нажатие кнопок курсора, а три кнопки мыши = [Enter], [CTP] и [Esc].
Такой драйвер был и под ДОС.
Со старым софтом мышь ничего другого не сможет.

В принципе, ещё можно сделать драйвер экранной клавиатуры, в которую тыкать курсором, но я сомневаюсь, что хватит служебного ОЗУ РАМФОС под драйвер мыши и экранную клавиатуру одновременно...

А что делают "готовые исходники прошивки драйвера PS/2 мыши" от Ewgeny7 я даже не знаю... :wink:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: исходники драйвера PS/2 мыши

Post by Lavr »

fifan wrote:Мне как-то Ewgeny7 дал готовые исходники прошивки драйвера PS/2 мыши, взятой им с Ориона. Я в своём клоне Спеца на Циклоне хотел бы применить его.
fifan, а что-то ты эти "исходники прошивки драйвера PS/2 мыши" так никуда и не выложил? :roll:
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Манипулятор графической информации ЕС-1841

Post by Lavr »

Lavr wrote:
Начинаю понимать логику работы мышки: триггеры, которые устанавливаются когда "трещетка" давит на микрик (этакий механический аналог оптического датчика шариковой мышки). Каждая "трещетка" срабатывает только в свою сторону (диагонали работают или нет - хз).
Наверное мышь ИВАНОВА была клоном вот этого девайса... :lol:
Я ещё в те древние времена попытался найти, что за мышь была у ИВАНОВА, но ничего подходящего не нашел... :-?
Сегодня, подправляя убитые ссылки и картинки в этом топике, я предпринял такую попытку ещё раз, и как мне кажется,
удача на сей раз мне сопутствовала! :wink:

На мой взгляд, этот некий ИВАНОВ подсоединял к «Специалисту» Манипулятор графической информации ЕС-1841.А002.
Mouse_EC.png
Интеллектом эта мышь не блистала, но и атавизма в виде механических "трещеток" в ней также не было.
А вот простенькая электроника для определения направлений движения всё же была! :kruto:

Ну и интерфейс этой древней мыши полностью соответствует схеме на старте топика:
Mouse_EC_1841.png
You do not have the required permissions to view the files attached to this post.
iLavr
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: Манипулятор графической информации ЕС-1841

Post by b2m »

Lavr wrote:Ну и интерфейс этой древней мыши полностью соответствует схеме на старте топика
Ой-ли? Нафига тогда на той схеме сигнал RESET?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Манипулятор графической информации ЕС-1841

Post by Lavr »

b2m wrote:
Lavr wrote:Ну и интерфейс этой древней мыши полностью соответствует схеме на старте топика
Ой-ли? Нафига тогда на той схеме сигнал RESET?
Если опираться на предположение, выдвинутое покинувшим нас Железным Дровосеком, он для того,
чтобы осуществлять сброс в исходное состояние механических "трещеток" и микриков...

А почему ты не спросил, если ты такой внимательный, как этот RESET на порту В ППА действует
против направления всех остальных линий порта К580ВВ55А ? :roll:
iLavr
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: Манипулятор графической информации ЕС-1841

Post by b2m »

Lavr wrote:А почему ты не спросил, если ты такой внимательный, как этот RESET на порту В ППА действует
против направления всех остальных линий порта К580ВВ55А ?
Там всё просто. Вот тебе начало кода, сам-то догадаешься?

Code: Select all

    MVI  A,80H; 1000.0000b
    STA  PYC;   все - на вывод
    MVI  A,0FFH
    STA  PRF;   PRB
    CMA
    STA  PRF;   PRB
K00:
    MVI  A,82H; 1000.0010b
    STA  PYC;   все - на вывод, B - на ввод
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Манипулятор графической информации ЕС-1841

Post by Lavr »

b2m wrote:
Lavr wrote:А почему ты не спросил, если ты такой внимательный, как этот RESET на порту В ППА действует
против направления всех остальных линий порта К580ВВ55А ?
Там всё просто. Вот тебе начало кода, сам-то догадаешься?

Code: Select all

    MVI  A,80H; 1000.0000b
    STA  PYC;   все - на вывод
    MVI  A,0FFH
    STA  PRF;   PRB
    CMA
    STA  PRF;   PRB
K00:
    MVI  A,82H; 1000.0010b
    STA  PYC;   все - на вывод, B - на ввод
Ааааатлична! Ну ты опять попал! :wink:
Мог бы всё же выучить схемотехнику пока на форум ходишь... :ebiggrin:
Но я тебе отвечу в твоём же стиле: посмотри на вот этот участок схемы:
портВ.png
А потом почитай - "Вот тебе начало кода" - и подумай, что произойдёт по линиям В0...В3 при этом, "сам-то догадаешься?" :lol:
И поменьше апломба, микропроцессорные средства - это программная+аппаратная части, больше
размышляй, как они работают в связке. :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: Манипулятор графической информации ЕС-1841

Post by b2m »

Lavr wrote:что произойдёт по линиям В0...В3
Ничего страшного, на время посылки сигнала сброса уйдут в ноль. Микросекунды. Не перегреется.

А если ты про стрелочки, то это лишь направление по задумке автора. Порты ВВ55 всё равно двунаправленые.

Ты так и не пояснил, где у ЕС-овской мыши сигнал RESET.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Манипулятор графической информации ЕС-1841

Post by Lavr »

b2m wrote:
Lavr wrote:что произойдёт по линиям В0...В3
Ничего страшного, на время посылки сигнала сброса уйдут в ноль. Микросекунды. Не перегреется.
Низачот... :osad: Догадаешься почему? :roll:
b2m wrote:Ты так и не пояснил, где у ЕС-овской мыши сигнал RESET.
Так все люди догадались, а вопрос этот только ты задал... :wink:
Там всё просто - посмотри схему ЕС-овской мыши, сам-то догадаешься? :ebiggrin:
iLavr