Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Счётчик регенерации в Z80 7 или 8 битный?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
GetSmart
Читаю описание, вроде как 7 битный счётчик, хотя регистр 8 битный. Есть вопросы.

1. Может в каких-то версиях Z80 этот cчётчик 8 битный? (Z80A, Z80B, ...)
2. Можно ли в регистр R прописывать значения >= 128 ?
3. Какой смысл анализировать старший бит этого регистра, если он не меняется (или нулевой) ? Я это вижу в проге.

Для стандартного Z80 есть такое описание.
Цитата
The refresh register, R, increments each time the CPU fetches an opcode (or opcode prefix) and has therefore no simple relationship with program execution.

["While R is an 8 bit register, it wraps around at 128 instead of 256. If the programmer stores a value in the register, its high bit will be preserved regardless of what the CPU does to the remaining 7 bits. Incorrect implementation of this behaviour is a common source of problems when running games on emulated Z80-machines"]

На 2-ой вопрос ответ ясен.
Genadi Zawidowski
Цитата(GetSmart @ Aug 24 2011, 23:19) *
Читаю описание, вроде как 7 битный счётчик, хотя регистр 8 битный. Есть вопросы.

1. Может в каких-то версиях Z80 этот cчётчик 8 битный? (Z80A, Z80B, ...)
2. Можно ли в регистр R прописывать значения >= 128 ?
3. Какой смысл анализировать старший бит этого регистра, если он не меняется (или нулевой) ? Я это вижу в проге.

Для стандартного Z80 есть такое описание.

На 2-ой вопрос ответ ясен.


У Вас не Rabbit? Если да - там регистр R другую функцию выполняет.
На Hitachi HD64180 документ не нашёл... Или у Вас точно от Zilog кристалл?

Для zilog:

Возможно, используют как ещё один флаг. Смотреть там, где записали. Правильно замечено, что проверка на работу под эмуляторами (или трассировщиками).
Да, вы в курсе про копирование флага iff2 в parity при выполнении этой команды??

ps: С удивлянием для себя обнаружил, что команда ld a,r устанавливает флаги sign и zero по содержимому регистра r.
GetSmart
Цитата(Genadi Zawidowski @ Aug 25 2011, 21:28) *
ps: С удивлянием для себя обнаружил, что команда ld a,r устанавливает флаги sign и zero по содержимому регистра r.

Вы в железе проверили? Жаль у меня железа нет.

Цитата(Genadi Zawidowski @ Aug 25 2011, 21:28) *
Да, вы в курсе про копирование флага iff2 в parity при выполнении этой команды??

Нет, конечно я не в курсе. Я с Z80 не очень знаком. Только с 8080. Хотя расширение команд это мелкое отличие, но дьявол кроется в деталях.

Спасибо за помощь.
Genadi Zawidowski
Цитата
Вы в железе проверили? Жаль у меня железа нет.

По это явно в Zilog-овском документе с их сайта говорится. Если надо - можно будет проверить (но только на Z180).
А что, не известно точно, что за железо у Вас?
GetSmart
Цитата(Genadi Zawidowski @ Aug 25 2011, 21:57) *
А что, не известно точно, что за железо у Вас?

Не. Точно даже проц не знаю. Z80 совместимый.
Genadi Zawidowski
В даташите на Hitachi HD64180 тоже написано про 7 бит.
Rst7
Семь бит там инкрементируется. Старший бит можно использовать как флаг. Состояние разрешение/запрещение прерываний копируется в паритет как при чтении R, так и при чтении I.

Конечно, это все для оригинального Z80.

А еще там есть куча недокументированных команд. Очень полезных sm.gif
MrYuran
Цитата(GetSmart @ Aug 25 2011, 20:44) *
Нет, конечно я не в курсе. Я с Z80 не очень знаком. Только с 8080. Хотя расширение команд это мелкое отличие, но дьявол кроется в деталях.

Э нет, 8080 даже рядом не валялся.
Особенно мне нравился альтернативный набор регистров, переключаемый одной простой командой. Можно сделать РТОС практически без издержек на переключение контекста.
GetSmart
Похоже нарвался на недокументированные команды. IDA 5.2 даже в шоке.

