Это только на глючном компе с постоянно нестабильной шиной данной, на всех нормальных спек-совместимых компах в момент прерывания на шине строго #FF, соответственно, хватит двух байт для вектора прерывания, плюс 7 байт на инициализацию IM 2 (LD A,N: LD I,A: IM 2: EI), плюс, возможно, пару байт на обработчик прерывания (EI:RET). (Естественно, в целях совместимости, не стОит назначать вектор прерывания в медленной памяти - будет дико тормозить на синклеровских моделях. Без головняка - строго в адресах #8000-#BEFF.)
Я не знаю, почему большинство программ так стараются забить 257 байт одним байтом для однозначного вектора прерывания, но реальных причин для этого нет. Достаточно по адресу #IIFF вписать произвольный адрес процедуры прерывания. (Иначе в 128к модели в 48бейсик-странице ПЗУ не использовали бы свободный участок - потеряли бы совместимость. А он использован, но для совместимости по адресам #xxFF оставлено #FFFF (Амстрад, кстати, в своей редакции 48бейсик-страницы ПЗУ на это забил, за что и поплатился потерей совместимости)).





Ответить с цитированием