так может быть и глючит, только редко и некритично
Вид для печати
так может быть и глючит, только редко и некритично
Имелся ввиду тот факт, что обычно при одномоментном выключении одного буфера и включении другого буфера, сидящих на одной шине данных, на стыке происходит конфликт. А задержку как раз обычно вводят, чтобы произвести на начало задержки выключение первого, а к концу задержки на гарантированно свободную шину пустить второй буфер, поэтому во время задержки ни к чему не обращаются, а вне её - куда угодно.Цитата:
К H и L как раз не нужно бы обращаться в дополнительном такте, а в обычных - нужно.
Ладно, такая теория оказалаь далека от реальности.
Решил поюзать Z80Explorer, остался доволен :D.
Оказалось возможным с помощью команды засунуть в память перед стартом свои данные. Засунул команду EX (SP), HL на старт и 0xB9, 0xBA по указателю стека, что у меня стал 0x4009.
Также при пристальном всматривании в Register File обнаружил там стробы ко всем нужным регистрам (загорались при обращении к ним) и поместил их на диаграмму над содержимым регистров.
Диаграммы машинных циклов
Машинный цикл 2, чтение SP:
https://i54.servimg.com/u/f54/20/29/53/37/110.png
Машинный цикл 3, чтение SP+1:
https://i54.servimg.com/u/f54/20/29/53/37/210.png
Видно, что четвёртый тактовый цикл введён для записи в половинку регистра WZ SP+1.
Машинный цикл 4, запись SP+1:
https://i54.servimg.com/u/f54/20/29/53/37/310.png
Машинный цикл 5, запись SP:
https://i54.servimg.com/u/f54/20/29/53/37/410.png
Видно, что в доп тактах идёт пересылка данных из "пустого стакана" WZ (четвёртый такт) в HL (пятый такт).
[свернуть]
Видно, что каждый цикл обращения к памяти - трёхтактовый и размещён в начале маш цикла.
Кажется, что эксплорер имеет виртуальную "защёлку", подключенную к внешней шине данных как бы через резисторы и всегда работающую, в которую ложит данные как можно позднее для наглядности процессов во внутренних шинах. И $BA болтается из неё.
Захотел я узнать наверняка сабж по части шины данных. Обратим внимание, например, на пин DB6. Над ним есть два мощных транзистора, один подает питание (на красном), а другой - землю (на зелёном) на этот пин. Их затворы связаны с проводниками сбоку (если это не они же). Если нажать ПКМ по пину D6 и кликнуть "Driven by", то эти проводники подсветятся синим:
https://i54.servimg.com/u/f54/20/29/53/37/e_ua_a10.png
Обозначив их vcc_d6 и vss_d6, выведем на диаграмму исследуемой инструкции (где t1 - начало машцикла), и о Боже:
https://i54.servimg.com/u/f54/20/29/53/37/d6pin10.png