search Z80 CPU DIAGNOSTIC code
Moderator: Shaos
Re: search Z80 CPU DIAGNOSTIC code
in a,(n)/out (n),a: A8..15=a, A0..A7=n
Re: search Z80 CPU DIAGNOSTIC code
да - похоже это оно...jdigreze wrote:in a,(n)/out (n),a: A8..15=a, A0..A7=n
и мне не понравилось, или смутило: A8..15=a.
Получается, мы говорим, что адрес у команд в/в теперь полный 16-разрядный.
И выходит, изменяя А, и не меняя n мы делаем out по разным 16-разрядным адресам?
А в i8080 это обращение всегда по одному 16-разрядному адресу.
Вот смысл этой особенности у z80 от меня и ускользнул...
iLavr
Re: search Z80 CPU DIAGNOSTIC code
Именно так. Видимо у инженеров Zilog на этот счёт было своё особое мнение. Есть подозрение, что задумывалось это в расчёте на микропроцессорный комплект, но как показала история, это по большей части осталось не востребованным. Хотя... Слишком мало я знаюLavr wrote:и мне не понравилось, или смутило: A8..15=a.
Получается, мы говорим, что адрес у команд в/в теперь полный 16-разрядный.
И выходит, изменяя А, и не меняя n мы делаем out по разным 16-разрядным адресам?
Re: search Z80 CPU DIAGNOSTIC code
Так-то похоже на косвенное обращение к УВВ, но менять можно только старший индекс...jdigreze wrote:Именно так. Видимо у инженеров Zilog на этот счёт было своё особое мнение.Lavr wrote:И выходит, изменяя А, и не меняя n мы делаем out по разным 16-разрядным адресам?
Хотя просто косвенное уже есть через пару [BC].
Для чего интелловцы кинули в старший и младший одно число - я знаю: помогает упростить дешифрацию в простых случаях.
А вот ход мысли инженеров Zilog для меня пока загадка...
iLavr
Re: search Z80 CPU DIAGNOSTIC code
действительно, здесь у меня ошибка, я в старший байт выдаю регистр В вместо А для z80jdigreze wrote:in a,(n)/out (n),a: A8..15=a, A0..A7=n
Re: search Z80 CPU DIAGNOSTIC code
Смотрел на длительность выполнения команд и нашел еще ошибку, на лишних 255 тактов дольше одна из команда выполняется... поправил это, и начал смотреть на потактовое выполнение команд в известной книге Z80 Central Processor Unit, а именно табличку:
IOP - это внутренние операции ЦП, а MRD и MWR это обращения к памяти, так вот по большей части все обращения по 3 такта, но редко попадаются по 4! и я не увидел, где бы говорилось как получается этот один дополнительный такт, добавлять ли его как при сигнале wait?
Сейчас в dll все MRD и MWR циклы по 3 такта, а IOP увеличены на 1 такт, для выравнивания общей длительности.
Еще, исправил ошибку с выставлением флагов на паре групп команд, которую внес уже после прогона теста по этой группе, но которая попала в dll выложенную ранее, плюс ввел в dll информацию о версии, пишется в консоль логирования x80.dll - Version 1. Старый архив убрал, вместо него выложил новый.
Сейчас в dll все MRD и MWR циклы по 3 такта, а IOP увеличены на 1 такт, для выравнивания общей длительности.
Еще, исправил ошибку с выставлением флагов на паре групп команд, которую внес уже после прогона теста по этой группе, но которая попала в dll выложенную ранее, плюс ввел в dll информацию о версии, пишется в консоль логирования x80.dll - Version 1. Старый архив убрал, вместо него выложил новый.
Re: search Z80 CPU DIAGNOSTIC code
А у тебя какой ассемблер? У меня ни одного ассемблера для z80 нет (стыдобищще!)PVV wrote:....я не могу понять как этот макрос раскручивается, и ассемблер на этот макрос ругается...
Присоветуй ассемблерчик-то, и где скачать... и он в Протеус привяжется, ну как я тут объяснял?
iLavr
Re: search Z80 CPU DIAGNOSTIC code
Есть z80asm в исходниках. Написан на сях, сам собирать не пробовал, пользуюсь готовой сборкой под Linux. Скачать архив исходников можно по первой ссылке гугла, если указать в запросе 'z80asm'Lavr wrote: Присоветуй ассемблерчик-то, и где скачать... и он в Протеус привяжется, ну как я тут объяснял?
Re: search Z80 CPU DIAGNOSTIC code
я использую zmac, он есть в архиве download/file.php?id=1173 и я его, вроде как в исходнике нашел, только не проверял еще, собираются исходники или нет. Так что, если исходники получится собрать, то можно их и подправить, что бы получался сразу .SDI файл.Lavr wrote: Присоветуй ассемблерчик-то, и где скачать... и он в Протеус привяжется, ну как я тут объяснял?
x80.dll я сейчас активно гоняю по всем трем тестам Exerciser для z80, i8080 и i8085, все это весьма долго, времени не хватает охватить сразу все...
Реализовал абсолютно весь функционал для всех cpu, все прерывания, захват шины, плюс поддержка отладки в proteus, нужно только проверять...
в архиве Z80 Instruction Exerciser.zip новая dll - Version 7 и доработанные исходники тестов.
zmac.zip - исходники, которые я нашел...
- Attachments
- Z80 Instruction Exerciser.zip
- (74.5 KiB) Downloaded 585 times
- zmac.zip
- (120.61 KiB) Downloaded 579 times
Re: search Z80 CPU DIAGNOSTIC code
и проекты для proteus.
После сборки нужно начало бинарника отрезать для этих схем,
например, в linux: dd if=8085ex1.cim of=8085ex.bin skip=16128 bs=1
После сборки нужно начало бинарника отрезать для этих схем,
например, в linux: dd if=8085ex1.cim of=8085ex.bin skip=16128 bs=1
- Attachments
- Exerciser_proteus_prj.zip
- (698.65 KiB) Downloaded 578 times
Re: search Z80 CPU DIAGNOSTIC code
Спасибо большое! - Скачал этот zmac, посмотрю... и остальной софт скачал!PVV wrote:я использую zmac, он есть в архиве download/file.php?id=1173 и я его, вроде как в исходнике нашел, только не проверял еще, собираются исходники или нет. Так что, если исходники получится собрать, то можно их и подправить, что бы получался сразу .SDI файл.
Да у меня получается два фронта - на старом ноуте неплохой весьма неглючный старый Протеус, но скорость, конечно, для эмуляции аховая...
А на новом ноутбуке - там пошустрее все - Интел Атом 2 ГГц и Венда-7 и Протезус поновее,
но получается, если я что-либо под ним делаю - назад это уже несовместимо.
А у меня весь основной объём полезных наработок под старым Протезусом.
iLavr
Re: search Z80 CPU DIAGNOSTIC code
Только что одобрил это сообщениеSergNR wrote:Есть z80asm в исходниках. Написан на сях, сам собирать не пробовал, пользуюсь готовой сборкой под Linux. Скачать архив исходников можно по первой ссылке гугла, если указать в запросе 'z80asm'Lavr wrote: Присоветуй ассемблерчик-то, и где скачать... и он в Протеус привяжется, ну как я тут объяснял?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: search Z80 CPU DIAGNOSTIC code
Устаю в пятницу к вечеру... доооооолго думал, что же ты одобрил... с запозданием до меня дошло!Shaos wrote:Только что одобрил это сообщение
Спасибо - сейчас попробую найти... как-то полный провал у меня в компиляторах под z80...SergNR wrote:Есть z80asm в исходниках. Написан на сях, сам собирать не пробовал, пользуюсь готовой сборкой
iLavr
Re: search Z80 CPU DIAGNOSTIC code
Лучше последнюю модификацию брать: http://www.nedopc.org/forum/viewtopic.php?f=62&t=7939Lavr wrote:Спасибо большое! - Скачал этот zmac, посмотрю...PVV wrote:я использую zmac, он есть в архиве download/file.php?id=1173 и я его, вроде как в исходнике нашел, только не проверял еще, собираются исходники или нет. Так что, если исходники получится собрать, то можно их и подправить, что бы получался сразу .SDI файл.
Я тут за главного - если что шлите мыло на me собака shaos точка net