Важная информация

User Tag List

Страница 62 из 174 ПерваяПервая ... 585960616263646566 ... ПоследняяПоследняя
Показано с 611 по 620 из 1740

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #611

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    К типу применяемых логических элементов.
    Это не имеет значение, т.к. они прошли через оптимизацию)


    Появились подробности точной работы горизонтального счетчика:

    Счетчик 10-разрядный. Плюс 11 разряд - это HBLANK (горизонтальный интервал гашения).
    При сбросе счетчик устанавливается в значение 0x280 (640), а HBLANK в '1'.
    Далее идет счет от 640 до 799, после чего счетчик обнуляется, и также обнуляется разряд HBLANK.
    Далее идет счет от 0 до 639, и все повторяется по кругу.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(22.06.2020), Elias(22.06.2020)

  2. #612

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Счетчик 10-разрядный. Плюс 11 разряд - это HBLANK (горизонтальный интервал гашения).
    При сбросе счетчик устанавливается в значение 0x280 (640), а HBLANK в '1'.
    Далее идет счет от 640 до 799, после чего счетчик обнуляется, и также обнуляется разряд HBLANK.
    Далее идет счет от 0 до 639, и все повторяется по кругу.
    Обалдеть! Это значит, что есть как минимум один компаратор для 799 или 800. А для 640 компаратор есть? Для установки HBLANK.

  3. #613

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию 1515ХМ1-136-Optimized - rev 29

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

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Обалдеть! Это значит, что есть как минимум один компаратор для 799 или 800. А для 640 компаратор есть? Для установки HBLANK.
    Полноразрядных компараторов там нет, но используются части схемы ускоренного переноса в том числе для определения перехода к значению 640, и для определения перехода к значению 800.

    Разряды счетчика такие:
    D0 - /PCLC_2
    D1 - /PCLC_4
    D2 - /PCLC_8
    D3 - /PCLC_16
    D4 - /PCLC_32
    D5 - /PCLC_64
    D6 - /PCLC_128
    D7 - /PCLC_256
    D8 - /PCLC_512
    D9 - /PCLC_1024

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    Alex_K(22.06.2020)

  4. #614

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Обалдеть! Это значит, что есть как минимум один компаратор для 799 или 800. А для 640 компаратор есть? Для установки HBLANK.
    Ну, для счёта до 780 достаточно сравнивать 4 бита при асинхронном сбросе счётчиков - сам так делаю у себя.
    А для 640 - ещё проще, всего-то 3 бита сравнивать.
    "Байт-48"

  5. #615

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию 1515ХМ1-136-Optimized - rev 31

    Разгадана загадка (хотя загадки никакой и не было) вертикального счетчика линий.

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

    У него есть три зоны счета. От 0..255, затем от 256 до 287, затем о 288 до 311.
    Первые две зоны можно условно обьединить в общую от 0..287. А во время счета от 288 до 311 генерируется сигнал VBlank.

    В общем, никаких секретных строк за пределами известного нам экрана (288 линий в высоту) нет.

    Эти 6 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(24.06.2020), anasana(24.06.2020), hobot(24.06.2020), Hunta(24.06.2020), nzeemin(24.06.2020), Ynicky(25.06.2020)

  6. #616

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    У него есть три зоны счета. От 0..255, затем от 256 до 287, затем о 288 до 311.
    Первые две зоны можно условно обьединить в общую от 0..287. А во время счета от 288 до 311 генерируется сигнал VBlank.

    В общем, никаких секретных строк за пределами известного нам экрана (288 линий в высоту) нет.
    Ну почему нету. Есть! На обратный ход по кадру, как и надо, приходится 24 линии. Здесь всё нормально. Но почему при чтении таблицы видеострок из ОЗУ не отображаются только первых девятнадцать видеострок, а не двадцать четыре? Из-за этого на видеотюнерах не видно пять верхних строк.
    Соответственно вопрос. В какой момент начинается сканирование таблицы видеострок, т.е. чтение с ячейки 0270? Понятное дело, что читать он её будет во время обратного хода по строке, но на строке с каким номером?

    Этот пользователь поблагодарил Alex_K за это полезное сообщение:

    hobot(24.06.2020)

  7. #616
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #617

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ну почему нету. Есть! На обратный ход по кадру, как и надо, приходится 24 линии. Здесь всё нормально. Но почему при чтении таблицы видеострок из ОЗУ не отображаются только первых девятнадцать видеострок, а не двадцать четыре? Из-за этого на видеотюнерах не видно пять верхних строк.
    Инициализация регистров, в том числе указателя на начало таблицы строк, происходит по событию EVNT.
    А одно из его условий, это число 292 в счетчике строк. А это как раз 4-я линия VBLANK.

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

    Чем отображение через видеотюнер отличается от изображения на обычном мониторе?

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

    Еще точнее будет так:

    1. Во время строк 291, 292, 293, генерируется некий сигнал, который подмешивается по XOR предположительно к сигналу HBLANK, и выводится все это на VSYN.
    2. Во время строки 292, и во время горизонтальной позиции 0..511 формируется сигнал EVNT (таймер 50Гц), по которому инициализируются все регистры.

    Ну и точная частота кадровой развертки - 50,080128205128205128205128205128Гц.
    А частота строчной развертки - 15625Гц.

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

    Теперь подробнее о VSYN:

    1. Во время всех строк, кроме 291, 292, 293, на этом выводе формируется импульс горизонтальной синхронизации начиная с горизонтальной позиции 673, и выключается в позиции 737 (как раз 5.12мкс, как положено по стандарту).
    2. Во время строк 291, 292, 293, на этом выводе формируется импульс вертикальной синхронизации, на который по XOR накладываются зачем-то два импульса горизонтальной синхронизации - первый включается в горизонтальной позиции 161, а выключается в позиции 225. А второй включается в позиции 673, и выключается в позиции 737.

    Второе условие выглядит странновато, поэтому его надо еще раз будет перепроверить.

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

    Не путать внутренние сигналы HBLANK и VBLANK, с внешними, подающимися на выход VSYN.
    Последний раз редактировалось Titus; 25.06.2020 в 02:17.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(25.06.2020), nzeemin(25.06.2020)

  9. #618

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Выборка элементов из таблицы строк происходит во время позиции горизонтального счетчика 704..767 (64 такта пиксельклока).

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

    Эти 64 такта раскладываются на 8 фаз по 8 тактов, из которых:

    Для 4-хсловного элемента списка:

    Первые 4 фазы, если загружается регистр управления отображением:
    F0: Загружается младшая часть регистра CUR_CON (1-е слово регистра управления отображением)
    F1: Загружается старшая часть регистра CUR_CON (1-е слово регистра управления отображением)
    F2: Загружается младшая часть регистра DISP_CON (2-е слово регистра управления отображением)
    F3: Пустой цикл, загрузка идет в никуда

    Первые 4 фазы, если загружается регистр управления цветом:
    F0: Загружается младшая часть регистра COL_CON_1 (1-е слово регистра управления цветом)
    F1: Загружается старшая часть регистра COL_CON_1 (1-е слово регистра управления цветом)
    F2: Загружается младшая часть регистра COL_CON_2 (2-е слово регистра управления цветом)
    F3: Загружается старшая часть регистра COL_CON_2 (2-е слово регистра управления цветом)

    Последующие 4 фазы:
    F4: Загружается младшая часть регистра LINE_ADR (регистр адреса начала строки)
    F5: Загружается старшая часть регистра LINE_ADR (регистр адреса начала строки)
    F6: Загружается младшая часть регистра ENTRY_ADR (регистр адреса следующего элемента списка)
    F7: Загружается старшая часть регистра ENTRY_ADR (регистр адреса следующего элемента списка)


    Для 2-хсловного элемента списка все тоже самое, за исключением того, что в первые 4 фазы загрузка из памяти происходит в никуда.
    Последний раз редактировалось Titus; 09.08.2020 в 12:21.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Alex_K(25.06.2020), nzeemin(25.06.2020)

  10. #619

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Чем отображение через видеотюнер отличается от изображения на обычном мониторе?
    ТВ-тюнер анализирует видеосигнал, и на основе этого строит изображение. Соответственно с началом обратного хода по кадру он должен отсчитать 24 видеостроки, а следующие выводить. У меня ТВ-тюнер Beholder, он не выводит верхние четыре-пять строк. Такая же ситуация и у других форумчан, ТВ-тюнеры могут быть другими. В Beholder есть параметр синхронизации кадров - нормальный трекинг, быстрый трекинг и нет синхронизации. При отсутствии синхронизации программа ТВ-тюнера не следит за сигналом обратного хода по кадру, а просто выводит в двух полукадрах 576 линий из 625 линий. В этом случае возможно, что наверху нижняя часть кадра, а внизу - верхняя часть кадра, между частями - чёрный фон. Но изображение стоит, т.к. в двух полукадрах 625 линий. А в УКНЦ в двух полукадрах 624 линии, потому изображение медленно плывёт вверх. В плывущем изображении соответственно всё выводится.

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    nzeemin(25.06.2020), Titus(25.06.2020)

  11. #620

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Но изображение стоит, т.к. в двух полукадрах 625 линий. А в УКНЦ в двух полукадрах 624 линии
    Так сделано в большинстве видеорежимов для домашних компьютеров - отсутствие интерлейса (четное и нечетное поля одинаковые).

Страница 62 из 174 ПерваяПервая ... 585960616263646566 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •