1 Отредактировано garnizon (20-09-2022 02:24)

Тема: Манипуляторы "мышь" и софт для них

Попытка собрать данные о всех программах, использующих мышку. Ну и какую(какие) конкретно эти проги хотят.

MouseGraf :

V1.6 - УВК с девяткой только через ПП, с семеркой только через ППИ.

V4.4 - УВК, ММ8031, NIPPEL. Автоопределение при включении.

Игра Клондайк - УВК. С ММ8031 и  NIPPEL не работает.


Маркис - ММ8031. С УВК и NIPPEL не работает.

Fantavision - ММ8031 + Марсианка ?

Dendy Snake - УВК или ММ8031. С NIPPEL не работает.

Игры Квинтет и Минёр:
Квинтет - УВК. С ММ8031 и  NIPPEL не работает.

Минёр - УВК или ММ8031. С NIPPEL не работает.

Само меню игр - УВК. С ММ8031 и  NIPPEL не работает.

2 Отредактировано garnizon (24-09-2022 03:08)

Re: Манипуляторы "мышь" и софт для них

Денис провел различные проверки, с реальными оригинальными мышами. В следствии чего и отредактировали первое сообщение топика.

Но непонятностей, после этого, стало даже больше.


В МаусГраф 1.6 марсианка работает на обоих машинах, но, на девятке именно через ПП (порт принтера), а на семерке именно через ППИ. Скажем если в девятку вставить ППИ с мышкой или в семерку ПП с мышкой - то  работать не хочет.
Хотя некоторые агатовцы утверждают что ей должно быть пофиг, ПП или ППИ.

3

Re: Манипуляторы "мышь" и софт для них

garnizon пишет:

В МаусГраф 1.6 марсианка работает на обоих машинах, но, на девятке именно через ПП (порт принтера), а на семерке именно через ППИ. Скажем если в девятку вставить ППИ с мышкой или в семерку ПП с мышкой - то  работать не хочет.
Хотя некоторые агатовцы утверждают что ей должно быть пофиг, ПП или ППИ.

Как это - пофиг?

Порт принтера на девятке - это набор тупых регистров. Записал в регистр - передал данные принтеру. Прочитал регистр - получил данные от принтера. Никаких дополнительных телодвижений не требуется.

А ППИ содержит микросхему программируемого параллельного интерфейса КР580ВВ55. Одни и те же выводы ВВ55 могут быть входами, могут быть выходами, а могут быть сигналами подтверждения при двунаправленном обмене.
Что конкретно должны делать выводы ВВ55 микросхеме нужно предварительно сказать. Поэтому работа с ячейкой ППИ всегда идет в два этапа: сначала указываются режимы работы ее портов, а только потом из них можно что-то читать или писать.

Так что никаких непонятностей тут нет: версия МаусГраф для семерки видимо содержит код для работы с ячейкой ППИ, но не содержит код для порта принтера. А версия для девятки наоборот, содержит код для порта принтера, но не содержит код для ППИ.

И логика авторов понятна: на семерках ячейка ППИ всегда была в комплекте (по школе помню). А на девятках чаще встречался порт принтера. Вот под типовой состав плат они и делали поддержку.

4

Re: Манипуляторы "мышь" и софт для них

МаусГраф 1.6 он мультисистемный. И утверждалось что он после того как определил 7 или 9, смотрит что в неё вставлено из портов и в соответствии обрабатывает. Т.е. даже не на стоковых комплектациях должно работать. Это так утверждалось.

5 Отредактировано Voldemar0 (25-09-2022 21:17)

Re: Манипуляторы "мышь" и софт для них

Может быть у него есть ошибка, которая иногда проявляется, иногда - нет.

А может быть он ППИ определяет по наличию ПЗУ, которая на семёрках отсутствовала, хотя место под неё было... значит иногда она могла быть там.

А может быть какие-то версии умеют нестандартный конфиг, а другие -  нет.

У него вообще странная трасса выполнения, когда он разбирает конфигурацию (девятка с марсианкой):

8021-  A2 00 ..    ""."     LDX   #00
8023-  AD 00 C2    "-.B"    LDA   C200
8026-  24 6F ..    ".о"     BIT   6F                     тут сидит признак девятки
8028-  10 04 ..    ".."     BPL   802E
802A-  C9 18 ..    "I."     CMP   #18
802C-  F0 07 ..    "П."     BEQ   8035                Тут, видимо, проверяется ПЗУ ПП и если похоже, то...
8035-  A5 70 ..    "%п"     LDA   70
8037-  0A .. ..    "."      ASL   A
8038-  0A .. ..    "."      ASL   A
8039-  0A .. ..    "."      ASL   A
803A-  0A .. ..    "."      ASL   A
803B-  A8 .. ..    "("      TAY   
803C-  24 6F ..    ".о"     BIT   6F
803E-  30 07 ..    ".."     BMI   8047
8047-  A9 89 ..    ")."     LDA   #89
8049-  99 83 C0    "..@"    STA   C083, Y          ... немного похоже на инициализацию ВВ55 на ППИ ?
804C-  A9 80 ..    ")."     LDA   #80
804E-  99 80 C0    "..@"    STA   C080, Y
8051-  A9 00 ..    ")."     LDA   #00
8053-  99 80 C0    "..@"    STA   C080, Y
8056-  B9 82 C0    "9.@"    LDA   C082, Y
8059-  A4 70 ..    "$п"     LDY   70
805B-  99 68 00    ".х."    STA   0068, Y
805E-  A2 FF ..    ""Ъ"     LDX   #FF
8060-  8A .. ..    "."      TXA   
8061-  A6 70 ..    "&п"     LDX   70
8063-  95 60 ..    ".ю"     STA   60, X          это он ставит отметку о найденном модуле: [$62] <= 0xFF

Потом, при ожидании кнопок в заставке, он читает $C082+$20 :

82C5 -   B5 60 ..   "5ю"    LDA   60, X      <==    for x := 2 to 6
82C7 -   10 2D ..   ".."    BPL   82F6                      continue
82C9 -   8A .. ..   "."     TXA                       если в этом слоте есть модуль ПП(И) - проверяем байт в нём
82CA -   0A .. ..   "."     ASL   A
82CB -   0A .. ..   "."     ASL   A
82CC -   0A .. ..   "."     ASL   A
82CD -   0A .. ..   "."     ASL   A
82CE -   85 70 ..   ".п"    STA   70
82D0 -   A8 .. ..   "("     TAY   
82D1 -   B9 82 C0   "9.@"   LDA   C082, Y
82D4 -   55 68 ..   "uх"    EOR   68, X

Этот код, похоже, отличает девятку от семёрки:

0875 -   8D 77 C1   ".вA"   STA   C177       <==
0878 -   AD 70 C1   "-пA"   LDA   C170
087B -   C9 77 ..   "Iв"    CMP   #77
087D -   38 .. ..   "."     SEC   
087E -   F0 01 ..   "П."    BEQ   0881
0880 -   18 .. ..   "."     CLC   
0881 -   66 6F ..   "фо"    ROR   6F

Только и всего: если отклик c17x похож на контроллер базового ОЗУ девятки - то в 6F попадает D7=1, иначе D7=0.

Но тогда получается, что ПП в семёрке он искать не будет вообще.