дело давно было, поэтому точно не помню где, но гдето читал об особенностях ранних и поздних ревизий ULA, вроде это в этой книге было, но не уверен, возможно в какой-то статье
в чем?
Вид для печати
Выяснил, что большинство передовых эмулей (а точнее, Fuse, ZXMAK2 и Spectaculator, исключая SpecEmu, EmuZwin и ZXSpin) эмулируют ошибку процессора z80 при выполнении команд LD A,I/LD A,R - во время прихода импульса прерывания эта команда в флаг PV записывает 0, т.к. обработка прерывания начинается на последнем такте выполнения команд. Подробнее об этом можно прочитать здесь и здесь. Но только во время обычной работы, во время проигрывания rzx файлов они все, кроме Spectaculator, об этой ошибке забывают.
По первой ссылке можно посмотреть код, обнаруживающий эту особенность. Как указано в тексте по второй ссылке, CMOS-процессоры Z80 этой ошибки не имеют.
Владельцы фирменных ZX Spectrum +2A(черный корпус)/+3, не могли бы вы прогнать в бейсике минитесты из этого видео: https://www.youtube.com/watch?v=Oj9ygM9U5lQ
(с четными портами не надо, там всё понятно, порт FE), и отписаться тут о результатах. Похоже, что у поздних Амстрадовских моделей таки есть эффект "порта FF", хотя конкретно на порту FF и не работает. Но эмули об этом не знают.
Амстрадовские ZX Spectrum +2A (+2 с черным корпусом) и ZX Spectrum +3. Считается, что у этих моделей нет "порта FF", как у предыдущих моделей (с незадействованных портов время от времени читаются данные, считанные ULA с экрана), а на этом видео показано, что есть, только почему-то работает на портах 1 и 5, но не работает на 255, и в режиме бейсик 48к (а ещё данные с экрана читаются инкрементированными).
на этом видео
1 испанская модель
2 прежний владелец вполне мог припаять резистор (есть такая доработка)
Да, про модель я заметил, но не думаю, что у них ULA разные. Насчёт резистора - тоже вполне возможно, поэтому мне и интересно, как у других владельцев это работает, или не работает. (И почему, если резистор, данные экрана инкрементированы, и не идут с порта FF? смысл тогда делать доработку, если в основном программы читают именно порт FF).
проверил на своём +2а
есть такой момент.
возможно перехлёст с существующими портами ?
С какими? И почему читаются данные экрана? Всё-таки больше похоже на глюк ULA. Спасибо за подтверждение факта. Возможно, кто-нибудь со временем проведет более подробное исследование, чтобы сэмулировать глюк на эмулях. Так, интереса ради, вряд ли в этом есть практический смысл, конечно.