ZXNet эхоконференция «code.zx»


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



от: SMT
кому: All
дата: 11 Oct 2005
Hello, TomCaT Tom> LD A, R Tom> LD I, R флаги 3,5,7 копируются из A. CF не меняется, ZF=1 если A=0. PV ставится в зависимости от того, разрешено ли прерывание Tom> Hо, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от Tom> IM 1 (для Спекки, а не для Z80)? для этого надо понять, чем отличается именно для Z80 ;) если шина стабильна, то для спекки ничем не отличается

от: TomCaT
кому: All
дата: 11 Oct 2005
Hello, All Kir> DI Kir> LD A,63 Kir> LD I,A Kir> XOR A Kir> LD (23613),A Kir> LD HL,51697 Kir> LD (23746),HL Kir> IM 1 Kir> EI Kir> Kir> Безусловно, переменные ВАСИКА должны быть установленны ... =) После Kir> вше-указанных АСМ-строчек ни брейк ни игноры не будут действовать, Kir> единственное, при ошибке чтения он будет пытаться читать вечно =) Почитал код. Общий принцип понятен - в результате ошибки чтения вызывается прерывание, а что будет потом - вот это уже на совести TR-DOS и/или программиста... Hо, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от IM 1 (для Спекки, а не для Z80)? IM 2 - я знаю, про него можно не объяснять... Также давно интересует вопрос, как вляют на флаги такие команды, как LD A, R LD I, R Может, просто ссылку кинет кто на книгу, где это хорошо объясняется? -- Can you help Robin in his quest for the Silver Arrow?

от: SfS
кому: All
дата: 12 Oct 2005
Hello, TomCaT Tom> Hо, вот обнаружил вдруг, что я совсем не понимаю, чем отличается IM 0 от Tom> 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 - HЕ ИМЕЮТ ОТЛИЧИЙ ! Про IM2 писать не буду - сам все знаешь :) Документаця - оень полезная вещь :)

от: Ivan Roshin
кому: SMT
дата: 12 Oct 2005
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/ С уважением, Иван Рощин.

от: TomCaT
кому: All
дата: 13 Oct 2005
Hello, SfS Да, про документацию знал, увы :( , а за всё остальное (и за общение) -- спасибо. Теперь я разобрался :)




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Hardware - ЕGA монитор и Kворум, или кaк это делaется.
Groups - анкеты действующих групп: Antares.
Z#80 BUG - Ошибка Z80 пофиксена (определение состояния прерываний).
Доска почета - Интервью с XPEh.
Реклама - приобретайте Vicomm модемы!

В этот день...   8 мая