Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm: Общие вопросы > видо карта |
Автор: Step 18.12.2002, 19:52 |
я знаю что видео карта через свои порты возвращает обратный ход луча, вот я думаю а нельзяли с помощь этого сигнала определить включин ли монитор или нет. Подскажите. |
Автор: Chingachguk 19.12.2002, 00:08 |
Ха ! Думаю, что вряд ли: питание моника - это напряжение на конденсаторах лучевой, а видеокарта рулит лучом безо всякой связи с этим напрчяжением... Хотя мысль интересная ! |
Автор: Step 19.12.2002, 18:25 |
Да но видео карта от куда принимает сигнал обратного хода, когда нет питания на лучевой - не должно быть и этого сигнала. Так что видать мне придется заняться долгими экспириментами. |
Автор: stab 2.1.2003, 00:59 |
В книге нашел вот чего, правда это под ДОС, но я думаю переделать можно: void WaitVert() { _asm { mov AX, 0h mov ES, AX mov DX, ES:[463h] add DL, 6 in AL, DX test AL, 8 jz wait_on wait_off: in AL, DX test AL, 8 jnz wait_off wait_on: in AL, DX test AL, 8 jz wait_on ; здесь операции, которые надо делать во время обратного хода луча } } поидее, когда нет обратного хода значит нет и питания и эта функции никогда не отработает если нет обр. хода, т.е. можно засечь время и посмотреть если в течение получаса ![]() Работать это скорее всего не будет т.к. монитор сам настраивается под синхроимпульсы видеокарты и карта не знает есть ли вообще монитор. ![]() |
Автор: ARTi 21.1.2003, 08:24 |
cully все это конечно хорошо и даже почти верно (в книжке описан общий случай), но оно действительно не будет работать. Дело в том, что синхроимпульс посылается самой видяхой монитору, а никак не наоборот! Поэтому обратный ход луча должен быть в любом случае, независимо от того, включен монитор или выключен. Такова логика работы. В VGA-регистрах CRT-контроллера есть даже такие, как начало/конец обратного хода луча по горизонтали/вертикали. А почти любая видяха становится VGA-совместимой, если переключиться в видеорежим 12h/13h. Сейчас вспомнил подтверждение этого факта. Мой эмуль делает нестандартный видеорежим ~50 Гц. Раньше, когда настройка CRT делалась криво, монитору это не нравилось и он постоянно перенастраивался на видеорежим. У меня даже спец. кнопка была - F12 ;) для переинициализации видеорежима, иначе монитор мог полчаса показывать черный экран. А еще раньше и этой кнопки не было, я просто выключал/включал монитор. Такое вот зло... Ну и вот, поскольку там почти все завязано именно на обратный ход луча (прерывания Speccy 50 Гц и все такое), то в момент выключения монитора, по вашей "гипотезе", должно было бы наблюдаться торможение или вообще подвисание эмуля/эмулируемой проги (проигрывание музона, например), чего на самом деле не происходит. Так что, дорогой step, отвечая на твой вопрос, скажу: нет, по обратному ходу луча невозможно определить, включен монитор или нет. |