PDA

Просмотр полной версии : CPD-Test для проверки изменения регистра MEMPTR инструкциями. Проверьте на реале плз



cafedead
05.04.2025, 12:50
Всех приветствую. Делаю тут свои тесты для проверки правильности выполнения инструкций процессором Z80. Тесты на данный момент выявляют лишь несоответствия в регистре MEMPTR.

Хотел бы попросить тех, у кого есть такая возможность, прогнать тесты на реальном железе, чтобы я убедился, что там точно тесты проходят и само ядро работает нормально, чтобы можно было продолжать работу. Много времени не займет, тесты быстро выполняются, где-то в районе 15 секунд. Загружать дольше будете, 11 кБ. Должно выдать Failed 00 from 93 tests, ошибок быть не должно. Если будут, сообщите номера тестов с ошибками, они остаются на экране, и циферки под ними.

Заранее благодарю.

82152

JeRrS
05.04.2025, 13:52
Эксперт-006
https://i.postimg.cc/CzxPv2cH/DSC01761.jpg (https://postimg.cc/CzxPv2cH)

Sintez-M (Intercompex)
https://i.postimg.cc/Ff3DdXKm/DSC01762.jpg (https://postimg.cc/Ff3DdXKm)

Квант-БК (Didaktik)
https://i.postimg.cc/dkFnGN7C/DSC01763.jpg (https://postimg.cc/dkFnGN7C)

cafedead
05.04.2025, 13:58
Эксперт-006
Благодарствую. Отличный кейс. А какой внутри процессор? Любопытно, что в результате LD (BC|DE), A в старшем байте не ноль, а единица. Как-то неожиданно.

ZXMAK
05.04.2025, 14:40
а какие инструкции он тестит?

JeRrS
05.04.2025, 14:47
cafedead, КР1858ВМ1

https://i.postimg.cc/jDMYCNLt/297641244-5.jpg (https://postimg.cc/jDMYCNLt)

Lethargeek
05.04.2025, 14:47
какой внутри процессор? Любопытно, что в результате LD (BC|DE), A в старшем байте не ноль, а единица. Как-то неожиданно.
для ряда Т34ВМ1 как раз именно такое и ожидаемо

cafedead
05.04.2025, 14:55
а какие инструкции он тестит?
Пока-что только те, которые влияют на MEMPTR по тому документу, что натестировали когда-то с подачи boo-boo, сделанные и несделанные условные джампы/реты/коллы, но с неполным пока-что покрытием, плюс некоторые, которые не влияют, но могли бы влиять. И ожидаемые результаты тоже выставлены по этому документу. Ваш ZXMAK2 проходит пока-что. Еще некоторые проходят. Но некоторые не проходят. В планах сделать полноценные тесты, поскольку известные тесты, увы, не выявляют нарушений, которые выявляются моими неполными тестами. И мне нужны были подтверждения, что на реальном железе все четко.

82156821548215782155

Вообще, алгоритм затачивался изначально, чтобы просто выяснить, какой MEMPTR после выполнения инструкции. Я им проверяю реальный процессор, подключенный к микроконтроллеру. А тут в тестах более толстая, но быстрая версия. Возможно, еще надо будет как-то адаптировать это именно под тесты.

Под ВМ1 дополнительную логику намеренно не делал, чтобы увидеть то, что увидел. Выдаваемые результаты подтверждают, что все с тестами на реалах хорошо, если не считать эту внезапную единицу в старшем байте регистра для LD (BC|DE),A. Очень интересный случай. Возможно, стоило после первого же фэйла скип теста убрать, чтобы увидеть детальные результаты для каждого варианта. Нужно будет это поподробнее изучить.

- - - Добавлено - - -


для ряда Т34ВМ1 как раз именно такое и ожидаемо
Так там ноль ожидаем. А тут пришла единица. Конечно посмотрю, мог ли я как-то накосячить. Но... где?! Пока-что не представляю.

Lethargeek
05.04.2025, 15:39
Так там ноль ожидаем. А тут пришла единица. Конечно посмотрю, мог ли я как-то накосячить. Но... где?! Пока-что не представляю.
скрин не увеличил, не разглядел, думал не про ту единицу) как вариант - мб разница из-за разных масок оригинала (U880/5 и /6)?

