PDA

Просмотр полной версии : Справочник по Z80?



Shiru
28.04.2005, 08:53
Где-бы найти удобно организованый справочник по командам Z80, желательно на русском? Помнится, была книжка (название забыл) издательства Питер, там в первой части про Z80 и архитектуру Speccy, во второй про TR-DOS было. Можно её найти в электронном виде, или что-нибудь подобное?

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

CHRV
28.04.2005, 10:12
Где-бы найти удобно организованый справочник по командам Z80, желательно на русском? Помнится, была книжка (название забыл) издательства Питер, там в первой части про Z80 и архитектуру Speccy, во второй про TR-DOS было. Можно её найти в электронном виде, или что-нибудь подобное?

Официальных и неофициальных док на английском у меня полно, но они очень неудобно организованы, запарился туда-сюда мотаться по тексту.
Ширу я ее распечатал и пользуюсь частенько, по моему лежит на zx.da.ru (Virtual TRDOS).

Shiru
28.04.2005, 10:23
Той книжки там нет, смотрел. Блин, я её отдал вместе со всей литературой по ZX, теперь в обломе :-|

dwt
29.04.2005, 10:57
Помнится, была книжка (название забыл) издательства Питер, там в первой части про Z80 и архитектуру Speccy, во второй про TR-DOS было. Можно её найти в электронном виде, или что-нибудь подобное?
Книжка эта Н.Родионов и А.Ларченко "ZX-Spectrum для пользователей и программистов" (моя "библия" ;) ). Она множество раз переиздавалась; последние издания выходили с дополнением, посвященном TR-DOS. Она такая черного цвета, в мягком переплете. К сожалению, она у меня тоже в потрепаном виде, сам искал долго, но не нашел.
Но тиражи были огромные (помнится, какое-то издание ее было 100000экз.), так что в принципе, у книжников можно поспрашивать.

Shiru
29.04.2005, 12:10
"ZX-Spectrum для пользователей и программистов"
Точно! Она у меня была в бумажном виде, но я её со всей остальной спековской литературой отдал :(

CHRV
29.04.2005, 12:14
Точно! Она у меня была в бумажном виде, но я её со всей остальной спековской литературой отдал :(
http://zx-games.narod.ru/zxbooks.htm
Вот здесь хорошая подборка но то что ты ищешь нет :(

Shiru
29.04.2005, 12:40
Вот здесь хорошая подборка но то что ты ищешь нет
Между прочим, я ведь вроде cr0acker'у всю литературу скинул? У него тогда должны быть 'Системные программы для ZX Spectrum (№ 1)', и покоцанная (на две части порванная;) 'ZX Spectrum для пользователей и программистов'.

Robus
29.04.2005, 23:11
Думаю, что лучше, чем "Питерские" издания не писал никто ... У меня, конечно, же есть все три издания Радоновоа и КО ... Вообще-то, там есть много недочётов, но в сравнение с грубейшими ошибками в ВАПРИНТ или подобных, это детский лепет ... Если очень интересно, то у меня есть описание комманд на Z80, составленное мною лично ... Там описаны такие нюансы, о которых в ВАПРИНТЕ и не слыхивали ... Но в большенстве случаев мои записи в бумажном виде ...

Однако, "Питерские" самые лучшие !!!

lvd
30.04.2005, 02:38
Лучший справочник по Z80 - это книга "Микропроцессорный комплект Z80: Справочное пособие. В 7-и книгах. Кн. 1. 'Центральный процессор Z80CPU' " (ц) УКИК "ЦЕНТР" 1990. В ней отлично расписаны все команды, все регистры, все режимы прерываний, все возможные циклы шины разрисованы по сигналам и тактам, даже расписано, как выполняются команды по циклам (скан этой инфы я здесь выкладывал, кстати). Именно по ней я учился прогать под Z80. И после неё любая совково-творческая книжка выглядит убого (в части описания Z80, по крайней мере).

Must have для каждого.

Sinus
30.04.2005, 03:21
ага. ze best. у мну тоже есть ^)^
только там есть несколько ошибок в описаниях команд (но я все пофиксил! синей шариковой ручкой ^_^)

Shiru
30.04.2005, 09:42
"Микропроцессорный комплект Z80: Справочное пособие. В 7-и книгах. Кн. 1. 'Центральный процессор Z80CPU' "
А как там с описанием недокументированных команд и всяких тонкостей?:)

Знахарь
30.04.2005, 11:42
А где это "справочное пособие в 7 книгах" можно найти ?

Aprisobal
30.04.2005, 14:39
Лучший справочник по Z80 - это книга "Микропроцессорный комплект Z80: Справочное пособие. В 7-и книгах. Кн. 1. 'Центральный процессор Z80CPU' " (ц) УКИК "ЦЕНТР" 1990. В ней отлично расписаны все команды, все регистры, все режимы прерываний, все возможные циклы шины разрисованы по сигналам и тактам, даже расписано, как выполняются команды по циклам (скан этой инфы я здесь выкладывал, кстати). Именно по ней я учился прогать под Z80. И после неё любая совково-творческая книжка выглядит убого (в части описания Z80, по крайней мере). МИНСК УКИК "ЦЕНТР" 1991
Да, эта книга - библия спектрумиста-кодера.
Интересно, а о чём написано в 7-ой книге "Z80/Построение систем. Программирование. Отладка"? У меня есть только 1-ая. :(

А как там с описанием недокументированных команд и всяких тонкостей?Недокументирова� �ных команд нет. 91-ый год издания все-таки. Но во всём остальном она лучшая! Например там есть описание архитектуры, временные диаграммы машинных циклов и пр.

Shiru
30.04.2005, 15:02
Недокументированных команд нет. 91-ый год издания все-таки.
Я из-за года и спросил:)

Paul_ls
03.05.2005, 14:53
Интересно посмотреть на 7-ю книгу, про разработку систем на базе z80, а то у меня только 1-я. Есть там что полезного?

dwt
05.05.2005, 11:27
Думаю, что лучше, чем "Питерские" издания не писал никто ... У меня, конечно, же есть все три издания Радоновоа и КО ...
Точно! Они даже сегодня помогают лично мне чисто как справочники.
Хотя в "Питере" работали и другие умные люди, которые написали книжку "Как написать игру в ассемблере", на которой лично я научился нормально "связывать в кучу команды" ;).

Вообще-то, там есть много недочётов, но в сравнение с грубейшими ошибками в ВАПРИНТ или подобных, это детский лепет ...

Да уж, у меня есть штук пять книг от ВА-ПРИНТ. Иногда приятно сесть вечерком и с душой посмеяться над этими опечатками ;). Кстати, по-моему, все книги ВА-ПРИНТ - это переводы иностранных книг.
Хорошие книги по железу Спектрумовскому, по бейсику еще выпускала фирма "СОЛОН".

Если очень интересно, то у меня есть описание комманд на Z80, составленное мною лично.
Собери все до кучи и выпусти книжку. ;)

Paul_ls
05.05.2005, 11:38
Собери все до кучи и выпусти книжку.

Ну, еще одня книжка по коммандам не нужна, а вот по алгоритмам и реализации их на z80 очень даже не помешала. По теории и практике программирования.

