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

User Tag List

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

Тема: переход по прерыванию

  1. #1
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию переход по прерыванию

    никогда не обращал внимания но вот есть такой вопрос

    как работает переход по прерыванию

    срабатывает так сказать прерывание
    запрещаются прерывания
    происходит прерывание

    штатная процедура по адресу #0038

    Код:
    ;сохраняет регистры
    
    sub_38:                                 ; CODE XREF: RAM:0493p
    RAM:0038                                         ; RAM:EB12p
    RAM:0038                 push    af
    RAM:0039                 push    hl
    
    ;выполняет то что там надо
    
    RAM:003A                 ld      hl, (FRAMES)
    RAM:003D                 inc     hl
    RAM:003E                 ld      (FRAMES), hl
    RAM:0041                 ld      a, h
    RAM:0042                 or      l
    RAM:0043                 jr      nz, loc_48
    RAM:0045                 inc     (iy+40h)
    RAM:0048
    RAM:0048 loc_48:                                 ; CODE XREF: sub_38+Bj
    RAM:0048                 push    bc
    RAM:0049                 push    de
    
    RAM:004A                 call    sub_386E
    
    ;восстанавливает всякое
    
    RAM:004D                 pop     de
    RAM:004E                 pop     bc
    RAM:004F                 pop     hl
    RAM:0050                 pop     af
    
    ;разрешает прерывания и выходит
    
    RAM:0051                 ei
    RAM:0052                 ret
    но в большинстве фирменных программ программа обработки прерывания начинается с "DI"

    почему?
    чего я такого не знаю?
    С уважением,
    Jerri / Red Triangle.

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

  3. #2
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверил навскидку несколько фирменных игр - нигде обработчик прерывания не начинался с DI. Она там и не нужна, прерывания запрещаются автоматически.

  4. #3
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Проверил навскидку несколько фирменных игр - нигде обработчик прерывания не начинался с DI. Она там и не нужна, прерывания запрещаются автоматически.
    проверь еще несколько игр
    Kong Strikes Back
    Kongs Revenge

    я так то в курсе, но запрещал потому, как делали отдельные товарищи
    С уважением,
    Jerri / Red Triangle.

  5. #4
    Guru
    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,893
    Спасибо Благодарностей отдано 
    1,125
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    190 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для меня тоже является загадкой нафига DI, и еще нафига RETI

  6. #5
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,751
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    266
    Поблагодарили
    200 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Evgeny Muchkin Посмотреть сообщение
    Для меня тоже является загадкой нафига DI, и еще нафига RETI
    по идее с reti ei не надо
    С уважением,
    Jerri / Red Triangle.

  7. #6
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    по идее с reti ei не надо
    по моему нифига
    еи всегда нужен

    очень долго не мог завести свою первую программу с прерываниями
    оказалось что инт их запрещает (о чем я тогда не знал)
    пока не поставил еи ничего не заработало...

    по моему reti влеплен для несрабатывания одного прерывания во время выполнения другого в некоторых машинах

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

    Цитата Сообщение от jerri Посмотреть сообщение
    но в большинстве фирменных программ программа обработки прерывания начинается с "DI"

    почему?
    Цитата Сообщение от Evgeny Muchkin Посмотреть сообщение
    Для меня тоже является загадкой нафига DI,
    для подстраховки
    боялись что может сработать другой инт во время первого
    это щас у нас любой недокументированый з80 мануал под рукой
    а тогда когда это писали интернетов небыло...

    я тоже ставлю местами nop-ы с єтой целью
    на случай если схема железного компа не успеет полностью "переключится" до момента выполнения следующей команды или на оборот(вспоминаем статью про щелканье страницами видео памяти и как видео контролер случайно берет пиксели и атрибуты из разных страниц)

    а в некоторых машинах это актуально

    по моему нгс требует программных задержек
    тк у него нету вайтов
    Последний раз редактировалось NEO SPECTRUMAN; 21.10.2017 в 00:38.

  8. #7
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кажется RETI используется контроллером прерываний семейства Z80 - то есть он следит за шиной и когда проц выполняет RETI, то он точно знает что обработка прерываний завершена, чтобы приоритет там сдвинуть или ещё для чего.

  9. #8
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,552
    Спасибо Благодарностей отдано 
    1,216
    Спасибо Благодарностей получено 
    1,752
    Поблагодарили
    681 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    но в большинстве фирменных программ программа обработки прерывания начинается с "DI"

    почему?
    чего я такого не знаю?
    Очевидно, для подстраховки. Т.е. на всякий случай, как бы чего не случилось)
    Иного обьяснения нет)

  10. #9
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    Кажется RETI используется контроллером прерываний семейства Z80 - то есть он следит за шиной и когда проц выполняет RETI, то он точно знает что обработка прерываний завершена, чтобы приоритет там сдвинуть или ещё для чего.
    С DMA используется.

  11. #10
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Очевидно, для подстраховки. Т.е. на всякий случай, как бы чего не случилось)
    Иного обьяснения нет)
    Ну может быть редкий умный случай - когда ISR зовется по call, не по прерыванию, и пришедшее в этот момент прерывание может сделать больно.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

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

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

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

Похожие темы

  1. Переход на личности
    от moroz1999 в разделе Форум
    Ответов: 36
    Последнее: 26.09.2012, 15:34

Ваши права

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