User Tag List

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

Тема: Z80 PIO не генерирует прерывание

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию Z80 PIO не генерирует прерывание

    Всем здраствуте.
    Вот изобретаю спой велосипед с нуля для разминки мозга.

    Столкнулся с проблемой при подключении PS/2 клавы.
    Перепробовал все... 2 недели шаманю, а воз и ныне там. Хоть бросай все.

    Вот сама схемка (неммного упрощенная). ~STB даю кнопкой а не с HC595 как в оригинале... Что б избежать конфлита LS и HC серии. Все на LS.
    https://zx-pk.ru/attachment.php?atta...6&d=1629067257

    Вот что на осцилографе (желтый - ~STB строб, красный - ~INT)
    https://zx-pk.ru/attachment.php?atta...7&d=1629067267

    Для уверенности в самом начале гружу в А 55H, что и видно на порту А.
    https://zx-pk.ru/attachment.php?atta...8&d=1629067273

    Вот собственно ПЗУ прошито этим.

    0001 0000 ; Test #08
    0002 0000 ; Test PIO interrupt on port B
    0003 0000
    0004 0000 PORTA .equ 80h ; port A data
    0005 0000 CNTRLA .equ 81h ; port A control
    0006 0000 PORTB .equ 82h ; port B data
    0007 0000 CNTRLB .equ 83h ; port B control
    0008 0000
    0009 0000 .org 0h ; RESET
    0010 0000 31 F0 FF ld sp, 0fff0h
    0011 0003
    0012 0003 ED 5E im 2 ; cpu interrupt mode 2 (vectored)
    0013 0005 3E 00 ld a, 0h
    0014 0007 ED 47 ld i, a
    0015 0009
    0016 0009 3E 0F ld a, 0fh ; output
    0017 000B D3 81 out (CNTRLA), a
    0018 000D
    0019 000D 3E 4F ld a, 4fh ; input
    0020 000F D3 83 out (CNTRLB), a
    0021 0011
    0022 0011 3E 28 ld a, 28h ; vector address
    0023 0013 D3 83 out (CNTRLB), a
    0024 0015
    0025 0015 3E 87 ld a, 10000111b ; 87h, 83h - enable interrupts 10000111b
    0026 0017 D3 83 out (CNTRLB), a
    0027 0019
    0028 0019 3E 55 ld a, 55h
    0029 001B 21 00 80 ld hl, 8000h
    0030 001E 77 ld (hl), a
    0031 001F
    0032 001F FB ei
    0033 0020
    0034 0020 7E MAIN: ld a, (hl)
    0035 0021 D3 80 out (PORTA), a
    0036 0023 C3 20 00 jp MAIN
    0037 0026
    0038 0026
    0039 0028 .org 28h
    0040 0028 08 ex af, af' ; save A, FLAGS
    0041 0029 7E ld a, (hl)
    0042 002A 3C inc a
    0043 002B 77 ld (hl), a
    0044 002C 08 ex af, af' ; restore A, FLAGS
    0045 002D FB ei
    0046 002E ED 4D reti
    0047 0030
    0048 0030 .END

    Схему саму прозвонил раз 20, все правильно (соответствует задуманной).... Код тоже перепробовал разный... 87h, 83h для включения прерываний.
    По адресам тоже вроде, как видно в .lst файле.

    Если написать без прерываний, просто выдавать входной порт на выходной - работает.

    Посмотрите свежим глазом, может я какого-нить костыля не вижу... глаз замылился?
    Последний раз редактировалось fromzero2infinity; 16.08.2021 в 01:56.

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

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

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

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

Похожие темы

  1. z80-ftpclient
    от asve79 в разделе Софт
    Ответов: 3
    Последнее: 28.02.2019, 08:13
  2. Аппаратное прерывание в КР580ВМ80А
    от DenSam в разделе Разное
    Ответов: 1
    Последнее: 17.02.2017, 21:56
  3. Особенности программирования Z80 PIO
    от dk_spb в разделе Для начинающих
    Ответов: 2
    Последнее: 07.05.2014, 21:36
  4. Справочник Z80
    от goblinish в разделе Программирование
    Ответов: 8
    Последнее: 26.08.2012, 17:52
  5. Вопрос про прерывание LDIRа
    от ZEK в разделе Программирование
    Ответов: 2
    Последнее: 02.07.2006, 19:02

Ваши права

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