cafedead
05.04.2025, 16:11
как вариант - мб разница из-за разных масок оригинала (U880/5 и /6)?
Это я не знаю. Меня больше интересует, как это в поведении должно выглядеть, если спамить разными адресами, предыдущими значениями MEMPTR, и разными значениями регистра A... Кто-то писал в Интернетах, что не получил ожидаемые нули во флагах после такой инструкции на ВМ1. Может быть, на ВМ1 в старшем байте MEMPTR после этой инструкции должно получаться что-то более сложное, нежели ноль.

Ну или я все же где-то накосячил. Но вроде не накосячил. Если приходит в MEMPTR #0176, то оно и вычисляет #0176, а если приходит #0076, то и вычисляет #0076, и сюрпризов не происходит. Значит там в старшем байте регистра MEMPTR процессора ВМ1 реально единица после инструкции LD (DE),A по какой-то причине. В A #ED при этом. Надо спамить разными значениями, и смотреть, что получится.

82160

ZXMAK
05.04.2025, 18:37
скорей всего разница из-за Q регистра, который по разному на разных вариантах Z80 работает

Lethargeek
05.04.2025, 19:04
скорей всего разница из-за Q регистра, который по разному на разных вариантах Z80 работает
а тут разве применялись scf/ccf ?

ZXMAK
05.04.2025, 20:24
не знаю, код не смотрел. Просто предположил что может быть.

cafedead
29.04.2025, 21:44
Новая версия. Переделал тесты, много добавил, что-то объединил, что-то разъединил. Теперь проверяются все инструкции и вызовы прерываний, меняющие MEMPTR, кроме: инструкций RST, вызовов прерываний в режимах IM 0 и 1, разбитых инструкций CPIR и CPDR. Тесты разбитых OTIR и OTDR работают только на 128-х машинах. :ZXPlus: Для тех, кто будет проверять на реалах, сделал турбозагрузчик, чтобы быстрее все это дело грузилось. Сделал вывод некоторой идентификационной информации, в будущем буду пробовать на ее основе адаптировать тесты под конкретные модели процессоров, но нужна обратная инфа от вас: что на экране, какой установлен процессор. Проверьте, пожалуйста, на реальных машинах, у кого есть возможность. Спасибо.

82233 82234

TZX: 82235
TAP: 82236

goodboy
29.04.2025, 22:49
сделал турбозагрузчик, чтобы быстрее все это дело грузилось.
TAP`ка нужна, её можно мгновенно загрузить.

cafedead
29.04.2025, 23:19
TAP`ка нужна, её можно мгновенно загрузить.

Ок, сделал

sasza
30.04.2025, 07:14
Запустил на Мистере ФПГА (ZX Spectrum 24.04.21) - сразу же вылетает:
01:Self-test
TESTS FAILED
MEMPTR is not emulated correctly

ivang78
30.04.2025, 09:42
Физическое железо Z8400AB1 (Z80A), БМК Т34ВГ1. Все тесты пройдены:

https://i.ibb.co/qL0RgB4y/DSC-6135.jpg (https://ibb.co/FksBY6fx)

cafedead
30.04.2025, 11:36
Запустил на Мистере ФПГА (ZX Spectrum 24.04.21) - сразу же вылетает:
01:Self-test
TESTS FAILED
Значит тест прокрутил все необходимые итерации, но флаги так и не изменились, т.к. в эмуляторе вообще не запарились этими флагами из регистра MEMPTR в инструкции BIT 0,(HL), либо CPD не уменьшает MEMPTR, и проверять тогда все это совершенно невозможно. В тесте предусмотрен выход на такой случай с таким вот сообщением, чтобы на таких эмуляторах все не зависало. Интересно было проверить и такой кейс. В любом случае, проверить было интересно, потому что в FPGA могла и оказаться эмуляция регистра, полная, или не полная, мы бы увидели недостатки, если бы они были. Спасибо за инфу.

JeRrS
30.04.2025, 15:39
GRM-128 (так же процессор отечественный ВМ1)

https://i.postimg.cc/dDH6XQdP/DSC01764.jpg (https://postimg.cc/dDH6XQdP)

ZXMAK
30.04.2025, 21:29
тест любопытный:

https://i.imgur.com/hihgmwg.png

Смущает правда то, что он показывает ок, даже если специально подпортить флаги X и Y у блоковых инструкций.

Вероятно тест не проверяет как влияет старший байт адреса блоковой инструкции на флаги?

