Board.KolibriOS.org
https://board.kolibrios.org/

авто определение "безопасных" видео режимов
https://board.kolibrios.org/viewtopic.php?f=36&t=1998
Page 1 of 2

Author:  ilya [ Wed Jan 04, 2012 11:08 pm ]
Post subject:  авто определение "безопасных" видео режимов

Сделал авто определение VBE разрешений которые поддерживаются монитором. Увидите старый синий экранчик но по умолчанию будет либо VGA 640x480(пока) либо более высокое VBE которое поддерживается монитором.

Вертикальная частота не учитывается. Для этого обязательно наличие VBE3. Определение делается через int10h ax=4f15. Используются только standart & established timings.

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

Баги (не мои, а тех програмистов кто писал кашу bootcode.inc без коментариев):
1) прокрутка списка видео разрешений не работает
2) если пользоватся опциями (a),(b),(c) то может появится чёрный экран вместо десктопа. Как-то связано с размером кода. Я это "исправил" но может не до конца
3) возможно не работает запоминание разрешений

Усановка: скопируйте файлы из архива в папку kernel\trunk\boot\ ревизии 2332, компилируйте, запускайте. Всё с настойками по умолчанию

Поддержку VBE1.2 & ega/cga я удалил. Спросил здесь(viewtopic.php?f=36&t=1996) про vbe1.2. Вменяемого ответа не получил но настроение к vbe1.2 было негативное.

Attachments:
vbe-autodetect.7z [13.81 KiB]
Downloaded 174 times

Author:  Leency [ Wed Jan 04, 2012 11:43 pm ]
Post subject:  Re: авто определение "безопасных" видео режимов

Проверил в Qemu.

По-умолчанию стояло 640х480. Прокроутка не работает. Выставил 800ч600, нажал запомнить.
Выкключил машину. Включил.

На синем экране снова 640х480, но когда входишь в режимы выделен 800х600!!!!11 Притом прокрутка вверх работает!!! Значит не работает только вниз.

Бинарники ядра прилагаю (несжатые).

И ещё, объясните лаймеру дизайнеру простому человеку понятным языком какой профит с этой правки.

Attachments:
File comment: Скомпилированное ядро.
kernel.7z [76.71 KiB]
Downloaded 158 times

