Page 2 of 3

Re: Старенький компик

Posted: Tue Oct 16, 2007 6:32 pm
by HORROR
було включено... теперь выключил, получилось весьма прикольная картинка...
Черный экран разделенный панелью задач и все иконки в одной большой куче...
нацарапал утилитку для проверки VBE, определил, что ISA видяшка - VBE 1.0, потому её даже не пробовал...
S3 Visio требует обработки напильником....
Но вопрос в другом. Если при загрузке идет ссылка на режимы VBE 1.2, а они заточены под 16 битный режим....то я чего-то не допонимаю....или из VESA 1.2 берется информация о режиме?...
но реально нужная информация появляется только в VESA 2.0 (физический адрес видеобуффера для 32 разрядного режима). А из 1,2 можно высосать тоько доступность режима, второго окна и совместимость по регистрам с VGA///

Re: Старенький компик

Posted: Tue Oct 16, 2007 8:47 pm
by diamond
Черный экран разделенный панелью задач и все иконки в одной большой куче...
Кажется, такое получается, если не работает процедура переключения банков (а она в скомпилированном ядре работает только для определённых видеокарт).
Если при загрузке идет ссылка на режимы VBE 1.2, а они заточены под 16 битный режим....то я чего-то не допонимаю...
Для VESA Колибри умеет работать только в 24- и 32-битных видеорежимах. Для VBE 1.2 (режимы 5-8 загрузочного экрана) режимы выбраны так, что там всегда получается 24 бита (конкретно: режимы 0x112, 0x115, 0x118, 0x11B - таблица gr_table из data16.inc).

Re: Старенький компик

Posted: Wed Oct 17, 2007 11:21 pm
by HORROR
такс... чуствую пошло расхождение в понятиях...

попробую зайти по другому:

VESA 1.2 (и VBE соответсвенно) расчитаны на 16 битный режим...а КОС - 32....
т.е. как я понимаю - все процедуры (переключение банков, двигание окон (если оно нужно), управление монитором и т.д. и т.п.) пришлось переписывать заново ??? И всё это помещено в ядро???
Отсюда и проблемы с видеокарточками (коих каждый производитель загорбатил по своему)...

Если да, то IMHO сделано несколько неверно... (тут я ни начем не настаиваю и не прошу - писание ОС - доло осостроителей)
Если нет - то можно какнить поподробнее...и причем тогда здесь веса?

хотябы обзорно. А пока в исходники погляжу :)

Re: Старенький компик

Posted: Thu Oct 18, 2007 12:19 am
by Mario79
HORROR
VESA 1.2 (и VBE соответсвенно) расчитаны на 16 битный режим
Это собственное умозаключение? Или есть документация подтверждающая такие выводы?

Re: Старенький компик

Posted: Thu Oct 18, 2007 1:47 am
by Serge
HORROR
24-х битный цвет уже был на видеокартах, когда VESA 1.2 только разрабатывался.
Стандарт вообще к режиму мало привязан.

Re: Старенький компик

Posted: Fri Oct 19, 2007 11:11 am
by HORROR
Mario79 wrote: Это собственное умозаключение? Или есть документация подтверждающая такие выводы?
Во первых -
Я не настаиваю, а пытаюсь разобраться... вот и мучаю знающих людей, а ежели в меня ткнут приличной ссылкой (искал, ничто до конца не устроило) буду только благодарен.
Изд. "Диалог МИФИ" А.В. Фролов и Г.В.Фролов "Программирование видеоадаптеров" - эта книжка.
И еще Питер Абель (знаю, что устарело, но иногда помогает, уж больно толково все расписано).

Во вторых-
Физический 32 разрядный адрес возвращается по функции 4F01h начиная с реализации 2.0...
В третьих VBE - Vesa BIOS Extension.. что честно говоря весьма смущает... .

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

P.S. Времени мало, но буду гулить до последнего. Чегото мя зацепила ОсьКо :)

Re: Старенький компик

Posted: Fri Oct 19, 2007 1:04 pm
by Serge
HORROR

Всё правильно. В VESA1.2 видеопамять адресуется банками по 64 кб начиная с адреса 0хА0000. Потому что сделано это для совместимости с 16-ти битным 8086. На разрядность цвета это никак не влияет. У 3dfx цвет был только 16-бит у других были и 24 бита и 32.

Re: Старенький компик