cafedead
30.04.2025, 21:46
Смущает правда то, что он показывает ок, даже если специально подпортить флаги X и Y у блоковых инструкций.

Вероятно тест не проверяет как влияет старший байт адреса блоковой инструкции на флаги? А нужно бы проверять.
Так тест флаги и не проверяет вообще. Ни флаги, ни другие регистры. Сейчас проверяется только MEMPTR. Даже если у вас инструкции вообще не будут эмулироваться правильно, главное для теста, чтоб MEMPTR сходился. Если не сходится, он заметит, если конечно не сломается от такого. ) Я пока-что полный тест инструкций не делал, так что для этого пока-что пользуйтесь существующими тестами. В перспективе может быть и сделаю с возможностью показывать, в чем конкретно проблемы, в каком регистре, в каких флагах. Но это надо будет полный тест вообще всех инструкций делать, запаковывать ожидаемые результаты. Пока-что этого не делал. Вначале надо было понять, правильно ли MEMPTR считается, сходится ли с реалами. Потом покрою вообще все инструкции, и опять прогон на реалах... И уже потом можно будет подумать над полными тестами, куда будет относиться и ожидаемая вами проверка флагов.

Ну и заодно вот из результатов от JeRrSа пытаюсь понять, как определять отечественные аналоги, чтобы как-то адаптировать тесты под них. И что там в 8-м бите MEMPTR после LD (BC|DE),A... Пока-что не понятно. Это надо будет специальную версию собрать.

ZXMAK
30.04.2025, 21:53
А, тогда понятно. А то я был несколько озадачен - попробовал испортить флаги чтобы посмотреть как тест отреагирует, а он всеравно показывает ок :)

Мне кажется правильнее было бы всеже регистр WZ, а не MEMPTR называть, т.к. он именно WZ в официальной документации называется.

Spectramine
01.05.2025, 04:10
https://i125.fastpic.org/thumb/2025/0501/1b/df8dfa40c9ad75730a2b2bb6978d381b.jpeg (https://fastpic.org/view/125/2025/0501/df8dfa40c9ad75730a2b2bb6978d381b.webp.html) https://i125.fastpic.org/thumb/2025/0501/bb/5693662cea38643533f3da5acf76fbbb.jpeg (https://fastpic.org/view/125/2025/0501/5693662cea38643533f3da5acf76fbbb.webp.html)

с фирменных реалов

ZjoyKiLer
06.05.2025, 11:01
cafedead, а что делают шаги "OTIR>NONI* 128k" и "OTDR>NONI* 128k" в тесте? И почему для этого нужен именно 128K?

- - - Updated - - -


А, тогда понятно. А то я был несколько озадачен - попробовал испортить флаги чтобы посмотреть как тест отреагирует, а он всеравно показывает ок :)

Мне кажется правильнее было бы всеже регистр WZ, а не MEMPTR называть, т.к. он именно WZ в официальной документации называется.

О какой официальной документации ты говоришь? Насколько я знаю, не существует ни одного официального документа Zilog, где упоминается регистр WZ — тем более под названием "WZ".

cafedead
06.05.2025, 11:30
а что делают шаги "OTIR>NONI* 128k" и "OTDR>NONI* 128k" в тесте? И почему для этого нужен именно 128K?
Разбивают блочные инструкции OTIR и OTDR до их завершения, и затем проверяют MEMPTR. Достигается это переключением страницы памяти самими этими инструкциями, для чего, естественно, необходим компьютер с многостраничной организацией памяти, где путем записи значений в порт ввода/вывода можно проецировать разные страницы памяти в общее адресное пространство. На 48К-машине невозможно переключить страницу памяти, и такие инструкции, только читающие из памяти, не могут быть разрушены, как вы знаете.

ZXMAK
06.05.2025, 19:36
О какой официальной документации ты говоришь? Насколько я знаю, не существует ни одного официального документа Zilog, где упоминается регистр WZ — тем более под названием "WZ".

сразу так не скажу, нужно посмотреть, просто еще из института помню классические картинки из учебников с внутренним устройством Z80, где был указан регистр WZ. И еще тогда я задавался вопросом можно ли к этому регистру обратиться и тогда казалось это невозможным.

Интернета тогда еще не было и никто про такие особенности Z80 не знал.

Чтото типа такого:
https://i.imgur.com/Fk7ghzD.png

