Эта несовместимость возникла после выпуска третьей версии платы (Issue 3) ZX Spectrum 48. Суть была в том, что при опросе клавиатуры (порт #FE) в этих версиях состояние бита (магнитофона) отличалось. Клайв Синклер признал наличие этой проблемы с опозданием. Разумеется, это «слегка огорчило» народ и разработчиков ПО.
В ZX Spectrum 48 было два кварца: один для синхрогенератора в ULA (14 МГц), а второй для PAL-кодера (4,43619 МГц). В ZX Spectrum 128 разработчики (скорее всего испанцы) заменили два кварца одним (17,734475 МГц). Его подобрали таким образом, что бы при делении (на 4 и на 5) частоты подходили и для PAL-кодера и для Z80. Но вместо 3,5 мГц получилось 3,546895 МГц.
Соответственно слегка «поплыли» времянки в телевизионных развертках. Вот их и подогнали под ТВ-стандарт (счетчиками в ULA) изменив кол-во тактов в строке и кол-во строк в кадре. Разумеется, на совместимости (в частности на бордюрных эффектах) это положительно не сказалось.
Причина замены на общий кварц (в ZX Spectrum 128) была в том, что два раздельных генератора (в ZX Spectrum 48) интерферировали и в результате на ТВ-картинке возникали муар и помехи.
P.S. Порт #FF "исчез" только в ZX Spectrum +2A/B +3. В ZX Spectrum 128 и ZX Spectrum +2 порт поддерживался аппаратной архитектурой.





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