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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Клавиатура

  1. #1
    Junior
    Регистрация
    18.10.2007
    Адрес
    Saint-Petersburg
    Сообщений
    20
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Клавиатура

    Подскажите, сколько одновременно нажатых клавиш можно определить на спектруме?
    В нескольких эмуляторах видел "странную", на мой взгляд, эмуляцию порта клавиатуры, когда нажатые в одном полуряду кнопки влияют на другой полуряд. Схемотехнически с чем это связано, различается ли ввод на разных вариантах Спектрума?

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

  3. #2
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну если взять за пример правый синклер джойстик (67890) то опрос одновременно нажатых трёх клавиш обычная ситуация на реале, а вот в эмулях на PC могут быть проблемы (из за устройства клавиатуры). в фирменных спектрумах (может в каком-то конкретном issue) есть ситуация когда одновременно нажатые кнопки выдают совсем другой результат (на форуме WoS была такая тема).
    Последний раз редактировалось goodboy; 15.07.2008 в 13:29.

  4. #3
    Junior
    Регистрация
    18.10.2007
    Адрес
    Saint-Petersburg
    Сообщений
    20
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот цитата из книги "Как написать игру на ассемблере для ZX Spectrum"
    (Евдокимов А. А. Капульцевич. ГЛАВА ВОСЬМАЯ):
    Из-за упрощенной аппаратной реализации клавиатуры, примененной в ZX Spectrum, достоверно (в общем случае) можно определить одновременное нажатие не более двух каких-либо клавиш

    А теперь мой пример (проверялось в UnrealSpeccy):
    10 print at 0,0;in 49150
    20 print at 1,0;in 65278
    30 goto 10

    1.
    Нажимаю только "x": результат 255 251
    Нажимаю "k"+"l": 249 255
    Нажимаю "k"+"l"+ "x": 249 249 (а должно быть 249 251)

    2.
    Нажимаю "c": 255 247
    Нажимаю "k"+"l"+ "c": 249 247 (правильно)
    Ошибочная ситуация в первом случае связана с тем, что x и k находятся на одинаковой позиции (но в разных полурядах) и такое поведение порта клавиатуры в эмуляторе сделано СПЕЦИАЛЬНО, и не связано с работой контроллера PC клавиатуры. На реальном Спекртуме, к сожалению проверить не могу.

  5. #4
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от radpzc Посмотреть сообщение
    Нажимаю "k"+"l"+ "x": 249 249 (а должно быть 249 251)
    проверил на `зелёном` скорпионе - 249,249

  6. #5
    Junior
    Регистрация
    18.10.2007
    Адрес
    Saint-Petersburg
    Сообщений
    20
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    проверил на `зелёном` скорпионе - 249,249
    Значит это как раз тот случай, когда выдаётся другой результат

  7. #6
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от radpzc Посмотреть сообщение
    Нажимаю "k"+"l"+ "x": 249 249 (а должно быть 249 251)
    а вот на эмуле CBSpeccy (Amiga) 249,251

  8. #7
    Junior
    Регистрация
    18.10.2007
    Адрес
    Saint-Petersburg
    Сообщений
    20
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В UnrealSpeccy при keymatrix=0 всё нормально, осталось узнать что за keymatrix..

  9. #8
    Veteran Аватар для molodcov_alex
    Регистрация
    13.03.2006
    Адрес
    Колпино
    Сообщений
    1,250
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Взгляните на схему самой клавы и все поймете
    Когда вы нажимаете скажем 'j' и 'k' линии D1 и D2 замыкаются на соответствующую этому ряду адресную линию. То есть D1 и D2 оказываются замкнутыми. Так при опросе любой другой линии, при нажатии на клавиши соответствующие этим D1 или D2, автоматически будет "нажиматься" и вторая клавиша.
    Если так не понятно, то могу кусочек схемки, демонстрирующей это дело, кинуть.
    Последний раз редактировалось molodcov_alex; 15.07.2008 в 17:12.
    ZX Spectrum forever!

  10. #9
    Junior
    Регистрация
    18.10.2007
    Адрес
    Saint-Petersburg
    Сообщений
    20
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так адрес же другой?

  11. #10
    Veteran Аватар для molodcov_alex
    Регистрация
    13.03.2006
    Адрес
    Колпино
    Сообщений
    1,250
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Адрес тут не причем. Вот картинки. Картинка номер раз: аналогичная спековской клаве, только кнопки 4.
    Картинка номер 2: наша ситуация.
    Скажем на A0 ничего (все таки через диод подключено, то есть здесь лог. 1), а A1 замыкается на землю (в общем эта линия выбрана, лог. 0). Что происходит: кроме того, что ток течет через 3ю кнопку от D0 к A1, он также течет и от D1 через 2ю, затем 1ю, а затем и саму 3ю кнопку. Таким образом получается что оба D0 и D1 замкнуты на землю (лог. 0).
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	but1.png 
Просмотров:	423 
Размер:	815 байт 
ID:	8431   Нажмите на изображение для увеличения. 

Название:	but2.png 
Просмотров:	428 
Размер:	788 байт 
ID:	8432  
    Последний раз редактировалось molodcov_alex; 15.07.2008 в 17:54.
    ZX Spectrum forever!

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Клавиатура KAY
    от Sonic в разделе KAY
    Ответов: 8
    Последнее: 27.11.2007, 17:50
  2. Плоская клавиатура :D
    от fan в разделе Устройства ввода
    Ответов: 8
    Последнее: 03.08.2007, 03:49
  3. мех. клавиатура
    от boo_boo в разделе Устройства ввода
    Ответов: 1
    Последнее: 03.03.2007, 17:44
  4. Клавиатура
    от tmp_online в разделе Устройства ввода
    Ответов: 3
    Последнее: 11.06.2006, 14:17
  5. Клавиатура для профи
    от maximk в разделе Profi
    Ответов: 0
    Последнее: 13.02.2006, 11:14

Ваши права

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