Вопрос конечно интересный - где впервые появилась информация о нем и его название. Вот сходу нагуглил книгу 1981 года, где упоминается регистр WZ, первая редакция книги вышла в 1979 году, т.е. через 3 года после появления Z80 в 1976 году: http://www.vz200.org/bushy/manual_programming_the_z80_3rd_edition.pdf

https://i.imgur.com/cogWxE2.png

Когда эта книга вышла в 1979 году, еще и спектрума не было, а описание регистра WZ с подробными деталями как он внутри используется в операциях оказывается уже было :)

Не знаю, была ли эта информация в официальной документации опубликованой Zilog, но очевидно что такие детальные подробности о внутренностях Z80 в то время были взяты из внутренней документации разработчиков самого процессора, т.к. в то время еще и реверс кристалла врядли ктото успел сделать.

Т.е. даже если информация о WZ в официальных документах Zilog и не публиковалась, тем не менее именно так разработчики процессора назвали этот регистр. И в книгах именно имя WZ использовалось для названия этого регистра еще с 1979 года.


Название MEMPTR и прочие (у себя в эмуляторе я назвал его MW для краткости) появилось когда еще не было известно о связи флаговых битов с регистром WZ, просто был выявлен какой-то внутренний регистр, содержимое которого влияло на флаги. То, что это именно тот самый легендарный WZ, стало очевидным уже позже.

Titus
06.05.2025, 20:14
Чтото типа такого:
https://i.imgur.com/Fk7ghzD.png

Кстати, эта схема вообще не имеет никакого отношения к внутреннему устройству Z80.
Равно как и все другие блок-схемы из официальной документации к Z80.

ZjoyKiLer
06.05.2025, 20:46
Вопрос конечно интересный - где впервые появилась информация о нем и его название. Вот сходу нагуглил книгу 1981 года, где упоминается регистр WZ, первая редакция книги вышла в 1979 году, т.е. через 3 года после появления Z80 в 1976 году: http://www.vz200.org/bushy/manual_programming_the_z80_3rd_edition.pdf

В книге Роднея Закса 1979 года действительно используется название WZ. Но причина в том, что автор знал схемы процессора i8080 от Intel, где есть похожий по функциям регистр с таким обозначением. То есть информация об этом регистре пришла именно от Intel, а не от Zilog.


я, из уважения, предпочитаю называть его так, как его назвали те, кто реально раскрыл, как он работает — boo_boo и Владимир Кладов. Они использовали имя, которое ещё в 2002 году дал этому регистру Мартин Корт, когда выяснил, что он влияет на флаги YF и XF в инструкции bit n,(hl).

Titus
06.05.2025, 21:26
я, из уважения, предпочитаю называть его так, как его назвали те, кто реально раскрыл, как он работает — boo_boo и Владимир Кладов. Они использовали имя, которое ещё в 2002 году дал этому регистру Мартин Корт, когда выяснил, что он влияет на флаги YF и XF в инструкции bit n,(hl).
Но дело в том, что он не является MEMPTR по своей сути (т.е. указателем на память).
В Z80 есть внутренние регистры, которые действительно являются исключительно указателями на память. Это PCR и PCR2 (если смотреть по моему реверсу).
А WZ является многофункциональным регистром, и только из-за ошибки декодирования (или просто в следствие упрощения схемы процессора), он засасывает в себя ненужную информацию из PCR2.

- - - Добавлено - - -

Кладов и boo_boo не знали о том, что регистров учавствующих в глюках bit n,(hl) по сути два. Это WZ и PCR2. И назвали это одним общим обозначением MEMPTR.

ZXMAK
06.05.2025, 23:13
В книге Роднея Закса 1979 года действительно используется название WZ. Но причина в том, что автор знал схемы процессора i8080 от Intel, где есть похожий по функциям регистр с таким обозначением. То есть информация об этом регистре пришла именно от Intel, а не от Zilog.

да, похоже регистр WZ унаследован ещё от i8080, где он прямо так и назван в официальной документации: https://deramp.com/downloads/intel/8080%20Data%20Sheet.pdf


The temporary register pair, W , Z , is not program addressable and is only used for the internal execution of instructions.

тоесть получается у него еще более древняя история

cafedead
07.05.2025, 13:49
Разогнал тесты в полтора раза, в два раза сократив количество необходимых итераций "грубого" цикла для самых далеких от изменения флагов случаев.

TZX: 82289

Какая же залипательная задачка. Надо бы как-то от нее отлипнуть и заняться чем-то более полезным...

