Page 33 of 91

Re: "Ночные" сборки KolibriOS

Posted: Sun Oct 02, 2011 12:53 am
by Mario
С запуском программы разобрался. Оказалось /sys/drivers/VMODE.MDR был упакован в KPCK и естественно не распакованный код работать не умеет, поскольку загружается он уникальным способом и был написан за долго до того, как в Колибри появилась поддержка драйверов и библиотек. Осталось разобраться в какой ревизии был сломан собственно сам драйвер.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:00 pm
by Mario
Таки было сломано в ревизии 1260, дальше поправлено в следующих ревизиях, но видимо не все учтено. Мои попытки допилить не увенчались успехом.

Еще минус что сам драйвер vmode.asm нужно причесывать к текущему ядру, поскольку там наблюдаются указатели вида:
Spoiler:

Code: Select all

      mov eax,[OS_BASE+0FE00h]
      mov ebx,[OS_BASE+0FE04h]
...
      mov esi,OS_BASE+010000h
...
      cmp esi,OS_BASE+30000h
...
Проще этот код выбросить, как и нестандартную загрузку драйвера. Как и предлагал Serge.

Как альтернативу можно попробовать сделать выбор режимов, которые были при загрузке, через V86.

Однако у меня есть большие сомнения - будет ли это все работать на фоне будущих изменений ядра, связанных с внедрением USB (диски /bdX/X таки ломаются), APIC и прочего.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:24 pm
by Artyom
Уважаемый, Mario (Mario79), кому-нубудь было интересно как это сделано в win (videoprt.sys - для "почти" любой (S)VGA-совместимой системы с возможность настройки V-Refresh). В Lin используется похожая схема, но для ограниченного количества оборудования.
И ещё вопрос: "Ещё одна модель ядра будет?"

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:27 pm
by Serge
Сломали два года назад. Очень актуальный драйвер.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:34 pm
by Artyom
Serge wrote:Сломали два года назад. Очень актуальный драйвер.
Ссылку выложишь?
Думаю будет интересно всем.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:36 pm
by Serge
Я про vmode.mdr

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:41 pm
by Mario
Artyom wrote:как это сделано в win (videoprt.sys - для "почти" любой (S)VGA-совместимой системы с возможность настройки V-Refresh). В Lin используется похожая схема, но для ограниченного количества оборудования.
Процитирую автора этой фичи:
Spoiler:

Code: Select all

Vertical Refresh Rater 

Версия 2.0

Copyright (C) 2003, Trans


Text Version 1.1 (02.08.03)

Win text (cp1251).  (DOS codepage text - see down.)
-------------------------------------------------------------------------------

Содержание:
1. Зачем это надо?
2. Установка.
3. Использование.
4. Вопросы и ответы.
5. Поддержка.

1. Зачем это надо?
---------------------
Проблема "60 Гц" очень остро встает перед пользователями MeOS в современных условиях.
Как правило, большинство современных компьтеров комплектуется 17 дюймовыми 
мониторами (все что написано ниже крайне не актуально для владельцев ЖК мониторов).
Если на 14 или 15 дюймовом мониторе еще можно как то смриться с частотой вертикальной
развертки 60 Гц, то уже при 17 дюймовом мониторе это превращается в пытку. А про
больших размеров мониторы вообще говорить не хочется, т.к. это превращается почти
в слайд-шоу. Конечно же все выше сказанное относится к стандартному интерфейсу
VESA. Сразу хочу предупредить вопросы по поводу VESA 3.0 - да, интерфейс более
богатый по возможностям, но и в нем нет способа преключения видеорежима  при
работе процессора в защищенном режиме (режим V86 в MeOS не реализован !!!).

В связи с тем, что MeOS не умеет (еще не научили :) ) детектировать оборудование
компьютера при загрузке, устанавливаемый графический видеорежим имеет стандартную
частоту вертикальной развертки равную 60 Гц (!!!!!)
 
Программа является свободно распространяемой (FreeWare) и поставляется "Как есть...".
Автор не несет ответственности за возможный причиненный ущерб ( :) ).

!!!!!_Предупреждение_!!!!!:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! На текущий момент программа носит ЭКСПЕРИМЕНТАЛЬНЫЙ (!) характер, поэтому всегда   !
! остается вероятность порчи оборудования (т.е. монитора). Особенно это касается всех !
! тех, чей монитор не имеет защиты от перегрузок по частоте.                         !
! Для всех рискнувших - просьба -> Заполнить прилагающуюся информационную форму      !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2. Установка.
---------------
Извлечь файл VRR (исполняемый файл MeOS) из архива и поместить в корневой каталог 
диска C:\ (Fat32. В принципе, может быть любой католог)  или на загрузочную дискету
MeOS.


3. Использование.
--------------------
Файл VRR является стандарным исполняемым файлом операционной системы MeOS, который
можно запустить на исполнение, например, через SYSTREE или MASH.  

