Важная информация

User Tag List

Показано с 1 по 10 из 18

Тема: Использование мыши в восьмибитной Атари (Ассемблер).

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Activist Аватар для ezswift
    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Использование мыши в восьмибитной Атари (Ассемблер).

    Прежде всего, нужно вспомнить, что в начале 90-х на какой-то крупной ежегодной компьютерной выставке, фирмой Атари был представлен неизменённый компьютер Atari 130XE с мышью STM1 от Atari ST. То-есть, планы производства - БЫЛИ!

    Кроме этого, в этом посте я буду называть "Joystick Port" Атари - "Controller Jack" (CJ), так как он используется не только для джойстика и говорить здесь мы будем о мыши.

    Со стороны Атари:

    CJ имеет 9 штырьков.
    Нажмите на изображение для увеличения. 

Название:	CJ.jpg 
Просмотров:	162 
Размер:	20.3 Кб 
ID:	64130
    Пины 1,2,3,4 - цифровые(один ниббл), в порядке N S W E (компас)
    5,9 - аналоговые(декодируются встроенными в Атари АЦП),
    Пин 6 - кнопка триггера,
    пин 7 - +5v, пин 8 - земля (питание контроллера от Атари).

    Для описания взаимодействия Атари-8 и STM1 мы должны различать старые и новые модели.
    В старых моделях (до XL серии) 4 CJ, в новых только 2.
    Каждая пара CJ передаёт данные в PIA (Peripheral Interface Adapter).

    В памяти Атари, PIA представлен в HW регистрах PORTA и PORTB.
    Таким образом, CJ 1,2 маппируются соответственно в младший и старший ниббл PORTA, а CJ 3,4 маппируются соответственно в младший и старший ниббл PORTB.
    В новых моделях PORTB не используется для передачи данных с контроллеров.
    В остальном они идентичны.
    Далее речь ведётся о новых моделях...

    Пусть мы хотим передавать данные с мыши в CJ2, то есть в старший ниббл регистра PORTA... (Логично, если ещё используется Джойстик...)
    Нажмите на изображение для увеличения. 

Название:	PORTA.png 
Просмотров:	148 
Размер:	10.6 Кб 
ID:	64131
    В соответствии со стандартом Атари, каждый ниббл должен передавать в:
    - младшем дибайте(полуниббле) - вертикальное смещение.
    Пин 1-N, 2-S (Север-Юг), т.е. Ось Y
    - старшем дибайте - горизонтальное смещение.
    Пин 3-W, 4-E (Запад-Восток), т.е. Ось Х

    ...

    Со стороны STM1: Обратите внимание на различие координатных пинов в Джойстике и мыши!!!

    Нажмите на изображение для увеличения. 

Название:	Mouse Port.jpg 
Просмотров:	159 
Размер:	19.2 Кб 
ID:	64132
    Мышь STM1 представляет собой два покоординатных инкрементальных кольцевых цифровых энкодера аналоговой позиции контроллера. Валкодеры мыши Атари СТМ1 производят преобразование аналогого движения мыши в цифровой сигнал посредством энкодера согласно Коду Грея.

    Обычный двоичный код является взвешенным или позиционным кодом, в котором позиция отражает вес бита. Если взять седьмой бит, его вес будет 2^7, то-есть 128, в десятичном виде. Таким образом, если мы передаём байт и пропадает 7-й бит, то ошибка составит 128(dec). Это неприемлемо для позиционного датчика.

    Код Грея
    - является двоичным юнитдистантным невзвешенным отраженным циклическим кодом.

    Разберём:
    Двоичный - понятно
    Юнитдистантный - Раз в двоичном коде юнитом является бит, значит расстояние между любыми последовательными значениями - тоже будет 1 бит.
    Невзвешенный - Непозиционный (перекликается в чем-то с юнитдистантным)
    Отраженный - Получается путём отражения
    Циклический - может быть закольцован причём остальные свойства не будут нарушены

    Основная цель кода Грея - в минимизации ошибок в цифровом тракте до одного бита при любом изменении данных датчика.

    Тривиальный код Грея это - последовательность (0 1).
    Эта последовательность может быть зациклена, причем, как при прямом, так и при возвратном движении по циклу, разница между соседними значениями сигнала не превышает 1 бита.

    Чтобы сохранить вышеуказанные свойства при увеличении разрядности цифрового сигнала, Грей сначала отражает код, чтобы обеспечить юнитдистантность при любом количестве разрядов, а потом в добавляемом старшем разряде записывает нули для прямого и единицы для отраженного кода, чтобы получить уникальные значения датчика.

    Таким образом код преображается в следующий:

    (0 1) -> (0 1 1 0) - отражение
    В отраженном коде пропала уникальность значений!

    Добавим старший разряд:
    (0 0 1 1) - старший разряд
    (0 1 1 0) - младший разряд

    то есть, в порядке старший-младший, на выходе мы получаем следующие значения:
    00 01 11 10
    Этот код имеет все свойства кода Грея.

    Именно эти значения используются валкодером мыши для кодирования данных дибайта как для оси Х, так и для оси У.

    Пример четырёхбитового валкодера.
    Нажмите на изображение для увеличения. 

Название:	Gray4.gif 
Просмотров:	200 
Размер:	19.4 Кб 
ID:	64133

    На сегодня - всё, zen
    Последний раз редактировалось ezswift; 24.02.2018 в 12:06.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Атари ассемблер
    от atariki в разделе Atari
    Ответов: 220
    Последнее: 31.03.2022, 07:41
  2. Эмуляция мыши на джойстика
    от Граф Куракин в разделе Поиск
    Ответов: 4
    Последнее: 19.10.2013, 14:07
  3. Чувствительность Kempston мыши
    от wally в разделе Устройства ввода
    Ответов: 7
    Последнее: 21.12.2006, 11:43
  4. кнопки мыши в BGE 3.05
    от SaaB в разделе Графика
    Ответов: 8
    Последнее: 04.03.2006, 16:53
  5. Подключение кемпстон мыши
    от Aprisobal в разделе Устройства ввода
    Ответов: 14
    Последнее: 10.02.2005, 15:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •