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

User Tag List

Показано с 1 по 7 из 7

Тема: Система прерываний - есть вопросы.

  1. #1
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,792
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Система прерываний - есть вопросы.

    Цитата Сообщение от Kirill Frolov (500:812/1.507)
    DI
    LD A,63
    LD I,A
    XOR A
    LD (23613),A
    LD HL,51697
    LD (23746),HL
    IM 1
    EI

    Безусловно, переменные ВАСИКА должны быть установленны ... =) После вше-указанных АСМ-строчек ни брейк ни игноры не будут действовать, единственное, при ошибке чтения он будет пытаться читать вечно =)
    Почитал код. Общий принцип понятен - в результате ошибки чтения вызывается прерывание, а что будет потом - вот это уже на совести TR-DOS и/или программиста... Но, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от IM 1 (для Спекки, а не для Z80)? IM 2 - я знаю, про него можно не объяснять...

    Также давно интересует вопрос, как вляют на флаги такие команды, как

    LD A, R
    LD I, R

    Может, просто ссылку кинет кто на книгу, где это хорошо объясняется?
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

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

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


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

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

    По умолчанию

    Цитата Сообщение от TomCaT
    LD A, R
    LD I, R
    флаги 3,5,7 копируются из A. CF не меняется, ZF=1 если A=0. PV ставится в зависимости от того, разрешено ли прерывание
    Цитата Сообщение от TomCaT
    Но, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от IM 1 (для Спекки, а не для Z80)?
    для этого надо понять, чем отличается именно для Z80 если шина стабильна, то для спекки ничем не отличается

  4. #3
    Master
    Регистрация
    27.01.2005
    Сообщений
    888
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    163
    Поблагодарили
    131 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomCaT
    Но, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от IM 1 (для Спекки, а не для Z80)?
    Откроем документ "User Manual Z80 Family CPU User Manual".

    Страница 44.
    Вольный перевод.

    1. IM0. Этот режим совпадает с режимом прерываний 8080 (КР580). В этом режиме, прерывающее устройство может выставить на шину ЛЮБУЮ инструкцию, которая будет выполнена процессором. Обычно это инструкции RST nn или CALL nnnn. После рестарта процессора, включен режим IM0.

    Замечание 1 (мое, SfS): При ПУСТОЙ шине спектрума, подтянутой к +5В, будет считываться код инструкции #FF. Это инструкция RST #38.

    Замечание 2 (мое, SfS): Если разрабатывается собственная перефирия, то не грех использовать режим IM0 для перехода на обработку прерывания от оной. Особо удобно, что можно давать команду CALL #nnnn. Скажем, при инициализации переферии в некоторые регистры ее прописывается адрес обработчика прерывания, (причем произвольный, а не как в IM2), который потом подставляется на шину в команде CALL #nnnn.

    Страница 45.
    Вольный перевод.

    2. IM1. Когда этот режим задан программистом, то при возникновении прерывания, происходит безусловный переход по адресу #38.

    Замечание 1 (мое, SfS): Поскольку этот адрес совпадает с адресом перехода в режиме IM0 при ПУСТОЙ шине спектрума, подтянутой к +5В, то в стандартной конфигурации спектрума (без дополнительной переферии) режимы IM0 и IM1 - НЕ ИМЕЮТ ОТЛИЧИЙ !

    Про IM2 писать не буду - сам все знаешь
    Документаця - оень полезная вещь

  5. #4
    Veteran Аватар для TomCaT
    Регистрация
    25.06.2005
    Адрес
    Одесса
    Сообщений
    1,792
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, про документацию знал, увы , а за всё остальное (и за общение) -- спасибо. Теперь я разобрался
    Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
    Власть людей сильнее, чем люди у власти.
    Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)

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

    Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
    Мы все немного режем по дереву, а потом собираем корабли в бутылках.
    Is it the same old story you are going to tell me
    or is it the old story telling me and you we are the same?
    http://www.sky.od.ua/~ptsk
    [свернуть]


  6. #5
    Ivan Roshin (500:95/462.53)
    Гость

    По умолчанию Система прерываний - есть вопросы.

    Hello, SMT!

    11 Oct 2005 you wrote:

    Tom>> LD A, R
    Tom>> LD I, R
    Команды LD I,R нет - очевидно, имелась в виду LD A,I.

    S> флаги 3,5,7 копируются из A. CF не меняется, ZF=1 если A=0.
    S> PV ставится в зависимости от того, разрешено ли прерывание
    Hо если прерывания разрешены и импульс прерывания пришёл
    во время выполнения команды LD A,R (LD A,I), то флаг P/V будет
    сброшен, как если бы прерывания были запрещены.
    Подробнее об этом здесь:
    http://ivr.webzone.ru/articles/ldar_new/

    С уважением, Иван Рощин.

  7. #6
    Kirill Frolov (2:5030/827.2)
    Гость

    По умолчанию Re: Система прерываний - есть вопросы.

    Hемедленно нажми на RESET, Guest from forum zx.pk.ru!

    On Tue, 11 Oct 05 20:45:58 +0400, Guest from forum zx.pk.ru wrote:

    Gffzpr> Почитал код. Общий принцип понятен - в результате ошибки чтения вызывается
    Gffzpr> прерывание, а что будет потом - вот это уже на совести TR-DOS и/или
    Hихрена ты не понял. Вызывается опрос клавиатуры, а перед этим вывод
    сообщения -- вот он то и ловится через адрес #5CC2. В нормальной
    ситуации TR-DOS не пытается ничего писать на экран (если, конечно, не
    вызвана команда LIST...) См. сообщение из CODE.ZX. Вызывается, не
    прерывание, а обработчик ошибок RST #8 (его можно не только через RST
    звать, но и обычным JP) при действительно неисправимой ошибке. Hу это у
    "Ларченко и Родионова" ещё описано, "Tape Loading Error" будет. Как
    перехватывать и обрабатывать там же описано.

    Gffzpr> программиста... Hо, вот обнаружил вдруг, что я совсем не понимаю, чем
    Gffzpr> отличается IM 0 от IM 1 (для Спекки, а не для Z80)?
    Для спектрума? Практически ничем. Могу опять отослать к Ларченко
    и Родионову. Вкратце: в IM 0 с шины считывается код команды, который
    всегда (на самом деле, возможно, не всегда) оказывается #FF -- код
    команды RST #38. При IM 1 вызов RST #38 генерируется процессором.

    Gffzpr> Также давно интересует вопрос, как вляют на флаги такие команды, как
    Gffzpr> LD A, R
    Gffzpr> LD I, R
    "Ларченко и Родионов" изд-во Питер;
    Z80 users manual, (C) Zilog;
    "Микропроцессорный комплект Z80" (C) Минск...

    Второй пункт свободно доступен на сайте www.zilog.com. И вообще всё
    остальное элементарно гуглится на том-же zx.pk.ru.

    Gffzpr> Может, просто ссылку кинет кто на книгу, где это хорошо объясняется?
    А вы, гражданин гость, потрудитесь сделать так, чтобы ваше имя наверху
    в "From" стояло. Hаверное, в форуме реальное имя таки ввести надо. Иначе
    я на ваши письма отвечать более не буду, заколебали, кругом гости,
    ничего не понятно. А хотите конструктивно писать в фидо -- делайте
    это хоть через news://news4.fido7.ru, хоть через
    http://www.fido-online.ru.

  8. #7
    Kirill Frolov (2:5030/827.2)
    Гость

    По умолчанию Re: Система прерываний - есть вопросы.

    Hемедленно нажми на RESET, Guest from forum zx.pk.ru!

    On Tue, 11 Oct 05 20:45:58 +0400, Guest from forum zx.pk.ru wrote:

    Gffzpr> флаги 3,5,7 копируются из A. CF не меняется, ZF=1 если A=0. PV ставится в
    Gffzpr> зависимости от того, разрешено ли прерывание
    ^^^^^^^^^^^^^^^^^^^^^^^
    при чём разрешено ли в момент выполнения команды. С глобальным
    разрешением оно на пару тактов бывает не в синхронизме... См. известную
    статью И. Рошина (хоть у него на сайте, хоть в гугле).

    в форум?

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

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

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

Похожие темы

  1. Вектор-06Ц: Общие вопросы
    от CityAceE в разделе Вектор
    Ответов: 844
    Последнее: 11.01.2024, 14:31
  2. Какие компы еще у Вас есть
    от CHRV в разделе Зарубежные компьютеры
    Ответов: 63
    Последнее: 30.10.2008, 17:32
  3. Вопросы Викерсу и Альтвассеру.
    от Conan в разделе Люди
    Ответов: 20
    Последнее: 07.04.2006, 12:24
  4. Мониторы: подключение к ним. Вопросы.
    от Dut_Norshi в разделе Изображение
    Ответов: 12
    Последнее: 25.06.2005, 04:54
  5. Новая система каталогов в TR-DOS
    от Spectre в разделе Программирование
    Ответов: 55
    Последнее: 24.02.2005, 20:42

Ваши права

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