Posted: Fri Oct 19, 2007 1:06 pm
by Mario79
HORROR
Во вторых-
Физический 32 разрядный адрес возвращается по функции 4F01h начиная с реализации 2.0...
В третьих VBE - Vesa BIOS Extension.. что честно говоря весьма смущает... .
Вот ты подумай внимательно!
Глубина цвета ну никак не связана с 16 битной или 32 битной адресацией. Даже при 8 битной адресации можно сделать 32 битную или большую глубину цвета. Просто обращаться к каждой точке придется как минимум в три захода.

Re: Старенький компик

Posted: Fri Oct 19, 2007 9:48 pm
by HORROR
такс.. опять в сторону, я не про глубину цвета, а про работу через окна, кои в каждой карточке переключаются по своему...
для чего собственно VBE и сделали (чтоб не програмить для каждой карточки кусок кода, а использовать прерывание 10h)...
Что обращаться надо в несколько заходов, да вычислять местоположение точки - это плавали (под DOS)...

Я о другом - карточки отличаются:
1)количеством окон (бывает 2 или 1), пусть юзаем одно.
2)процедурой зашитой в VBE по сдвиганию окна по мозгам карточки.
остальное нас пока не волнует....

теперь далее:

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

Для тех кто отвечает: еще раз повторяю -
есть чистый комп и диск (дискета, флэшка и т.д.) с инталяцией системы, но видеокарточка не хочет корректно работать... (не переключаются банки).... и ЧТО ДЕЛАТЬ?
другие системы ставятся и потом их можно бархатным напильничком и часовой кувалдочкой подрихтовать....
а тут?

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

Может я и не прав... но что-то тут не так...

P.S. Офтоп... Pascal под КОС не слишком сырой есть? ткните ссылкой на пакет...

Re: Старенький компик

Posted: Fri Oct 19, 2007 11:58 pm
by Mario79
HORROR
1. Можно сделать.
2. Количество готовых процедур ограничено.
3. Ты займешься или это так к ежикам в тумане?

Re: Старенький компик

Posted: Sat Oct 20, 2007 1:42 pm
by Hack_phoenix
Угу. Т.е. вообще, идеально тогда сразу на этапе загрузки определять оборудование и уже под это оборудование подгружать соответствующие драйвера. ИМХО, было бы правильнее. Я бы занялся, если бы количество мозгов соответствовало поставленной задаче, а так буду много думать (хотя чего-то и сделаю, наверное)...

Re: Старенький компик

Posted: Sat Oct 20, 2007 2:21 pm
by HORROR
Mario79
насчет сделать - когда (если) разберусь достаточно... пока с трудом. Последний раз в АСМ лазил годков 5 назад. основательно подзабыл.... щас освежаю...
Так что идея есть, если кому интересно - опишу чуть подробнее...
Но с самостоятельной реализацией придется погодить... пока мозги освежу, да с системкой поковыряюсь...

Ежели кто пособит (ссылкой там или советом) то заметно ускорится все это...

Re: Старенький компик

Posted: Sat Oct 20, 2007 7:43 pm
by andrew_programmer
HORROR

Среди вот этих чипов S3 карточек есть чип твоей карты ?

Code: Select all

static const char *s3_chipname[] =
{"911", "924", "801", "805", "928",
 "864", "964", "Trio32", "Trio64", "866", "868", "968", "Trio64V+"};
Если есть, то возможно написать драйвер для переключения страниц(банков) для твоей видеокарты.

Re: Старенький компик

Posted: Sun Oct 21, 2007 8:49 am
by bw
У меня, есть, кажется, Trio64. Так что смогу потестировать, если что.

..bw

Re: Старенький компик

Posted: Mon Nov 12, 2007 8:35 pm
by koka
Здравствуйте всем.
Заранее прошу прощения если не в тему,
просто нашёл Вашу ОС и попробывал, очень понравилась.
Но почему пишу в эту ветку?
А потому, что, увидел тему "Старенький комп".
На пне266 работает, а вот на брендовом стареньком
"Compaq Prolinea Net1/25s" (всё в "одном" там процессор 486DX66) и видеокарта Cirrus Logic 512 кб. не хочет работать,
после выставления видеорежима 640х480х32 загружаться начинает и перегружается, опять дискету читает,
выходит на установку видео и опять перегружается и так бесконечно.
Да , так вот может у меня комп очень старенький и не будет на нём (486) работать?
Ответьте что бы я не мучился сомненьями.