"Ночные" сборки KolibriOS
-
С запуском программы разобрался. Оказалось /sys/drivers/VMODE.MDR был упакован в KPCK и естественно не распакованный код работать не умеет, поскольку загружается он уникальным способом и был написан за долго до того, как в Колибри появилась поддержка драйверов и библиотек. Осталось разобраться в какой ревизии был сломан собственно сам драйвер.
Таки было сломано в ревизии 1260, дальше поправлено в следующих ревизиях, но видимо не все учтено. Мои попытки допилить не увенчались успехом.
Еще минус что сам драйвер vmode.asm нужно причесывать к текущему ядру, поскольку там наблюдаются указатели вида:
Проще этот код выбросить, как и нестандартную загрузку драйвера. Как и предлагал Serge.
Как альтернативу можно попробовать сделать выбор режимов, которые были при загрузке, через V86.
Однако у меня есть большие сомнения - будет ли это все работать на фоне будущих изменений ядра, связанных с внедрением USB (диски /bdX/X таки ломаются), APIC и прочего.
Еще минус что сам драйвер 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
...
Как альтернативу можно попробовать сделать выбор режимов, которые были при загрузке, через V86.
Однако у меня есть большие сомнения - будет ли это все работать на фоне будущих изменений ядра, связанных с внедрением USB (диски /bdX/X таки ломаются), APIC и прочего.
Уважаемый, Mario (Mario79), кому-нубудь было интересно как это сделано в win (videoprt.sys - для "почти" любой (S)VGA-совместимой системы с возможность настройки V-Refresh). В Lin используется похожая схема, но для ограниченного количества оборудования.
И ещё вопрос: "Ещё одна модель ядра будет?"
И ещё вопрос: "Ещё одна модель ядра будет?"
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Сломали два года назад. Очень актуальный драйвер.
Ссылку выложишь?Serge wrote:Сломали два года назад. Очень актуальный драйвер.
Думаю будет интересно всем.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Я про vmode.mdr
Процитирую автора этой фичи: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.
Собственно не понял смысла вопроса. Почему был сделан такой вывод вообще?Artyom wrote:И ещё вопрос: "Ещё одна модель ядра будет?"
Я уже приступил к демонтажу, но если честно странно слышать от тебя такое. Ты же сам тоже ковыряешь ATI и должен ратовать за расширение функционала.Serge wrote:Сломали два года назад. Очень актуальный драйвер.
Я про этот текст.Mario wrote: Однако у меня есть большие сомнения - будет ли это все работать на фоне будущих изменений ядра, связанных с внедрением USB (диски /bdX/X таки ломаются), APIC и прочего.
Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
Зачем? Давно уже режим V86 в ядре реализован. Просто возникли сомнения не будет ли это мартышкин труд.
Mario
Я за расширение функционала, но специализированными драйверами.
Мой 17" CRT тоже быстро сдох. Думаю что большое количество перезагрузок плохо на него подействовало.
Я за расширение функционала, но специализированными драйверами.
Мой 17" CRT тоже быстро сдох. Думаю что большое количество перезагрузок плохо на него подействовало.
Неплохо будет из docpack убрать материалы по VRR, если и VRR тоже не будет.
Еще предлагаю запускать @panel после icon. При загрузке, если нажать на клавишу super (что я делаю постоянно по неведомым мне причинам), есть очень ненулевая вероятность запустить menu раньше icon. Это выглядит печально, как глюк.
Еще предлагаю запускать @panel после icon. При загрузке, если нажать на клавишу super (что я делаю постоянно по неведомым мне причинам), есть очень ненулевая вероятность запустить menu раньше icon. Это выглядит печально, как глюк.
VRR из DOCKPACK я убрал в ревизии 2258, но я заметил что руководство по FASM старое, надо его обновить. Однако у нас есть русский перевод документации по FASM 1.64, да устарело, но по русски. Имеет смысл в русскую сборку положить перевод или все же везде положить английскую, но свежую? Сам FASM по идее тоже надо обновлять, но там могут быть тонкости с правкой кода (к примеру написание макросов иногда меняется), чтобы не наступать на грабли пока не трогаю.
Лучше свежую аглицкую.
Чего-то фигня какая-то const.inc, мало того что с memmap.inc не соотносится, так еще с 1941 ревизии:
Прямо как:
Зачем потребовалось переносить BOOT_VAR, оставлять еще одну дырку в памяти на 32 Кб, потом сдвигать еще на 16 кб, оставляя еще одну дырку - мне совершенно не понятно. Потеря 48 Кб, конечно не фатальна, но зачем?
Spoiler:
Code: Select all
BOOT_VAR equ (OS_BASE+0x02f0000)
...
BOOT_VAR equ (OS_BASE+0x0340000)
Spoiler:
Так, у нас М танков. Нет, М мало, пусть будет N танков...
Who is online
Users browsing this forum: No registered users and 0 guests