PDA

Просмотр полной версии : Странная частота таймерных IRQ...



LeoN65816
30.07.2016, 22:26
Замерил я цифрровым осликом частоты на своей девятке (вроде как Загорской):
1. Основной кварцевый генератор - 14.2945 МГц.
2. Кварцевый генератор дисплейного контроллера - 10.4981 МГц.
3. Проц - 1.02105 МГц.
4. Таймерные NMI - 50.0709 Гц. Вот почему моя определялка (http://zx-pk.ru/threads/24455-turboagat-9-16.html) показывала меньшую частоту проца...
5. Таймерные IRQ - 1.95276 КГц (длительность нуля 64 мкс, период 512 мкс) - вот это номер!!! Как такое может быть??? А ведь в доках указано 650 Гц...

Update: добавил для Игоря осциллограммы сигналов.

GARNIZON
21.08.2016, 10:40
Очень интересную тему вы затронули.

Еще когда только начинали делать эмулятор Агата по винды,
задача была реализовать нормальное смешение режимов как на реале. Олег мне тогда написал:

Сами по себе таймерные прерывания в агатах малоинтересны, за исключением того, что они жестко привязаны к работе
видеоконтроллера. Частота NMI всегда равна 50 Гц и они происходят во время обратного хода развертки. А вот с IRQ
все несколько сложнее. Вот мне и хотелось выяснить, как соотносятся сигналы прерываний с ходом луча развертки.
Осциллографом это выяснять довольно малопродуктивно, поэтому была мысль разобраться с механизмом их генерации.
Сейчас я реализовал вариант, близкий к реальности: устойчиво работает совмещение текста с графикой в рапире
семерки (РЖМ("ВК"");) и совмещение T32 и T64 для девятки в диске часов Бадера. В рапире для девятки, как я понял,
совмещенный режим хотя и документирован, но в реальности не поддерживается (даже не включаются таймерные
прерывания) из-за особенностей работы видео-контроллера.

Но вообще, если у кого-нибудь будет возможность померить прерывания на семерке и девятке, интересуют следующие
параметры: частота (лучше всего кратность относительно NMI) и длительность (лучше всего в тактах процессора). Судя
по всему, на семерке длительность IRQ гораздо больше, чем на девятке. По крайней мере, гораздо больше ложных
(повторных) вызовов обработчика IRQ. В эмуляторе я подобрал значение длительности равное 700 тактов для семерки и
100 - для девятки. Прерывания для семерки происходят каждые 16 строк изображения с кратностью 20 относительно NMI
(с учетом невидимых на экране строк). Для девятки прерывания происходят каждые 8 строк с кратностью 40
относительно NMI. Но эти значения были подобраны экспериментально.

1)Вот тогда выяснилась про таймерные irq девятки: есть вероятность, что у разных девяток они вообще разные. И 650
гц и ещё какое-то значение! Я так думаю что в доках прижилось значение от ранней версии девятки (ну та которая
имеет дополнительное место под пзу и умеет читать слово состояния дисплейного контроллера):
http://agatcomp.ru/Images/new_sys/main9a-s.jpg


2) 14.3 основной - это правильно, только на некоторых факультетах бы за такое могли бал снизить: точность
измерений не может превышать точность измерительного прибора. А что у вас за осцилограф, он калиброван, аж до 6-го знака?

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

У знакомого на работе сейчас такая техника есть ;) И документы о поверке тоже есть. Надо только сообразить, где
его там измерять.... Но это не очень сложно. О результатах отпишу.

b2m
21.08.2016, 11:56
5. Таймерные IRQ - 1.95276 КГц (длительность нуля 64 мкс, период 512 мкс) - вот это номер!!! Как такое может быть???
Судя по информации от Олега:

Прерывания для семерки происходят каждые 16 строк изображения с кратностью 20 относительно NMI
(с учетом невидимых на экране строк). Для девятки прерывания происходят каждые 8 строк с кратностью 40
относительно NMI.
вполне соответствует девятке. Непонятно только почему в документации указано 650Гц, т.е. каждые 24 строки. Видимо, были и такие модификации видеопроцессора.

