Eee PC 701

Using Kolibri in embedded systems
  • Прочитал и непонял. Разрешение в Kolibri 1024х600 поддерживается или нет? Хотел её ставить на нетбук.
  • Именно такое разрешение - вряд ли, другое дело, что можно подобрать другое - стандартное, которое на конкретной модели нетбука будет смотреться более-менее приемлемо (с натяжкой, конечно).
  • Спасибо! Буду думать.
  • Assembler
    У меня субноут 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
    
    Этот код вставлен в файл ядра kernel.asm начинеся со строки номер 356.
    Соответсвенно если у тебя в синем экране загрузки Колибри показывается выбор разрешения 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.
  • Спасибо за обзор нетбука!
    В 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 что-нибудь ненужное.
  • Ага, но ведь на нижней строке находится панель задач, "я имел ввиду как у виндовс", то получается она тоже будет отрезана. И как тогда системой управлять. Да, задачка однако.
  • Mario wrote:Код который я привел просто устанавливает ограничение для Колибри - ниже 600-й строки не отрисовывать, потому что их все равно не видно.
    Все будет как надо, в том числе и панель задач. Операциооная ситема ниже 600-й строки рисовать не будет - Ничего! Не будет рисовать даже фоновую картинку ниже 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 строк.
  • продолжу мысль Mario..
    ..и панель задач (та что с Пуском) будет над этой чернотой
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • У меня это неукладывается в голове. А к чему тогда эта "панель задач" привязывается? Не, надо мне тогда разбираться с кодом. Приведённый пример кода мне понятен. Буду учиться тогда дальше. Ещё раз Спасибо Всем!
  • Assembler
    Панель вызывает функцию:

    Code: Select all

    	mcall	14
    	mov	[screen_size],eax
    
    Описание:
    Функция 14 - получить размеры экрана.
    Параметры:
    eax = 14 - номер функции
    Возвращаемое значение:
    eax = [xsize]*65536 + [ysize], где
    xsize = x-координата правого нижнего угла экрана = размер по горизонтали - 1
    ysize = y-координата правого нижнего угла экрана = размер по вертикали - 1
    Вычитает свою высоту из ysize и задает соответсвующие начальные координаты и размеры своего собственного окна в котором и отрисовывается.
  • Who is online

    Users browsing this forum: No registered users and 4 guests