Глупый вопрос можно? а поддержка SD колнтроллера от Vinxru только к РК прикручена?
Вид для печати
Глупый вопрос можно? а поддержка SD колнтроллера от Vinxru только к РК прикручена?
Вопрос по эмуляции бипера (сейчас больше интересует специалист с z80, но вопрос общий). При обновлении состояния бипера учитывается ли конкретная команда или при обнаружении обращения к биперу сразу меняется состояние? Например в командах ld (hl),a {7 тактов} и ld (адрес),a {13 тактов} учет изменения состояния бипера будет сразу или как бы в последних тактах, как на реале? Если запись в бипер только одинаковыми командами, то без разницы, но если шимить миксом разница может быть.
ivagor, к сожалению, в текущей реализации сразу :( Кстати, это может также вызвать неточности при эмуляции, например, Вектора c Z80 при использовании OUT (C),r вместо OUT (nn),A
Кстати, встречный вопрос на случай, если дойдут руки исправить это поведение: в 8080 запись в память вроде бы всегда выполняется в последнем машинном цикле, и можно, в принципе, просто учитывать полную длительность инструкции. А как в Z80? Есть ли инструкции, в которых запись происходит где-то в середине?
В shld, push 2 записи, так что не только в последнем цикле.
Кроме shld, push еще xthl, call, rst, у z80 еще добавляются ld (nn),de/bc/sp/ix/iy. Наверно запись в последнем цикле все же более приемлемый компромисс, чем в начале.
Да, я не совсем точно выразился, я больше имел в виду запись одного байта, которые обычно применяются для обращения к портам, в том числе отображаемым на память. С вышеприведенными командами понятно, что запись двух байтов разнесена по циклам... Действительно, компромиссом была бы запись в последнем цикле. Хотя вроде бы были нюансы, если ничего не путаю, с параллельным исполнением в ряде случаем цикла выборки следующей инструкции и последнего цикла предыдущей?
uart, кстати, напомни, в твоем эмуляторе как сделано? Обращения к памяти четко привязаны к тактам и циклам процессора?
Насколько знаю, элементы конвейеризации есть у 8080/8085/z80, но касаются внутренних арифметических операций. Т.е. завершение предыдущей арифметики совмещается с началом цикла выборки следующей команды. Для записи наружу проца влияния не вижу.
Что касается двухбайтных записей, то xthl в некоторых случаях может представлять интерес для замены комбинации xri ...\ sta. А на 8085 это даже быстрее, чем xri ...\ out, но это уже не про Emu80.