Также, добавил сверху замену минуса на плюс, если OUTI не изменяет CF при пересечении HL FFFF->0000. Но, увы, это ничего не дало в плане какой-то идентификации ВМ1 у JeRrSа, как ничего не дал поиск разницы из DAA, о которой Кладов писал. Все вроде в этом ВМ1 как в нормальных процессорах, не увидел разницы. Еще и в результатах, которые прислал JeRrS, четко везде нули в старшем байте после LD (BC|DE),A... В общем, все, надо взять паузу. JeRrSу благодарность за проведенные тесты с помощью полуразобранной версии.

Удивляет, как Boo-Boo точно разобрался с влиянием всех этих инструкций на данный регистр, используя доступные ему на тот момент способы выявления этого влияния. У меня было недоверие на счет некоторых заявленных моментов, из-за чего, в первую очередь, и делались тесты, основой которых я тестировал реальный процессор, подключенный к микроконтроллеру (применить их к эмуляторам было уже второстепенной утилитарной задачей), но все это подтвердилось. Пожалуй, моя любимая тема на этом форуме - это тема про их возню с данным регистром. Прям зачитывался.

goodboy
07.05.2025, 15:25
процессор отечественный ВМ1

из результатов от JeRrSа пытаюсь понять, как определять отечественные аналоги, чтобы как-то адаптировать тесты под них.
И что там в 8-м бите MEMPTR после LD (BC|DE),A... Пока-что не понятно. Это надо будет специальную версию собрать.
на КР1858ВМ1 все тесты (на 48к) прошли успешно.

cafedead
07.05.2025, 16:16
на КР1858ВМ1 все тесты (на 48к) прошли успешно.
Значит какой-то не очень аутентичный. Должен заваливать три теста. Интересно. А сверху что пишет? 55F0F0- или +, и что после? Все как у всех, или есть отличия?

goodboy
07.05.2025, 16:49
https://pic.maxiol.com/thumbs2/1746625754.3645248167.z80.jpg (https://pic.maxiol.com/?v=1746625754.3645248167.z80.jpg&dp=2)

https://pic.maxiol.com/thumbs2/1746625783.3645248167.test.png (https://pic.maxiol.com/?v=1746625783.3645248167.test.png&dp=2)

Titus
07.05.2025, 16:53
https://pic.maxiol.com/thumbs2/1746625754.3645248167.z80.jpg (https://pic.maxiol.com/?v=1746625754.3645248167.z80.jpg&dp=2)
Запусти на этом процессоре тест Test SCF 9., чтобы проверить, не перемаркировка ли.

goodboy
07.05.2025, 16:57
Test SCF 9

бордюр чёрный, точки мельтешат в двух зонах

https://pic.maxiol.com/thumbs2/1746626826.3645248167.scf.png (https://pic.maxiol.com/?v=1746626826.3645248167.scf.png&dp=2)

а вот тут - точек нет
https://zx-pk.ru/threads/34173-revers-inzhiniring-z80.html?p=1204448&viewfull=1#post1204448

Titus
07.05.2025, 18:03
а вот тут - точек нет DDp делал тест, у него с точками.

В принципе, твой процессор не противоречит другим тестам ВМ1, только порог немного другой. Но это может зависеть от температуры и напряжения питания.

ZXMAK
07.05.2025, 19:09
а в каких операциях возникает нестабильность?

Titus
07.05.2025, 20:29
а в каких операциях возникает нестабильность?

CCF/SCF.
И ты уже спрашивал про это в теме о реверс инжиниринге Z80.

ZXMAK
07.05.2025, 21:36
И ты уже спрашивал про это в теме о реверс инжиниринге Z80.

я тогда не нашел исчерпывающий ответ для себя


CCF/SCF.

именно во время этих инструкций или нестабильность возникает в условном регистре Q (в цепях в которых сохраняется состояние флагов от предыдущих инструкций) еще до выполнения SCF/CCF?

На каком этапе появляется эта нестабильность? И от чего она зависит на разных типах процессоров?

Titus
07.05.2025, 21:40
именно во время этих инструкций или нестабильность возникает в условном регистре Q (в цепях в которых сохраняется состояние флагов от предыдущих инструкций) еще до выполнения SCF/CCF?

На каком этапе появляется эта нестабильность?

Перечитай две темы, которые я написал про это. Чтобы не повторять одно и тоже многократно.

