Если мне не изменяет память, в результате своих давнишних экспериментов на реале я выяснил, что:
1. Последовательности вроде
PC+0: #DD/#FD
PC+1: #недопустимый КОП (в т.ч. #ED, #DD, #FD) поправка - к #ED не относится, см ниже
PC+2: #xx
в результате ставят PC на PC+1, tacts = tacts+8. Но на сколько увеличивается R - на 1 или 2 - я тогда, тупица, не посмотрел... предположительно на 2 все-таки. При этом сбоев функционирования прерываний при моих экспериментах я не заметил. Хороший, однако, Фаджин придумал "workaround"
2. Последовательность
PC+0: #ED
PC+1: #ED/#DD/#FD
PC+2: #xx
работает как 8-тактный NOP, т.е. PC ставится на PC+2, tacts = tacts+8. Регистр R предположительно должен увеличиваться на 2, т.к. в данном случае никаких специальных действий (типа отката как в случае с #DD/#FD) не производится.
Надо будет напридумать простеньких прожек для проверки, навроде таких, и хорошо попросить товарища DDp проверить (и сделать замеры) на реале.
Добавлено через 15 часов 2 минуты
Итак, начнем.
Господин DDp или кто-нибудь еще! Если есть возможность, запустите, пожалуйста, на реале вот такие 2 программулины:
иКод:ORG #8000 LD HL, 0 XOR A, A LD R, A DI DB #00 ; R += 1 DB #00 ; R += 1 LD BC, (#8000) ; R += 2 LD A, R ; R += 2 OUT (#FE), A ; R += 1 JR $-10 ; R += 1
Как всегда, просьба замерить время между спадающими фронтами WR (короче, период). А также: в первом варианте бордюр должен быть постоянно одного цвета (вроде белого). Как ведет себя бордюр во втором варианте?Код:ORG #8000 LD HL, 0 XOR A, A LD R, A DI DB #DD ; R += 2 ??? LD BC, (#8000) ; R += 2 LD A, R ; R += 2 OUT (#FE), A ; R += 1 JR $-9 ; R += 1
Неприятный побочный эффект: через динамик будет слышен звук определенной частоты (~2 кГц), т.к. содержимое регистра R полностью транслируется в порт #FE без изменений. Кстати, как частота тона будет отличаться во втором случае?
Заранее спасибо за содействие!





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