После появления окна программы, будет отображено текущее разрешение и таблица
возможных режимов и частот вертикальной развертки для них. К сожалению, разверток
пока очень мало (похоже на то, это очень крутой секрет или же этим никто в серьез
не занимался ввиду отпугивающей сложности. Во всяком случае в сети крайне мало
информации по этому поводу и по большей части приходится догадываться о положении
дел). 

  Выбор  и установка видорежима
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Видоережим с интересующей частотой можно выбрать _только_ (!!!!!) с помощью 
цифровых клавиш: 1, 2, 3, 4, 5. Сначало нужно выбрать разрешение, а затем
частоту. Каждый выбор сопровождается индикацией на экране. Для установления 
выбранного видеорежима нужно нажать клавишу 'Enter' или кнопку 'Ok'. После перехода
в выбранный видеорежим у вас есть 13 секунд выбора. Можно ничего не делать и
через это время вернетесь в исходный видеорежим, а можно нажать пару раз какую-
-нибудь клавишу или кликнуть пару раз по "остаткам" (артефактам) исходного окна
программы и зафиксировать выбор. Размеры окна по горизотали можно регулировать 
кнопками "Право\Лево" или клавишами "+\-". 
Для корректировки выбора используйте кнопку "Cancel".

В программе реализовано принудительное возвращение в исходный видеорежим с частотой
60 Гц с помощью кнопки "Default". А так же можете вернуться в последний рабочий
режим с помощью кнопки "Return" или клавиши 'r'.

Пример:
Установлен режим 1024х768 при 60 Гц. Нужно 800х600 при 95 Гц.
Действия: нажать '3', затем '1' и далее клавишу "Enter" или кнопку "Ok". После перехода
в выбранный видеорежим кликаем пару раз на "остатка" (или том месте где было) окна.
Далее при необходимости корректируем размер экрана по горизонтали с помощью кнопок
"Право\Лево"


4. Вопросы и ответы.
------------------------

5. Поддержка.
----------------
Все вопросы, замечания и пожелания Вы можете направить автору по следующим адресам:

                   transafe@rambler.ru
                   transafe@chat.ru
                   trans397@yahoo.com

Пользуйтесь на здоровье!
Trans.
Следовательно метод очень не универсальный, не актуральный для большинства оборудования и в некоторых случаях способный сжечь оборудование, либо привести к его преждевременному износу. У меня кстати так и случилось в конечном счете - монитор 17 дюймовый сдох за два года, выгорел выходной каскад строчной развертки. Я его потом отремонтировал, но получилось криво - заменил транзисторы на подобные российского производства, ну и не совсем в режиме все функционировало, а родных компонентов для него не смог найти.
Artyom wrote:И ещё вопрос: "Ещё одна модель ядра будет?"
Собственно не понял смысла вопроса. Почему был сделан такой вывод вообще?

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 4:46 pm
by Mario
Serge wrote:Сломали два года назад. Очень актуальный драйвер.
Я уже приступил к демонтажу, но если честно странно слышать от тебя такое. Ты же сам тоже ковыряешь ATI и должен ратовать за расширение функционала.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 5:12 pm
by Artyom
Mario wrote: Однако у меня есть большие сомнения - будет ли это все работать на фоне будущих изменений ядра, связанных с внедрением USB (диски /bdX/X таки ломаются), APIC и прочего.
Я про этот текст.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 5:13 pm
by Mario
Зачем? Давно уже режим V86 в ядре реализован. Просто возникли сомнения не будет ли это мартышкин труд.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 5:25 pm
by Serge
Mario
Я за расширение функционала, но специализированными драйверами.
Мой 17" CRT тоже быстро сдох. Думаю что большое количество перезагрузок плохо на него подействовало.

Re: "Ночные" сборки KolibriOS

Posted: Mon Oct 03, 2011 6:15 pm
by SoUrcerer
Неплохо будет из docpack убрать материалы по VRR, если и VRR тоже не будет.
Еще предлагаю запускать @panel после icon. При загрузке, если нажать на клавишу super (что я делаю постоянно по неведомым мне причинам), есть очень ненулевая вероятность запустить menu раньше icon. Это выглядит печально, как глюк.

Re: "Ночные" сборки KolibriOS

Posted: Tue Oct 04, 2011 2:27 pm
by Mario
VRR из DOCKPACK я убрал в ревизии 2258, но я заметил что руководство по FASM старое, надо его обновить. Однако у нас есть русский перевод документации по FASM 1.64, да устарело, но по русски. Имеет смысл в русскую сборку положить перевод или все же везде положить английскую, но свежую? Сам FASM по идее тоже надо обновлять, но там могут быть тонкости с правкой кода (к примеру написание макросов иногда меняется), чтобы не наступать на грабли пока не трогаю.

Re: "Ночные" сборки KolibriOS

Posted: Tue Oct 04, 2011 3:24 pm
by Serge
Лучше свежую аглицкую.

Re: "Ночные" сборки KolibriOS

Posted: Tue Oct 04, 2011 4:05 pm
by Mario
Чего-то фигня какая-то const.inc, мало того что с memmap.inc не соотносится, так еще с 1941 ревизии:
Spoiler:

Code: Select all

BOOT_VAR            equ (OS_BASE+0x02f0000)
...
BOOT_VAR            equ (OS_BASE+0x0340000)
Прямо как:
Spoiler:
Так, у нас М танков. Нет, М мало, пусть будет N танков...
Зачем потребовалось переносить BOOT_VAR, оставлять еще одну дырку в памяти на 32 Кб, потом сдвигать еще на 16 кб, оставляя еще одну дырку - мне совершенно не понятно. Потеря 48 Кб, конечно не фатальна, но зачем?