Author:  Mario [ Thu Jan 05, 2012 12:49 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

Имеет смысл объединить две темы - они прямо связаны решаемой проблемой.
Насчет комментариев - их наличие или отсутствие не является решающим вопросом. Есть хорошо, нет так все равно придется разбираться. В Колибри (в общем случае) принято давать меткам осмысленные имена и это часто помогает не смотря на отсутствие комментариев.

Протестирую на своих машинах и отпишусь.

З.Ы. Забавно, но когда я работал в "Прикладных технологиях" мне достаточно явно было сказано "Знаешь чем хороший программист отличается от просто программиста - он не задает лишних вопросов и не оправдывается, просто делает то что ему говорят". В тот момент у меня это вызывало удивление, но со временем начинаешь понимать скрытую часть логики. :lol:

Author:  Mario [ Thu Jan 05, 2012 2:24 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

Roverbook U800
При выборе всего один режим осмысленный:
Spoiler: Show
Attachment:
IMGP7666.JPG
IMGP7666.JPG [ 100.35 KiB | Viewed 4240 times ]

При движении вниз выбираются несуществующие режимы - мусор по большому счету.
При загрузке нетбук ресетнулся.

eBox-3300MX (Vortex86MX)
При выборе всего один режим осмысленный:
Spoiler: Show
Attachment:
IMGP7667.JPG
IMGP7667.JPG [ 75.88 KiB | Viewed 4240 times ]

При движении вниз выбираются несуществующие режимы - мусор по большому счету.
При загрузке система зависла выдав зеленую отрыжку:
Spoiler: Show
Attachment:
IMGP7672.JPG
IMGP7672.JPG [ 16.61 KiB | Viewed 4240 times ]


Результаты тестов неутешительны - код настолько сырой, что я бы на месте автора не стал выкладывать вообще для постороннего тестирования.
Текущую версию далее (у меня есть еще 3 физические машины разные) тестировать не имеет практической целесообразности.

Author:  ilya [ Thu Jan 05, 2012 2:55 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

Код который написал я вполне рабочий. Если есть по нему вопросы то можете задавать. Итеграция сырая.
Авто определение надо чтобы пользователью не пришлось самому выбирать разрешение. Нет, это не панацея потому как мы говори о bios.

Если у вас только 640x480 то значит код не нашёл LFB режимов. Правильный сособ их найти - установить lfb бит перед функцией ax=4f01. И незабывайте минимальная версия vbe2.
Прокрутка не должна работать. Лучше не трогать.

Если есть разные режимы в списке режимов то у вас есть vbe2. Но если выбран 640x480x0 то edid либо отсутствует либо нету standart & established полей структуры edid.

Leency, твой бинарник по твоему описанию работает как следует. У меня он тоже работает. Запоминание не работает.

Mario wrote:
Имеет смысл объединить две темы - они прямо связаны решаемой проблемой.
Насчет комментариев - их наличие или отсутствие не является решающим вопросом. Есть хорошо, нет так все равно придется разбираться. В Колибри (в общем случае) принято давать меткам осмысленные имена и это часто помогает не смотря на отсутствие комментариев.

Протестирую на своих машинах и отпишусь.

З.Ы. Забавно, но когда я работал в "Прикладных технологиях" мне достаточно явно было сказано "Знаешь чем хороший программист отличается от просто программиста - он не задает лишних вопросов и не оправдывается, просто делает то что ему говорят". В тот момент у меня это вызывало удивление, но со временем начинаешь понимать скрытую часть логики. :lol:
В следущий раз говори по делу и прекрати оправдывться.

Roverbook U800
eBox-3300MX (Vortex86MX)
Mario, должно быть 640x480x0. Ты может неправильно собрал. Файл "bootvesa.asm" а не "bootvesa.inc". Или другие проблемы со сборкой.
EDIT: Пожалуйста пользуйся публично доступными скриптами а не своими личными.

Author:  Mario [ Thu Jan 05, 2012 7:02 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

С какого перепуга я оправдываюсь то? Я выразил свое мнение по предмету отмазок к выкладыванию сырого кода.
Quote:
Mario, должно быть 640x480x0. Ты может неправильно собрал. Файл "bootvesa.asm" а не "bootvesa.inc". Или другие проблемы со сборкой.

Я сделал ровно так как описано - ядро последнее с SVN, закинул файлы куда велено и скомпилировал. Пожал kpack в режиме сжатия ядра.

Author:  ilya [ Thu Jan 05, 2012 8:16 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

Mario wrote:
Пожал kpack в режиме сжатия ядра.
Это не есть настройки по умолчанию. Это дополнительный слой, дополнительные баги и дополнительные доки читать (которых я не нашёл).

Author:  SoUrcerer [ Thu Jan 05, 2012 12:37 pm ]
Post subject:  Re: авто определение "безопасных" видео режимов

ilya wrote:
Mario wrote:
Пожал kpack в режиме сжатия ядра.
Это не есть настройки по умолчанию. Это дополнительный слой, дополнительные баги и дополнительные доки читать (которых я не нашёл).

Нет-нет, уже лет пять ядро сжимается kpack всегда.

Author:  Mario [ Thu Jan 05, 2012 5:25 pm ]
Post subject:  Re: авто определение "безопасных" видео режимов

Вообще-то сжималось оно kerpack, а kpack я допилил несколько позже, что впрочем сути не меняет - пожатое ядро работает, а код выбора режимов безбожно сырой. Несжатое ядро показало все тот же результат. Обычное trunk ядро работает без проблем.

Author:  ilya [ Thu Jan 05, 2012 11:43 pm ]
Post subject:  Re: авто определение "безопасных" видео режимов

На этом сайте обычно принято начинать рассуждения с каких то идей которые как правило выливаются в одну болтовню. Я же начал с рабочего кода. Вам надо это авто определение или нет? Есть ли смысл продолжать дальше? Когда то на форуме читал что было бы неплохо.
Покачто вероятность 99% что не надо. Если передумаете постите сюда.

PS: Я личкой(private messages) не пользуюсь.

Author:  Элита [ Fri Jan 06, 2012 12:29 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

Все равно в конце концов авто определение будет востребованным, т.к. ОС хотят (и наверняка будут) пользоваться не только прогеры..
Да и по-современному это, нежели в ручную выбирать режимы..

Author:  Leency [ Fri Jan 06, 2012 1:22 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

ilya
Надо продлжать. Не обращай внимания на Марио - его обиде на мир нет предела. Ему когда-то пафосно сказали, что его проблемы никого не интересуют и теперь он думает что в праве это пафосно повторить, но уже здесь. Ведь у него есть опыт. Но ведь здесь нет начальников и подчинённых, так ведь.

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

Author:  art_zh [ Fri Jan 06, 2012 2:03 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

ilya
имхо ручной выбор видеорежима все-таки лучше, чем кривое автоопределение.

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

И еще пара правил хорошего тона:

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

Author:  Mario [ Fri Jan 06, 2012 6:39 am ]
Post subject:  Re: авто определение "безопасных" видео режимов

ilya
1. Да, надо -однако автор выкладывая код должен быть готов к обоснованной критике. Я в свое время также воспринимал в штыки любое замечание. Пока что код сырой и я выразил свое частное мнение о его сырости - ты имеешь полное право забить на мое частное мнение.
2. Посмотри лог SVN - я не только болтаю. За 8 лет участия так немножко код ковырял, совсем чуть чуть, иногда. :mrgreen:

Leency
Православные дизайнеры-программисты негодуют. :lol:

Author:  <Lrz> [ Wed Jan 11, 2012 7:24 pm ]
Post subject:  Re: авто определение "безопасных" видео режимов

Фактически я написал автоматическое определение экранов видеорежима, точнее взял ранние разработки Mike.dld + свои мысли и допилил до рабочего состояния. В различных вариантах видеокарт данные режимы реализованы совершенно по разному, только по этому была возможность выбора пользователем режима, т.к. после загрузки изменение режима затруднительно.

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/