ZX-Ревю 1996 №1-2 1996 г.

Читатель - читателю - вариант подключения "мыши " ММ8031.


ЧИТАТЕЛЬ - ЧИТАТЕЛЮ Вариант подключения "мыши " ММ8031

© FREE Group, Украина.

В ZX РЕВЮ 95/1 была приведена схема подключения манипулятора типа "мышь" ММ8031 к "Спектруму".

Мы предлагаем свой вариант решения этой проблемы. Подключение к порту KEMPSTON -самое простое из всех известных, причём, наш вариант наиболее соответствует фирменной "мыши", в отличие от приведённого вами. Особо хотим отметить, что это именно "мышь", а не аналог джойстика, так как перемещение курсора на экране строго пропорционально перемещению "мыши", что плохо имитируется в схемах со сбросом триггеров "мыши" сигналом INT, кадровым синхроимпульсом или специальным генератором.

Вся переделка манипулятора ММ8031 сводится к перерезанию 11 вывода счётчиков К155ИЕ13 от контакта СИНХРО. Все функции KEMPSTON-MOUSE для ARTSTUDIO-128 реализуются при небольшой переделке инсталлятора: нужно изменить границы ввода scalling factor до 20.

Схема подключения (поддерживается и KEMPSTON-MOUSE и KEMPSTON-JOYSTICK на одном разъеме): _

Порт KEMPSTON

Мышь

D0

LEFT KEY

Dl

RIGHT KEY

D2

не используется

D3

--//--

D4

D0

D5

Dl

D6

D2

D7

D3

A10

синхро (выбор X,Y)

Примечания.

1. При неподключенной "мыши" порт 31 должен содержать 255, то есть все биты должны быть "единицами" (и не забудьте подвести питание). Для того, чтобы использовать "мышь" и KEMPSTON-джойстик, нужно сделать переключатель на состояние 0 -для джойстика и 255 - для манипулятора.

2. Если у Вашей "мыши" шесть шин данных, то подключайте их, начиная с D2 KEMPSTON-порта. А сейчас предлагаем Вам драйвер для "мыши". Он "вытянут" из графического редактора ART STUDIO-128 и дизассемблирован с помощью MONS4D. Его преимущество в том, что можно изменять в широком диапазоне масштабный фактор. Для "мыши" с четырьмя данными рекомендуется scaling factor 15-20 для точного перемещения.

01 SPOUSE LD HL,(XY) ; *

02 PUSH HL ; старые координаты

03 LD BC,(WORK)

04 CALL LBD02

05 LD (WORK) , A

06 SUB С

07 JR Z, LBC28

0 8 LD HL,WORK+1

0 9 CALL LBC5C

10 LD HL, XY

11 INC HL

12 LD A, (HL)

13 JP M,LBC2 0

ЧИТАТЕЛЬ - ЧИТАТЕЛЮ

A, B

NC,LBC1E A, #FE LBC2 5 С

NC,LBC25 A, 0 (HL),A (WORK+2) LBD12

(WORK+2) ,A C

Z,LBC54 HL,(WORK+3) LBC5C HL, XY A,(HL) P,LBC4E A, B

C,LBC4A #BE

C,LBC4C A,#BE LBC53 В

NC,LBC53 A, 0 (HL),A HL,(XY) DE A

HL, DE

пересчет данных в координаты

AF

P,LBC62

bc,(scale;

B, #FF В

С

NC,LBC68 A, C D, A AF AF

M,LBC7C A,(HL) A, D С

C,LBC82 С

В

14

15

16

17

18

19

20 21 22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60 61 62

63

64

65

ADD

JR

LD

JR

SUB

JR

LD

LD

LD BC,

CALL

LD

SUB

JR

LD

CALL

LD

LD

JP

ADD

JR

CP

JR

LD

JR

SUB

JR

LD

LD

LD

POP

OR

SBC

RET

PUSH

JP

NEG

LD

LD

INC

SUB

JR

ADD

LD

POP

PUSH

JP

LD

ADD

CP

JR

SUB

INC

LBC1E LBC2 0

LBC2 5 LBC2 8

LBC4A LBC4C LBC4E

LBC53 LBC54

LBC5C

LBC62

LBC68

66

JR

LBC82

67

LBC7C

LD

A,(HL)

68

SUB

D

69

JR

NC,LBC82

70

ADD

A, C

71

INC

В

72

LBC82

LD

(HL),A

73

POP

AF

74

RET

75

LBD02

LD

A,#FB

; запрос данных в Х-координате

76

IN

A, (#DF)

77

RET

78

LBD12

LD

A,#FF

; запрос данных в Х-координате

79

IN

A, (#DF)

80

RET

81

SCALE

DEFB

20

; масштабный фактор (1-грубо, 20-точно)

82

XY

DEFW

0

; "экранные" координаты Y,X

83

WORK

DEFS

4

; байты, необходимые для работы программы

В программе некоторые строки отмечены "*" - они необходимы для того, чтобы проверить, не изменялось ли положение "мыши". Если положение не изменилось, то флаг Z установлен.

И ещё: данный драйвер никак не реагирует на нажатие кнопок. Для этого в ART STUDIO-128 существует другой драйвер, который приводить не имеет смысла потому, что ему "всё равно", какую кнопку Вы нажали. Чтобы установить факт нажатия кнопок, можно поступить так:

CALL

LBD12

(или LBD02)

AND

3

СР

3

JR

Z,LEFT&RIGHT

; левая и правая одновременно

BIT

0, A

JR

Z,LEFT KEY

; левая кнопка нажата

BIT

1,A

JR

Z,RIGHT KEY

; правая кнопка нажата

JR

NO KEY

; не нажата ни одна кнопка

*************************************************************************************




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Новье !? - О программах: Seymous wild west adventure, Paris to Dakar, Sergant Seymour Robotcop, Sky Hight Stuntman, Bubble Dizzy, CJ'Elephant Antics, Grell and Falla, Amazing Adventures of Robin Hood, Murray mouse super cop.
Раскольниковы - Kq: "сейчас уже почти не осталось мотивов для участия в ZX Democompo на таких main stream демопати, как CC или CAFe"...
IS-DOS - пользователям: Краткий путеводитель по системному диску IS-DOS

В этот день...   14 августа