ZXMAK
07.05.2025, 21:45
Перечитай две темы, которые я написал про это. Чтобы не повторять одно и тоже многократно.

темы я читал, но там в основном предположения обсуждались (может чтото пропустил?), хотелось бы узнать к чему пришли в итоге.

Titus
07.05.2025, 21:48
темы я читал, но там в основном предположения обсуждались (может чтото пропустил?), хотелось бы узнать к чему пришли в итоге.

Никаких предположений нет. Все четко, ясно и понятно.

То, что ты не читал, или не читал внимательно, я вижу из характера твоих вопросов.

Загадка плавающих флагов SCF/CCF раскрыта! (https://zx-pk.ru/threads/35936-zagadka-plavayushchikh-flagov-scf-ccf-raskryta!.html)

cafedead
07.05.2025, 22:34
Никаких предположений нет. Все четко, ясно и понятно.

То, что ты не читал, или не читал внимательно, я вижу из характера твоих вопросов.

Загадка плавающих флагов SCF/CCF раскрыта!
Позвольте, я со своей стороны несколько уточню вопрос, насколько я его понял, и что из этого всего и меня тоже интересует, и на что ответа я не увидел. У вас вот тест выполнен визуально, вы просили видео, чтобы в динамике все это пронаблюдать, и там в ряде случаев отчетливо виден некоторый, скажем так, системный характер повреждений изображения для определенных ситуаций с SCF. Вы остановились на выводе, что там оказываются внутренние шины в висящем положении, и есть некий барьер между нулем и единицей, выраженный в электрическом значении, и у нас некоторое превышение этого барьера регистрируется как 1 или 0 во флагах, и как точка в вашей визуальной реализации, при этом сам этот барьер может зависеть от чего угодно, нагрева, прикладывания пальца, и т.п. Вы на этом вроде бы остановились, и с этим все понятно. Я бы добавил сюда влияние общего падения напряжения в виду бОльшего количества открытых линий, большего потребления процессором в моменте. Окей. Поняли, что брать значения флагов в моменте бессмысленно, имеет смысл накапливать результат, ловить девиации.

Но вот давайте как-то теперь дальше конкретизируем, что именно влияет сильнее, что влияет слабее. Это ведь вы сделали тот тест, вы можете легче ответить на эти вопросы, чтобы можно было по этим изображениям локализовать источники от бОльшего влияния к меньшему, когда мы уже внутри в рамках этих пограничных ситуаций. По картинкам и видео явно заметен не совсем уж рандом, и не хаос, а некий... системный характер этих искажений: визуально выглядит как сетка, чаще явно выражены 4х2 области внутри двух из четырех секций, внутри них опять видно что-то вроде сетки. Что это за биты такие, которые так ярко влияют, относительно каких других бит, влияющих не так ярко? Я посмотрел код, который вы выполняете, вы там переключаете флаги, меняете адреса. Нужны теперь ваши комментарии к тому, что мы здесь видим. Что именно влияет сильнее? Переключение битов флагов, или переключение битов адресов? Т.е. хотелось бы конкретных выводов. Тогда это можно будет смоделировать эмулятором, смоделировать аналогичное поведение, внося искажения в возвращаемые данные на основании ваших наблюдений. И не спрашивайте меня, зачем) Я бы не делал, лично для меня и возня с Q - уже излишне. Но это скорее спортивный интерес... Грубо говоря, вопрос к вам, как к автору теста, стоит такой: чем, или какими данными вот автор эмулятора должен "накормить" ваш тест, чтобы мы увидели аналогичные видео и картинки в эмуляторе? Надеюсь, я понятно сформулировал вопрос. Спрашиваю не про симуляцию точных значений зарядов тока на узлах виртуального процессора, а про видимое аналогичное поведение. Хочу, например, сделать вот крутилку 0-100%, прокрутили влево - получаем визуально в вашем тесте NEC NMOS, прокрутили вправо - получаем стабильный Zilog, который 006PSC, прокрутили на 50% - немного намусорили рандомом, но кладем это на некую основу, которую вы нам расскажете, и получаем именно вот то, что вот здесь нам выложили в виде картинки, и то, что мы видели для Zilog Z0840004PSC, или Z8400AB1... В нем ведь все это же самое, разве что только для одного из флагов, допустим, что разные барьеры для разных флагов, одним флагом где-то на барьере, другим - всегда выше/ниже. То же и в этом "ВМ1" для обоих флагов, я не вижу отличий. У GoldStar Z8400A PS обратный порядок, но области эти сохранились. Вот да, есть отличия у процессоров. В чем конкретно? Иными словами, нужна конкретика, нужны ваши выводы. Что именно у нас там за подсекции внутри секций образовались, что именно внутри них левее, что правее, что выше, что ниже. А ваши выводы на данный момент... Ну у вас их нет, ваших выводов. Как нет и объяснений, хотя бы нормальной легенды к вашему тесту, что на графиках слева-направо и сверху-вниз, и я не про четыре основные секции на экране, а про внутренности этой секции. Ну я понимаю, там на экране некуда подписать, ну словами хотя бы объясните. Поэтому извините, но нет, объективно говоря, все совершенно не четко, не ясно и не понятно для того, кто захочет имитировать такое поведение в своем эмуляторе, например. Не хочу вас как-то обидеть, я вам все это же примерно уже написал ранее, вы меня в троллинге обвинили. Но объективная реальность такова, что попросту недостаточно этой информации, поданной в вашей манере, для решения конкретной вышеописанной поставленной задачи.

И вы говорите, что этот ВМ1 похож на другие ВМ1. Тут я не соглашусь. Мы уже знаем, что он проходит все тесты MEMPTR, т.е. он уже не такой, как все ВМ1. И он, прежде всего, похож на 0004PSC, судя по картинкам вашего теста. Один в один. Разве нет?

Titus
08.05.2025, 00:26
И вы говорите, что этот ВМ1 похож на другие ВМ1. Тут я не соглашусь. Мы уже знаем, что он проходит все тесты MEMPTR, т.е. он уже не такой, как все. И он, прежде всего, похож на 0004PSC, судя по картинкам вашего теста. Один в один. Разве нет?
Я сужу только по тестам SCF/CCF. В них видно, что это процессоры одного и того же типа.
А именно Т34ВМ1, K1858BM1, TSL 80H-CPU, GoldStar Z8400A PS.
Что говорит скорее всего о том, что германский TSL был цельнотянут с GoldStar. А уже с германского клонировали T34 и ВМ1.

- - - Добавлено - - -


Нужны теперь ваши комментарии к тому, что мы здесь видим. Что именно влияет сильнее? Переключение битов флагов, или переключение битов адресов? Т.е. хотелось бы конкретных выводов.
Нет однозначного ответа, какая линия влияет сильнее, какая слабее. Влияние скорее трехмерное, поэтому я просто перетасовал в тесте линии так, чтобы градиент был наиболее легко воспринимаем визуально. Т.е. фактически методом проб и ошибок. Но итоговое распределение оказалось наиболее наглядным.

- - - Добавлено - - -


чем, или какими данными вот автор эмулятора должен "накормить" ваш тест, чтобы мы увидели аналогичные видео и картинки в эмуляторе?
У меня нет ответа на этот вопрос. Кормить надо такими данными, чтобы получились те картинки тестов, которые получены на реале)

ZXMAK
08.05.2025, 07:24
чем, или какими данными вот автор эмулятора должен "накормить" ваш тест, чтобы мы увидели аналогичные видео и картинки в эмуляторе? Надеюсь, я понятно сформулировал вопрос. Спрашиваю не про симуляцию точных значений зарядов тока на узлах виртуального процессора, а про видимое аналогичное поведение. Хочу, например, сделать вот крутилку 0-100%, прокрутили влево

интересно, что я примерно так-же точно представил как это должно выглядеть - в виде слайдера, задающего вероятность распределения случайности битов. :)
Правда мне пока не совсем ясно - какая часть в вычислении флагов должна шуметь и как именно.

cafedead
08.05.2025, 12:29
интересно, что я примерно так-же точно представил как это должно выглядеть - в виде слайдера, задающего вероятность распределения случайности битов. :)
Правда мне пока не совсем ясно - какая часть в вычислении флагов должна шуметь и как именно.

Нужно код теста Титуса разбирать по винтикам. Не хочет колоться агент, что именно там у него где. )

Titus
08.05.2025, 13:00
Нужно код теста Титуса разбирать по винтикам. Не хочет колоться агент, что именно там у него где. )

Смотреть тут (https://zx-pk.ru/threads/35936-zagadka-plavayushchikh-flagov-scf-ccf-raskryta!.html?p=1214190&viewfull=1#post1214190)