Команда CB,35 им была переведена как "SRR L". В инете нашёл другое название - "SLI L". Кто-нить знает, чего она делает? Предположительно какой-то сдвиг.
Вероятно это лог. сдвиг влево с уст. мл. бита в 1. У этой команды куча имён. Ещё SL1, SLL -> найдено в http://www.emuverse.ru/wiki/Zilog_Z80/%D0%...%B0%D0%BD%D0%B4

И ещё. IDA 5.2 вообще не понял команды DD/FD,CB,xx,yy. Тоже забавные команды. По крайней мере символьное обозначение команды. Значение берут из памяти, а результат суют в регистр. Или в память, если yy & 07 == 6.

IDA вроде предыдущего года выпуска, а такое не знает. Позор.

Цитата(Rst7 @ Aug 26 2011, 09:46) *
Состояние разрешение/запрещение прерываний копируется в паритет как при чтении R, так и при чтении I.

По этому поводу случайно прочитал это
http://ivr.webzone.ru/articles/ldar_new/index.htm
Копируется, да не всегда оно вернО.
Походу недокументированные не только команды, но и особенности.
Harbinger
DD/FD, насколько помню, префиксы для работы с индексными регистрами IX и IY соответственно. И здесь один из недокументированных приколов, который не положено знать дизассемблерам - можно работать с их половинками (аналогично H и L).
GetSmart
Цитата(Harbinger @ Aug 29 2011, 07:56) *
DD/FD, насколько помню, префиксы для работы с индексными регистрами IX и IY соответственно. И здесь один из недокументированных приколов, который не положено знать дизассемблерам - можно работать с их половинками (аналогично H и L).

Как раз это они знают. IDA 5.2 по крайней мере.
_Bill
Цитата(Harbinger @ Aug 29 2011, 06:56) *
DD/FD, насколько помню, префиксы для работы с индексными регистрами IX и IY соответственно. И здесь один из недокументированных приколов, который не положено знать дизассемблерам - можно работать с их половинками (аналогично H и L).

Насколько я понял, сейчас эти все команды задокументированы. Просто нужно последние версии руководства почитать. Или нет?
gena_p1
Можно потревожить RST7 в личку.
Он в далеком 1992м году турбоассемблер на ZX-Spectrum написал и работал с Z80 минимум на ямахе MSX и спектруме.
Или пошерстить zx.pk.ru , ибо нюансы зетников от оригиналов, до русских Т34 давно разобраны по молекулам.
Genadi Zawidowski
Цитата(gena_p1 @ Aug 29 2011, 19:31) *
Можно потревожить RST7 в личку.
Он в далеком 1992м году турбоассемблер на ZX-Spectrum написал и работал с Z80 минимум на ямахе MSX и спектруме.
Или пошерстить zx.pk.ru , ибо нюансы зетников от оригиналов, до русских Т34 давно разобраны по молекулам.


Ох, спасибо за ссылку... вспомнил прошлое (и не очень) - дизассемблирование ПЗУ от Ямахи - MSX-DOS потом использовал в своих домашних компютерах, написание компилятора С для 8080 и Z80 (MicroGenSf, если кто встречал).
GetSmart
Цитата(gena_p1 @ Aug 29 2011, 20:31) *
Можно потревожить RST7 в личку.

Я уже разобрался вроде как. Удивило что IDA 5.2 такого не знал.
Sergei_Ilchenko
Ребят, 2011 год же уже))
GetSmart
Цитата(Sergei_Ilchenko @ Aug 30 2011, 12:55) *
Ребят, 2011 год же уже))

А мужики-то не знают! biggrin.gif

Что касается меня, то я Z80 не применяю. Я его реверсю.
Историю надо знать в лицо. Пригодится.

Позор IDA Pro 5.2. Позор. Позор. Позор.
Он не знал.
gena_p1
Цитата(GetSmart @ Aug 30 2011, 12:26) *
А мужики-то не знают! biggrin.gif

Что касается меня, то я Z80 не применяю. Я его реверсю.
Историю надо знать в лицо. Пригодится.

Позор IDA Pro 5.2. Позор. Позор. Позор.
Он не знал.


Тогда напиши авторам софтины, поправят, думаю.
И почем нонче ида, кста? sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.