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

User Tag List

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

Тема: Проверка на наличие Kempston Joystick

  1. #1
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    Украина, Черкассы
    Сообщений
    4,327
    Благодарностей: 3914
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проверка на наличие Kempston Joystick

    Как это корректно сделать? А то меня как-то смущает что-то типа Велесофтовского IF IN 31 > 127 THEN...
    Ave ZX!
    -------------------------------------
    http://zxaaa.untergrund.net/intslider.html

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

  3. #2
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,504
    Благодарностей: 390
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Привет тёзка. Взломай любую игру и просмотри как там написано. А если тебе нужно на бейсике,- то 10 LET A=IN 31
    20 IF A=0 THEN GO TO 10
    И в А получаешь результат 1- влево, 2- вправо, 4 и 8 не помню, но там вверх и вниз, 16- стрельба
    только это работает если порт, при не нажатых клавишах выдаёт 0.
    Ну, а, если тебе нужно для определения любого клона, то желательно на асме.

    ---------- Post added at 20:29 ---------- Previous post was at 20:15 ----------

    Во, блин дочитался. определяй если вместе не нажаты 1 и 2, то есть влево и вправо - значит порт есть. Обычно так проверяют. Но есть такие клоны, у которых этот порт инвертирован.
    Последний раз редактировалось lisica; 27.09.2009 в 19:36.
    Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
    Pentagon 128(1991г.)+YМ
    программатор 2732-27512.


  4. #3
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,448
    Благодарностей: 3791
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Slider Посмотреть сообщение
    Как это корректно сделать?
    Корректно - в меню пользователя предложить ему руление джойстиком. Если откажется - значит или джоя нет, или ему нафик надо эту ручку дергать
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  5. #4
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,082
    Благодарностей: 918
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Slider Посмотреть сообщение
    А то меня как-то смущает
    и правильно делает, что смущает. на ленинграде по дефолту 3 старшых бита = 1. почти правильное решение: за некоторое время (больше 1 инта) проверять 5 младших бит, что они не дергаются и равны 0. а предусмотреть принудительное вкл/выкл - обязательно.

  6. Эти 2 пользователя(ей) поблагодарили psb за это полезное сообщение:
    Aprisobal (05.10.2009), Slider (28.09.2009)

  7. #5
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    Украина, Черкассы
    Сообщений
    4,327
    Благодарностей: 3914
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может тогда не надо изголяться, а сделать ТОЛЬКО принудительно? А то получится, если я случайно нажму кнопочки джоя во время проверки мне кемпстон отрубит...
    Последний раз редактировалось Slider; 28.09.2009 в 08:29.
    Ave ZX!
    -------------------------------------
    http://zxaaa.untergrund.net/intslider.html

  8. #6
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,082
    Благодарностей: 918
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Slider Посмотреть сообщение
    Может тогда не надо изголяться, а сделать ТОЛЬКО принудительно? А то получится, если я случайно нажму кнопочки джоя во время проверки мне кемпстон отрубит...
    можно и так. хотя отрубание кемпстона по этой причине - встречается

  9. #7
    Veteran Аватар для daniel
    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,229
    Благодарностей: 206
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    частенько выводят надпись "kempston joy y/n?"

  10. #8
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    Украина, Черкассы
    Сообщений
    4,327
    Благодарностей: 3914
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что я почти и сделал в релизе Monty...
    Ave ZX!
    -------------------------------------
    http://zxaaa.untergrund.net/intslider.html

  11. #9
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    630
    Благодарностей: 374
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Slider Посмотреть сообщение
    Как это корректно сделать? А то меня как-то смущает что-то типа Велесофтовского IF IN 31 > 127 THEN...
    Original old kempston joystick interfaces for ZX Spectrum don't use data lines D7-D5. IN 31 can return on this hardware undefined values ( floating bus / attribute / pull-up / zero values )

    Modern joystick interfaces return always value 0 on D7-D5 and is possible detect joy interface if IN 31 return:
    D7 must contain 0 (D4-D6 can be used for three joy buttons) - 0xxxxxxx
    D3 and D2 can't contain values 1 - xxxx11xx
    D1 and D0 can't contain values 1 - xxxxxx11
    Joystick port 31 (for joy detect only) must be read after interrupt - HALT+IN A,(31) for return corect data value (port 31 can return screen attribute value if joy interface absent)

    complette test:
    EI
    HALT
    LD E,0
    LD BC,#001F
    IN B,(C)
    LD A,B
    RLCA
    RET C
    LD A,B
    AND 3
    CP 3
    RET Z
    LD A,B
    RRCA
    RRCA
    AND 3
    CP 3
    RET Z
    LD E,1
    RET

    ;this code detect joystick interface and return E=1 if joy connect / E=0 if joy absent

  12. Эти 4 пользователя(ей) поблагодарили VELESOFT за это полезное сообщение:
    doorsfan (21.11.2009), introspec (26.05.2013), riskej (29.10.2009), Slider (03.04.2013)

  13. #10
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Лично я в файтере сделал так:
    LD B,0
    LD H,0
    KT1
    IN A,(#1F)
    AND #E0
    OR H
    LD H,A
    DJNZ KT1
    LD A,H
    OR A
    JR Z,KJYES

    Если джойстик подключен - то произойдёт переход на метку KJYES
    На эмуле работает, по логике вещей должно работать и на железе, вот только как это обстоит в отношении советских клонов? Не знаю. Может кто-нибудь проверит?

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

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

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

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

Похожие темы

  1. проверка кр565ру5
    от Fisher в разделе Unsorted
    Ответов: 37
    Последнее: 14.08.2012, 17:39
  2. Можно ли программно определить наличие AY
    от Slider в разделе Для начинающих
    Ответов: 10
    Последнее: 09.02.2009, 22:04
  3. Как подключить Cursor Joystick?
    от Evgeny Muchkin в разделе Unsorted
    Ответов: 20
    Последнее: 09.09.2008, 21:35
  4. Проверка 128k из Бейсика
    от AlexFantasy в разделе Unsorted
    Ответов: 1
    Последнее: 22.06.2008, 18:42

Ваши права

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