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

User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 49

Тема: Не работает пользовательский ввод при использовании SNA

  1. #1
    Junior
    Регистрация
    23.06.2010
    Адрес
    Воронеж
    Сообщений
    10
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Не работает пользовательский ввод при использовании SNA

    Начал разбираться с программированием для спектрума и застрял на отслеживании нажатия клавиш.

    Код, который представлен ниже, не работает корректно при генерации SNA.

    Скрытый текст

    Код:
            device zxspectrum48
            org 40000
    start
            ld a, 2
            call 5633
    
    loop
            ld hl, last_k
            ld a, (hl)
    
            cp 112 ;key P
            jr z, tright
    
            cp 111 ;key O
            jr z, tleft
    
            cp 32 ;key Space
            jr z, tspace
    
            jr loop
    
    tright
            ld de, keyp
            ld bc, eokeyp-keyp
            call 8252
            jp clrkey
    
    tleft
            ld de, keyo
            ld bc, eokeyo-keyo
            call 8252
            jp clrkey
    
    tspace
            ld de, keysp
            ld bc, eokeysp-keysp
            call 8252
            jp clrkey
    
    clrkey
            ld hl, last_k
            ld (hl), 0
            jp loop
    
            ret
    
    last_k    equ 23560
    
    keyp    defb "P "
    eokeyp    equ $
    
    keyo    defb "O "
    eokeyo    equ $
    
    keysp    defb "space "
    eokeysp    equ $
    
            savesna "input_test.sna", start
    [свернуть]


    При компиляции в SNA и запуске в эмуляторе не работает перехват нажатия на клавиши "O" и "P" (однако, нажатие на "Space" отлавливается).
    Но если собрать в TAP и так же запустить на эмуляторе, то всё работает корректно.

    Ассемблер: SJAsmPlus V20190306.1
    Эмуляторы: #CSpect V2.12.3; ZXSP V0.8.0 pre27
    ОС: macOS Catalina V10.15.2

    Может кто-то сталкивался с похожими проблемами и сможет подсказать ошибку в коде или в окружении?

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

  3. #2
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от YuronN Посмотреть сообщение
    не работает перехват нажатия на клавиши "O" и "P"
    Пытаешся оперировать системными адресами.
    Вообще либо оно обслуживает, либо писать свой обработчик...
    А то что у тебя - это примерно как ты отправляешь кучу команд, в один и тот-же адрес...
    Отсюда и конфликты (ну вот пытается обработать несчастные битики, а тут снова ld (hl), 0)
    Оно знаешь-ли там по своим тактом живёт, нет изначального отсчёта, если ты прогу запустил - это не значит что она начала всё с нуля...

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

    По умолчанию

    регистр P/p ?

  5. #4
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как хорошо на машинках где запущаешь прогу - и спокойно тестишь...
    Спектрум - это не тот вариант
    Тут всё жёстко.
    Поставь HALT (раз уж веришь ПЗУ)
    Увидишь что у тебя другие кнопы пропадут. А может и нет. Завязано всё на схемотехнику...
    Причём на различие эмулей тоже сказывается... В общем мрак...
    Я давно уже хотел пнуть аппаратчиков-спековых (ну и вообще ретро-систем)
    Зачем молчите. Ну и программеров - почему не становитесь хоть чуть-чуть инженерами?
    (крик в никуда)
    ...

    - - - Добавлено - - -

    (асм какой дикий, ZEUS-3 напоминает... А адрес компиляции 40000 - вообще выше всех похвал...)

    - - - Добавлено - - -

    Эй, ребяты-олдфаны!
    Какого чёрта тут новички кодят на дичи всякой???
    Как-то это всё не по-джидайски!
    Не могли что-ли норм-среду разработки подогнать...

  6. #5
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от YuronN Посмотреть сообщение
    Начал разбираться с программированием для спектрума и застрял на отслеживании нажатия клавиш.
    Какая задача?
    Есть желание использовать опрос клавишей системой, или написать свой обработчик?
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  7. #6
    Junior
    Регистрация
    23.06.2010
    Адрес
    Воронеж
    Сообщений
    10
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    (асм какой дикий, ZEUS-3 напоминает... А адрес компиляции 40000 - вообще выше всех похвал...)
    А что дикого в асме и почему я не могу использовать адрес 40000 при написании тестовых маленьких программ?

    - - - Добавлено - - -

    Цитата Сообщение от Destr Посмотреть сообщение
    Эй, ребяты-олдфаны!
    Какого чёрта тут новички кодят на дичи всякой???
    Как-то это всё не по-джидайски!
    Не могли что-ли норм-среду разработки подогнать...
    Меня устраивает текущая конфигурация для разработки, но было бы интересно услышать какие есть варианты.

    - - - Добавлено - - -

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Какая задача?
    Есть желание использовать опрос клавишей системой, или написать свой обработчик?
    Задача банальная: сделать управление с клавиатуры, но для начала, научиться выводить определённый текст на экран по нажатию на заданные клавиши O и P (использовать опрос клавишей системой, если я правильно понимаю второй вопрос).
    Последний раз редактировалось YuronN; 05.01.2020 в 18:11.

  8. #7
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от YuronN Посмотреть сообщение
    научиться выводить определённый текст на экран по нажатию на заданные клавиши O и P
    Наверное так и учились, все мы, но чтоб так жёстко - это конечно талант
    (ни сам Спек по кофигурации аппаратной, ни его прошивка ПЗУ не умеют опрашивать группы клавиш)
    Только поочерёдно... Ну вот ты взялся за за Q P - но так взялся хорошо - что просто это будет работать на одних моделях, не будет работать на других (а уж про эмули молчу...)
    Тут посоветовать можно одно - опрашивать (читать порты клавы из всех разрядов
    ; F7 EF
    ; FB DF
    ; FD BF
    ; FE 7F
    Сохрнаняя в память, потом ждать нового ввода (лучше всего по HALT)
    И сравнивать...
    Офигеть логические конструкторы, но зато избегаем дребезга и чётко фиксируем нажатия...

  9. #8
    Junior
    Регистрация
    23.06.2010
    Адрес
    Воронеж
    Сообщений
    10
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    ни сам Спек по кофигурации аппаратной, ни его прошивка ПЗУ не умеют опрашивать группы клавиш)
    Только поочерёдно...
    Мне и нужно поочерёдное нажатие - либо O, либо P.

    Повторюсь, нажатие на Space работает, а на O или P - нет.

    Но этой проблемы нет при создании TAP, мне и хочется понять, почему мой код частично не работает, когда я использую SNA.
    Последний раз редактировалось YuronN; 05.01.2020 в 18:27.

  10. #9
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,773
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    выложи SNA

  11. #10
    Junior
    Регистрация
    23.06.2010
    Адрес
    Воронеж
    Сообщений
    10
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    выложи SNA
    input_test.sna.zip

    + TAP, который работает input_test.tap.zip
    Последний раз редактировалось YuronN; 05.01.2020 в 18:35.

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

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

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

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

Похожие темы

  1. Т34 ВВ55 просто ввод/вывод
    от azx987sa в разделе Устройства ввода
    Ответов: 10
    Последнее: 21.08.2018, 01:14
  2. Подскажите, можно ли на basic'е сделать ввод русских слов
    от Fishbone в разделе Программирование
    Ответов: 31
    Последнее: 21.12.2014, 23:12
  3. Нужен компилятор си, простой в использовании
    от Kakos_nonos в разделе Программирование
    Ответов: 14
    Последнее: 01.04.2012, 15:42
  4. Ввод с магнитной ленты - форматы
    от AlexBel в разделе Программирование
    Ответов: 3
    Последнее: 05.03.2008, 21:45
  5. Об использовании WDC1772
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 3
    Последнее: 14.06.2007, 23:20

Ваши права

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