KrNews #15
02 ноября 2001
  Железо  

Железо - как избежать глюков со вторым режимом прерываний на машинах с разделением поля памяти.

<b>Железо</b> - как избежать глюков со вторым режимом прерываний на машинах с разделением поля памяти.
_

                  IM 2
_

(c)Alex_Naz 2001

  Сколько  ни пиши, сколько не говори, а
люди игнорируют некоторые глобальные ве-
щи.Речь  пойдет о том, как избежать глю-
ков  со вторым режимом прерываний на ма-
шинах  с  разделением поля памяти.Многие
современные   писатели(не  могу  назвать
программистами), любят загружать регистр
I значениями выше 63, а затем обращаться
к  TR-DOS.Почему  же  этого  нельзя  де-
лать?Конкретный  ответ, на данный вопрос
можно найти в 3-ех томнике по программи-
рованию "ИНФОРКОМА".Цитата:
  "...При  каждом  цикле машинных команд
Z-80 обращается к ячейке памяти, адресу-
емой регистром "I", выводя его в старшие
восемь битов адресной шины, а линия зап-
роса  памяти "MREQ" активизируется."ULA"
генерирует  прерывания каждый раз, когда
необходимо   изменить  содержимое  экра-
на.Это  заставляет  Z-80 запустить прог-
рамму обработки прерываний, при условии,
что прерывания подключены.
  Когда  программа  обработки прерываний
выполнена, процессор возвращается в точ-
ку, в которой он был при прерывании.Если
это  команды  считывания/записи в память
между  #4000  и  #7FFF, что "ULA"(сейчас
используется  другой  аналог этого конт-
роллера дисплея) проверяет, просматривая
две  старшие линии адресной шины и линию
"MREQ",  то  "ULA" приостанавливает мик-
ропроцессор до окончания изменения экра-
на.
  Если старший бит регистра "I" сброшен,
а  бит  6  активизирован, то "ULA" может
запутаться  из-за регенерации динамичес-
кой  памяти.Активизируется линия "MREQ",
и  регистр  "I" помещается в старшие во-
семь битов адресной шины.Далее "ULA" ду-
мает,  что  процессор  производит запись
или  считывание в эту область ОЗУ, и при
попытке это предотвратить, "ULA" пропус-
кает  свое собственное обращение для из-
менения  дисплея, что приводит к развалу
картинки.Поэтому в регистре "I" не долж-
но  содержаться любое число от 64 до 127
включительно,  т.е. с двумя старшими би-
тами, установленными вышеописанным обра-
зом."
  Итак  надеюсь,  что все кто не знал об
этом, теперь знают и впредь не будут иг-
норировать  этого правила.На сегодняшний
же день существует множество программ, в
которых  это  правило  не соблюдается, а
всего-то нужно восстановить регистр I.
  Из-за  таких ошибок появляются различ-
ные "прибамбасы" для машин с разделенным
полем  памяти.Но  только подумайте, если
все  будут  писать  программы только под
свой компьютер, а затем указывать в тех-
нических требованиях:
  "Для  нормальной работы необходимо от-
резать ножку X от микросхемы Y".
  Тогда   произойдет   массовая  "резня"
плат,  что  недопустимо.Лучше  исправить
ошибку в программе, чем "коцать" плату.
  Конечно  эта  "резня" будет, но уже не
массовой, как я написал выше, это связа-
но  с  тем, что количество компьютеров с
разделенным полем памяти не так уж и вы-
соко,  но все таки нельзя не считаться с
этим.
  В  современных  компьютерах  в которых
нет разделения памяти, можно с регистром
"I"  вытворять что угодно, чем все и за-
нимаются.
  И на последок небольшой списочек прог-
рамм,  в  которых  регистр  "I" загружен
числами из "запрещенного" интервала:

                Spiders
           Global Commander
              Ultimatum 2
             Zasm 3.10demo
       Last Hero of Light Force

  Надеюсь эта информация окажется полез-
ной для вас и вы, уважаемые программисты
будете  учитывать ее при написании своих
продуктов.
_
 



Другие статьи номера:

INTRO - выход ПОСЛЕДНЕГО номера KrNews.

Железо - как избежать глюков со вторым режимом прерываний на машинах с разделением поля памяти.

Спектрум - Думы о перспективах платформы Spectrum.

Рассказ - Любовь зла.

Таланты - PROJECT: Spectrum DEAD. СПЕКРУМ УМИРАЕТ!!!

Новелла - 12 ТАЙНЫХ КНИГ (глава 3).

Реклама - Реклама и объявления ...

Outro - Авторы и контакты редакции.


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

Похожие статьи:
Наука - Сегодня, мы осваиваем космос, мы строим мега полисы, мы создаем роботов и искусственный интеллект. Но в то же время, что мы знаем о себе? Человек будущего это человек творческий, творчество и шизофрения стоят очень близко друг к другу.
Новости - Iсе'Di^тriиmрh. Plаid^тriиmрh. кYV^тriиmрh. Stееlzеr^тriиmрh. Pаstоr^тriиmрh. Cj.Есhо^тriиmрh. х-Mаn^тriиmрh. Cооlеr^тriиmрh. Оthеrs.
Реклама - б/у технику от 286 до P6, литература и комплеткующие, запись программ на заказ!
Мнение - Затерянные шедевры: адвентюрные игры.
Short Story - Poджeр ЖEЛЯЗНЫ: Dark Evil.

В этот день...   18 апреля