OSDev

для всех
Текущее время: 16 фев 2025, 12:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 19 янв 2025, 19:13 

Зарегистрирован: 06 янв 2025, 17:29
Сообщения: 20
Запускаю своё программное обеспечение (среда поддержки выполнения программ), условно назовём операционной системой. В эмуляторах bochs и qemu работает как надо. На относительно старом железе (AM2, Radeon HD3850), работает как надо. А вот на относительно новом железе (Core I3 s1200, B560M D3H, nVidia GT740), работает не так как мне хотелось бы. Вижу что включается графический режим, но на экране чёрный фон с артефактами. Попробовал на новом железе старую видеокарту, не помогло. Попробовал на старом железе новую видеокарту, результат странный. Видно что включается графический режим, видно кусок текстового буфера (вверху экрана полоса 15%), потом как должно было быть по всему экрану, зелёный фон. Но на зелёном фоне вижу точки другого цвета. Скорей всего где то некорректно работает программа, буду разбираться. Так как графическим режимом занимался относительно давно, всё забылось :-). Может кто то подскажет направление, из-за чего такой эффект может быть? Смутно помню, что руководствовался стандартом второй версии, может в третьей версии какие то особенности?


Вложения:
bochs.jpg
bochs.jpg [ 65.35 КБ | Просмотров: 2533 ]
qemu.jpg
qemu.jpg [ 52.5 КБ | Просмотров: 2533 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2025, 01:36 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1446
Я с графикой точно не помогу: никогда её не использовал, только чисто текстовый режим. Но, честно говоря, не уверен, что современное железо хоть как-то это поддерживает: ДОСу для работы достаточно текстового режима, причём через BIOS, а современные ОС во время запуска используют UEFI и его сервисы; соответственно, поддержка режимов VESA вроде как и не нужна...

Может, попробовать включить какой-то из классических видеорежимов, лучше всего -- стандартный VGA (640*480 точек, 16 цветов)? Думается, у него больше шансов быть корректно поддержанным.

В общем, если что-нибудь откопаете, просьба написать: интересно ж, как с этим сейчас дело обстоит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2025, 09:47 

Зарегистрирован: 06 янв 2025, 17:29
Сообщения: 20
Конечно о результатах напишу. Хотя задачи запуска на современном железе нет. Это я из интереса пробовал. Сейчас более актуально поддержка чтения и записи на диск, и файловая система ext2, а потом попробую разобраться. Пробовал включать все режимы 32 бита цвет и больше 1024x768, переключение в графику происходит так же. То есть я думаю поддержка BIOS всё таки есть, просто какие то особенности. На форуме почему то тихо, я ещё что нибудь по спрашиваю. :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2025, 17:25 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1446
JackKatch писал(а):
Конечно о результатах напишу. Хотя задачи запуска на современном железе нет. Это я из интереса пробовал. Сейчас более актуально поддержка чтения и записи на диск, и файловая система ext2, а потом попробую разобраться. Пробовал включать все режимы 32 бита цвет и больше 1024x768, переключение в графику происходит так же. То есть я думаю поддержка BIOS всё таки есть, просто какие то особенности. На форуме почему то тихо, я ещё что нибудь по спрашиваю. :-)


Ну, активность на форуме близка к нулю уже много лет: старые отходят от сумасшедших дел по осеписательству, а молодые больше во всякие там вебы идут :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 янв 2025, 18:43 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 107
Это правда, случайно зашёл ;)

Если семёрка на железяку ставится - значит с VESA биосом всё нормально ...
На новом железе встречаются вообще весёлые вещи - нормального биоса нет, а видеобиос есть и проинициализирован - в итоге во всех переменных биоса мусор, но всё, что относится к видео настроено правильно (int 10h указывает на c000, адрес порта crt в 0:463h, итд).

После того как режим включён - собстно, никаких проблем с записью быть не должно (если конечно, не использовать переключение банков ;) - бит LFB-то установлен в номере режима?).
Как бы, memset() на всю длину памяти режима должен давать результат (только надо помнить, что длина строки может быть больше количества точек - некоторые странные биосы любят выравнивать).

И на всякий случай - не надо пытаться ставить рефреш (vesa 3.0, бит 11 в номере режима), вот это битое уже очень давно .... вполне может даже ошибку не вернуть и режим не включить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 янв 2025, 05:11 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1446
dixie писал(а):
Это правда, случайно зашёл ;)


Рад видеть живым :)

dixie писал(а):
только надо помнить, что длина строки может быть больше количества точек - некоторые странные биосы любят выравнивать


Ну, дело может быть не в странностях биоса, а в аппаратуре: я с таким на МК сталкиваюсь время от времени, хотя нельзя сказать, чтоб часто.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 янв 2025, 10:32 

Зарегистрирован: 06 янв 2025, 17:29
Сообщения: 20
Включаю в real mode видео режим, а в long mode пишу в видеобуфер, всё. Посмотрел код, устанавливаю видео режим прочитанным значением, ничего не добавляю (0xCxxx). Потом зачем то (не помню уже) функцию 8 вызываю Set DAC Palette Format , интересно что в примечании 3-го стандарта пишут "Get DAC Palette Format not supported via the VBE 3.0 protected mode entry point". Может в этом всё дело. Попробую напишу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 янв 2025, 12:37 

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 107
JackKatch писал(а):
Включаю в real mode видео режим, а в long mode пишу в видеобуфер, всё. Посмотрел код, устанавливаю видео режим прочитанным значением, ничего не добавляю (0xCxxx). Потом зачем то (не помню уже) функцию 8 вызываю Set DAC Palette Format , интересно что в примечании 3-го стандарта пишут "Get DAC Palette Format not supported via the VBE 3.0 protected mode entry point". Может в этом всё дело. Попробую напишу.
Если режим не 8 бит, то она вообще не нужна.
Номер режима Cxxx - это бит "не очищать память" стоит? От него и мусор на экране, по идее.

SII писал(а):
Рад видеть живым :)
Надеюсь и впредь ... ;)

Цитата:
Ну, дело может быть не в странностях биоса, а в аппаратуре: я с таким на МК сталкиваюсь время от времени, хотя нельзя сказать, чтоб часто.
Ну, например AMD что-то там, 800x600x8 бит .. длина строки - 832. На карте другого производителя, на том же чипе - 800.
Вот зачем? :) Что было в голове у биосописателя?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 янв 2025, 15:34 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1446
dixie писал(а):
Ну, например AMD что-то там, 800x600x8 бит .. длина строки - 832. На карте другого производителя, на том же чипе - 800.
Вот зачем? :) Что было в голове у биосописателя?


Если 832 -- наверное, индуизм головного мозга. Аппаратно можно объяснить увеличение длины строки до ближайшей степени двойки, но и только.

Кстати, с сотым сообщением :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 янв 2025, 16:16 

Зарегистрирован: 06 янв 2025, 17:29
Сообщения: 20
Итак диагноз в первом приближении. Как всегда виноват автор, правда пока не ясно в чём. Программа зацикливается в месте где выполняется поиск ядра в корневом каталоге. То есть до отладочной закраски экрана дело не доходит. Из подозрительного, чтение сектора с диска порядка секунды. Почему на старом железе и в эмуляторе срабатывает, это непонятный вопрос. Пока сделаю паузу, для подумать :-) . Устал я ожидать запись на флешку и перезагружать машину.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB