Eee PC 701
-
Работай, пока ноут не вырубится... или две сопли в батарейный отсек, и на них тестер китайский, в качестве вольтметра...*****:
;дух машины, мой бубен сильнее твоей тупости
*****:
Прочитал и непонял. Разрешение в Kolibri 1024х600 поддерживается или нет? Хотел её ставить на нетбук.
Именно такое разрешение - вряд ли, другое дело, что можно подобрать другое - стандартное, которое на конкретной модели нетбука будет смотреться более-менее приемлемо (с натяжкой, конечно).
Спасибо! Буду думать.
Assembler
У меня субноут RoverBook NEO U800 (описание тут и тут) и для Vesa поддерживается только 800*600. Хотя режим и устанавливается, но монитор аппаратно отображает только 800*480. Я вышел из такой ситуации программно ограничив область отрисовки экрана. Включив в код ядра следующий кусок:
Этот код вставлен в файл ядра kernel.asm начинеся со строки номер 356.
Соответсвенно если у тебя в синем экране загрузки Колибри показывается выбор разрешения 1024*768, то применив фикс ты сможешь получить искомое 1024х600. В твоем случае код будет такой:
Разумеется все это актуально, только если в Vesa есть режим 1024*768.
У меня субноут RoverBook NEO U800 (описание тут и тут) и для Vesa поддерживается только 800*600. Хотя режим и устанавливается, но монитор аппаратно отображает только 800*480. Я вышел из такой ситуации программно ограничив область отрисовки экрана. Включив в код ядра следующий кусок:
Code: Select all
movzx eax,word [BOOT_VAR+0x900C] ; Y max
;start fix for U800L
cmp eax,600
jne @f
mov eax,480
@@:
;end fix for U800L
dec eax
mov [Screen_Max_Y],eax
Соответсвенно если у тебя в синем экране загрузки Колибри показывается выбор разрешения 1024*768, то применив фикс ты сможешь получить искомое 1024х600. В твоем случае код будет такой:
Code: Select all
movzx eax,word [BOOT_VAR+0x900C] ; Y max
;start fix for U800L
cmp eax,768
jne @f
mov eax,600
@@:
;end fix for U800L
dec eax
mov [Screen_Max_Y],eax
Спасибо за обзор нетбука!
В Vesa есть режим 1024х768. Приведённый твой код мне понятен. То есть тогда у меня будет идти обрезание 768 до 600, или это просто будет реальные 600, на которые система будет расчитывать, при выводе остального на экран. Непонимаю.
Только перед твоим постом уже отказался от покупки нетбука, теперь передумал опять .
Вот только с кодом чуть разберусь, и можно попробывать под нетбучное разрешение сделать .
В Vesa есть режим 1024х768. Приведённый твой код мне понятен. То есть тогда у меня будет идти обрезание 768 до 600, или это просто будет реальные 600, на которые система будет расчитывать, при выводе остального на экран. Непонимаю.
Только перед твоим постом уже отказался от покупки нетбука, теперь передумал опять .
Вот только с кодом чуть разберусь, и можно попробывать под нетбучное разрешение сделать .
Assembler
Видеокарта устанавливает режим 1024*768, и Flat Panel (экран субноута) его понимает, но отображает из него только верхние 600 строк. Код который я привел просто устанавливает ограничение для Колибри - ниже 600-й строки не отрисовывать, потому что их все равно не видно.
Тебе нужно взять исходники ядра http://kolibrios.org/?p=Download
Вставить этот кусок кода. Скомпилировать ядро в Fasm. И заменить файл kernel.mnt в образе Kolibri.img
Под виндой есть программа WinImage, под Linux образ можно смонтировать в файловую систему.
Если не хватает места (оригинальное ядро сжато программой kerpack), то удали в Games или Demos что-нибудь ненужное.
Видеокарта устанавливает режим 1024*768, и Flat Panel (экран субноута) его понимает, но отображает из него только верхние 600 строк. Код который я привел просто устанавливает ограничение для Колибри - ниже 600-й строки не отрисовывать, потому что их все равно не видно.
Тебе нужно взять исходники ядра http://kolibrios.org/?p=Download
Вставить этот кусок кода. Скомпилировать ядро в Fasm. И заменить файл kernel.mnt в образе Kolibri.img
Под виндой есть программа WinImage, под Linux образ можно смонтировать в файловую систему.
Если не хватает места (оригинальное ядро сжато программой kerpack), то удали в Games или Demos что-нибудь ненужное.
Ага, но ведь на нижней строке находится панель задач, "я имел ввиду как у виндовс", то получается она тоже будет отрезана. И как тогда системой управлять. Да, задачка однако.
Все будет как надо, в том числе и панель задач. Операциооная ситема ниже 600-й строки рисовать не будет - Ничего! Не будет рисовать даже фоновую картинку ниже 600-й строки. Потому что все что ниже, все равно не видно пользователю.Mario wrote:Код который я привел просто устанавливает ограничение для Колибри - ниже 600-й строки не отрисовывать, потому что их все равно не видно.
З.Ы. Если тебя напрягает самого сделать могу скидать сам, только ты сначала субноут купи.
Last edited by Mario on Mon Jul 20, 2009 11:35 am, edited 1 time in total.
Код, приведенный выше для "обрезки" экрана, не приведет к не отображению панели задач. Т.к. это код говорит ОС Колибри, что бы использовать для формирования рабочей области только 600 строк.
Вот теперь понятно. Будет просто масштабирование экрана до разрешения 1024х600. Что меня вполне устраивает.Теперь осталось нетбук купить. Спасибо Вам!
Ты так и не понял. Это не масштабирование!
При масштабировании берется вся картинка 1024*768 и конвертируется в 1024*600. при этом будут искажения в изоражении.
Данный кусок кода просто приводит к урезанию используемой область экрана, раз ее все равно не видно. Если такое ядро запустить на обычном компьютере, где отображается 1024*768, то нижние 168 строк просто будут черные, потому что туда отрисовка производиться не будет вообще. Только в верхние 600 строк.
При масштабировании берется вся картинка 1024*768 и конвертируется в 1024*600. при этом будут искажения в изоражении.
Данный кусок кода просто приводит к урезанию используемой область экрана, раз ее все равно не видно. Если такое ядро запустить на обычном компьютере, где отображается 1024*768, то нижние 168 строк просто будут черные, потому что туда отрисовка производиться не будет вообще. Только в верхние 600 строк.
продолжу мысль Mario..
..и панель задач (та что с Пуском) будет над этой чернотой
..и панель задач (та что с Пуском) будет над этой чернотой
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
У меня это неукладывается в голове. А к чему тогда эта "панель задач" привязывается? Не, надо мне тогда разбираться с кодом. Приведённый пример кода мне понятен. Буду учиться тогда дальше. Ещё раз Спасибо Всем!
Assembler
Панель вызывает функцию:
Описание:
Панель вызывает функцию:
Code: Select all
mcall 14
mov [screen_size],eax
Вычитает свою высоту из ysize и задает соответсвующие начальные координаты и размеры своего собственного окна в котором и отрисовывается.Функция 14 - получить размеры экрана.
Параметры:
eax = 14 - номер функции
Возвращаемое значение:
eax = [xsize]*65536 + [ysize], где
xsize = x-координата правого нижнего угла экрана = размер по горизонтали - 1
ysize = y-координата правого нижнего угла экрана = размер по вертикали - 1
Who is online
Users browsing this forum: No registered users and 5 guests