Управление монитором через видеовход

Тема в разделе "WASM.WIN32", создана пользователем UKY, 2 сен 2004.

  1. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    Здравствуйте, помогите пожалуйста, вся надежда только на вас...

    Хотелось бы узнать, как можно управлять монитором через видеовыход (Ну, менять яркость/контрастность на мониторе). Система: виндовс.

    (Проблемма состоит в том, что купил монитор, а он собака без кнопочек, регулируется всё программно, а программа в свою очередь тормознутая, так как страннова-то написана...)



    В общем, если кто знает, то хотелось бы сделать аналог MagicTune. Пытался эту прогу дисассемблировать, отлаживать и другие разные страшные вещи делать, но ничего не удалось, так как я в асме не настолько силён :dntknw: Эта прога запакована и работает как-то криво, постоянно обращаясь к другим библиотекам, и, что самое смешное, весь её внешний вид - простая веб-страничка со скриптами, которая становится "полноценной" программой через специальную библиотеку... В общем, написана так, что фиг разберёшься... %(



    Если не знаете, как это делать, то подскажите, хотябы на какие WinAPI можно попробовать бряки ставить, чтобы хоть что-нибудь получилось... или ссылочку на текст про то, как можно извращаться над монитором через видео-вход :)

    Огромное спасибо всем откликнувшимся.
     
  2. rsrc

    rsrc New Member

    Публикаций:
    0
    Регистрация:
    4 май 2004
    Сообщения:
    24
    Адрес:
    Russia
    С монитором напрямую работать опасно! Можно без него остаться или с ним, но он уже будет в качестве мебели :)
     
  3. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    посмотри Кулакова. любое издание. там это есть.
     
  4. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    тока там напрямую к портам.. ну тогда почитай еще статьи Four-F'а - делай драйвер и вперед!
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    plext0r



    Ты совсем не про то. Драйвер меняет настройки в компьютере , а ему надо менять внутренние настройки монитора - они сидят в EEProm монитора. MagicTune делает это для мониторов фирмы Самсунг. У других фирм протокол обмена наверняка другой. Тебе могут помочь только электронщики - они обычно занимаются такими вещами при ремонте мониторов.
     
  6. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    rsrc

    Почему опасно? Я разве могу по-случайности послать ему комманду самоуничтожения? :) А мебели мне и так хватает ;)



    plext0r

    Кулакова я 2 недели назад в инете искал, но не нашёл :dntknw:



    (я, правда и не знаю, есть он там или нет :) ). Если у кого-нибудь есть, то может прислать. Буду премного благодарен :)



    valterg

    А как мне могут помочь электронщики? Я думал только суперские программисты как вы... ;)
     
  7. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    valterg

    Драйвер меняет настройки в компьютере

    странная фраза.. :) мокрая очень.. но все равно я имел ввиду не то, о чем ты подумал.. я имел ввиду драйвер режима ядра, который бы позволял обращаться напрямую к портам монитора.. и как раз в Кулакове и описаны "внутренние настройки монитора", а не "настройки в компьютере".

    У других фирм протокол обмена наверняка другой.

    Все самое основное - стандартно для всех мониторов.

    UKY

    Кулакова я 2 недели назад в инете искал, но не нашёл :dntknw:

    его надо покупать! стоит недорого.
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    > Почему опасно? Я разве могу по-случайности послать ему

    > комманду самоуничтожения? :)

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



    теперь по поводу протоколов. да стандаритизованы они ;)набери в гугле Display Data Channel Command Interface и в первой же строчке запроса получишь ответ на свой вопрос.
     
  9. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    plext0r

    Вся проблемма в том, что я его не нашёл в своем городе, а в инете покупать боюсь: вдруг кинут... :dntknw:



    kaspersky

    Спасибо за фразу "Display Data Channel Command Interface" сейчас буду рыскать по инету ;)
     
  10. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    UKY

    сейчас буду рыскать по инету

    что там рыскать то? я ж написал, что основное все стандартно и это "стандратно" всё есть в Кулакове. просто бери и читай.

    а в инете покупать боюсь

    никто тебя не кинет.. да простит меня ... :) за рекламу, но раз запутался - вот тебе надежный магазин:

    www.books.ru :derisive:
     
  11. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    Огромное спасибо всем откликнувшимся. Намного легче искать то, что ты знаешь как называется, а не так "на угад" :)

    plext0r

    Спасибо за ссылку, будут деньги - обязательно возьму эту книженцию :)
     
  12. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    Вот. Нашёл, значит много инфы по всяким там DDC/DI, I2C и т.д., там столько умного написано %) Но я не знаю как этим всем пользоваться :dntknw:

    А именно: как писать и читать из портов? (если можно - маленький примерчик) А то я уже всяко-разно перепробовал. Дело дошло даже до int 10... (там тоже что-то можно было делать с I2C, но оказалось, что мой компутер этого не поддерживает :dntknw: )

    Для железа никогда ничего не писал, так что не судите строго :)
     
  13. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    UKY



    INT 10 обычно реализуется в БИОС-е видеокарты.

    Значит надо брать прогу для твоей карты, которая работает

    с DDC и искать какими INT10 она это делает.

    И пытаться понять какую информацию ей нужно подсунуть.

    Можно конечно и в порты залезть, но это тяжелее.
     
  14. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    valterg

    Дело в том, что эта прога НЕ использует ни int 10, ни порты 37h и 50h (ставил в софтайсе bpint 10, bpio 37, bpio 50, но бряки не работали...)

    А Вы не могли бы сказать, какими командами можно залазить в порты? (меня интересуют 37h и 50h) Если что, то я пока под Win98 всё пишу...
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    А что за порты такие 37 и 50. Это откуда?

    Это точно не порты видео-карты.

    ++++++++++++++++++++++++++

    Я вспомнил. В SVGA внутри есть регистры.

    37 и 50 , видимо, их номера. Для чтения и записи

    в них используются порты видео-карты.
     
  16. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    UKY

    А именно: как писать и читать из портов?

    хм.. мне кажется вам рановато "управлять монитором через видеовход".. создайте отдельный тред и поспрашивайте как и что делается!
     
  17. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    valterg

    На вумных сайтах написана такая умная вестч :)

    "The DDC bus is nothing else than an I2C bus.

    DDC2 informations, like monitor supported refresh rates (EDID), are transmitted using the I2C address 0x50.

    DDC/CI packets are transmitted using the I2C address 0x37."

    Взято с http://www.boichat.ch/nicolas/ddcci/specs.html

    Ну, я сразу подумал, что надо туда стучаться... 8)



    А вот, кстати: монитор работает пока через аналоговый вход, а когда я подключю в цифровой - порты поменяются?
     
  18. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    plext0r

    Ну, а когда-то же надо начинать... А то просто так сидеть и ничего умного не делать скучно :)

    А какой отдельный тред? Это разве не отдельный?



    Всё, я уже нашёл, как читать и писать в порты... Только я не знаю, это те порты или есть ещё какие-то другие? %) Я так понимаю, что надо использовать комманды in и out, но я, наверное, что-то не то делаю, и они возвращают мне всякую белеберду :dntknw:



    И ещё один вопрос: Под Win98 эти команды работают в 3-ем кольце защиты? (или как там это называется :) )
     
  19. UKY

    UKY New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2004
    Сообщения:
    14
    Люди, скажите, пожалуйста, как общаться с I2C, а то я уже скоро с ума сойду!!! Я понял, как отправлять пакеты DDC, но не могу понять, как отправить START/STOP биты в I2C.

    ПОМОГИТЕ, ПОЖАЛУЙСТА!!!!!!

    Я пишу так:

    mov eax, 6E518201h

    out 37h, eax



    mov ah, 10h

    mov al, 6Eh xor 51h xor 82h xor 01h xor 10h

    shl eax, 16

    out 37h, eax



    invoke Sleep, 30



    in eax, 37h

    mov dword ptr p37, eax



    invoke wsprintf, addr buf,addr Num,p37

    invoke MessageBox, NULL,addr buf,addr Num,MB_OK

    И у меня всегда выводится 0x000000FF.

    Что делать?!?
     
  20. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105


    А надо было прочитать про I2C.

    Об"ясняю : I2C - это протокол для нескольких устройств

    висящих на одной веревке(точнее веревок 2 вроде).

    Чтобы их не перепутали каждое устройство имеет свой адрес. 50 и 37 - это адреса. Адрес устройства передается

    в первом байте. Старт передается путем задания

    на двух веревках 1 и чтением их. Если они в нуле

    ( уже кто-то захватил шину ), то выход - иначе сами сбрасываем их в ноль.

    Затем идет передача байта, запрос ответа и т.д.

    и стоп-сигнал. Собственно протокол я не очень точно

    знаю, т.к. у меня готовая программа на Си была.

    Моя задача была засунуть правильный адрес устройства

    и байты данных.

    В твоем случае все тяжелее, т.к. на прямую веревки, наверное недоступны ?! Если доступны, то никаких проблем, давай ссылку на доки, как работать с I2C и я переделаю программу под твой случай....

    Ну уж никак там не может быть out 37h, eax

    и in.......

    Боюсь правда, что ты в своих поисках документации,

    пока на пол-пути. I2C c монитора приходит в видео-карту,

    но как через порты видео-карты или лучше через INT 10

    туда попасть ?!