dwt
05.05.2005, 11:52
Ну, еще одня книжка по коммандам не нужна, а вот по алгоритмам и реализации их на z80 очень даже не помешала. По теории и практике программирования.
У Axor`а есть (или был?) такой проект. Правда, о его судьбе (проекта) ничего не знаю - уже давно Абзац не покупал... :(

Costa
05.05.2005, 20:18
Что то тут совсем позабыли про замечательную книгу "Программирование в машинных кодах и на языке АССЕМБЛЕРА"ну и другие от ИНФОРКОМа.

axor
23.05.2005, 22:11
Что то тут совсем позабыли про замечательную книгу "Программирование в машинных кодах и на языке АССЕМБЛЕРА"ну и другие от ИНФОРКОМа.

Согласен с примером книги. Так же "ЗА" книгу "Как написать игру на ассемблере". Я сам учился по последней и считаю ее лучшей в своем роде. Хотя, как говорят, всяк кулик свое болото хвалит.

По поводу моей книжонки. Ее пока нет, да и появится не скоро, т.к. никто не помогает, а мое семейное положение связывает руки по продвижению проектов. Я и "Абзац" веду еле еле.

Да еще и игрушку тут начал писать. Вот допишу игру, тогда следующим проектом на завершение будет указанная книжка/брошюра.

Corpsegrinder
25.05.2005, 17:01
Впринципе Иван Рощин делал такой справочник ещё на ZX http://ivr.webzone.ru/prog/help_z80.zip

Shiru
25.05.2005, 17:55
Впринципе Иван Рощин делал такой справочник ещё на ZX
И как им пользоваться? Ладно ещё, на PC можно несколько эмуляторов запустить (хотя лично я так мучаться не стану, альтернатив полно), а реальщику? Второй ZX рядом ставить?:)

jtn
25.05.2005, 19:25
а реальщику? Второй ZX рядом ставить?
MagOS или Memory Commander =)

Corpsegrinder
28.05.2005, 17:53
Shiru:
я думаю такие справочники нужны, чтобы изредка на счёт тонкостей уточнять в момент, когда надо придумывать эффективный и правильно работающий код. А такие вопросы возникают всё реже и реже по мере запоминания информации в справочнике, разве не так?

Shiru
28.05.2005, 18:08
А такие вопросы возникают всё реже и реже по мере запоминания информации в справочнике, разве не так?
Когда пишешь под десяток платформ одновременно - в голове всё сразу не помещается, поэтому справочники юзаются намного более активно.

Raider
04.07.2005, 06:19
Где-бы найти удобно организованый справочник по командам Z80, желательно на русском? Помнится, была книжка (название забыл) издательства Питер, там в первой части про Z80 и архитектуру Speccy, во второй про TR-DOS было. Можно её найти в электронном виде, или что-нибудь подобное?
Официальных и неофициальных док на английском у меня полно, но они очень неудобно организованы, запарился туда-сюда мотаться по тексту.

остальные организованы будут также.

два варианта -
1. zilog.com и даташит на z80
2. www.z80.info и все остальное

кстати та самая знаменитая книжка из минска "микропроцессорный комплект z80" - на мой взгляд это перевод фирменного даташита zilog.

Stepanych
08.08.2005, 08:50
ZX-Spectrum для пользователей и программистов
Если кому-то нужно, лежит здесь: http://zxknigi.nm.ru/archive/zxsdpp.zip. Размер - 422Кб.
Не факт, что все, но тем не менее...

pulsar
07.12.2009, 21:44
решил не создавать новую тему, а благодаря теме griv'а (http://zx.pk.ru/showthread.php?t=5335), думаю, что тому, кому это действительно будет нужно, наткнется на этот пост и этот справочник help_z80.utf-8 (http://speccy-live.untergrund.net/?s=help_z80.utf-8&x=0&y=0).

Vadim
08.12.2009, 06:16
Клон ещё забыл упомянуть книги Радионова.:v2_lol: Очень он их любит... А в инет заглянуть не судьба:

http://www.emuverse.ru/wiki/Zilog_Z80

null_device
09.01.2010, 20:20
кстати та самая знаменитая книжка из минска "микропроцессорный комплект z80" - на мой взгляд это перевод фирменного даташита zilog.

Случаем не из серии "МП комплекс Z80". Прям, таки библия по Z80.. у меня такая есть в бумажном виде:v2_thumb:

---------- Post added at 00:18 ---------- Previous post was at 00:11 ----------

Материал в ней, вообще разложен по полочкам вполне доступно. А недокументированные команды вполне возможно синтезировать на основе того, что изложено (принцип построения команд однотипен со всей серией МП 580).

---------- Post added at 00:20 ---------- Previous post was at 00:18 ----------

Но "Родионовский" ..для пользователей и программистов более нагляден и удобен в использовании (как букварь, что-ли).

Hacker VBI
20.03.2013, 15:48
пользуюсь таким справочником (http://clrhome.org/table/)

Destr
23.03.2013, 13:06
пользуюсь таким справочником
Неплохо.
Вот если бы ещё и длина в тактах была указана!

Alex Rider
23.03.2013, 15:00
Вот если бы ещё и длина в тактах была указана!
Наводишь курсор на команду - всплывает вся инфа, в том числе, и длина в тактах. Если мне надо найти команду с n тактами, я ищу поиском |n| по сурсу страницы.

Destr
23.03.2013, 22:21
Наводишь курсор на команду - всплывает вся инфа, в том числе, и длина в тактах. Если мне надо найти команду с n тактами, я ищу поиском |n| по сурсу страницы.
Ух клёво!
Теперь можно претворить в жизнь давнюю мечту - присобачить к связке AlkePad+sjasm подсказчик по командам.
Да и счётчик исполнения проги в тактах не помешает.
Давно хотел замутить такое.
На спеке есть HelpZ80 от И.Рощина, хотелось такое-же или лучше на PC.
Но инфу собирать было влом (да и особо некогда).
А тут - только переформатировать страничку в базу и набросать помошника.
Tnks!

denpopov
02.06.2014, 18:41
хотя и не на русском, пользуюсь вот такой компиляцией, там и такты и шпаргалка по сдвигам.

AzAtom
22.08.2016, 15:19
Здравствуйте.
Вопросы по команде DJNZ. В одном справочнике написано время выполнения 8/13, второе число это количество тактов, за которое команда выполняется В ПОСЛЕДНИЙ (перед завершением) раз. А в другом справочнике написано 13/8 без пояснений. По логике 13 тактов будет выполняться, если условие не выполняется и происходит чтение байта со значением перехода. Можете пояснить, когда сколько тактов выполняется эта команда?

Второй вопрос, сначала происходит уменьшение счётчика и затем проверка равенства 0? Т.е., если написать LD B,0, DJNZ, то цикл выполнится 256 раз?

PATHNK
22.08.2016, 15:45
AzAtom,
8 если B=0
сначала уменьшает, потом проверяет

Black Cat / Era CG
22.08.2016, 16:01
Второй вопрос, сначала происходит уменьшение счётчика и затем проверка равенства 0? Т.е., если написать LD B,0, DJNZ, то цикл выполнится 256 раз?
Да. Ваще-то такие вещи проверяются в любом эмуляторе. Так гораздо проще.
И да

8 если B=0
То есть все разы 13Т, последний 8Т.

Reobne
22.08.2016, 16:57
AzAtom, Это просто запомнить. Сравнение выполняется всегда, а чтобы выполнять ещё джамп нужно больше тактов. Так что 8 тактов, это при завершении цикла, когда джампать не надо.

Totem
22.08.2016, 17:02
Вышла последняя редакция User manual'а в августе.
http://www.zilog.com/docs/z80/UM0080.pdf

Black Cat / Era CG
22.08.2016, 17:41
AzAtom, и да, порядок выполнения DJNZ запоминается по названию самой мнемоники: Dec B, Jump if Not Zero

AzAtom
28.04.2018, 00:08
Ещё один вопрос назрел. Что будет, если в программе после префикса DD будет идти не обычная команда, а префикс FD или подряд 2-3 префикса DD? Просто переключится на другой регистр?
Если будут префиксы не DDCB, а наоборот CBDD, как отреагирует процессор?

Здесь http://emuverse.ru/wiki/Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA% D0%BE%D0%BC%D0%B0%D0%BD%D0%B4 хорошо описаны команды, но не написано, как будет вести себя процессор при другой последовательности префиксов.

Прошу не отправлять проверять в эмуляторе.

Spectramine
28.04.2018, 00:23
Ещё один вопрос назрел. Что будет, если в программе после префикса DD будет идти не обычная команда, а префикс FD или подряд 2-3 префикса DD? Просто переключится на другой регистр?
Если будут префиксы не DDCB, а наоборот CBDD, как отреагирует процессор?

Здесь http://emuverse.ru/wiki/Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA% D0%BE%D0%BC%D0%B0%D0%BD%D0%B4 хорошо описаны команды, но не написано, как будет вести себя процессор при другой последовательности префиксов.

Прошу не отправлять проверять в эмуляторе.

По первому вопросу - да, будет на каждый префикс переключаться на другой регистр. Причем вся эта последовательность префиксов с командой за ней будет считаться как одна команда, которая не может быть прервана прерыванием.
По второму - CB DD нормальная команда Z80 - SET 3,L.

AzAtom
28.04.2018, 01:22
Точно, ступил с CB DD.

Shiny
28.04.2018, 05:20
http://www.z80.info/decoding.htm#ddcb

Raydac
30.08.2020, 11:45
столкнулся тут с непоняткой на тему команды RETI у Z80, непонятно как она действует на флаги IFF, в одних справочниках пишут что "копируется IFF2 в IFF1", в других пишут что "не меняются", при этом в доке от Zilog написано


However, this instruction does not enable interrupts that were disabled when the interrupt routine was entered. Before doing the RETI instruction, the enable interrupt instruction (EI) should be executed to allow recognition of interrupts after completion of the current service routine

но у Ларченко и Родионова в книге написано что эти флаги копируются, в эмуле тогож Unreal исходниках в RETI тоже копия делается
как в реальности то?

Spectramine
30.08.2020, 12:18
столкнулся тут с непоняткой на тему команды RETI у Z80, непонятно как она действует на флаги IFF, в одних справочниках пишут что "копируется IFF2 в IFF1", в других пишут что "не меняются", при этом в доке от Zilog написано

но у Ларченко и Родионова в книге написано что эти флаги копируются, в эмуле тогож Unreal исходниках в RETI тоже копия делается
как в реальности то?

В любом случае это важно только в обработчике немаскируемых прерываний с командой в конце RETI вместо RETN, т.к. при обработке маскируемых прерываний в оба флага IFF2 и IFF1 заносится 0. Дока от Zilog просто говорит, что RETI не включает прерывания, о копировании флагов ничего не сказано.

"All the ED xx RET? instructions copy IFF2 to IFF1, even RETI (ED 4D), which the official documentation does not note. The only difference between RETI and RETN is that peripheral devices which allow daisy-chaining of interrupts (eg the Z80 PIO) recognise the ED 4D sequence as 'end of interrupt' and then know that they can allow a further interrupt to be passed to the processor." Отсюда: https://wwwold.fizyka.umk.pl/~jacek/zx/faq/reference/z80reference.htm

Shadow Maker
18.03.2021, 01:00
Я вот такую табличку забрал на https://vtrd.in/z80ops.html с clrhome.org
Удобная.

Black Cat / Era CG
18.03.2021, 06:43
Я вот такую табличку забрал на https://vtrd.in/z80ops.html с clrhome.org
Удобная.
ага. тоже пользуюсь ей.

litwr
25.01.2022, 19:30
Добавлю вроде бы лучшую книжку (http://www.z80.info/zip/z80-documented.pdf), где про Z80 изложено наверное всё. Спасибо китайскому товарищу. Может кому будет не лень с гуглом всё это обрусить. :) Книжице уже более 15 лет...



столкнулся тут с непоняткой на тему команды RETI у Z80, непонятно как она действует на флаги IFF, в одних справочниках пишут что "копируется IFF2 в IFF1", в других пишут что "не меняются", при этом в доке от Zilog написано

но у Ларченко и Родионова в книге написано что эти флаги копируются, в эмуле тогож Unreal исходниках в RETI тоже копия делается
как в реальности то?


В любом случае это важно только в обработчике немаскируемых прерываний с командой в конце RETI вместо RETN, т.к. при обработке маскируемых прерываний в оба флага IFF2 и IFF1 заносится 0. Дока от Zilog просто говорит, что RETI не включает прерывания, о копировании флагов ничего не сказано.

Несложно догадаться, что RETI при выходе из маскируемого прерывания, если обработчик флаги не менял, просто опять запишет запрет на прерывания. Поэтому Z80 и требует EI перед RET/RETI. Если RETI используется для выхода из немаскируемого прерывания, то флаг прерывания восстановится таким, каким он был на старте обработчика. Ничего в IFF2 не копируется - в официальных доках ошибка. Об этом и другая информация про Z80 изложена на русском (http://litwr2.atspace.eu/art-ehop/cpu-z80-ru.html) года 3 назад - буду рад добавочной информации и критическим замечаниям.

drbars
27.01.2022, 14:22
Несложно догадаться, что RETI при выходе из маскируемого прерывания, если обработчик флаги не менял, просто опять запишет запрет на прерывания. Поэтому Z80 и требует EI перед RET/RETI. Если RETI используется для выхода из немаскируемого прерывания, то флаг прерывания восстановится таким, каким он был на старте обработчика. Ничего в IFF2 не копируется - в официальных доках ошибка.
Вроде как эти команды в связке с Z80-DMA актуальны...

goodboy
27.01.2022, 16:57
Добавлю вроде бы лучшую книжку, где про Z80 изложено наверное всё.
переведи пожалуйста вот этот момент
"The INI/INIR/IND/INDR instructions use BC after decrementing B, and the OUTI/OTIR/OUTD/OTDR instructions before"

haywire
27.01.2022, 17:05
Э-э-э, а что тут переводить?

Инструкции INI/INIR/IND/INDR сначала декрементируют B, после чего используют BC, а инструкции OUTI/OTIR/OUTD/OTDR - наоборот.

reddie
27.01.2022, 17:12
инструкции OUTI/OTIR/OUTD/OTDR - наоборот
Встречал инфу, что декремент идет ДО команд вывода в порт. Тут же, где-то на форуме. И адреса #BFFD/#FFFD для AY превращаются в #BEFD/#FEFD.
Однако муз. плееры для AY работают без проблем, потому как в дешифрации AY бит 8 не участвует.

goodboy
27.01.2022, 17:37
декремент идет ДО команд вывода в порт.
так и есть.

Spectramine
27.01.2022, 19:05
Несложно догадаться, что RETI при выходе из маскируемого прерывания, если обработчик флаги не менял, просто опять запишет запрет на прерывания. Поэтому Z80 и требует EI перед RET/RETI. Если RETI используется для выхода из немаскируемого прерывания, то флаг прерывания восстановится таким, каким он был на старте обработчика. Ничего в IFF2 не копируется - в официальных доках ошибка. Об этом и другая информация про Z80 изложена на русском года 3 назад - буду рад добавочной информации и критическим замечаниям.
В IFF2 ничего не копируется - копируется сам флаг IFF2 во флаг IFF1 при выполнении команд RETI/RETN. Но при заходе в маскируемое прерывание в оба флага заносится 0. Поэтому при выполнении RETI/RETN на выходе из маскируемого прерывания прерывания будут запрещены. А при выполнении RETI/RETN при выходе из НЕмаскируемого прерывания восстановится состояние маскируемых прерываний до входа в немаскируемое (IFF1:=IFF2).

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


Инструкции INI/INIR/IND/INDR сначала декрементируют B, после чего используют BC, а инструкции OUTI/OTIR/OUTD/OTDR - наоборот.
Наоборот. INI/INIR/IND/INDR сначала читают из порта, потом декрементируют B,
OUTI/OTIR/OUTD/OTDR сначала декрементируют B, потом выводят в порт.

zebest
27.01.2022, 22:24
Блочные инструкции хорошо работают в реальных процессорах, и немножко нехорошо - в эмуляторах :) В некоторых правда - уже хорошо.
Вот видео теста флагов (https://drive.google.com/file/d/1gW2vPNU7CuK0Za3dl3xr-E3pxWg1jowc/view?usp=sharing), полулегендарный как-бы-советский клон Т34
А вот флаги SCF\CCF на разных процессорах точно работают по разному)) Но это надо тестировать еще на чем нибудь, кроме жменьки моих процессоров ) Некомуу

Raydac
28.01.2022, 01:12
Вот видео теста флагов , полулегендарный как-бы-советский клон Т34
а что за утилита? где скачать?

zebest
28.01.2022, 09:18
https://s.micp.ru/Sn6f5.jpg
Ну почти хорошо.
тест как бы не совсем утилита, но пусть будет утилитой.
(https://github.com/MrKWatkins/ZXSpectrumNextTests/tree/develop/Tests/ZX48_ZX128/Z80BlockInstructionFlags)

litwr
28.01.2022, 22:56
Вроде как эти команды в связке с Z80-DMA актуальны...
Реально для Спека, Амстрада и большинство компов на Z80 RETI и RET работают абсолютно одинаково. Особый эффект от RETI возникает только если используется режим 2 и есть дополнительная аппаратура для его поддержки (это не только Z80-DMA). И подозреваю, что из NMI никакой код по RETI не выходит. :)


Блочные инструкции хорошо работают в реальных процессорах, и немножко нехорошо - в эмуляторах :) В некоторых правда - уже хорошо.

Интересно! Не знал про такие открытия. Наверное есть только два варианта таких штук: NMOS и CMOS. И трудно понять, неужели это может быть важно? Что это может быть за код, который проверяет флаги PF или HF после OTxR/INxR?! Особенно на Спектруме или приставке для BBC Micro. В официальной документации эти флаги имеют неопределённое значение.

goodboy
28.01.2022, 23:22
Что это может быть за код, который проверяет флаги PF или HF после OTxR/INxR?! Особенно на Спектруме
защита от эмулятора. в программах такое изредка встречается

Raydac
29.01.2022, 01:43
Ну почти хорошо.
тест как бы не совсем утилита, но пусть будет утилитой.
спасибо за наводку, пофиксил в своей эмуляции Z80, теперь получше выглядит
76925

Lethargeek
06.02.2022, 10:49
Raydac, прогони еще вот эти на всякий случай - https://github.com/raxoft/z80test

Raydac
06.02.2022, 10:57
Raydac, прогони еще вот эти на всякий случай - https://github.com/raxoft/z80test
с теми то всё нормально, кроме команд типа LDIR->NOP но на тех и FUSE ругается

Lethargeek
06.02.2022, 11:22
с теми то всё нормально, кроме команд типа LDIR->NOP но на тех и FUSE ругается
значит, ненормально, и тест со скриншота выше пройден по стечению обстоятельств

Dexus
06.02.2022, 12:03
Этот тест бы на разных клонах погоняли, да на разных Z80. Есть мнение, что он и для реальных спектрумов будет разные результаты давать.

Raydac
06.02.2022, 12:12
значит, ненормально, и тест со скриншота выше пройден по стечению обстоятельств
пока неясно не напортачил ли автор теста

goodboy
06.02.2022, 12:41
вспоминаю что в похожих тестах (zexall?) для проверки исполнения некоторых команд использовались данные из ПЗУ.
то есть для корректного прохождения теста нужен был именно ROM1982

zebest
06.02.2022, 12:55
Этот тест бы на разных клонах погоняли, да на разных Z80. Есть мнение, что он и для реальных спектрумов будет разные результаты давать.
Вот и погоняйте, чО. Или только эмуляторщики отсались ?
Пока тест Петера проходит на реальных спеках и клонах 100%
Тест Патрика в отношении команд LDIR->NOP и на реалах проходит и в эмуляторах. И не в одном.
Ну так что, подтвердите имеющееся мнение?
На Профи я был бы рад увидеть нек. тесты

Raydac
06.02.2022, 13:30
Тест Патрика в отношении команд LDIR->NOP и на реалах проходит и в эмуляторах. И не в одном.
а в чем особенность обработки недокументированных флагов при перезаписи командой самой себя на которых он и падает в случае LDIR->NOP?

Lethargeek
06.02.2022, 18:04
а в чем особенность обработки недокументированных флагов при перезаписи командой самой себя на которых он и падает в случае LDIR->NOP?
ни в чём, флаги устанавливаются так же как и в случае прерывания, просто нужно перезапись детектить правильно

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

поскольку причина переустановки флагов одна - "лишний" машинный цикл

Raydac
06.02.2022, 18:21
ни в чём, флаги устанавливаются так же как и в случае прерывания, просто нужно перезапись детектить правильно
я просто убрал у себя проверку на то что происходит прерывание и стал всегда выставлять эти флаги, все тесты стали "ок"

sma77
08.02.2022, 00:29
Привет всем фанатам Спектрума и не только :)
Как я понял из последней дискуссии, тайны из Z80 всё продолжают и продолжают извлекать)
Ох уж эти биты 5 и 3 :)
Насколько я понял после прерывания блочных команд биты 5 и 3 регистра флагов копируются из PC !? Всё так?
Или же биты 5 и 3 выставляются после выполнения команды BIT n,(HL) в процедуре прерывания, т.е. берутся из MEMPTR ???

И у меня ещё ряд вопросиков к знатокам:
Ребята, скажите, плиз, кто знает, Z80 реверснули или так и нет???
Создана ли его полноценная Verilog-модель?
И какое ядро Z80 залито в fpga в ZX-Next к примеру?
(читал разные темы, искал поиском, но так и не понятно)

zebest
08.02.2022, 01:08
И какое ядро Z80 залито в fpga в ZX-Next к примеру?
В Следующем свое собственное ядро, но основанное на Т80, они его называют T80n.
Основа Т80 плюс немного, пару десятков, своих собственных самопальных операндов. Само собой совместимости это не прибавляет, а проблем - таки да. Чтобы не скучно было.
Например очередной тест. У них не идет. Так вот ищут проблемуу:

Checked undocumented im0/im1 instructions are done correctly. Checked timing of out (c), 0. Checked no ED xx NOP instructions are used. Checked with same Pentagon 128 ROMs as specemu. Looking at int pulse length next

sma77
08.02.2022, 02:04
Например очередной тест. У них не идет. Так вот ищут проблемуу:
То есть значит скорее всего Z80 так и не реверснули, как например ВМ80!!! Раз писали сами своё ядро!?
А не знаете, тесты от Zexall проходят на Нексте?

polikarpov76
08.02.2022, 07:58
Не проходят все otir если память не изменяет, как и на всех реализациях на fpga

zebest
08.02.2022, 08:40
Не проходят все otir если память не изменяет, как и на всех реализациях на fpga
Блочный тест флагов от Петера - весь не проходит.
CCF\SCF тоже не проходит.
Но то такое...
В Следующем дизайн на 99% заполнен, им просто физически невкуда(да и не зачем) фиксить и эти бесполезные знания.
В МиСТер-е со свободными ячейками несколько получше, но видимо у Алексея ровно те же соображения, а чисто из академических соображений тоже никому не впилось видимо.
zexall - это который многочАсовой?? Неее, сейчас тестят блоком тестов от Патрика, текущая версия 1.2

sma77
08.02.2022, 09:06
Спасибо за информацию!)
zebest, я правильно нашёл ссыль на этот тест от Патрика?
https://github.com/raxoft/z80test

zebest, ещё хотел спросить про SCF/CCF )) Поясните пожалуйста в кратце, что с этими командами не так? В английском не очень шарю, поэтому может не очень правильно понял!? Биты 5 и 3 не всегда из А берутся?

Lethargeek
08.02.2022, 09:46
Насколько я понял после прерывания блочных команд биты 5 и 3 регистра флагов копируются из PC !? Всё так?
при обломе блочных in/out и вполне документированные флаги аццки меняются

zebest
08.02.2022, 10:14
в кратце, что с этими командами не так? В английском не очень шарю
Если вкратце - то лучше в картинках, один раз увидеть, чем..
https://github.com/raxoft/z80test/commit/89d85243f6aab1e813b16fff5511e3394a486051
флаги 5 и 3 как бы не очень то и документированы, поэтому конечные производители видимо корректили дизайн Z80 под себя, возможно и специально меняли.
На картинках три основных разновидности(паттерн) Патрик выделил для Zilog\NEC\ST, но попадаются и другие, которые видимо ни попадают ни в одну из этих, и поэтому тесты Патрика в отношении CCF\SCF не проходят.
Ну не проходят - и не проходят, что ж теперь )

Titus
08.02.2022, 13:59
Патрик выделил для Zilog\NEC\ST
Получается, есть не две, а минимум 3 разных реализации Z80?

zebest
08.02.2022, 15:16
Две - это какие ? NMOS/CMOS? Так это если делить по технологии изготовления.
Если по легальности - то лицензированные Зилог и цельнотянутые реверс-инжинирингом. Кстати как ни странно NEC по слухам тоже не попадает под лицензию.
Если исходить из тестов Патрика - то да, он различает как минимуум Zilog\NEC\ST в отношении флагов SCF/CCF
Если исходить из моего тестирования тестами Патрика - я бы еще разделил на две части, те, которые проходят тест в отношении флагов(недокументированны� �!) SCF\CCF, и те, которые не проходят, которым плевать на эти два бита :))
Которые при определенных, возможно, условиях, ведут себя как аппаратный ГСЧ, в д.с. как генератор случайных флагов. От чего эти условия зависят - ну трудно сказать, возможно сигнал WAIT или длина прерывания на них действуют, ил что-то на портах, но ведут себя натурально как в калейдоскопе - х. угадаешь, что будет в этих флагах при очередном включении :) Но это все undoc, так что Zilog тут как бы вообще не при делах )

Dexus
08.02.2022, 15:34
Сгенерил этот паттерн ccfscr на "фирменном" Z0840008PSC, и на GoldStar Z8400A, паттерн одинаковый и такой в примерах назван "NEC". Вероятно это от платформы зависит не меньше чем от процессора (тестировал на Автоматике-ПЛМ).

zebest
08.02.2022, 15:44
Сгенерил этот паттерн ccfscr на "фирменном" Z0840008PSC, и на GoldStar Z8400A
Если можно - со скриншотами экрана, удивим Патрика другим паттерном Zilog-a :)))))
Это конечно немного оффтопик от топика, но тогда пусть модераторы разделяют темуу
На GS у мну паттерн был как на Zilog/ Потом перепроверю
Ну тогда бы надо и fulltest Патрика запустить, что он покажет

Dexus
08.02.2022, 17:04
Если можно - со скриншотами экрана, удивим Патрика другим паттерном Zilog-a :)))))
https://volutar.myds.me/zx/ccfscr/photo_2022-02-08_18-57-56-goldstar.jpg
https://volutar.myds.me/zx/ccfscr/photo_2022-02-08_18-59-10-8psc.jpg
В схеме видимо хреново brightness обрабатывается, не видно полос. Но в целом все совпадает с тем что как NEC.

zebest
08.02.2022, 17:53
Да, как у NEC
Мой GS тоже как NEC. Почти. Паттерн в общем и целом похож, но отдельные биты мигают как захотят. Тот самый случай калейдоскопа.
https://s.micp.ru/2W64T.jpg

sma77
08.02.2022, 19:04
Да, как у NEC
Мой GS тоже как NEC. Почти. Паттерн в общем и целом похож, но отдельные биты мигают как захотят. Тот самый случай калейдоскопа.

Ого! Интересно конечно, почему так получается))
Берутся видимо с внутренней шины с остаточным зарядом как-бы что-ли!? Надо будет доработать эту прогу Патрика, чтобы видеть отдельно биты))

Самое главное, что вроде при работе на низкой частоте процессора я таких явлений не наблюдал! Хотя вполне возможно, что-то проглядел. Дело в том, что лет 15 назад занимался исследованием Z80 (в основном эффекты по этим битам 5 и 3), подключив Z80 через самопальный девайс к LPT-порту. Частота сигналов соответственно там получалась достаточно низкой))

zebest
08.02.2022, 20:51
В схеме видимо хреново brightness обрабатывается, не видно полос.
Да, Патрик и это заметил. Но в целом сказал, что у него пока нет идей. И попросил фото самого проца Zilog, если не сложно, типа может перемаркировка...
fulltest тоже бы неплохо запустить, какой из трех пройдет.
Моя идея - что это зависит от года выпуска. За 40 лет все равно исправляли ошибки и выпускали с новыми масками чипы.
Последняя правка вроде в 2016 году была, если верить даташитам..

AlexG
08.02.2022, 22:08
Ребята, скажите, плиз, кто знает, Z80 реверснули или так и нет???
Создана ли его полноценная Verilog-модель?
И да и нет. Есть симулятор по транзисторный, есть verilog ( пол схемы ревеснуто, половина придумана). да и реализация хромает (местами написано из серии "так сойдёт").
Да и какой вариант был взят за основу не в курсе (слаб в английском).
Добровольцы есть транзисторную схему написать и перевести в схематик ?

Titus
08.02.2022, 22:34
Добровольцы есть транзисторную схему написать и перевести в схематик ?
А из чего ее писать? Где фотки слоев?

AlexG
08.02.2022, 23:21
есть список транзисторов и список цепей.

Titus
08.02.2022, 23:53
есть список транзисторов и список цепей.

Список в виде чего?
на сколько он соответствует кристаллу? Почему нет фотки кристалла и нарисованного слоя транзистора поверх него, как это все делают?

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

Да, и если есть список цепей и транзисторов, то почему верилог в виде отсебятины, как описано выше? Раз есть транзисторная схема, то нет проблем повторить на плис.

AlexG
09.02.2022, 00:16
вот это товарищь
https://opencores.org/projects/a-z80
и компания из 6502.com ( я непомню щас точные ссылки - уже сплю)
Засняли проц, расставили транзисторы, слои.
На выходе есть: прога симуляции электрической схемы кристалла. Написал тот же тов. Он же чуть раньше поглядывая на фотки и на "чужой" реверс (части кристалла) извоял a-z80.
Я могу вытащить транзисторы и цепи из программы.
Вот сопутствующая тема
https://zx-pk.ru/threads/33467-khochetsya-spisok-tsepej-s-tranzistorami-preobrazovat-v-skhemu-elektricheskuyu.html
ссылки на симулятор поищу наверно завтра.

Потому что сперва "три" разных компании/людей копали проц.
первый
http://www.righto.com/2013/11/the-z-80s-16-bit-incrementdecrement.html
вторые
http://www.visual6502.org/
третий
https://baltazarstudios.com/
Так вот третий "копал" глядя на творчество первых двух.
изваял a-z80 где-то по фоткам а где-то сам придумал и подогнал результат под "ответ/оригинал"
Потом наступил ковид и со скуки оный товарищ изваял графический симулятор проца.
На самом деле сам алгоритм он взял где то со стороны, и адаптировал по z80.
Всё ИМХО из-за плохого понимания англицкого языка.
Вот самой схемы (аля пикад) и нет - потому и нет реальной схемы в виде логических элементов, и как результат нет нормальной эквивалентной реализации на verilog.
То что есть a-z80 - это работает только на честном слове, любой чих и схема может не собраться.

Titus
09.02.2022, 00:35
Потому что сперва "три" разных компании/людей копали проц.
Но только я опять же не понял, почему если есть готовая потранзисторная схема, они ее не перенесли в ПЛИС? В чем проблема?

AlexG
09.02.2022, 00:54
проблема в том что есть "слои", есть отмеченные позиции транзисторов на этих слоях. По графикам "слоёв" на ходу формируется список соединений транзисторов. Есть программ моделирования поведения транзисторов. Как таковой схемы (аля пикад ) нет. Почему нет это к трём выше упомянутым. Первому это нафиг не сдалось - хайп уже поимел, вторым: ну сфоткали и ладно, третий сперва сделал "verilog", а потом гаф.сим. На вопрос "схему сделещь?" по польски/английски я был послан далеко и надолго - как то так. Может я не правильный вопрос задал, а может он не понял чего я хочу.

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

другими словами - здесь реверс не от кристалла к верилогу идёт, а от его математической(вериложной) модели к кристаллу. Это если грубо сказать.

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

я вытащил оный список. несколько тысяч строк текста с координатами транзисторов , "наименованиями" цепей, к каким выводам транзисторов оные цепи идут. итд итп.
искал "пикад" куда можно "импортировать" оный список в текстовом виде (ну естественно надо написать этот "импортёр"). никто вообще ничего не написал в той теме...

Titus
09.02.2022, 01:06
проблема в том что есть "слои", есть отмеченные позиции транзисторов на этих слоях. По графикам "слоёв" на ходу формируется список соединений транзисторов.
Есть где это все посмотреть, чтобы на картинке нарисованные транзисторы в отдельном или не отдельном слое над кристаллом?

AlexG
09.02.2022, 10:11
https://baltazarstudios.com/z80explorer/ я про вот это

zebest
09.02.2022, 10:53
это
ЭТО я тоже запускал, забавная программа сама по себе. Наглядная, как биты бегают по защелкам:)

здесь реверс не от кристалла к верилогу идёт, а от его математической(вериложной) модели к кристаллу
Как бы да, у него сперва вериложная модель появилась.
Тоже запускал, и его Спек, и другие корки с его a-z80
Работало, но много тестов не проходило :) Писал ему об этом много лет назад, но тоже был вежливо! послан)
Кстати корка была типа cmos , OUT(C),0 исправлено

Titus
09.02.2022, 11:45
Работало, но много тестов не проходило
А на эксплорере тесты проходили?

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

А, вижу в статье, что проходили.

Dexus
09.02.2022, 13:01
zebest, https://volutar.myds.me/zx/ccfscr/
сюда выкладываю то что натестирую. 4 процессора - результаты совсем неклассические. но это ленинград, с турбопзу. только ГДРский UB880 показал что-то похожее на интел. а предыдущий тест вообще фейлится. и от раза к разу результаты меняются.

zebest
09.02.2022, 13:52
А на эксплорере тесты проходили?
Неее, я только в FPGA запускал, еще до эксплорера. Давно. неск. лет назад


сюда выкладываю то что натестирую
Отлично!! Мне нравяЦЦа результаты)

https://volutar.myds.me/zx/ccfscr/lenin-goldstar.jpg

Я так понимаю на GS картинка нестабильная?)) Биты "мерцают" ?

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

Ответ Патрика, цитата:

Interesting. The first one is Zilog with instability in bit 5. The Q5 seems to be cleared more often than not. The second is Zilog but the pattern looks like NEC - can't see if there is instability, but looks like in this CPU the Q5 line remains (always?) cleared, so the result is just move from A. The third goldstar has instability in both bit 5 and 3, with both Q5 and Q3 being driven towards F5 and F3 more often than not. The last one looks like stable Zilog pattern, with Q5 and Q3 always matching F5 and F3 (so the result is OR with A).
As for @Ped7g test, I suspect that the interrupt timing doesn't match what it should be, so the tests actually interrupt something else? Is the CPU run at the expected frequency of ~3.5MHz?

Петер %)

shit emulator ������ ... /joking ... let me review it...
the first photo, first LDIR ... 0c!=22 ... that's PV=0, that's "impossible" during LDIR ... so that's either not real Z80 CPU, or the interrupt did happen after LDIR was finished already, ie. skipping interrupts?? or something else... interrupt too soon before LDIR? Either it's some timing instability (/INT not hitting LDIR) or random bursts of turbo causing the delay to ends sooner/later than expected and INT is stable.

trying to understand rest of the results is then probably meaningless, as that test is not working as it should, for who knows why.
"impossible" -> as long as we agree that ldir works in first four cycles as ldi and then the "r" fifth cycle decides if the PC is reverted based on PV (BC!=0).

the bottom red line with OTIR .. wait, how is that printed this way... shouldn't they be next to each other? the rst $10 works differently in this ROM?? hm...
yep.. that's completely something weird... must be some ROM doing something else on rst $10 ... anyway, that shouldn't affect the F values, so that's just visual weirdness. But that machine will hardly qualify as ZX48 or ZX128 ... ������

the other photos... still LDIR/LDDR have for example several 6A fails, with missing PV=1, so either not interrupted during LDIR, or the LDIR implementation in CPU is completely different from Z80.
so I wouldn't worry about the other values, if the test can't even interrupt the correct instruction, it's pretty pointless to judge those results.

the test does one delay-calibration-round before testing, if the calibration delay is too short (7MHz), the test will error out. So it's rather about the machine being unstable, not having same period or CPU speed than during the test (vs calibration)

Вобщем в переводе на русский и кратко - то "Ленинград" никак не годиЦЦа для таких тестов. Впрочем как и Профи :)
Печалька. А я то хотел платку ленинградки восстановить для проверки.

Titus
09.02.2022, 14:19
я вытащил оный список. несколько тысяч строк текста с координатами транзисторов , "наименованиями" цепей, к каким выводам транзисторов оные цепи идут. итд итп.
искал "пикад" куда можно "импортировать" оный список в текстовом виде (ну естественно надо написать этот "импортёр"). никто вообще ничего не написал в той теме...
Ну и где этот список в виде файла?

Dexus
09.02.2022, 15:05
Добавил результаты по Автоматике ПЛМ (Новосиб-54).
по первому тесту все зеленые кроме UB880. Этот ГДРовский клон похоже немного иначе работает.
Шаблон ccf ТОЛЬКО на UB880 как "на фирменном". а на фирменных все как попало. но при этом биты никакие не плавают.

Тайминги для Автоматике-ПЛМ снимались с фирменного спектрума, как я понимаю. И за исключением торможения УЛЫ они наверное корректные, о чем свидетельствуют зеленые плашки на большинстве процессоров.

На ленинграде все шаблоны "плавают", т.е. биты в некоторых местах постоянно меняются.

Можно сказать, что для советских клонов эти тесты не работают как ожидают авторы. Они видимо на стандартные спектрумы с ферантевской улой расчитаны. и 3/5 биты очевидно тоже зависят не только от процессора, но и от обвязки проца.

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


Я так понимаю на GS картинка нестабильная?)) Биты "мерцают" ?
Да, некоторые биты плавают. С лева вероятнее вылазят 0, а справа вероятнее 1. Типа как наложенная на "стандартную" маску рандомная хрень.


Is the CPU run at the expected frequency of ~3.5MHz?
Да, там кварц 14.5. Чуточку быстрее. Что взять с ленинграда, собранного на монтажке из подручных материалов?:)

zebest
09.02.2022, 15:26
а, там кварц 14.5. Чуточку быстрее.
Чуток быстрее допустимо. Тест сперва калибруется, потом считает. До 4МГц обязан работать, елси все отсальное стабильно
Так что обвязка скорее всего пагубно влияет. Я про себя так думаю это WAIT шалит . как вариант.
На ПЛМ гораздо красивше резальты. Ну кроме UB880

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


и 3/5 биты очевидно тоже зависят не только от процессора, но и от обвязки проца.
ВОООООООООООТ!!! Вот это я выше и пытался донести. А вот от чего именно - это тоже интересно))

А еще буржуинские товарищи интересуются происхождением первых двух Зилогов.
говорят это фейки, либо с али, либо с ебэя, перемаркировка 100% по их мнению, ибо по тестам ведут себя как NEC.
Запусти все же fulltest 1.2 на них, там 10 секунд хватит, чтобы понять, что протестируется

Dexus
09.02.2022, 16:01
Запусти все же fulltest 1.2 на них, там 10 секунд хватит, чтобы понять, что протестируется
Запускал. 8мгц версия - с али, недавняя. а 4мгц уже >30 лет как в нем стоял. Если и из перемаркированных, то еще во времена СССР.
В полном тесте CCF/SCF пишут NEC.

zebest
09.02.2022, 16:18
Запускал. 8мгц версия - с али, недавняя. а 4мгц уже >30 лет как в нем стоял.
Ну с али то ладно, тут только на порядочность:) кетайцев надеяться.
По поводу 30ти летних. У меня все в основном тоже старые, парочка только с али.
Не думаю, чтобы 30 лет назад кому то было дело до перемаркировки.
Сама Зилог неск. раз исправляла ошибки в своих процах и меняла соответственно шаблоны для литографии.
Видимо тот старый Зилог из первых партий, из тех, с которых NEC со-товарищи реверснули свой вариант
Как по мне - так логичная версия

sma77
09.02.2022, 16:29
Так что обвязка скорее всего пагубно влияет. Я про себя так думаю это WAIT шалит .
Скорее всего с ним связано. В ПЛМ-автоматика скорее всего также, как и в оригинальных сделан wait - на пропуске тактов!
Интересно, как на безвейтовых будет, на Пентагоне например!? По идее тоже должно всё проходить!?

zebest
09.02.2022, 16:43
на Пентагоне например!? По идее тоже должно всё проходить!?
На ПентЭве тест Петера блочный проходит.
Очень интересный вопрос с Профи. Или конструпторы (и последующие доработчики оного) или сильно умные, или сильно руко... эээ. рукастые! Во! Оч. сильно рукастые.
На одном и том же компе десяток процессоров работают как и говорил, в двух вариантах, или паттерн стоит как вкопанный, без шевелений, или мигает как хочет. Нестабильно. Процы - разные, обвязка - одна!
Придумайте непротиворечивую версию такого поведения. Ну кроме уникальности архитектуры и влияния протуберанцев Солнца на это.

sma77
09.02.2022, 17:32
Процы - разные, обвязка - одна!
Процы насколько разные? Разных производителей или разные от Zilog?

zebest
09.02.2022, 18:40
и так и так :)


https://media.discordapp.net/attachments/689220116801650811/935953503208239224/unknown.png?width=667&height=400
Кроме этих - еще несколько .
Причем есть и зилоги, которые косячат в z80ccfscr и не-зилоги - которые не косячат. И?

sma77
09.02.2022, 19:10
Кроме этих - еще несколько .
Причем есть и зилоги, которые косячат в z80ccfscr и не-зилоги - которые не косячат. И?
В общем, нужно конкретно садиться за эксперименты с разными процами!)))
Сперва прогнать максимальное количество на безвейтовой платформе, затем их же уже на вейтовой. Свести всё в одну таблицу в соответствии с производителем и годами выпуска. Может тогда можно будет уловить какую-нибудь закономерность!?

Кстати, ведь теже зилоги наверняка не на единственном заводе производились!!! Вполне может быть, что на разных zilog-овских производствах были разные шаблоны примерно в одном временном промежутке!!!???

zebest
09.02.2022, 19:43
В общем к моим трем Профи-кам у меня еще есть Импульс. Это тоже"вещь-в-себе", но там проц запаян, и отпаять, даже мне:), будет проблематично, ибо там дорожки между ногами Z80 развели, извращуги. Можно конечно выкусить проц, тогда полегче, но проц как бы жалЬко :)
Есть еще три платы "ленинградки", две полу-живые, третья в более плачевном со-стоянии, ее не включал, наверное под развандаливание пойдет)
Если из этих двух какую-то зачинить, что то жи непросто, то можно сперва погонять все процы с родной схемой, а потом переделать в без-вейтовую, насколько знаю это возможно. В идеале - с переключателем "туда-обратно" :)
Вот тогда можно и затабличить что-то.

sma77
09.02.2022, 23:51
В общем к моим трем Профи-кам у меня еще есть Импульс. Это тоже"вещь-в-себе", но там проц запаян, и отпаять, даже мне:), будет проблематично, ибо там дорожки между ногами Z80 развели, извращуги. Можно конечно выкусить проц, тогда полегче, но проц как бы жалЬко :)
Неее, выкусывать проц. из рабочего совсем не дело! :)
К тому же вдруг в Импульсе как-то по-своему сделано использование Wait-сигнала и отличается от Ленинграда и от других!? Результаты могут всё запутать!
Нужно, чтобы платформы под испытания у людей, желающих потестить процы, были максимально одинаковые!

Тоже имеется некоторая коллекция Спектрумов, есть и фирменные, но почти во всех проблема запаяного проца:) Поэтому сходу попробовать разные процы могу пока только в П48, и вроде бы ещё в одном из Профиков на панельке Z80 был. Только наверное сварганю по-быстрому переходник на zif-панель, чтоб не укатывать обычную:)

Ленинграды есть две штуки, но в одном точно проц. запаян, а в другом не помню - нужно посмотреть)
В оригиналах, насколько помню, во всех намертво Z80 запаян. Ковырять их совсем не хочется:), но эти тесты на них, на всех надо будет попробовать:)

Titus
10.02.2022, 13:28
То есть значит скорее всего Z80 так и не реверснули, как например ВМ80!!!
ВМ80 реверснули. Во всяком случае Vslav это сделал.

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


я вытащил оный список. несколько тысяч строк текста с координатами транзисторов , "наименованиями" цепей, к каким выводам транзисторов оные цепи идут. итд итп.
искал "пикад" куда можно "импортировать" оный список в текстовом виде (ну естественно надо написать этот "импортёр"). никто вообще ничего не написал в той теме...
Ау! Где же этот список, и откуда ты его вытащил?

sma77
10.02.2022, 14:08
ВМ80 реверснули. Во всяком случае Vslav это сделал.

Жаль конечно, что он не Z80 реверснул:))))
Ещё сейчас во многих источниках сообщается, что АЛУ у Z80 4х-битный!!!
Кто что думает по этому поводу? Похоже ли это на правду? Ведь тогда по идее и у ВМ80, как предшественника должен быть 4х-битный!!!???
К тому же в связи с этим у меня сразу возник вопрос по выполнению некоторых команд вида ALU A,n или ALU A,(HL) к примеру! Если АЛУ 4х битный, то нужно как минимум два такта для работы с 8ми битными данными! Но после считывания из памяти там вообще полтакта остаётся, если судить по официальным даташитам Z80 !!!

AlexG
10.02.2022, 14:24
1) Дома на компе. туда надо добавить описание что за что обозначает.
2) Мож тему создать ? или она уже была и зачахла ?
3) если верить первому тов. то да АЛУ 4-битное.

Titus
10.02.2022, 14:42
1) Дома на компе. туда надо добавить описание что за что обозначает.
Ну хотя бы может помнишь, откуда и как вытащил схему?

Vslav
10.02.2022, 14:48
Жаль конечно, что он не Z80 реверснул:))))
Так а какой интерес тут? Z80 он вдоль и поперек изучен, ну реверснем, я потрачу массу времени, нового ничего не узнаем. А все вкусности Кен Шеффир давно разобрал уже в своей блоге. ВМ80А вообще случайно реверснули, просто все фотки уже были и надо было разработать маршрут реверса, оценить трудозатраты и выяснить возможно ли это принципиально сделать на достойном уровне за вменяемое время. На "черном форуме" была тема "Тонкости и толстости 1801ВМ1", вот там вопросов было больше чем ответов, поэтому вскрывать и реверсить 1801ВМ1 было интересно. 1811 серия сейчас интересно - там DEC-овский микрокод вообще без документации, FPP, MMU, много чего, крайне любопытно посмотреть как было сделано и много особенностей.



Ещё сейчас во многих источниках сообщается, что АЛУ у Z80 4х-битный!!!
Кто что думает по этому поводу? Похоже ли это на правду?

Да, так и есть.



Ведь тогда по идее и у ВМ80, как предшественника должен быть 4х-битный!!!???

Нет, 8080/ВМ80 - АЛУ 8-битное, совершенно точно.



К тому же в связи с этим у меня сразу возник вопрос по выполнению некоторых команд вида ALU A,n или ALU A,(HL) к примеру! Если АЛУ 4х битный, то нужно как минимум два такта для работы с 8ми битными данными! Но после считывания из памяти там вообще полтакта остаётся, если судить по официальным даташитам Z80 !!!
Там полно времени остается чтобы сделать операцию за 2 такта и потом коммит результата ALU в A пока читается следующая инструкция.

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


Ну хотя бы может помнишь, откуда и как вытащил схему?
Ты открой схему в PCAD и сделай - Utils->Generate Netlist, и посмотри на результирующий .net файл. Это не схема где все уже сгруппировано по месту и осмысленно обозвано. Из топологии можно сгенерировать такой .net, но он импортируется только в pcb. Можно сгенерировать .eco файл и импортировать его в sch, но рисовать схему из получившейся каши все равно придется руками, типа так: https://www.youtube.com/watch?v=2zwfvvwy0JE&t=145s

AlexG
10.02.2022, 15:01
1) конечно помню.
однако "Ты открой схему в PCAD и сделай - Utils->Generate Netlist, и посмотри на результирующий .net файл"
вот там нечто как в .net - но только в своём формате.
2) Vslav совершенно не обязан "вписываться" в Z80
3) хотя если я правильно понял эту тему. Тесты (результаты) зависят от того как разогнан проц, и до кучи зависит от технологии кристалла.

Titus
10.02.2022, 15:26
Так а какой интерес тут? Z80 он вдоль и поперек изучен, ну реверснем, я потрачу массу времени, нового ничего не узнаем. А все вкусности Кен Шеффир давно разобрал уже в своей блоге
С чем не соглашусь, что изучен вдоль и поперек. Если столько вопросов возникает. Да и нет ни одной нормальной ФПГА версии полностью идентичной оригиналу.

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


Ты открой схему в PCAD и сделай - Utils->Generate Netlist, и посмотри на результирующий .net файл.
Так нет PCAD-ной схемы от Z80.

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


Можно сгенерировать .eco файл и импортировать его в sch, но рисовать схему из получившейся каши все равно придется руками, типа так: https://www.youtube.com/watch?v=2zwfvvwy0JE&t=145s
Лучше уж так, это лучше, чем с нуля.

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


Можно сгенерировать .eco файл
Что это за формат?

sma77
10.02.2022, 15:39
Там полно времени остается чтобы сделать операцию за 2 такта и потом коммит результата ALU в A пока читается следующая инструкция.

Это получается уже почти зачатки конвейерного принципа выполнения команд!:)
Но тогда почему-то во многих других командах как-бы и не наблюдается такого!? Нужно конечно подумать над некоторыми более детально!

Titus
10.02.2022, 16:21
1) Дома на компе. туда надо добавить описание что за что обозначает.
Вроде нашел в исходнике Z80 эксплорера, в каком формате транзисторы хранятся.

AlexG
10.02.2022, 16:39
там искать совсем несложно. сложнее конвертор написать в *.net файл

Titus
10.02.2022, 16:42
там искать совсем несложно. сложнее конвертор написать в *.net файл Vslav сказал, что в .net смысла нету, т.к. он конвертируется только в .pcb.
А нам нужно конвертировать в .sch.

Vslav
10.02.2022, 16:45
С чем не соглашусь, что изучен вдоль и поперек. Если столько вопросов возникает. Да и нет ни одной нормальной ФПГА версии полностью идентичной оригиналу.
Да полно же разных имплементаций? А разных реализаций Спектрумов на ПЛИСах - пруд пруди, игрушки работают, все отлично.



Так нет PCAD-ной схемы от Z80.

Это понятно, я просто рассказал как получить представление что такое "схема вытащенная автоматом из топологии".
Просто открой любую мою транзисторную схему, тот же vm80a для простоты, сгенерируй .net и посмотри что мы можем поиметь с топологии z80 "автоматом"



Лучше уж так, это лучше, чем с нуля.

Не факт, не зря я накидываю топологию маленькими понятными кусочками в схему - по сотне-другой за раз связанные транзисторы разгребаются в схеме "на раз". Когда я поторопился и в конце накинул в схему 1801ВМ3 непонятную остающуюся тысячу сразу, то проект встал - оказалось эту 1000 одновременно тяжело разгребать. Ну я это преодолею, но это затратно.



Что это за формат?
.eco это пикадный формат для аннотации, он позволит внести компоненты и связи в схему. Должно получится сгенерировать из списка цепей z80, могу попробовать за вечерок на питоне скрипт наваять. Но ручной этап приведения схемы в читабельный вид это не исключит.

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


Vslav сказал, что в .net смысла нету, т.к. он конвертируется только в .pcb.
А нам нужно конвертировать в .sch.
А киньте, пожалуйста, прямую ссылку на файл с цепями z80, глянем конкретнее что там.

Titus
10.02.2022, 16:51
Да полно же разных имплементаций? А разных реализаций Спектрумов на ПЛИСах - пруд пруди, игрушки работают, все отлично.
Для любителей точной эмуляции есть большая разница, просто игрушки работают отлично, или же эмуляция 100% и потактовая.


А киньте, пожалуйста, прямую ссылку на файл с цепями z80, глянем конкретнее что там.
https://github.com/gdevic/Z80Explorer_Z80/blob/master/transdefs.js
Правда, я еще не смотрел, что там за что отвечает. Кроме названия транзистора.

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

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

AlexG
10.02.2022, 17:01
ну это (js) вариант от 6502.org. мой из Си-ного исходника

Titus
10.02.2022, 17:13
ну это (js) вариант от 6502.org. мой из Си-ного исходника
Это то, что подгружается в Z80 Explorer. Т.е. то, что нам и нужно для конвертации в схему.

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

Вроде разобрался с форматом транзисторов:



Пример:
['t2063',1346,371,2,[278,293,3721,3732],[1,1,1,1,165],false,],

#0: t2063 - название транзистора в схеме
#1, 2, 3: 1346, 371, 2 - id цепей, к которым подключен транзистор
#4, #7: 278, 3732 - координаты левого верхнего угла прямоугольника транзистора. (y отсчитывается от низа экрана)
#5, #6: 293, 3721 - координаты правого нижнего угла прямоугольника транзистора

остальные параметры вроде бы в Z80 Explorer'e не используются, поэтому не знаю, что означают.

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

Координаты прямоугольника транзистора заданы в пикселях.
Размер каждого слоя 4700x5000 пикселей.

Vslav
10.02.2022, 17:18
#1, 2, 3: 1346, 371, 2 - id цепей, к которым подключен транзистор

Этого достаточно для генерации ECO. А что куда подключается - где сток/исток/затвор, в каком порядке?

AlexG
10.02.2022, 17:19
В Си-ом варианте , площади используются для вычисления (ну я так понял) насколько сильный сигнал получается на транзисторе. Ещё там кажется было понятие "транзистор подтяжки"(ИМХО).
По идеи оный софт (текстовый вариант) можно приспособить для эмуляции(симуляции??) любой логической схемы на транзисторах (полевиках онли??).

Titus
10.02.2022, 17:26
Далее, какие есть файлы с данными, которые надо подключить:

Названия цепей. С ними все понятно.
https://github.com/gdevic/Z80Explorer_Z80/blob/master/netnames.js

Три файла с аннотациями, с частично повторяющимися данными. С ними тоже все понятно.
Annotation invert values for buses (https://github.com/gdevic/Z80Explorer_Z80/blob/master/annot_functional.json)
Adding annotation for reset logic (https://github.com/gdevic/Z80Explorer_Z80/blob/master/annot_internals.json)
Adding annot_internals with less abstract annotations (https://github.com/gdevic/Z80Explorer_Z80/blob/master/annotations.json)

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


А что куда подключается - где сток/исток/затвор, в каком порядке?
Не знаю, в каком порядке, но думаю, что элементарно понять, если посмотреть, к чем подключаются шины питания и земли.

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


В Си-ом варианте , площади используются для вычисления (ну я так понял) насколько сильный сигнал получается на транзисторе. Ещё там кажется было понятие "транзистор подтяжки"(ИМХО).
Для потранзисторной схемы нам особо не важно, на сколько сильный сигнал (на сколько мощный транзистор). Да и транзисторы подтяжки тоже отдельно выделять не надо.

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

Вот у нас что земля, что питание:


// Pads
vss: 1,
vcc: 2,

Vslav
10.02.2022, 18:05
Похоже у нас есть все чтобы импортировать за пару часов это в схему pcad-2004. Сделать мне или сам хочешь?

Titus
10.02.2022, 18:16
Похоже у нас есть все чтобы импортировать за пару часов это в схему pcad-2004. Сделать мне или сам хочешь?
Ты лучше сделаешь, т.к. я все же не апологет PCAD'а, а пользуюсь им токмо потому, что нечем больше)

Vslav
10.02.2022, 19:33
Ты лучше сделаешь
Как скажешь, чуток в Питоне и регулярках попрактикуюсь тогда :)

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

Enjoy - https://www.1801bm1.com/files/retro/Z80/
Там же выложена питоновская программа аж на 45 строчек :)
Но я в питоне нуб, поэтому просьба особо не глумиться и ногами не пинать!

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

В схему надо будет ручками добавить внешние пины, что-то в репозитории описание пинов и цепей не нашел

Titus
10.02.2022, 19:47
Enjoy - https://www.1801bm1.com/files/retro/Z80/
Там же выложена питоновская программа аж на 45 строчек
Но я в питоне нуб, поэтому просьба особо не глумиться и ногами не пинать!
Шикарно)
Надеюсь, там все транзисторы? А то выглядит как-то маловато)

Vslav
10.02.2022, 19:53
Шикарно)
Надеюсь, там все транзисторы? А то выглядит как-то маловато)
Я тоже надеюсь, по количеству вроде совпадает :)

Titus
10.02.2022, 19:58
Я тоже надеюсь, по количеству вроде совпадает
Упс! Там, оказывается три листа) Я смотрел только лист ECO)
Кстати, что означает ECO?

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

Как захватывать транзистор с цепями для перетаскивания, когда они так вплотную напиханы, и выделением выделишь и соседние цепи?

Vslav
10.02.2022, 20:36
Упс! Там, оказывается три листа) Я смотрел только лист ECO)
Кстати, что означает ECO?

Engineering Change Orders



Как захватывать транзистор с цепями для перетаскивания, когда они так вплотную напиханы, и выделением выделишь и соседние цепи?
Ну как... Прижимаешь ЛКМ - выделяешь окно - отпускаешь ЛКМ - оно захватит все что в окне - по границе или что внутри. Тип объектов можно маскировать в Block Selections...
Поставь меньшие размеры шрифта PortStyle - тогда порты уменьшаться и не будут перекрываться.

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

Ох оно там вплотную и накидало, я сразу не заметил, но может и к лучшему - выдергивай из кучи транзисторы которые нужны и собирай схему, а куча пусть так и будет. Можешь размер листа увеличить как ты делаешь и все попытаться упаковать на один.

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

Я выложил z80-rev1 - там транзисторы раздвинуты чуть, в сетке 200 и уменьшен PortStyle чтобы ты мог растащить

Titus
10.02.2022, 20:37
Engineering Change Orders
Что это означает? Почему только один лист так называется?

AlexG
10.02.2022, 20:39
а координаты от масштабировать расположение транзисторов ?

Vslav
10.02.2022, 20:45
Что это означает? Почему только один лист так называется?
Нажми 'Y' и переименуй во что хочешь.
Просто весь импорт ECO происходит всегда на лист с таким именем, если его нет - то схематик его создает.
Я так три раза ECO переименовал и продолжал импорт с автоматическим созданием нового листа.

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


а координаты от масштабировать расположение транзисторов ?
Ну парни, я брался только в схему закинуть :)
Мне такая технология через ECO неизвестна, оно не кушает координаты при вставке.
Если вам настоящего секса хочется, то курите PCAD DBX (https://www.1801bm1.com/files/retro/Z80/PCAD_DBX.pdf)

AlexG
10.02.2022, 21:03
нетуж , мне нобелевка за такой изощрённый секас - не нужон.
;-)

Vslav
10.02.2022, 21:06
нетуж , мне нобелевка за такой изощрённый секас - не нужон.
;-)
Послушаем еще начальника транспортного цеха, посмотрим что он скажет :)
Хинт: там в каталоге самого PCAD, есть подкаталог Dbx - там и документация и примеры

AlexG
10.02.2022, 21:31
сорри. а где каталог pcad?

Vslav
10.02.2022, 21:39
сорри. а где каталог pcad?
PCAD-2004 или PCAD-2006 на машине надо установить, там же dll-ки и прочее. Вот в его каталоге и будет /Dbx.

Titus
10.02.2022, 21:50
Если вам настоящего секса хочется, то курите PCAD DBX
Нифига себе, я даже не знал, что в PCAD'е есть такой интерфейс)

Вот что значит Vslav давно в PCAD'e )

Давно ли я в футболе PCAD'е?
https://s00.yaplakal.com/pics/pics_original/2/7/7/11830772.jpg

AlexG
10.02.2022, 21:57
суровая схема.
последний пикад в пользовании был 4.5

Titus
10.02.2022, 22:38
Ну парни, я брался только в схему закинуть
Мне такая технология через ECO неизвестна, оно не кушает координаты при вставке.
Я думаю, что нет смысла размещать транзисторы в том же расположении, как они были на кристалле. Конечно, проще разбирать, когда они сгруппированы, но на принципиальной схеме они все равно будут стоять иначе.

Titus
11.02.2022, 00:42
Vslav, что-то мне не нравится, что вырисовывается. Какая-то неведомая фигня) Это что за технология? Где верхние транзисторы, где транзисторы подтяжки?

Z80 - Optimized - rev 01.sch (https://disk.yandex.ru/d/ekkVOm2dq__-XA)

Vslav
11.02.2022, 01:08
Vslav, что-то мне не нравится, что вырисовывается. Какая-то неведомая фигня) Это что за технология? Где верхние транзисторы, где транзисторы подтяжки?

Я думаю мы неправильно проинтерпретировали transdefs.js.
Например ['t2066',2,791,2,[1474,1497,1436,1462],[1,1,1,1,279],true,].
Если делать как ты сказал, то у него две цепи номер 2 - это VCC.
На затворе и на стоке. Но если посмотреть на топологию - это типичный n-MOS depleted load. И там в конце у него true.
В-общем, ты зря сказал что важны имя транзистора и только первые три числа в строке :)

Titus
11.02.2022, 01:29
В-общем, ты зря сказал что важны имя транзистора и только первые три числа в строке
А чего же нам еще нужно?

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

Пять чисел во второй группе скобочек - это, судя по исходнику, какой-то путь для рисования. Да и все числа там 1, кроме последнего.

Vslav
11.02.2022, 02:00
А чего же нам еще нужно?
В transdefs нет depleted load транзисторов.
Я взял цепь NET01284, в файле на нее прицеплено 2 транзистора, потом я открыл Z80 эксплорер, нашел эту цепь, посмотрел топологию, нашел этот pull-up на топологии (ессно, он физически там должен быть), а вот транзистора в базе там НЕТ. Поэтому мы все сделали правильно, а вот в исходных файлах на верхние транзисторы просто забили. Поэтому можно попытаться к каждой цепи еще ручками прицепить depletion load, для моделирования сойдет, но схему так нормально не нарисуешь :(



Пять чисел во второй группе скобочек - это, судя по исходнику, какой-то путь для рисования. Да и все числа там 1, кроме последнего.
Я залез в исходники плюсовые, в первой группе координаты прямоугольной области транзистора, а что во второй - тоже думаю что не используются.

zebest
11.02.2022, 10:42
потом я открыл Z80 эксплорер, нашел эту цепь, посмотрел топологию
Авот интересно, здесь такая же топология проекта??
https://floooh.github.io/visualz80remix/
Там сверху "Layers" написано. Это что, шестислойный дизайн у Z80 ?
программки запускает, маленькие и медленно, но наглядно :) Хоть скинсейвер делай...

AlexG
11.02.2022, 11:08
ну это как бы "новая" перепевка 6502.org
Однако я его ещё не видел.
Там в комментах говорится, что за основу взят (предположительно) Z8400, а не оригинальный (с 6 "лишними" транзисторами).

zebest
11.02.2022, 11:12
В каком смысле лишними?? Которые подтяжки, или сов сем лишними?? А тр-ры подтяжки входят в общее количество 8500?

Titus
11.02.2022, 11:44
В transdefs нет depleted load транзисторов.
Я взял цепь NET01284, в файле на нее прицеплено 2 транзистора, потом я открыл Z80 эксплорер, нашел эту цепь, посмотрел топологию, нашел этот pull-up на топологии (ессно, он физически там должен быть), а вот транзистора в базе там НЕТ. Поэтому мы все сделали правильно, а вот в исходных файлах на верхние транзисторы просто забили. Поэтому можно попытаться к каждой цепи еще ручками прицепить depletion load, для моделирования сойдет, но схему так нормально не нарисуешь

Т.е. фактически они опустили все транзисторы подтяжки на +5 и все? Т.е. фактически мы просто можем считать, что база каждого транзистора подтянута на +5?

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

- - - Добавлено - - -
Vslav, ты можешь сгенерить еще раз .sch, но увеличив вертикальные промежутки между рядами транзисторов, чтобы можно было сохранить стандартные размеры названий портов, но при этом они не налезали друг на друга. Пусть даже это будет уже не 3 листа, а 5.

Vslav
11.02.2022, 12:46
Т.е. фактически они опустили все транзисторы подтяжки на +5 и все? Т.е. фактически мы просто можем считать, что база каждого транзистора подтянута на +5?
В том то и дело, что эта подтяжка стоит на выходе, а не на базе. То есть - одна подтяжка на цепь. И то не на каждую - есть цепи между транзисторами по схеме И, есть цепи с прямым push-pull. С таким выбрасыванием можно логически моделировать с игнорированием состояния некоторых цепей, но полную схему восстановить нельзя.



С другой стороны не получится ли так, что в схеме будут какие-то неопределенности? Или такого быть не может?

А кто знает что они еще выбросили кроме pull-up?



но увеличив вертикальные промежутки между рядами транзисторов, чтобы можно было сохра-нить стандартные размеры названий портов, но при этом они не налезали друг на друга. Пусть даже это будет уже не 3 листа, а 5.
Там оно не так просто, координаты неуправляемы, оно накидывает по сетке, ставишь большую сетку (1000 и больше) - оно начинает вообще слепливать, ставишь маленькую 200 - получаем то, что уже есть. Я выложил вариант 2 с сеткой 800, посмотри, лучше не получается.

Titus
11.02.2022, 12:52
А кто знает что они еще выбросили кроме pull-up?
Я думаю, что то, что они выкинули на симуляции не сказывалось. А стало быть можно восстановить работоспособную схему. Чисто теоретически.

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


Там оно не так просто, координаты неуправляемы, оно накидывает по сетке, ставишь большую сетку (1000 и больше) - оно начинает вообще слепливать, ставишь маленькую 200 - получаем то, что уже есть. Я выложил вариант 2 с сеткой 800, посмотри, лучше не получается.

Да, вроде теперь лучше.

Плохо, что транзисторы накиданы несвязно друг с другом, и чтобы собрать цепь, надо по всем листам по одному транзистору вычленять.

Vslav
11.02.2022, 14:00
Плохо, что транзисторы накиданы несвязно друг с другом, и чтобы собрать цепь, надо по всем листам по одному транзистору вычленять.
Так я про это и говорил, может намного больше времени занять чем накидывание связными группами и их поэтапным разгребанием в схеме.

OrionExt
11.02.2022, 14:28
стесняюсь спросить. нарвусь на грубость, как с zx на вм80. один придумал тест z80 в вакууме, а теперь нид потранзисторная модель в вакууме? чем корка Т80 плоха? может стоит все патчи к Т80 в одном месте собрать с комментариями? по делу.

p.s. ху из z80 я очень даже в курсе и как он работает.

Vslav
11.02.2022, 14:49
T80 отличная корка, куча сборок Спектрумов на ней построено, все работает.
Z80/8080 - простые процессоры, тупо конечный автомат, можно прочитать описание, собрать тонкости и написать потактовую корку/эмулятор и потом еще пройти exerciser с полным тестовым покрытием. Поэтому я и не вижу особого смысла реверсить Z80. T80 есть и нормально работает, и этого достаточно.
А вот с PDP-11 ситуация другая, там несколько независимых блоков, инструкции вроде простые но с различными адресациями, есть пультовый режим, есть ошибки в процессорах. По описанию можно написать только приблизительную корку/эмулятор и потом все время его допиливать, скажем, под новые обнаруженные в процессоре ошибки. Там даже время выполнения команды можно только приблизительно сказать. Вот это имеет смысл вскрыть, восстановить схему и написать по ней точную корку. Пока степень соответствия таких корок оригиналам очень высокая, корка 1801ВМ1 даже воспроизвела ошибку в процессоре про которую на момент написания корки вообще не было известно, корка ВМ2 точно воспроизводит ошибку ВМ2 с предвыборкой и мы смогли выяснить ее природу, итд.

Titus
11.02.2022, 15:11
T80 есть и нормально работает, и этого достаточно.
Нормально и стопроцентно - это не одно и то же)

- - - Добавлено - - -
Vslav, странно, что на схеме у тебя для нескольких транзисторов цепь VSS не преобразовалась в земляной транзистор, а так и осталась значиться VSS.

OrionExt
11.02.2022, 15:22
Нормально и стопроцентно - это не одно и то же)

ты троль? или фантазер? ты давай с этим заканчивай :) какие там 100%? при всем многообразии клонов транзисторных :D

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

прими путь msx и успокой фантазию. только - совместимость :)

Vslav
11.02.2022, 15:28
что на схеме у тебя для нескольких транзисторов цепь VSS не преобразовалась в земляной транзистор, а так и осталась значиться VSS.
Там где была подключена к истоку - везде. А остальное - исключения, их надо рассмотреть в ручном режиме, что ты сейчас и делаешь. Так и было задумано :)

Titus
11.02.2022, 15:44
Там где была подключена к истоку - везде. А остальное - исключения, их надо рассмотреть в ручном режиме, что ты сейчас и делаешь. Так и было задумано :)

У остальных подключен к стоку, что в принципе одно и то же)

Ты будешь смеяться, но что-то логичное вырисовывается:
https://pic.maxiol.com/images2/1644582822.630248188.z801.png

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

Да, и подскажи, как у стрелочки вверх, над которой надпись +5V, повернуть надпись +5V на 90 градусов, но саму стрелочку оставить вверх, не поворачивая.

Lethargeek
11.02.2022, 15:54
Z80/8080 - простые процессоры, тупо конечный автомат, можно прочитать описание,
...ага, когда его наконец допишут, уже сколько лет дописывают-дописывают, а потом опять всплывает что-то внезапноэ :v2_rolley

OrionExt
11.02.2022, 16:16
Нормально и стопроцентно - это не одно и то же)

весна что ли скоро :)


...ага, когда его наконец допишут, уже сколько лет дописывают-дописывают, а потом опять всплывает что-то внезапноэ :v2_rolley

бурлит наш разум возмущенный :D


куда псевдо модеры смотрят? вычлените это безобразие весны. тема называется - Справочник по Z80? :D

Vslav
11.02.2022, 16:45
Да, и подскажи, как у стрелочки вверх, над которой надпись +5V, повернуть надпись +5V на 90 градусов, но саму стрелочку оставить вверх, не поворачивая.
Нужно выбрать надпись отдельно. ЛКМ + shift или + ctrl, в зависимости от того как настроены клавиши

Titus
11.02.2022, 19:43
Вот такой хорошенький кусочек получился, где видны триггеры, мультиплексор между старшей и младшей частью шины ALU (что подтверждает, что она состоит из двух половинок, т.е. 4-битная).

https://pic.maxiol.com/images2/1644597716.630248188.012.png

Vslav
11.02.2022, 21:09
Вот такой хорошенький кусочек получился, где видны триггеры, мультиплексор между старшей и младшей частью шины ALU (что подтверждает, что она состоит из двух половинок, т.е. 4-битная).

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

Titus
11.02.2022, 21:26
Вот те три транзистора справа - это просто инвертирующий буфер.
Это я в курсе) Я же твой ВМ2 весь переводил из транзисторной схемы в логическую)

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


Посчитай сколько времени ты потратил, посчитай сколько транзисторов нарисовал, и зная общее количество оных можешь оценить примерное время на всю схему
Возьмем для примера, что я нарисовал за сегодня 50 транзисторов.
А всего их допустим 6800. Делим 6800 / 50, получается всего 136 дней)

А сколько ты ВМ2 рисовал? И сколько ВМ80?

Titus
12.02.2022, 10:55
Vslav, в общем, я так смотрю, что для составления логической схемы действительно в верхних транзисторах смысла нет. Так что твои опасения, я думаю, напрасны.

Vslav
12.02.2022, 14:35
Vslav, в общем, я так смотрю, что для составления логической схемы действительно в верхних транзисторах смысла нет. Так что твои опасения, я думаю, напрасны.
Что изображено на этой картинке?
https://www.1801bm1.com/files/images/no_pull.jpg

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

И верхние транзисторы несут дополнительный смысловой слой. Если при рисовании схемы на какой-то цепи не находится pull-up - это ахтунг. Если на цепи два pull-up - это ахтунг. Ахтунг подлежит проверке, немало ошибок схемы было найдено благодаря этому, иногда целые узлы переосмыслялись.

Titus
12.02.2022, 14:52
Что изображено на этой картинке?

Надо смотреть в более полном контексте.

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


верхние транзисторы несут дополнительный смысловой слой. Если при рисовании схемы на какой-то цепи не находится pull-up - это ахтунг. Если на цепи два pull-up - это ахтунг. Ахтунг подлежит проверке, немало ошибок схемы было найдено благодаря этому, иногда целые узлы переосмыслялись.
Пока что в АЛУ, который я рисую, все понятно и неоднозначностей нет. А в другом посмотрим.

Vslav
12.02.2022, 15:32
Надо смотреть в более полном контексте.
А если есть pull-up - то не надо никуда смотреть.
Понимаешь, у меня это хобби, я обычно поздно вечером им занимаюсь (это если за пианино лень садиться), мне мозг лишний раз вообще напрягать не хочется.

Все зависит от конечной цели, у меня цель получить работающий процессор в ПЛИС и при этом внести минимум ошибок и неточностей.
Очевидно, нам нужно полное и качественное HDL-описание. Как его получить? В исходной точке у нас есть микросхема и некоторая документация, разной степени глубины и достоверности. Варианты/этапы:

1. Читаем описание, смотрим как микросхема работает в устройствах, рассматриваем микросхему как "черный ящик", пишем HDL на базе имеющихся данных. То есть, взяли самый верхний уровень абстракции и решили задачу не углубляясь. Точность модели низкая, многие детали не раскрыты и не воспроизводятся. Так делать можно, и в "дореверсную эпоху" это был, в-общем-то, единственный доступный любительский вариант.

2. Открываем черный ящик и смотрим что у него внутри. Получаем фотографию слоев. Теоретически - все, можно сразу писать HDL. Но лично я, например, не могу. Почему? Потому что с самого верхнего уровня абстракции мы опустились ну очень глубоко и у нас сразу появилась масса новой информации - топологии слоев, предполагаемая степень легирования, цвет фотомаски, всякие дефекты травления и прочее. Фотки красивые, там вот еще и украшательства есть. Но для HDL этого всего не надо, и за топологией просто не видна собственно суть схемы.

3. Повышаем уровень абстракции, нам не нужен цвет элементов, нам не нужна степень легирования, нам не нужна топология и геометрические размеры транзисторов - в цифровой схемотехнике это не так важно, влияет только на временнЫе параметры, а итоговую модель мы будем запускать совсем на другой элементной базе, нам все эти особенности исходных элементов не нужны вообще. Именно поэтому я векторизую очень упрощенно, практически линиями одной толщины, толстые линии и полигоны - только для питания, ну и где хочется сделать красиво, в очень и очень немногих местах. Люди, которые разбирали Z80, прорисовали все сегменты тщательно, возможно у них сразу был целью визуальный симулятор. Но для понимания схемы это все не нужно вообще. Я дропнул это все, в проекте же Z80 это все сохранено. Можно уже писать HDL? Теоретически можно, элементы видны, но все еще четко не видны взаимосвязи между ними, нет понятного разбиения на блоки, ну и топологические детали мешают пониманию, их надо тоже убирать как ненужные.

4. Втаскиваем элементы в схему и группируем в логические блоки. Вот тут важно сохранить все элементы, чтобы можно было легко распознать паттерн логического блока. Я сохраняю все элементы, включая pull-up, это важная часть паттерна. В Z80 pull-up отброшены, не все элементы перенесены в схему. Потому что, видимо, для проекта сразу предполагалась кастомная (с костылями, учитывающими отсутствующие pull-up) транзисторная симуляция, никто HDL не собирался писать. А я собираюсь, поэтому мне паттерн логических элементов важен, и он несет функцию дополнительной проверки/верификации. С отсутствующими pull-up появляется неоднозначность соответствия логическому элементу и дырка в контексте. Да, ее можно закрыть, используя смыслы верхнего уровня, но при этом мы нарушили направление абстрагирования - от нижнего уровня к верхнему. И вот, когда все элементы занесены, сгруппированы в распознаваемые логические блоки, цепи вменяемо поименованы - я уже могу написать HDL, уровень абстракции все еще глубокий, но смыслов уже не так много, их можно охватить и представить в виде HDL.

5. Можно еще повысить уровень абстракции и вместо групп транзисторов нарисовать логические блоки, отбросить детали транзисторного представления. Лично мне это не нужно - моя цель уже достигнута на предыдущем этапе.

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

Titus
12.02.2022, 15:52
5. Можно еще повысить уровень абстракции и вместо групп транзисторов нарисовать логические блоки, отбросить детали транзисторного представления. Лично мне это не нужно - моя цель уже достигнута на предыдущем этапе.
А мне, как эмуляторщику, важен именно этот вариант. Но к нему нельзя подойти в данном случае не нарисовав сперва потранзисторную схему.

Vslav
12.02.2022, 16:10
А мне, как эмуляторщику, важен именно этот вариант. Но к нему нельзя подойти в данном случае не нарисовав сперва потранзисторную схему.
Не, тут уже зависит от опыта и степени развитости мышления :)
Вот есть процессор, на самом верхнем уровне мы видим ящичек, лезем внутрь - там видим блочки всякие - АЛУ, регистровый файл и прочее. Нам нужно эти блочки реализовать, опять делаем декомпозицию на более мелкие блоки. Эти мелкие блоки нам надо тоже реализовать, вопрос только в том, что позволяет делать наше оборудование. Вот мое оборудование позволяет заложить 100 транзисторов, нажать кнопку и получить на выходе сразу готовый мелкий блок. А тебе нужно сначала брать по 10 транзисторов, сделать из них детали, потом сделать 10 деталей и только потом собирать из них мелкий блок. И там и там на выходе блочок из 100 транзисторов, разное только количество стадий. Если бы мое оборудование позволяло брать 1000 исходных элементов - я бы писал HDL сразу по фотке, но емкость моего входного лотка только 100, увы. Наверное, у кого-то емкость 1000 и он сможет сразу писать HDL пот фотографии, но я думаю это уже аутизм или что-то подобное за пределами нормы должно быть. И да, ты можешь потренироваться и свой лоток до 100 тоже расширить, но тебе лень, 10 тебя устраивает :)

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

Кстати, чем плохи отсутствующие pull-up.
Если у нас есть все детали сразу - мы закладываем 100 транзисторов в оборудование, жмем кнопку и на выходе получаем уравнение. А если есть только 60 транзисторов, а остальные то ли есть, то ли нет, то простой операцией СИНТЕЗ нам не обойтись, нам нужен АНАЛИЗ, поэтому это уже не один станок-синтезатор, а производственная линия - АНАЛИЗ-СИНТЕЗ недостающего-СИНТЕЗ финальный.

Titus
12.02.2022, 16:20
Если у нас есть все детали сразу - мы закладываем 100 транзисторов в оборудование, жмем кнопку и на выходе получаем уравнение. А если есть только 60 транзисторов, а остальные то ли есть, то ли нет, то простой операцией СИНТЕЗ нам не обойтись, нам нужен АНАЛИЗ, поэтому это уже не один станок-синтезатор, а производственная линия - АНАЛИЗ-СИНТЕЗ недостающего-СИНТЕЗ финальный.
В данном случае нам особо выбирать не приходится, потому что имеем только тот набор транзисторов, что у нас есть)