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

User Tag List

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

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

  1. #1
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    г. Черкассы, Украина
    Сообщений
    5,259
    Спасибо Благодарностей отдано 
    478
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    319 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

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

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

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

  3. #2
    Veteran Аватар для lisica
    Регистрация
    19.12.2008
    Адрес
    Черкассы
    Сообщений
    1,573
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    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 в 21: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
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Slider Посмотреть сообщение
    Как это корректно сделать?
    Корректно - в меню пользователя предложить ему руление джойстиком. Если откажется - значит или джоя нет, или ему нафик надо эту ручку дергать
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

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

  5. #4
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    г. Черкассы, Украина
    Сообщений
    5,259
    Спасибо Благодарностей отдано 
    478
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    319 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #6
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    Veteran Аватар для daniel
    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,384
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #8
    Guru Аватар для Slider
    Регистрация
    06.06.2006
    Адрес
    г. Черкассы, Украина
    Сообщений
    5,259
    Спасибо Благодарностей отдано 
    478
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    319 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что я почти и сделал в релизе Monty...
    Ave ZX!

  10. #9
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 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

  11. #10
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    86 сообщений
    Mentioned
    1 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 в разделе Память
    Ответов: 37
    Последнее: 14.08.2012, 19:39
  2. Можно ли программно определить наличие AY
    от Slider в разделе Для начинающих
    Ответов: 10
    Последнее: 09.02.2009, 22:04
  3. Как подключить Cursor Joystick?
    от Evgeny Muchkin в разделе Устройства ввода
    Ответов: 20
    Последнее: 09.09.2008, 23:35
  4. Проверка 128k из Бейсика
    от AlexFantasy в разделе Несортированное железо
    Ответов: 1
    Последнее: 22.06.2008, 20:42

Ваши права

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