EI:HALT
© AlCo
Люди! Наболело!
Да простят меня реальщики, но на время
отсутствия у меня здорового компа я просто
вынужден пользоваться эмуляторами.Да,в них
я иногда пишу программы...Не сидеть же мне
без дела, пока Tot ставит SIMM?
Вот...
В некоторых программах я использую об-
работчик прерываний,состоящий из одной ко-
манды RET.Прерывания соответственно выклю-
чаются,так что вызывать их нужно так:
EI
HALT
Пишу я,бывало,такую программу,никого не
трогаю. Ассемблирую,запускаю.Тестирую.Вис-
нет,сволочь! Ищу глюк - не вижу.
Надо сказать, что если уж я чего и пишу
на эмуляторе, то,как правило,этим эмулято-
ром оказывается zx_emul v0.33 by Lion 17.
И вот сегодня я снова наткнулся на та-
кой глюк. Снапшот на месте сделать не уда-
лось (v0.33,однако!- см. ZG#3 ), поэтому я
постарался подвесить прогу в том же месте,
но под zx_emul 0.34, и уже там отгрузился.
Z80 Stealth 4.50, загрузив снапшот,вис-
нуть не захотел 8]. Но в R80 v0.30 удалось
обнаружить,что program counter отдыхает на
команде HALT,а прерывания в это время отк-
лючены! Z80S этого не показал,поскольку по
загрузке снапшота их зачем-то включил, а
его встроенный монитор по неизвестной при-
чине всегда указывает на обработчик преры-
вания :)
Значит, прерывание пришло между EI и
HALT. Всего-то ;)
А теперь,мальчики и девочки,возьмите со
своих дальних полок покрытый пылью фолиант
под названием "ZX Spectrum для пользовате-
лей и программистов" by Ларченко&Родионов,
откройте его в районе 93-94 страницы -
там,где написано про команду EI,- и прочи-
тайте сноску с двумя звёздочками:
**) Следует отметить, что при выполнении
команды EI запрещаются маскируемые преры-
вания на время между этой и следующей ко-
мандами.
Короткое тестирование разделило эмуля-
торы на 2 группы:
- Буржуйские: R80, RealSpeccy - которые
соответствуют книжке и не виснут на EI:
HALT;
- Наши советские: Углеков, Шалаев, Юдин
и Колпаков, которые, по-видимому, эту кни-
жку не читали.
(P.S.: Недавно обнаружил,что тем же глюком
страдает прекрасный во всех других отноше-
ниях эмулятор Unreal Speccy by SMT ;( )
Грустно...
Если кому интересно,ту тестирующую про-
граммку можно найти в барахле. Она выпол-
няет цепочку EI. Если ваш муль (процессор
вряд ли ;)) сможет в этих условиях играть
музыку, то это повод заподозрить его в жу-
льничестве. Музыки быть не должно!
Хочу особо отметить, что мне не в кайф
подгонять РАБОТАЮЩИЕ программы так, чтобы
они удовлетворяли ещё и глюкам эмуляторов.
Несмотря даже на то, что 33-й Лион не рас-
паковывает картинки,упакованные Laser Com-
pact 5.2,как это можно было видеть в ZG#3.
Сайт управляется системой
uCoz