Нестабильна шина именно на родном фирменном спектруме. Точно не знаю на каких именно моделях (легко установить по схематике, скорее всего, Sinclair ZX Spectrum 16, 48, 128 и +) - но все (99%) игрушек знают про это. По всей вероятности, на фирменном спеке неиспользование 257-байтной таблицы сразу же ведет к совершенно определенно четкому сбою. Поэтому пропустить данную фичу при написании игры было невозможно.
Если кому интересно - то на шину выдается байт аттрибутов. Происходит это потому что ULA и процессор развязаны в фирменной схематике просто резисторами, и процессор "подхватывает" байт аттрибутов выдаваемый ULA.
Совдеповские компы как раз были полностью свободны от этого недостатка (за исключением может быть "Москвы"). И это являлось в очень редких случаях причиной несовместимости.
Лечится на совдеповском компе такое подтяжкой шины данных с помощью резисторов к +5V. Резисторы нужны в пределах 10...15 килоом.
Если есть сомнения насчет связки TRDOS + 2-х байтный вектор прерывания, то советую не сомневаться и делать. Только чтение регистров TRDOS через IM2-прерывания это не "изобретение". Это уже использовалось. И именно таким методом, если ничего не путаю. Насколько я припоминаю, суть была в том, чтобы разрешить IM2 и обеспечить по прерыванию "вылет" из процедуры в которой процессор в обычных случаях зацикливался.
На не-совковые компы рассчитывать незачем. TRDOS у буржуев крайне непопулярна. А у совковых компов шина стабильна. Если у кого и нестабильна, то это очень редкое исключение (Совковый спек + TRDOS + нестабильная шина). Такие люди встречаются очень редко и ими можно пренебречь.




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