LeoN65816
21.08.2016, 13:33
В доке сказано, что IRQ шпарят в 13 раз чаще чем NMI, итого 650 Гц. Быть может это действительно "есть" в Московской девятке. В моей Загорской девятке они шпарят еще в 3 раза чаще, итого 39 раз относительно NMI...
А прошивки D63 Московской/Загорской/Волжской отличаются?

GARNIZON
21.08.2016, 13:40
Там как идет – ранняя/поздняя, Они и в Москве и Загорске были и те и те.

Я вот обратил внимание, ранние материнки выпускались в 88 году и документация на девятку датирована 88 годом. А с 89 года пошли уже привычные нам девятки, а доки то прикладывали точно те же…..

Про прошивки тут все: http://agatcomp.ru/Hard/roms.shtml
С Загорской сможете снять?

LeoN65816
21.08.2016, 14:00
С Загорской сможете снять?
Не обещаю, возможно, попробую.
Я, в основном, чтобы цанговые панельки ставить, выкусывал поножечно чипы, а потом каждую ножку с паялом вытягивал. С отсосом очень и очень тяжело такую толстую плату распаивать...

GARNIZON
08.10.2016, 21:24
Вот тут черновик статьи, на днях будет полная
http://agatcomp.ru/Hard/clock.shtml

По ходу дела выяснилась еще один "глюк" - область ПЗУшка сисмонитора отражается в девятке не только на F800.FFFF но и на F000.F7FF
В семёрке ПЗУ сисмона имеет только одно окно, в документации на девятку про второе окно ни звука!
И судя по тому , что в эмуляторе почти всё работало , никто из нормальных программеров эту фичу никогда
не использовал, вот только злобный кодер, который делал защиту a063 это использовал... при взломе все и выяснилось.

Но есть сомнения, на всех ли девятка так? Я знаю что у форумчан есть живые девятки, проверьте плиз кто сможет на своей девятке это.
Просто в сисмон зайти (без загрузки машины) и посмотреть что есть по адресам от f000 и от f800, байт 8 хотя бы в каждом случае.
И если несложно при этом указать что за версия генплаты у вас :
ЯБ 3.089.026 (и какая версия макетки, например ЯБ 7.104.330)
или
РВИЖ 467444.001 (и какая версия макетки, например РВИЖ 758727.020)

Плиз

Wierzbowsky
08.10.2016, 22:41
У меня на РВИЖ по обоим адресам одинаковый код. РВИЖ 467444001. Есть ещё дохлая (пока) плата, версия 758727.020. Наверняка там такая же картина с монитором. Как починю, скажу.

