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), очень хорошо. А то лениво логический анализатор
подключать :)
|