Система прерываний - есть вопросы.
Цитата:
Сообщение от 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
Может, просто ссылку кинет кто на книгу, где это хорошо объясняется?
Система прерываний - есть вопросы.
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/
С уважением, Иван Рощин.
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.
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> зависимости от того, разрешено ли прерывание
^^^^^^^^^^^^^^^^^^^^^^^
при чём разрешено ли в момент выполнения команды. С глобальным
разрешением оно на пару тактов бывает не в синхронизме... См. известную
статью И. Рошина (хоть у него на сайте, хоть в гугле).
в форум?