LeoN65816
08.10.2016, 23:10
По ходу дела выяснилась еще один "глюк" - область ПЗУшка сисмонитора отражается в девятке не только на F800.FFFF но и на F000.F7FF
Ха! Дык, это не глюк, это фича! И до сегодняшнего дня я считал, что все знают об этом.
Вот здесь (http://zx-pk.ru/threads/24455-turboagat-9-16.html?p=824276&viewfull=1#post824276) про MultiROM посмотри, и видео там же и здесь (http://zx-pk.ru/threads/24455-turboagat-9-16.html?p=882641&viewfull=1#post882641) посмотри.


в документации на девятку про второе окно ни звука!
На схеме вывод 13 D14 называется "F", то есть выборка F000-FFFF, активный уровень 0. Здесь (http://agatcomp.ru/Reading/docs/Jacheyka.djvu) на странице 38 говорится об этом.
Более того, вывод 16 D14 называется "DE", то есть выборка D000-EFFF, активный 0. В этой же дэжавю на странице 39 говорят об этом. Но! Есть особенность: казалось бы, D000-EFFF - это 8 килобайт и в качестве ДопПЗУ можно влупить 2764, однако из-за схемотехнической особенности туда надо ставить 27128 и на это окно будут отображаться средние 8 килобайт из 16 (то есть в микрухе 1000-2FFF). И я сильно-сильно сомневаюсь, что она нужна для "для расширения возможностей Системного Монитора", полагаю, что наши "передирая" с яблока не исключили возможность Васика в ПЗУ, просто не довели дело до конца ввиду дороговизны чипов.

На моей генплате (без ДопПЗУ) вытравлено "РВИЖ.467444.001" и краской нарисовано "РВИЖ467444.001". А что за макетка и версия? :confused:

GARNIZON
09.10.2016, 00:08
Не, это все ясно, на сайт еще лет 10 назад приходили письма, типа такого -
цитаты:

Емкость ПЗУ 2Кбайта...тоесть используется Биты адресов с A0 по А10...Тесть 11 бит из 16...
ТОесть для выборки ПЗУ нужны Биты адреса с A11 по A15....Тоесть фактически адрес F8xx
..тоесть формат в двоичном 1111 1ххх хххх хххх
Так вот бит A11 фообще нигде в схеме выборки ПЗУ не участвует...Его забыли "скомутировать" для
выборки.....Потому ПЗУ подключается просто при обращении Адреса Fxxx 1111 xxxx xxxx xxxx.....
Тоесть ПЗУ одно, а адресное пространство ДВА F000-F7FF и F800-FFFF

или

область ПЗУшка сисмонитора отражается в девятке не только на F800.FFFF
но и на F000.F7FF судя по схеме, такое поведение диктуется какой-то большой аппаратной табличкой, прошитой ещё в
одной ПЗУ и, следовательно, легко может отличаться у разных машин

Но дело в том, что я не имею права делать выводы основываясь на какой-то одной модели\версии девятки.
Нужна статистика с конкретными номерами платы. Иначе будет путаница, вот обрати внимание, ты приводишь ссылки на документацию по версии ЯБ а пользуешься версией РВИЖ...... и то и другое просто девяткой называешь, а ведь могу
быть и другие отличия кроме места под доппзу (и кстати уже ясно что они есть).

Схемы девяточные, что раздобыты и лежат на сайте тоже не покрывают всех вариантов.

Макеткой почему-то конструкторы агата называют версию разводки платы (ну и я так пишу), в твоем случае она
вытравлена на обратной стороне платы и скорее всего РВИЖ 758727.020 но надо бы глянуть. Как я понимаю в ваших
краях пользовали только материнки РВИЖ (это ЗЭМЗ).

ГК говорит что были макетки без этой фичи, у меня есть основания ему доверять.


полагаю, что наши "передирая" с яблока не исключили возможность Васика в ПЗУ, просто не довели дело до конца ввиду дороговизны чипов.


Я то всегда наивно думал что девятка просто умеет аппаратно эпл эмулировать (конфигурируя себя в много более примитивный режим) а не то что ты пишешь :)
Ведь все что касается эпл это все таки доп опции. Но в любом случае интересно из какого места эпла "передрано" :
- Концепция "эмулятора ПЗУ" (фактически - ОЗУ с блокировкой записи) появившаяся в седьмом Агате и значительно расширенная в девятом Агате до сегментной модели памяти
- Изящный дисплейный контроллер
- Еще куча всего включая контроллер флопа840
В каком месте элп хотя бы пахнет этим?

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

Это все лирика, хорошо бы вот проверки на реале, как я просил.

LeoN65816
09.10.2016, 00:35
в твоем случае она вытравлена на обратной стороне платы и скорее всего РВИЖ 758727.020 но надо бы глянуть.
Точно, так и есть.


Расскажи подробнее об этом
Предположение основано на факте существования платы процессора с 6 ПЗУшками для семерки и экстраполировано на девятку.


а то мне хотят прошивку с тестами (этакий биос) заводскую прислать
Очень интересно.


Это все лирика, хорошо бы вот проверки на реале, как я просил.
Дык, на видео видно же. Что мне еще проверять?

GARNIZON
09.10.2016, 00:50
основано на факте существования платы процессора с 6 ПЗУшками для семерки и экстраполировано на девятку.

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


Очень интересно

Сам жду, утверждают что первые версии теста памяти лисина были именно в пзушке такой.


Дык, на видео видно же. Что мне еще проверять?

Да, это спасибо, смотрел. Я имел в виду что может еще кто-то проверку проведет. У меня вот была какая-то древняя девятка, забыл кому подарил, вот её бы проверить.

sintech
09.10.2016, 11:11
У меня отображается одно и тоже.
http://radikall.org/images/2016/10/09/5bb36a7e4d1e48416c0a25441a27f347.md.jpg (http://radikall.org/image/jx6)

Плата ЯБ 3.089.026 (ЯБ 7.104.330)

LeoN65816
10.10.2016, 18:49
В первый пост добавил для Игоря осциллограммы сигналов.

Sergei Frolov
10.10.2016, 20:39
http://storage6.static.itmages.ru/i/16/1010/h_1476121179_5745420_618a5bc93b.jpg
http://storage6.static.itmages.ru/i/16/1010/h_1476121179_4898899_80bde5344a.jpg

Santechnik
03.11.2016, 10:56
Сейчас я разбираюсь с таймингами Агата-7 для своего проекта на Retrobyte. Курю Мымрина и заводские схемы. Разобрался с IRQ сигналом и хочу поделиться информацией если кому-то интересно. Итак, как многие уже знают, видео сигналы генерируются кварцем 10.5MHz, который делится на два. Получаем 5.25MHz. Одна строка длится 64мкс, что означает, что она содержит в себе 336 пикселей (64 / (1 / 5.25) = 336). Из них используются 256, а остальные приходятся на гашение и возврат луча.
Теперь ближе к вопросу. Счетчик строк представляет собой 9-ти битный счетчик, выполненный на двух микросхемах К555ИЕ7(D51 и D52). Счетчик сбрасывается в ноль по достижении 312 строки. Сигнал вертикальной синхронизации берется с девятого бита счетчика, который становится единицей, когда счетчик достигает значения 256 (257-ая строка) - (b'1 0000 0000). Это конец видимой области. Этот же счетчик используется для генерации сигнала IRQ. При этом используется его пятый бит, что означает, что он меняет свой знак каждые 16 строк. Таким образом, в течение первых 16 строк IRQ сигнал 0. Далее, при строках 17-32 он 1. И так далее. Так как каждая строка длится ровно 64мкс, то получается, что длительность каждого нуля и единицы равна 64мкс * 16 = 1.024мс.
За 256 видимых строк мы получаем восемь нулей и восемь единиц этого сигнала одинаковой продолжительности. Далее строки уходят в невидимую область. Сигнал IRQ девятый раз за кадр становится нулем (строки 257-272), потом девятый раз за кадр становится единицей (строки 273-288), затем десятый раз за кадр становится нулем (строки 289-304), а вот на десятую единицу остается только 8 строк (305-312) вместо 16, после чего счетчик сбрасывается, начинается следующий кадр и IRQ сигнал опять становится нулем. Поэтому десятая (последняя) единица IRQ каждого кадра только половинной длины - 0.512мс.
Это и подтверждается измерениями уважаемого GARNIZON, с уточнениями длительности (его замеры показали 1.05мс вместо 1.024мс) и синхронизацией с кадровой разверткой (IRQ ноль первые 16 строк и "короткая" единица в самом конце кадра).

LeoN65816
19.03.2017, 11:35
То есть на семерке nIRQ начинается в первой растровой строке каждой четвертой текстовой строки? Значит 9 импульсов 500 Гц и десятый (по периоду) короче.
А на девятке начинается в первой растровой строке каждой текстовой строки? Значит 39 импульсов 1.95 КГц (312 строк растра / 8 строк в символе).
Верно?

Update: Добавил осциллограмму: IRQ в 39 раз чаще NMI...