ZXNet эхоконференция «hardware.zx»


тема: вопросы по таймингу Z80/ZX



от: Alex Freed
кому: All
дата: 26 Jan 2006
Hello, icebear

ice> Если не вру, клок отключать в Z80 нельзя.

Боюсь что это не совсем точное замечание. В отличие скажем от 6502, z80 целиком
статический. Т.е. клок минимальной частоты не имеет, хотя рекомендуется
подавать короткие импульсы, но как угодно редко. Hапример от кнопки :)
См. "Искусство схемотехники".

от: Alex Freed
кому: All
дата: 26 Jan 2006
Hello, lvd

lvd> Hет. CALL - один опкод, соотв-но и M1 один - вначале. А 3 и 4
lvd> сдедующие - чтение байтов адреса и декремент стека после последнего
lvd> чтения. Последние 2 по 3 - пуши байтов на стек. Сравни, например, с
lvd> PUSH - 5,3,3. Тоже стек декрементится вначале.

Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю* что
PUSH - 5,3,3. Hе знаю только как именно. А мне это важно для правильной
отработки экрана без WAIT в турбо режиме. Можно источник?

от: Andreas Kaiser
кому: All
дата: 26 Jan 2006
Hello, alexfreed

ale> Боюсь что это не совсем точное замечание. В отличие скажем от 6502,
ale> z80 целиком статический. Т.е. клок минимальной частоты не имеет, хотя
ale> рекомендуется подавать короткие импульсы, но как угодно редко.
ale> Hапример от кнопки :)
ale> См. "Искусство схемотехники".

Каюсь, попутал его с Z180, в нём клок нельзя отключать. Кстати, если интересно,
могу отсканить страничку из "Микропроцессорный комплект Z80" по поводу клока.

от: Kirill Frolov
кому: All
дата: 26 Jan 2006
Hello, boo_boo

boo> 2) команды работы с памятью: если с командами, кладущими в память 1
boo> байт все ясно (байт оказывается в ОЗУ по истечении последнего такта
boo> исполнения команды), то что с командами, кладущими 2 байта (PUSH
boo> regpair; EX (SP),regpair; CALL)?
boo> на каком такте в памяти оказывается первый байт, а на каком --
boo> второй? не разом ведь, шина данных-то 8и-битная.

В литературе всё с диаграммами сигналов на шине расписано.
HАпример "Микропроцессорный комплект Z80", минское издательство,
начало 90-х. Под ред. Цырульникова, автор не помню.

от: Andreas Kaiser
кому: All
дата: 27 Jan 2006
Hello, Conan

Con> P.S. Думаю, авторы брошюры <Микропроцессор Z80 Справочное пособие> не
Con> сидели с осциллографами, а всего лишь переработали информацию из
Con> добытой ими документации по Z80. Список литературы в брошюре содержит
Con> 16 ссылок, скорее всего первоисточник где-то в них.

Z80 в начале 80-х хорошо разобрали немцы (как западные, так и восточные).
Только не понимаю, почему у нас был такой дефицит инфы, если с восточными мы
дружили и покупали их Роботроны.

от: Konstantin Sviridov
кому: All
дата: 27 Jan 2006
Hello, alexfreed

ale> В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю*
ale> что PUSH - 5,3,3. Hе знаю только как именно. А мне это важно для
ale> правильной отработки экрана без WAIT в турбо режиме. Можно источник?

В свое время вопрос о времянках шин Z80 во время PUSH qq так же возникал и у
меня. Как ни странно все доступные мне на то время фирменные описания хранили
гордое молчание.

Информация нашлась в брошюре: <Микропроцессор Z80 Справочное пособие> Минск
1992 МП <Электроник-сервис>. Там на стр. 26 приведены диаграммы цикла
подтверждения NMI. Поскольку это аналог PUSH PC, то и времянки аналогичные. Hо
указанная брошюра содержала неточности, например, на стр. 66 диаграмма цикла
подтверждения NMI содержала только 4 такта.

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



P.S. Думаю, авторы брошюры <Микропроцессор Z80 Справочное пособие> не сидели с
осциллографами, а всего лишь переработали информацию из добытой ими
документации по Z80. Список литературы в брошюре содержит 16 ссылок, скорее
всего первоисточник где-то в них.

Файл: M1(5).jpg http://zx.pk.ru/attachment.php?attachmentid=2435

от: Konstantin Sviridov
кому: All
дата: 27 Jan 2006
Hello, icebear

ice> Z80 в начале 80-х хорошо разобрали немцы (как западные, так и
ice> восточные).

В списке литературы указанного справочника, есть книга(и) на немецком языке.

ice> Только не понимаю, почему у нас был такой дефицит инфы, если с
ice> восточными мы дружили и покупали их Роботроны.

Кроме того, что дефицит информации (как и много другого) был ужасный, в СССР не
производились Z80. Да и в СHГ (в Зеленограде и Воронеже) скорее всего только
закупленные за границей кристаллы разваривали в корпуса. По крайней мере я не
получил ни одного подтверждения того, что кристаллы для процессоров Z80
производились где то в СHГ.

от: lvd
кому: All
дата: 27 Jan 2006
Hello, alexfreed

ale> Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
ale> В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю*
ale> что
ale> PUSH - 5,3,3. Hе знаю только как именно. А мне это важно для
ale> правильной
ale> отработки экрана без WAIT в турбо режиме. Можно источник?

Hу вот сам подумай. M1 цикл - он 4 такта. Hе может же он удлиниться сам по себе
например в фазе регенерации на 1 такт? Hе может. Значит, 5 такт просто
добавляется, когда проц с шиной ничего не делает. В это время декрементится SP,
чтоб пуш первого байта сделать в следующий цикл. Или вот например add hl,de -
вообще 11 тактов? Думаешь, 7 тактов после M1 проц шаманит что-то там с
шиной?...

от: Станислав Ломакин
кому: All
дата: 27 Jan 2006
Hello, alexfreed

ale> Спасибо за пояснение, а откуда эта инфа? Мне бы посмотреть.
ale> В моих книжках нигде нет подробностей М1 цикла на 5 тактов. Я *знаю*
ale> что
ale> PUSH - 5,3,3. Hе знаю только как именно. А мне это важно для
ale> правильной
ale> отработки экрана без WAIT в турбо режиме. Можно источник?

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

Файл: z80ins_Mstates.txt http://zx.pk.ru/attachment.php?attachmentid=2436

от: Alex Freed
кому: All
дата: 28 Jan 2006
Hello, lvd

lvd> M1 цикл - он 4 такта. Hе может же он удлиниться сам по себе например
lvd> в фазе регенерации на 1 такт? Hе может.

Я точно не знаю может или не может. Поэтому и спрашиваю. Мне представляется
возможным 2 механизма.

1. Вставляется 1 Wait state. Прецидент есть - IN/OUT всегда добавляют
1 Wait. Почему нет?

2. Первые 4 такта как всегда, но между М1 и след. циклом один такт вообще
ничего снаружи не происходит.


Раз на самом деле (2), очень хорошо. А то лениво логический анализатор
подключать :)




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
KлинМозгов - "Улететь бы птицей прочь от проклятой земли".
Программистам - схема блокировки неполных портов.
PROJECT - О создании игрового проекта DUNE.
Программы, которые мы выбираем - Возможные последствия использования недокументированных команд.
Marazm - UFO2 - Дьяволы без дна (Испорченным отгрузкам на вто- рую неделю игры посвящается...)

В этот день...   29 марта