|
Счётчик регенерации в Z80 7 или 8 битный? |
|
|
|
Aug 24 2011, 19:19
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Читаю описание, вроде как 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-ой вопрос ответ ясен.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 25 2011, 16:28
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(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.
Сообщение отредактировал Genadi Zawidowski - Aug 25 2011, 16:50
|
|
|
|
|
Aug 25 2011, 16:44
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(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. Хотя расширение команд это мелкое отличие, но дьявол кроется в деталях. Спасибо за помощь.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Aug 28 2011, 21:39
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Похоже нарвался на недокументированные команды. 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Копируется, да не всегда оно вернО. Походу недокументированные не только команды, но и особенности.
Сообщение отредактировал GetSmart - Aug 29 2011, 03:51
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Aug 29 2011, 04:23
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

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

Группа: Участник
Сообщений: 27
Регистрация: 11-05-10
Пользователь №: 57 193

|
Можно потревожить RST7 в личку. Он в далеком 1992м году турбоассемблер на ZX-Spectrum написал и работал с Z80 минимум на ямахе MSX и спектруме. Или пошерстить zx.pk.ru , ибо нюансы зетников от оригиналов, до русских Т34 давно разобраны по молекулам.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|